From 6934f0621214acd37d7fe2acd0cb3c8316bfc8f2 Mon Sep 17 00:00:00 2001 From: xuliangzhan Date: Thu, 25 Apr 2024 14:44:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=87=92=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=A8=A1=E5=9D=97=E8=AD=A6=E5=91=8A?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- packages/custom/src/hook.ts | 3 +- packages/locale/lang/en-US.ts | 288 +++++++++++++++++++--------- packages/locale/lang/es-ES.ts | 288 +++++++++++++++++++--------- packages/locale/lang/ja-JP.ts | 288 +++++++++++++++++++--------- packages/locale/lang/zh-CN.ts | 288 +++++++++++++++++++--------- packages/locale/lang/zh-TC.ts | 288 +++++++++++++++++++--------- packages/table/src/emits.ts | 1 + packages/table/src/table.ts | 7 +- packages/toolbar/src/toolbar.ts | 8 +- types/plugins/extend-cell-area.d.ts | 16 ++ types/table.d.ts | 9 + 12 files changed, 1047 insertions(+), 439 deletions(-) diff --git a/package.json b/package.json index 5bb941250..a1aee25d8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vxe-table", - "version": "4.6.3", + "version": "4.6.4", "description": "一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式...", "scripts": { "update": "npm install --legacy-peer-deps", diff --git a/packages/custom/src/hook.ts b/packages/custom/src/hook.ts index 3455d36cd..d79a5c24c 100644 --- a/packages/custom/src/hook.ts +++ b/packages/custom/src/hook.ts @@ -32,8 +32,9 @@ const customHook: VxeGlobalHooksHandles.HookOptions = { } const openCustom = () => { - const { customStore } = reactData + const { initStore, customStore } = reactData customStore.visible = true + initStore.custom = true checkCustomStatus() calcMaxHeight() return nextTick().then(() => calcMaxHeight()) diff --git a/packages/locale/lang/en-US.ts b/packages/locale/lang/en-US.ts index 64d4911d7..12a8704d9 100644 --- a/packages/locale/lang/en-US.ts +++ b/packages/locale/lang/en-US.ts @@ -42,92 +42,6 @@ export default { impFields: 'Import failed, please check that the field name and data format are correct.', treeNotImp: 'Tree table does not support import.' }, - renderer: { - search: 'Search', - cases: { - equal: 'Equal', - unequal: 'Not equal', - gt: 'Greater than', - ge: 'Greater than or equal', - lt: 'Less than', - le: 'Less than or equal', - begin: 'Beginning is', - notbegin: 'Beginning is not', - endin: 'End is', - notendin: 'End is not', - include: 'Include', - exclude: 'Exclusive', - between: 'Betweenness', - custom: 'Custom filter', - insensitive: 'Case insensitive', - isSensitive: 'Case sensitive' - }, - combination: { - menus: { - clearSort: 'Clear sort', - sortAsc: 'Ascending order', - sortDesc: 'Descending order', - fixedColumn: 'Fixed column', - fixedGroup: 'Fixed group', - cancelFixed: 'Clear fixed', - fixedLeft: 'Fixed the left', - fixedRight: 'Fixed the right', - clearFilter: 'Clear filter', - textOption: 'Text filter', - numberOption: 'Number filter' - }, - popup: { - title: 'Custom filtering', - currColumnTitle: 'Current column:', - and: 'And', - or: 'Or', - describeHtml: 'Use ? To represent a single character
use * to represent any number of characters' - }, - empty: '(Empty)', - notData: 'No data' - } - }, - pro: { - area: { - mergeErr: 'The operation cannot be performed on merged cells', - multiErr: 'The operation cannot be performed on multiple selection areas', - extendErr: 'If the extended area contains merged cells, all merged cells need to be the same size', - pasteMultiErr: 'Cannot paste, copied area and pasted area of the same size are required to perform this operation' - }, - fnr: { - title: 'Find and replace', - findLabel: 'Find', - replaceLabel: 'Replace', - findTitle: 'What to find:', - replaceTitle: 'Replace with:', - tabs: { - find: 'Find', - replace: 'Replace' - }, - filter: { - re: 'Regular Expression', - whole: 'Whole word', - sensitive: 'Case sensitive' - }, - btns: { - findNext: 'Find next', - findAll: 'Find all', - replace: 'Replace', - replaceAll: 'Replace all', - cancel: 'Cancel' - }, - header: { - seq: '#', - cell: 'Cell', - value: 'Value' - }, - empty: '(Empty)', - reError: 'Invalid regular expression', - recordCount: 'Found {0} cells', - notCell: 'No matching cells were found', - replaceSuccess: 'Successfully replaced {0} cells' - } - }, table: { emptyText: 'No Data', allTitle: 'Select all / cancel', @@ -188,6 +102,9 @@ export default { confirm: 'Confirm', cancel: 'Cancel' }, + filter: { + search: '搜索' + }, custom: { cstmTitle: 'Column Settings', cstmRestore: 'Restore default', @@ -332,6 +249,205 @@ export default { q4: 'Fourth quarter' } } + }, + + /** + * 扩展插件 + */ + plugins: { + extendCellArea: { + area: { + mergeErr: '无法对合并单元格进行该操作', + multiErr: '无法对多重选择区域进行该操作', + extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同', + pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作', + cpInvalidErr: '该操作无法进行,您选择的区域中存在被禁止的列({0})' + }, + fnr: { + title: '查找和替换', + findLabel: '查找', + replaceLabel: '替换', + findTitle: '查找内容:', + replaceTitle: '替换为:', + tabs: { + find: '查找', + replace: '替换' + }, + filter: { + re: '正则表达式', + whole: '全词匹配', + sensitive: '区分大小写' + }, + btns: { + findNext: '查找下一个', + findAll: '查找全部', + replace: '替换', + replaceAll: '替换全部', + cancel: '取消' + }, + header: { + seq: '#', + cell: '单元格', + value: '值' + }, + empty: '(空值)', + reError: '无效的正则表达式', + recordCount: '已找到 {0} 个单元格', + notCell: '找不到匹配的单元格', + replaceSuccess: '成功替换 {0} 个单元格' + } + }, + filterComplexInput: { + menus: { + fixedColumn: '锁定列', + fixedGroup: '锁定组', + cancelFixed: '取消锁定', + fixedLeft: '锁定左侧', + fixedRight: '锁定右侧' + }, + cases: { + equal: '等于', + gt: '大于', + lt: '小于', + begin: '开头是', + endin: '结尾是', + include: '包含', + isSensitive: '区分大小写' + } + }, + filterCombination: { + menus: { + clearSort: '清除排序', + sortAsc: '升序', + sortDesc: '降序', + fixedColumn: '锁定列', + fixedGroup: '锁定组', + cancelFixed: '取消锁定', + fixedLeft: '锁定左侧', + fixedRight: '锁定右侧', + clearFilter: '清除筛选', + textOption: '文本筛选', + numberOption: '数值筛选' + }, + popup: { + title: '自定义筛选的方式', + currColumnTitle: '当前列:', + and: '与', + or: '或', + describeHtml: '可用 ? 代表单个字符
用 * 代表任意多个字符' + }, + cases: { + equal: '等于', + unequal: '不等于', + gt: '大于', + ge: '大于或等于', + lt: '小于', + le: '小于或等于', + begin: '开头是', + notbegin: '开头不是', + endin: '结尾是', + notendin: '结尾不是', + include: '包含', + exclude: '不包含', + between: '介于', + custom: '自定义筛选', + insensitive: '不区分大小写', + isSensitive: '区分大小写' + }, + empty: '(空白)', + notData: '无匹配项' + } + }, + + /** + * 以下废弃 + * @deprecated + */ + renderer: { + search: 'Search', + cases: { + equal: 'Equal', + unequal: 'Not equal', + gt: 'Greater than', + ge: 'Greater than or equal', + lt: 'Less than', + le: 'Less than or equal', + begin: 'Beginning is', + notbegin: 'Beginning is not', + endin: 'End is', + notendin: 'End is not', + include: 'Include', + exclude: 'Exclusive', + between: 'Betweenness', + custom: 'Custom filter', + insensitive: 'Case insensitive', + isSensitive: 'Case sensitive' + }, + combination: { + menus: { + clearSort: 'Clear sort', + sortAsc: 'Ascending order', + sortDesc: 'Descending order', + fixedColumn: 'Fixed column', + fixedGroup: 'Fixed group', + cancelFixed: 'Clear fixed', + fixedLeft: 'Fixed the left', + fixedRight: 'Fixed the right', + clearFilter: 'Clear filter', + textOption: 'Text filter', + numberOption: 'Number filter' + }, + popup: { + title: 'Custom filtering', + currColumnTitle: 'Current column:', + and: 'And', + or: 'Or', + describeHtml: 'Use ? To represent a single character
use * to represent any number of characters' + }, + empty: '(Empty)', + notData: 'No data' + } + }, + pro: { + area: { + mergeErr: 'The operation cannot be performed on merged cells', + multiErr: 'The operation cannot be performed on multiple selection areas', + extendErr: 'If the extended area contains merged cells, all merged cells need to be the same size', + pasteMultiErr: 'Cannot paste, copied area and pasted area of the same size are required to perform this operation' + }, + fnr: { + title: 'Find and replace', + findLabel: 'Find', + replaceLabel: 'Replace', + findTitle: 'What to find:', + replaceTitle: 'Replace with:', + tabs: { + find: 'Find', + replace: 'Replace' + }, + filter: { + re: 'Regular Expression', + whole: 'Whole word', + sensitive: 'Case sensitive' + }, + btns: { + findNext: 'Find next', + findAll: 'Find all', + replace: 'Replace', + replaceAll: 'Replace all', + cancel: 'Cancel' + }, + header: { + seq: '#', + cell: 'Cell', + value: 'Value' + }, + empty: '(Empty)', + reError: 'Invalid regular expression', + recordCount: 'Found {0} cells', + notCell: 'No matching cells were found', + replaceSuccess: 'Successfully replaced {0} cells' + } } } } diff --git a/packages/locale/lang/es-ES.ts b/packages/locale/lang/es-ES.ts index 0ae3ae999..f2dd6d442 100644 --- a/packages/locale/lang/es-ES.ts +++ b/packages/locale/lang/es-ES.ts @@ -42,92 +42,6 @@ export default { impFields: 'Error de importación, por favor revise que el nombre del campo y el formato de datos sean correctos.', treeNotImp: 'La tabla de árbol no soporta importación.' }, - renderer: { - search: 'Buscar', - cases: { - equal: 'Igual', - unequal: 'Distinto que', - gt: 'Mayor que', - ge: 'Mayor o igual que', - lt: 'Menor que', - le: 'Menor o igual que', - begin: 'Empieza por', - notbegin: 'No empieza por', - endin: 'Termina con', - notendin: 'No termina con', - include: 'Incluye', - exclude: 'Excluye', - between: 'Entre', - custom: 'Filtro personalizado', - insensitive: 'No sensible a mayúsculas/minúsculas', - isSensitive: 'Sensible a mayúsculas/minúsculas' - }, - combination: { - menus: { - clearSort: 'Limpiar ordenamiento', - sortAsc: 'Orden ascendente', - sortDesc: 'Orden descendente', - fixedColumn: 'Columna fija', - fixedGroup: 'Grupo fijo', - cancelFixed: 'Borrar fijado', - fixedLeft: 'Fijar a la izquierda', - fixedRight: 'Fijar a la derecha', - clearFilter: 'Limpiar filtro', - textOption: 'Filtro de texto', - numberOption: 'Filtro de número' - }, - popup: { - title: 'Filtro personalizado', - currColumnTitle: 'Columna actual:', - and: 'Y', - or: 'O', - describeHtml: 'Use ? para representar un solo carácter
use * para representar cualquier número de caracteres' - }, - empty: '(Vacío)', - notData: 'No hay datos' - } - }, - pro: { - area: { - mergeErr: 'La operación no se puede realizar en celdas combinadas', - multiErr: 'La operación no se puede realizar en áreas de selección múltiple', - extendErr: 'Si el área extendida contiene celdas combinadas, todas las celdas combinadas deben tener el mismo tamaño', - pasteMultiErr: 'No se puede pegar, se requieren áreas copiadas y pegadas del mismo tamaño para realizar esta operación' - }, - fnr: { - title: 'Buscar y reemplazar', - findLabel: 'Buscar', - replaceLabel: 'Reemplazar', - findTitle: 'Qué buscar:', - replaceTitle: 'Reemplazar con:', - tabs: { - find: 'Buscar', - replace: 'Reemplazar' - }, - filter: { - re: 'Expresión regular', - whole: 'Palabra completa', - sensitive: 'Distinguir mayúsculas y minúsculas' - }, - btns: { - findNext: 'Buscar siguiente', - findAll: 'Buscar todo', - replace: 'Reemplazar', - replaceAll: 'Reemplazar todo', - cancel: 'Cancelar' - }, - header: { - seq: '#', - cell: 'Celda', - value: 'Valor' - }, - empty: '(Vacío)', - reError: 'Expresión regular inválida', - recordCount: 'Se encontraron {0} celdas', - notCell: 'No se encontraron celdas coincidentes', - replaceSuccess: 'Se reemplazaron {0} celdas con éxito' - } - }, table: { emptyText: 'No hay datos', allTitle: 'Seleccionar todo / cancelar', @@ -180,6 +94,9 @@ export default { confirm: 'Confirmar', cancel: 'Cancelar' }, + filter: { + search: '搜索' + }, custom: { cstmTitle: 'Column Settings', cstmRestore: 'Restore default', @@ -324,6 +241,205 @@ export default { q4: 'Cuarto trimestre' } } + }, + + /** + * 扩展插件 + */ + plugins: { + extendCellArea: { + area: { + mergeErr: '无法对合并单元格进行该操作', + multiErr: '无法对多重选择区域进行该操作', + extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同', + pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作', + cpInvalidErr: '该操作无法进行,您选择的区域中存在被禁止的列({0})' + }, + fnr: { + title: '查找和替换', + findLabel: '查找', + replaceLabel: '替换', + findTitle: '查找内容:', + replaceTitle: '替换为:', + tabs: { + find: '查找', + replace: '替换' + }, + filter: { + re: '正则表达式', + whole: '全词匹配', + sensitive: '区分大小写' + }, + btns: { + findNext: '查找下一个', + findAll: '查找全部', + replace: '替换', + replaceAll: '替换全部', + cancel: '取消' + }, + header: { + seq: '#', + cell: '单元格', + value: '值' + }, + empty: '(空值)', + reError: '无效的正则表达式', + recordCount: '已找到 {0} 个单元格', + notCell: '找不到匹配的单元格', + replaceSuccess: '成功替换 {0} 个单元格' + } + }, + filterComplexInput: { + menus: { + fixedColumn: '锁定列', + fixedGroup: '锁定组', + cancelFixed: '取消锁定', + fixedLeft: '锁定左侧', + fixedRight: '锁定右侧' + }, + cases: { + equal: '等于', + gt: '大于', + lt: '小于', + begin: '开头是', + endin: '结尾是', + include: '包含', + isSensitive: '区分大小写' + } + }, + filterCombination: { + menus: { + clearSort: '清除排序', + sortAsc: '升序', + sortDesc: '降序', + fixedColumn: '锁定列', + fixedGroup: '锁定组', + cancelFixed: '取消锁定', + fixedLeft: '锁定左侧', + fixedRight: '锁定右侧', + clearFilter: '清除筛选', + textOption: '文本筛选', + numberOption: '数值筛选' + }, + popup: { + title: '自定义筛选的方式', + currColumnTitle: '当前列:', + and: '与', + or: '或', + describeHtml: '可用 ? 代表单个字符
用 * 代表任意多个字符' + }, + cases: { + equal: '等于', + unequal: '不等于', + gt: '大于', + ge: '大于或等于', + lt: '小于', + le: '小于或等于', + begin: '开头是', + notbegin: '开头不是', + endin: '结尾是', + notendin: '结尾不是', + include: '包含', + exclude: '不包含', + between: '介于', + custom: '自定义筛选', + insensitive: '不区分大小写', + isSensitive: '区分大小写' + }, + empty: '(空白)', + notData: '无匹配项' + } + }, + + /** + * 以下废弃 + * @deprecated + */ + renderer: { + search: 'Buscar', + cases: { + equal: 'Igual', + unequal: 'Distinto que', + gt: 'Mayor que', + ge: 'Mayor o igual que', + lt: 'Menor que', + le: 'Menor o igual que', + begin: 'Empieza por', + notbegin: 'No empieza por', + endin: 'Termina con', + notendin: 'No termina con', + include: 'Incluye', + exclude: 'Excluye', + between: 'Entre', + custom: 'Filtro personalizado', + insensitive: 'No sensible a mayúsculas/minúsculas', + isSensitive: 'Sensible a mayúsculas/minúsculas' + }, + combination: { + menus: { + clearSort: 'Limpiar ordenamiento', + sortAsc: 'Orden ascendente', + sortDesc: 'Orden descendente', + fixedColumn: 'Columna fija', + fixedGroup: 'Grupo fijo', + cancelFixed: 'Borrar fijado', + fixedLeft: 'Fijar a la izquierda', + fixedRight: 'Fijar a la derecha', + clearFilter: 'Limpiar filtro', + textOption: 'Filtro de texto', + numberOption: 'Filtro de número' + }, + popup: { + title: 'Filtro personalizado', + currColumnTitle: 'Columna actual:', + and: 'Y', + or: 'O', + describeHtml: 'Use ? para representar un solo carácter
use * para representar cualquier número de caracteres' + }, + empty: '(Vacío)', + notData: 'No hay datos' + } + }, + pro: { + area: { + mergeErr: 'La operación no se puede realizar en celdas combinadas', + multiErr: 'La operación no se puede realizar en áreas de selección múltiple', + extendErr: 'Si el área extendida contiene celdas combinadas, todas las celdas combinadas deben tener el mismo tamaño', + pasteMultiErr: 'No se puede pegar, se requieren áreas copiadas y pegadas del mismo tamaño para realizar esta operación' + }, + fnr: { + title: 'Buscar y reemplazar', + findLabel: 'Buscar', + replaceLabel: 'Reemplazar', + findTitle: 'Qué buscar:', + replaceTitle: 'Reemplazar con:', + tabs: { + find: 'Buscar', + replace: 'Reemplazar' + }, + filter: { + re: 'Expresión regular', + whole: 'Palabra completa', + sensitive: 'Distinguir mayúsculas y minúsculas' + }, + btns: { + findNext: 'Buscar siguiente', + findAll: 'Buscar todo', + replace: 'Reemplazar', + replaceAll: 'Reemplazar todo', + cancel: 'Cancelar' + }, + header: { + seq: '#', + cell: 'Celda', + value: 'Valor' + }, + empty: '(Vacío)', + reError: 'Expresión regular inválida', + recordCount: 'Se encontraron {0} celdas', + notCell: 'No se encontraron celdas coincidentes', + replaceSuccess: 'Se reemplazaron {0} celdas con éxito' + } } } } diff --git a/packages/locale/lang/ja-JP.ts b/packages/locale/lang/ja-JP.ts index d0e709420..dd83437bc 100644 --- a/packages/locale/lang/ja-JP.ts +++ b/packages/locale/lang/ja-JP.ts @@ -42,92 +42,6 @@ export default { impFields: 'インポートに失敗しました。フィールド名とデータ形式が正しいかどうかを確認してください', treeNotImp: 'ツリーテーブルはインポートをサポートしていません' }, - renderer: { - search: '搜索', - cases: { - equal: '等于', - unequal: '不等于', - gt: '大于', - ge: '大于或等于', - lt: '小于', - le: '小于或等于', - begin: '开头是', - notbegin: '开头不是', - endin: '结尾是', - notendin: '结尾不是', - include: '包含', - exclude: '不包含', - between: '介于', - custom: '自定义筛选', - insensitive: '不区分大小写', - isSensitive: '区分大小写' - }, - combination: { - menus: { - clearSort: '清除排序', - sortAsc: '升序', - sortDesc: '降序', - fixedColumn: '锁定列', - fixedGroup: '锁定组', - cancelFixed: '取消锁定', - fixedLeft: '锁定左侧', - fixedRight: '锁定右侧', - clearFilter: '清除筛选', - textOption: '文本筛选', - numberOption: '数值筛选' - }, - popup: { - title: '自定义筛选的方式', - currColumnTitle: '当前列:', - and: '与', - or: '或', - describeHtml: '可用 ? 代表单个字符
用 * 代表任意多个字符' - }, - empty: '(空白)', - notData: '无匹配项' - } - }, - pro: { - area: { - mergeErr: '无法对合并单元格进行该操作', - multiErr: '无法对多重选择区域进行该操作', - extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同', - pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作' - }, - fnr: { - title: '查找和替换', - findLabel: '查找', - replaceLabel: '替换', - findTitle: '查找内容:', - replaceTitle: '替换为:', - tabs: { - find: '查找', - replace: '替换' - }, - filter: { - re: '正则表达式', - whole: '全词匹配', - sensitive: '区分大小写' - }, - btns: { - findNext: '查找下一个', - findAll: '查找全部', - replace: '替换', - replaceAll: '替换全部', - cancel: '取消' - }, - header: { - seq: '#', - cell: '单元格', - value: '值' - }, - empty: '(空值)', - reError: '无效的正则表达式', - recordCount: '已找到 {0} 个单元格', - notCell: '找不到匹配的单元格', - replaceSuccess: '成功替换 {0} 个单元格' - } - }, table: { emptyText: 'データがありません', allTitle: '全て選択/取消', @@ -188,6 +102,9 @@ export default { confirm: '完了', cancel: 'キャンセル' }, + filter: { + search: '搜索' + }, custom: { cstmTitle: 'Column Settings', cstmRestore: 'Restore default', @@ -331,6 +248,205 @@ export default { q4: '第四季度' } } + }, + + /** + * 扩展插件 + */ + plugins: { + extendCellArea: { + area: { + mergeErr: '无法对合并单元格进行该操作', + multiErr: '无法对多重选择区域进行该操作', + extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同', + pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作', + cpInvalidErr: '该操作无法进行,您选择的区域中存在被禁止的列({0})' + }, + fnr: { + title: '查找和替换', + findLabel: '查找', + replaceLabel: '替换', + findTitle: '查找内容:', + replaceTitle: '替换为:', + tabs: { + find: '查找', + replace: '替换' + }, + filter: { + re: '正则表达式', + whole: '全词匹配', + sensitive: '区分大小写' + }, + btns: { + findNext: '查找下一个', + findAll: '查找全部', + replace: '替换', + replaceAll: '替换全部', + cancel: '取消' + }, + header: { + seq: '#', + cell: '单元格', + value: '值' + }, + empty: '(空值)', + reError: '无效的正则表达式', + recordCount: '已找到 {0} 个单元格', + notCell: '找不到匹配的单元格', + replaceSuccess: '成功替换 {0} 个单元格' + } + }, + filterComplexInput: { + menus: { + fixedColumn: '锁定列', + fixedGroup: '锁定组', + cancelFixed: '取消锁定', + fixedLeft: '锁定左侧', + fixedRight: '锁定右侧' + }, + cases: { + equal: '等于', + gt: '大于', + lt: '小于', + begin: '开头是', + endin: '结尾是', + include: '包含', + isSensitive: '区分大小写' + } + }, + filterCombination: { + menus: { + clearSort: '清除排序', + sortAsc: '升序', + sortDesc: '降序', + fixedColumn: '锁定列', + fixedGroup: '锁定组', + cancelFixed: '取消锁定', + fixedLeft: '锁定左侧', + fixedRight: '锁定右侧', + clearFilter: '清除筛选', + textOption: '文本筛选', + numberOption: '数值筛选' + }, + popup: { + title: '自定义筛选的方式', + currColumnTitle: '当前列:', + and: '与', + or: '或', + describeHtml: '可用 ? 代表单个字符
用 * 代表任意多个字符' + }, + cases: { + equal: '等于', + unequal: '不等于', + gt: '大于', + ge: '大于或等于', + lt: '小于', + le: '小于或等于', + begin: '开头是', + notbegin: '开头不是', + endin: '结尾是', + notendin: '结尾不是', + include: '包含', + exclude: '不包含', + between: '介于', + custom: '自定义筛选', + insensitive: '不区分大小写', + isSensitive: '区分大小写' + }, + empty: '(空白)', + notData: '无匹配项' + } + }, + + /** + * 以下废弃 + * @deprecated + */ + renderer: { + search: '搜索', + cases: { + equal: '等于', + unequal: '不等于', + gt: '大于', + ge: '大于或等于', + lt: '小于', + le: '小于或等于', + begin: '开头是', + notbegin: '开头不是', + endin: '结尾是', + notendin: '结尾不是', + include: '包含', + exclude: '不包含', + between: '介于', + custom: '自定义筛选', + insensitive: '不区分大小写', + isSensitive: '区分大小写' + }, + combination: { + menus: { + clearSort: '清除排序', + sortAsc: '升序', + sortDesc: '降序', + fixedColumn: '锁定列', + fixedGroup: '锁定组', + cancelFixed: '取消锁定', + fixedLeft: '锁定左侧', + fixedRight: '锁定右侧', + clearFilter: '清除筛选', + textOption: '文本筛选', + numberOption: '数值筛选' + }, + popup: { + title: '自定义筛选的方式', + currColumnTitle: '当前列:', + and: '与', + or: '或', + describeHtml: '可用 ? 代表单个字符
用 * 代表任意多个字符' + }, + empty: '(空白)', + notData: '无匹配项' + } + }, + pro: { + area: { + mergeErr: '无法对合并单元格进行该操作', + multiErr: '无法对多重选择区域进行该操作', + extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同', + pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作' + }, + fnr: { + title: '查找和替换', + findLabel: '查找', + replaceLabel: '替换', + findTitle: '查找内容:', + replaceTitle: '替换为:', + tabs: { + find: '查找', + replace: '替换' + }, + filter: { + re: '正则表达式', + whole: '全词匹配', + sensitive: '区分大小写' + }, + btns: { + findNext: '查找下一个', + findAll: '查找全部', + replace: '替换', + replaceAll: '替换全部', + cancel: '取消' + }, + header: { + seq: '#', + cell: '单元格', + value: '值' + }, + empty: '(空值)', + reError: '无效的正则表达式', + recordCount: '已找到 {0} 个单元格', + notCell: '找不到匹配的单元格', + replaceSuccess: '成功替换 {0} 个单元格' + } } } } diff --git a/packages/locale/lang/zh-CN.ts b/packages/locale/lang/zh-CN.ts index dcdf8020c..a4c50661b 100644 --- a/packages/locale/lang/zh-CN.ts +++ b/packages/locale/lang/zh-CN.ts @@ -42,92 +42,6 @@ export default { impFields: '导入失败,请检查字段名和数据格式是否正确', treeNotImp: '树表格不支持导入' }, - renderer: { - search: '搜索', - cases: { - equal: '等于', - unequal: '不等于', - gt: '大于', - ge: '大于或等于', - lt: '小于', - le: '小于或等于', - begin: '开头是', - notbegin: '开头不是', - endin: '结尾是', - notendin: '结尾不是', - include: '包含', - exclude: '不包含', - between: '介于', - custom: '自定义筛选', - insensitive: '不区分大小写', - isSensitive: '区分大小写' - }, - combination: { - menus: { - clearSort: '清除排序', - sortAsc: '升序', - sortDesc: '降序', - fixedColumn: '锁定列', - fixedGroup: '锁定组', - cancelFixed: '取消锁定', - fixedLeft: '锁定左侧', - fixedRight: '锁定右侧', - clearFilter: '清除筛选', - textOption: '文本筛选', - numberOption: '数值筛选' - }, - popup: { - title: '自定义筛选的方式', - currColumnTitle: '当前列:', - and: '与', - or: '或', - describeHtml: '可用 ? 代表单个字符
用 * 代表任意多个字符' - }, - empty: '(空白)', - notData: '无匹配项' - } - }, - pro: { - area: { - mergeErr: '无法对合并单元格进行该操作', - multiErr: '无法对多重选择区域进行该操作', - extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同', - pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作' - }, - fnr: { - title: '查找和替换', - findLabel: '查找', - replaceLabel: '替换', - findTitle: '查找内容:', - replaceTitle: '替换为:', - tabs: { - find: '查找', - replace: '替换' - }, - filter: { - re: '正则表达式', - whole: '全词匹配', - sensitive: '区分大小写' - }, - btns: { - findNext: '查找下一个', - findAll: '查找全部', - replace: '替换', - replaceAll: '替换全部', - cancel: '取消' - }, - header: { - seq: '#', - cell: '单元格', - value: '值' - }, - empty: '(空值)', - reError: '无效的正则表达式', - recordCount: '已找到 {0} 个单元格', - notCell: '找不到匹配的单元格', - replaceSuccess: '成功替换 {0} 个单元格' - } - }, table: { emptyText: '暂无数据', allTitle: '全选/取消', @@ -188,6 +102,9 @@ export default { confirm: '确认', cancel: '取消' }, + filter: { + search: '搜索' + }, custom: { cstmTitle: '列设置', cstmRestore: '恢复默认', @@ -332,6 +249,205 @@ export default { q4: '第四季度' } } + }, + + /** + * 扩展插件 + */ + plugins: { + extendCellArea: { + area: { + mergeErr: '无法对合并单元格进行该操作', + multiErr: '无法对多重选择区域进行该操作', + extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同', + pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作', + cpInvalidErr: '该操作无法进行,您选择的区域中存在被禁止的列({0})' + }, + fnr: { + title: '查找和替换', + findLabel: '查找', + replaceLabel: '替换', + findTitle: '查找内容:', + replaceTitle: '替换为:', + tabs: { + find: '查找', + replace: '替换' + }, + filter: { + re: '正则表达式', + whole: '全词匹配', + sensitive: '区分大小写' + }, + btns: { + findNext: '查找下一个', + findAll: '查找全部', + replace: '替换', + replaceAll: '替换全部', + cancel: '取消' + }, + header: { + seq: '#', + cell: '单元格', + value: '值' + }, + empty: '(空值)', + reError: '无效的正则表达式', + recordCount: '已找到 {0} 个单元格', + notCell: '找不到匹配的单元格', + replaceSuccess: '成功替换 {0} 个单元格' + } + }, + filterComplexInput: { + menus: { + fixedColumn: '锁定列', + fixedGroup: '锁定组', + cancelFixed: '取消锁定', + fixedLeft: '锁定左侧', + fixedRight: '锁定右侧' + }, + cases: { + equal: '等于', + gt: '大于', + lt: '小于', + begin: '开头是', + endin: '结尾是', + include: '包含', + isSensitive: '区分大小写' + } + }, + filterCombination: { + menus: { + clearSort: '清除排序', + sortAsc: '升序', + sortDesc: '降序', + fixedColumn: '锁定列', + fixedGroup: '锁定组', + cancelFixed: '取消锁定', + fixedLeft: '锁定左侧', + fixedRight: '锁定右侧', + clearFilter: '清除筛选', + textOption: '文本筛选', + numberOption: '数值筛选' + }, + popup: { + title: '自定义筛选的方式', + currColumnTitle: '当前列:', + and: '与', + or: '或', + describeHtml: '可用 ? 代表单个字符
用 * 代表任意多个字符' + }, + cases: { + equal: '等于', + unequal: '不等于', + gt: '大于', + ge: '大于或等于', + lt: '小于', + le: '小于或等于', + begin: '开头是', + notbegin: '开头不是', + endin: '结尾是', + notendin: '结尾不是', + include: '包含', + exclude: '不包含', + between: '介于', + custom: '自定义筛选', + insensitive: '不区分大小写', + isSensitive: '区分大小写' + }, + empty: '(空白)', + notData: '无匹配项' + } + }, + + /** + * 以下废弃 + * @deprecated + */ + pro: { + area: { + mergeErr: '无法对合并单元格进行该操作', + multiErr: '无法对多重选择区域进行该操作', + extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同', + pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作' + }, + fnr: { + title: '查找和替换', + findLabel: '查找', + replaceLabel: '替换', + findTitle: '查找内容:', + replaceTitle: '替换为:', + tabs: { + find: '查找', + replace: '替换' + }, + filter: { + re: '正则表达式', + whole: '全词匹配', + sensitive: '区分大小写' + }, + btns: { + findNext: '查找下一个', + findAll: '查找全部', + replace: '替换', + replaceAll: '替换全部', + cancel: '取消' + }, + header: { + seq: '#', + cell: '单元格', + value: '值' + }, + empty: '(空值)', + reError: '无效的正则表达式', + recordCount: '已找到 {0} 个单元格', + notCell: '找不到匹配的单元格', + replaceSuccess: '成功替换 {0} 个单元格' + } + }, + renderer: { + search: '搜索', + cases: { + equal: '等于', + unequal: '不等于', + gt: '大于', + ge: '大于或等于', + lt: '小于', + le: '小于或等于', + begin: '开头是', + notbegin: '开头不是', + endin: '结尾是', + notendin: '结尾不是', + include: '包含', + exclude: '不包含', + between: '介于', + custom: '自定义筛选', + insensitive: '不区分大小写', + isSensitive: '区分大小写' + }, + combination: { + menus: { + clearSort: '清除排序', + sortAsc: '升序', + sortDesc: '降序', + fixedColumn: '锁定列', + fixedGroup: '锁定组', + cancelFixed: '取消锁定', + fixedLeft: '锁定左侧', + fixedRight: '锁定右侧', + clearFilter: '清除筛选', + textOption: '文本筛选', + numberOption: '数值筛选' + }, + popup: { + title: '自定义筛选的方式', + currColumnTitle: '当前列:', + and: '与', + or: '或', + describeHtml: '可用 ? 代表单个字符
用 * 代表任意多个字符' + }, + empty: '(空白)', + notData: '无匹配项' + } } } } diff --git a/packages/locale/lang/zh-TC.ts b/packages/locale/lang/zh-TC.ts index a2db974ee..78709b671 100644 --- a/packages/locale/lang/zh-TC.ts +++ b/packages/locale/lang/zh-TC.ts @@ -42,92 +42,6 @@ export default { impFields: '導入失敗,請檢查欄位名和數據格式是否正確', treeNotImp: '樹狀表格不支持導入' }, - renderer: { - search: '蒐索', - cases: { - equal: '等於', - unequal: '不等於', - gt: '大於', - ge: '大於或等於', - lt: '小於', - le: '小於或等於', - begin: '開頭是', - notbegin: '開頭不是', - endin: '結尾是', - notendin: '結尾不是', - include: '包含', - exclude: '不包含', - between: '介於', - custom: '自定義篩選', - insensitive: '不區分大小寫', - isSensitive: '區分大小寫' - }, - combination: { - menus: { - clearSort: '清除排序', - sortAsc: '昇冪', - sortDesc: '降序', - fixedColumn: '鎖定列', - fixedGroup: '鎖定組', - cancelFixed: '取消鎖定', - fixedLeft: '鎖定左側', - fixedRight: '鎖定右側', - clearFilter: '清除篩選', - textOption: '文字篩選', - numberOption: '數值篩選' - }, - popup: { - title: '自定義篩選的管道', - currColumnTitle: '當前列:', - and: '與', - or: '或', - describeHtml: '用 ? 代表單個字元
用 * 代表任意多個字元' - }, - empty: '(空白)', - notData: '無匹配項' - } - }, - pro: { - area: { - mergeErr: '無法對合併儲存格進行該操作', - multiErr: '無法對多重選擇區域進行該操作', - extendErr: '如果延伸的區域包含被合併的儲存格,所有合併的儲存格需大小相同', - pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作' - }, - fnr: { - title: '查找和替換', - findLabel: '查找', - replaceLabel: '替換', - findTitle: '查找內容:', - replaceTitle: '替換為:', - tabs: { - find: '查找', - replace: '替換' - }, - filter: { - re: '規則運算式', - whole: '全詞匹配', - sensitive: '區分大小寫' - }, - btns: { - findNext: '查找下一個', - findAll: '查找全部', - replace: '替换', - replaceAll: '替换全部', - cancel: '取消' - }, - header: { - seq: '#', - cell: '儲存格', - value: '值' - }, - empty: '(空值)', - reError: '無效的規則運算式', - recordCount: '已找到 {0} 個儲存格', - notCell: '找不到匹配的儲存格', - replaceSuccess: '成功替換 {0} 個儲存格' - } - }, table: { emptyText: '暫無資料', allTitle: '全選/取消', @@ -188,6 +102,9 @@ export default { confirm: '確認', cancel: '取消' }, + filter: { + search: '搜索' + }, custom: { cstmTitle: '列設定', cstmRestore: '恢復默認', @@ -332,6 +249,205 @@ export default { q4: '第四季度' } } + }, + + /** + * 扩展插件 + */ + plugins: { + extendCellArea: { + area: { + mergeErr: '无法对合并单元格进行该操作', + multiErr: '无法对多重选择区域进行该操作', + extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同', + pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作', + cpInvalidErr: '该操作无法进行,您选择的区域中存在被禁止的列({0})' + }, + fnr: { + title: '查找和替换', + findLabel: '查找', + replaceLabel: '替换', + findTitle: '查找内容:', + replaceTitle: '替换为:', + tabs: { + find: '查找', + replace: '替换' + }, + filter: { + re: '正则表达式', + whole: '全词匹配', + sensitive: '区分大小写' + }, + btns: { + findNext: '查找下一个', + findAll: '查找全部', + replace: '替换', + replaceAll: '替换全部', + cancel: '取消' + }, + header: { + seq: '#', + cell: '单元格', + value: '值' + }, + empty: '(空值)', + reError: '无效的正则表达式', + recordCount: '已找到 {0} 个单元格', + notCell: '找不到匹配的单元格', + replaceSuccess: '成功替换 {0} 个单元格' + } + }, + filterComplexInput: { + menus: { + fixedColumn: '锁定列', + fixedGroup: '锁定组', + cancelFixed: '取消锁定', + fixedLeft: '锁定左侧', + fixedRight: '锁定右侧' + }, + cases: { + equal: '等于', + gt: '大于', + lt: '小于', + begin: '开头是', + endin: '结尾是', + include: '包含', + isSensitive: '区分大小写' + } + }, + filterCombination: { + menus: { + clearSort: '清除排序', + sortAsc: '升序', + sortDesc: '降序', + fixedColumn: '锁定列', + fixedGroup: '锁定组', + cancelFixed: '取消锁定', + fixedLeft: '锁定左侧', + fixedRight: '锁定右侧', + clearFilter: '清除筛选', + textOption: '文本筛选', + numberOption: '数值筛选' + }, + popup: { + title: '自定义筛选的方式', + currColumnTitle: '当前列:', + and: '与', + or: '或', + describeHtml: '可用 ? 代表单个字符
用 * 代表任意多个字符' + }, + cases: { + equal: '等于', + unequal: '不等于', + gt: '大于', + ge: '大于或等于', + lt: '小于', + le: '小于或等于', + begin: '开头是', + notbegin: '开头不是', + endin: '结尾是', + notendin: '结尾不是', + include: '包含', + exclude: '不包含', + between: '介于', + custom: '自定义筛选', + insensitive: '不区分大小写', + isSensitive: '区分大小写' + }, + empty: '(空白)', + notData: '无匹配项' + } + }, + + /** + * 以下废弃 + * @deprecated + */ + renderer: { + search: '蒐索', + cases: { + equal: '等於', + unequal: '不等於', + gt: '大於', + ge: '大於或等於', + lt: '小於', + le: '小於或等於', + begin: '開頭是', + notbegin: '開頭不是', + endin: '結尾是', + notendin: '結尾不是', + include: '包含', + exclude: '不包含', + between: '介於', + custom: '自定義篩選', + insensitive: '不區分大小寫', + isSensitive: '區分大小寫' + }, + combination: { + menus: { + clearSort: '清除排序', + sortAsc: '昇冪', + sortDesc: '降序', + fixedColumn: '鎖定列', + fixedGroup: '鎖定組', + cancelFixed: '取消鎖定', + fixedLeft: '鎖定左側', + fixedRight: '鎖定右側', + clearFilter: '清除篩選', + textOption: '文字篩選', + numberOption: '數值篩選' + }, + popup: { + title: '自定義篩選的管道', + currColumnTitle: '當前列:', + and: '與', + or: '或', + describeHtml: '用 ? 代表單個字元
用 * 代表任意多個字元' + }, + empty: '(空白)', + notData: '無匹配項' + } + }, + pro: { + area: { + mergeErr: '無法對合併儲存格進行該操作', + multiErr: '無法對多重選擇區域進行該操作', + extendErr: '如果延伸的區域包含被合併的儲存格,所有合併的儲存格需大小相同', + pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作' + }, + fnr: { + title: '查找和替換', + findLabel: '查找', + replaceLabel: '替換', + findTitle: '查找內容:', + replaceTitle: '替換為:', + tabs: { + find: '查找', + replace: '替換' + }, + filter: { + re: '規則運算式', + whole: '全詞匹配', + sensitive: '區分大小寫' + }, + btns: { + findNext: '查找下一個', + findAll: '查找全部', + replace: '替换', + replaceAll: '替换全部', + cancel: '取消' + }, + header: { + seq: '#', + cell: '儲存格', + value: '值' + }, + empty: '(空值)', + reError: '無效的規則運算式', + recordCount: '已找到 {0} 個儲存格', + notCell: '找不到匹配的儲存格', + replaceSuccess: '成功替換 {0} 個儲存格' + } } } } diff --git a/packages/table/src/emits.ts b/packages/table/src/emits.ts index 927f2b472..5b752a606 100644 --- a/packages/table/src/emits.ts +++ b/packages/table/src/emits.ts @@ -64,6 +64,7 @@ export default [ 'cell-area-merge', 'clear-cell-area-merge', 'header-cell-area-selection', + 'cell-area-selection-invalid', 'cell-area-selection-start', 'cell-area-selection-drag', 'cell-area-selection-end', diff --git a/packages/table/src/table.ts b/packages/table/src/table.ts index 2f39de288..2aac38993 100644 --- a/packages/table/src/table.ts +++ b/packages/table/src/table.ts @@ -117,7 +117,8 @@ export default defineComponent({ initStore: { filter: false, import: false, - export: false + export: false, + custom: false }, // 自定义列相关的信息 customStore: { @@ -6801,10 +6802,10 @@ export default defineComponent({ /** * 自定义列 */ - h(resolveComponent('vxe-table-custom-panel') as ComponentOptions, { + initStore.custom ? h(resolveComponent('vxe-table-custom-panel') as ComponentOptions, { ref: refTableCustom, customStore - }), + }) : createCommentVNode(), /** * 筛选 */ diff --git a/packages/toolbar/src/toolbar.ts b/packages/toolbar/src/toolbar.ts index ce9b7b898..6e5d3c603 100644 --- a/packages/toolbar/src/toolbar.ts +++ b/packages/toolbar/src/toolbar.ts @@ -453,16 +453,16 @@ export default defineComponent({ const customOpts = computeCustomOpts.value if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') { if (customOpts.isFooter) { - warnLog('vxe.error.delProp', ['custom.isFooter', 'custom-config.showFooter']) + warnLog('vxe.error.delProp', ['toolbar.custom.isFooter', 'table.custom-config.showFooter']) } if (customOpts.showFooter) { - warnLog('vxe.error.delProp', ['custom.showFooter', 'custom-config.showFooter']) + warnLog('vxe.error.delProp', ['toolbar.custom.showFooter', 'table.custom-config.showFooter']) } if (customOpts.immediate) { - warnLog('vxe.error.delProp', ['custom.immediate', 'custom-config.immediate']) + warnLog('vxe.error.delProp', ['toolbar.custom.immediate', 'table.custom-config.immediate']) } if (customOpts.trigger) { - warnLog('vxe.error.delProp', ['custom.trigger', 'custom-config.trigger']) + warnLog('vxe.error.delProp', ['toolbar.custom.trigger', 'table.custom-config.trigger']) } } }) diff --git a/types/plugins/extend-cell-area.d.ts b/types/plugins/extend-cell-area.d.ts index 0e7020d2d..9c9fc64ea 100644 --- a/types/plugins/extend-cell-area.d.ts +++ b/types/plugins/extend-cell-area.d.ts @@ -231,6 +231,7 @@ export namespace VxeTableProDefines { export interface CellAreaCopyParams { status: boolean + invalid: boolean targetAreas: VxeTableProDefines.CellAreaParams[] cellValues: string[][] } @@ -238,6 +239,7 @@ export namespace VxeTableProDefines { export interface CellAreaCutParams { status: boolean + invalid: boolean targetAreas: VxeTableProDefines.CellAreaParams[] cellValues: string[][] } @@ -245,6 +247,7 @@ export namespace VxeTableProDefines { export interface CellAreaPasteParams { status: boolean + invalid: boolean targetAreas: VxeTableProDefines.CellAreaParams[] } export interface CellAreaPasteEventParams extends EventParams, CellAreaPasteParams { } @@ -268,6 +271,12 @@ export namespace VxeTableProDefines { } export interface HeaderCellAreaSelectionEventParams extends EventParams, HeaderCellAreaSelectionParams { } + export interface CellAreaSelectionInvalidParams { + row: D + column: VxeTableDefines.ColumnInfo + } + export interface CellAreaSelectionInvalidEventParams extends EventParams, CellAreaSelectionInvalidParams { } + export interface CellAreaSelectionStartParams { row: D _rowIndex: number @@ -372,6 +381,7 @@ export type VxeTableProEmits = [ 'cell-area-merge', 'clear-cell-area-merge', 'header-cell-area-selection', + 'cell-area-selection-invalid', 'cell-area-selection-start', 'cell-area-selection-drag', 'cell-area-selection-end', @@ -400,6 +410,7 @@ declare module '../table' { onCellAreaMerge?: VxeTableEvents.CellAreaMerge onClearCellAreaMerge?: VxeTableEvents.ClearCellAreaMerge onHeaderCellAreaSelection?: VxeTableEvents.HeaderCellAreaSelection + onCellAreaSelectionInvalid?: VxeTableEvents.CellAreaSelectionInvalid onCellAreaSelectionStart?: VxeTableEvents.CellAreaSelectionStart onCellAreaSelectionDrag?: VxeTableEvents.CellAreaSelectionDrag onCellAreaSelectionEnd?: VxeTableEvents.CellAreaSelectionEnd @@ -444,6 +455,7 @@ declare module '../table' { cellAreaMerge?: VxeTableEvents.CellAreaMerge clearCellAreaMerge?: VxeTableEvents.ClearCellAreaMerge headerCellAreaSelection?: VxeTableEvents.HeaderCellAreaSelection + cellAreaSelectionInvalidtart?: VxeTableEvents.CellAreaSelectionInvalid cellAreaSelectionStart?: VxeTableEvents.CellAreaSelectionStart cellAreaSelectionDrag?: VxeTableEvents.CellAreaSelectionDrag cellAreaSelectionEnd?: VxeTableEvents.CellAreaSelectionEnd @@ -470,6 +482,7 @@ declare module '../table' { export type CellAreaMerge = (params: VxeTableProDefines.CellAreaMergeEventParams) => void export type ClearCellAreaMerge = (params: VxeTableProDefines.ClearCellAreaMergeEventParams) => void export type HeaderCellAreaSelection = (params: VxeTableProDefines.HeaderCellAreaSelectionEventParams) => void + export type CellAreaSelectionInvalid = (params: VxeTableProDefines.CellAreaSelectionInvalidEventParams) => void export type CellAreaSelectionStart = (params: VxeTableProDefines.CellAreaSelectionStartEventParams) => void export type CellAreaSelectionDrag = (params: VxeTableProDefines.CellAreaSelectionDragEventParams) => void export type CellAreaSelectionEnd = (params: VxeTableProDefines.CellAreaSelectionEndEventParams) => void @@ -499,6 +512,7 @@ declare module '../grid' { onCellAreaMerge?: VxeGridEvents.CellAreaMerge onClearCellAreaMerge?: VxeGridEvents.ClearCellAreaMerge onHeaderCellAreaSelection?: VxeGridEvents.HeaderCellAreaSelection + onCellAreaSelectionInvalid?: VxeGridEvents.CellAreaSelectionInvalid onCellAreaSelectionStart?: VxeGridEvents.CellAreaSelectionStart onCellAreaSelectionDrag?: VxeGridEvents.CellAreaSelectionDrag onCellAreaSelectionEnd?: VxeGridEvents.CellAreaSelectionEnd @@ -543,6 +557,7 @@ declare module '../grid' { cellAreaMerge?: VxeGridEvents.CellAreaMerge clearCellAreaMerge?: VxeGridEvents.ClearCellAreaMerge headerCellAreaSelection?: VxeGridEvents.HeaderCellAreaSelection + cellAreaSelectionInvalid?: VxeGridEvents.CellAreaSelectionInvalid cellAreaSelectionStart?: VxeGridEvents.CellAreaSelectionStart cellAreaSelectionDrag?: VxeGridEvents.CellAreaSelectionDrag cellAreaSelectionEnd?: VxeGridEvents.CellAreaSelectionEnd @@ -569,6 +584,7 @@ declare module '../grid' { export type CellAreaMerge = (params: VxeTableProDefines.CellAreaMergeParams) => void export type ClearCellAreaMerge = (params: VxeTableProDefines.ClearCellAreaMergeParams) => void export type HeaderCellAreaSelection = (params: VxeTableProDefines.HeaderCellAreaSelectionParams) => void + export type CellAreaSelectionInvalid = (params: VxeTableProDefines.CellAreaSelectionInvalidEventParams) => void export type CellAreaSelectionStart = (params: VxeTableProDefines.CellAreaSelectionStartEventParams) => void export type CellAreaSelectionDrag = (params: VxeTableProDefines.CellAreaSelectionDragEventParams) => void export type CellAreaSelectionEnd = (params: VxeTableProDefines.CellAreaSelectionEndEventParams) => void diff --git a/types/table.d.ts b/types/table.d.ts index 260ee5c2f..8ada80db1 100644 --- a/types/table.d.ts +++ b/types/table.d.ts @@ -887,6 +887,7 @@ export interface TableReactData { filter: boolean import: boolean export: boolean + custom: boolean }, // 自定义列相关的信息 customStore: VxeTableCustomStoreObj, @@ -2029,6 +2030,14 @@ export namespace VxeTablePropTypes { * 是否启用列自增,当粘贴的列数超出表格时自动插入新列(需要注意自增的列自字段是否定义,否则将无法响应) */ isColumnIncrement?: boolean + /** + * 用于指定哪些列允许被复制粘贴 + */ + includeFields?: string[] + /** + * 用于排除指定列允许不允许被复制粘贴 + */ + excludeFields?: string[] /** * 重写单元格复制取值的方法,将单元格复制到剪贴板 */