From eae58ecf432a2e024dfc549730cbd117be3e3d91 Mon Sep 17 00:00:00 2001
From: xuliangzhan
Date: Mon, 23 Nov 2020 21:40:04 +0800
Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=204.0=20next=20=E7=89=88?=
=?UTF-8?q?=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.en.md | 4 ++--
README.md | 4 ++--
README.zh-TW.md | 4 ++--
examples/views/api/API.vue | 25 ++++++++++++++--------
examples/views/grid/CustomToolbar.vue | 4 ++--
examples/views/print/Print.vue | 10 ++++-----
examples/views/table/edit/Insert.vue | 4 ++--
examples/views/table/edit/Status.vue | 8 +++----
examples/views/table/plugin/ExportPDF.vue | 4 ++--
examples/views/table/plugin/ExportXLSX.vue | 4 ++--
examples/views/table/tree/Toolbar.vue | 4 ++--
package.json | 5 ++---
packages/table/src/table.ts | 19 ++++++++--------
packages/tools/src/event.ts | 9 +++++++-
scripts/postinstall.js | 14 ------------
15 files changed, 61 insertions(+), 61 deletions(-)
delete mode 100644 scripts/postinstall.js
diff --git a/README.en.md b/README.en.md
index 999e6949a..84e3e20c7 100644
--- a/README.en.md
+++ b/README.en.md
@@ -23,7 +23,7 @@ A [vue](https://www.npmjs.com/package/vue) based PC form component, support add,
* [x] v1.0 Based on vue2.6+, it supports all mainstream browsers and realizes all practical functions of tables
* [x] v2.0 Based on vue2.6+, it supports all mainstream browsers with both functions and performance
* [x] v3.0 Based on vue2.6+, only modern browser is supported, ie is not supported, rendering performance is greatly improved
- * [x] v4.0 10% Based on vue3+, only modern browser is supported, ie is not supported, rendering performance is greatly improved
+ * [x] v4.0 60% Based on vue3+, only modern browser is supported, ie is not supported, rendering performance is greatly improved
## Browser Support
@@ -154,7 +154,7 @@ export default defineComponent({
## Donate
-If you think our open source software is helpful to you, you can scan the QR code below to support us.☕
+If the open source software is helpful to you, you can scan the QR code below to support us.☕
[👉 Supports the author💰](https://x-extends.github.io/vxe-table/#/donation/api)
diff --git a/README.md b/README.md
index 5e93d5a01..abe684201 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@
* [x] v1.0 基于 vue2.6+,支持所有主流的浏览器,实现表格的一切实用的功能
* [x] v2.0 基于 vue2.6+,支持所有主流的浏览器,同时兼具功能与性能
* [x] v3.0 vue2.6+,只支持现代浏览器,不支持 IE,渲染性能大幅提升
- * [x] v4.0 10% 基于 vue3+,只支持现代浏览器,不支持 IE,渲染性能大幅提升
+ * [x] v4.0 60% 基于 vue3+,只支持现代浏览器,不支持 IE,渲染性能大幅提升
## 浏览器支持
@@ -154,7 +154,7 @@ export default defineComponent({
## 捐赠
-如果您觉得我们的开源软件对您有所帮助,可以扫下方二维码支持我们。☕
+如果该开源软件对您有所帮助,可以扫下方二维码支持我们。☕
[👉 支持作者💰](https://xuliangzhan_admin.gitee.io/vxe-table/#/donation/api)
diff --git a/README.zh-TW.md b/README.zh-TW.md
index 593838b33..24635b757 100644
--- a/README.zh-TW.md
+++ b/README.zh-TW.md
@@ -23,7 +23,7 @@
* [x] v1.0 基於 vue2.6+,支持所有主流的瀏覽器,實現表格的一切實用的功能
* [x] v2.0 基於 vue2.6+,支持所有主流的瀏覽器,同時兼具功能與效能
* [x] v3.0 基於 vue2.6+,只支持現代瀏覽器,不支持IE,渲染效能大幅提升
- * [x] v4.0 10% 基於 vue3+,只支持現代瀏覽器,不支持IE,渲染效能大幅提升
+ * [x] v4.0 60% 基於 vue3+,只支持現代瀏覽器,不支持IE,渲染效能大幅提升
## 瀏覽器支持
@@ -154,7 +154,7 @@ export default defineComponent({
## 捐贈
-如果您覺得我們的開源軟件對您有所幫助,可以掃下方二維碼支持我們。☕
+如果該開源軟件對您有所幫助,可以掃下方二維碼支持我們。☕
[👉 支持作者💰](https://xuliangzhan_admin.gitee.io/vxe-table/#/donation/api)
diff --git a/examples/views/api/API.vue b/examples/views/api/API.vue
index edf25d5f8..9e9da61e4 100644
--- a/examples/views/api/API.vue
+++ b/examples/views/api/API.vue
@@ -275,16 +275,23 @@ export default defineComponent({
const handleSearch = () => {
const filterName = XEUtils.toString(apiData.filterName).trim().toLowerCase()
if (filterName) {
- const filterRE = new RegExp(filterName, 'gi')
const options = { children: 'list' }
- const searchProps = ['name', 'desc', 'type', 'enum', 'defVal']
- const rest = XEUtils.searchTree(apiData.tableData, (item: any) => searchProps.some(key => item[key].toLowerCase().indexOf(filterName) > -1), options)
- XEUtils.eachTree(rest, item => {
- searchProps.forEach(key => {
- item[key] = item[key].replace(filterRE, (match: any) => `${match}`)
- })
- }, options)
- apiData.apiList = rest
+ if (filterName === 'pro') {
+ const rest = XEUtils.searchTree(apiData.tableData, item => item.version === filterName, options)
+ apiData.apiList = rest
+ } else {
+ const filterRE = new RegExp(filterName, 'gi')
+ const searchProps = ['name', 'desc', 'type', 'enum', 'defVal', 'version']
+ const rest = XEUtils.searchTree(apiData.tableData, item => searchProps.some(key => item[key].toLowerCase().indexOf(filterName) > -1), options)
+ XEUtils.eachTree(rest, item => {
+ searchProps.forEach(key => {
+ if (key !== 'version') {
+ item[key] = item[key].replace(filterRE, (match: string) => `${match}`)
+ }
+ })
+ }, options)
+ apiData.apiList = rest
+ }
nextTick(() => {
const $table = xTable.value
if ($table) {
diff --git a/examples/views/grid/CustomToolbar.vue b/examples/views/grid/CustomToolbar.vue
index 2ab0e2f67..7c0f794cf 100644
--- a/examples/views/grid/CustomToolbar.vue
+++ b/examples/views/grid/CustomToolbar.vue
@@ -3,7 +3,7 @@
工具栏:通过 属性开启,还可以使用 插槽自定义模板
-
+
搜索
刷新
@@ -86,7 +86,7 @@ export default defineComponent({
demoCodes: [
`
-
+
搜索
刷新
diff --git a/examples/views/print/Print.vue b/examples/views/print/Print.vue
index a078f1f4d..4eb56da21 100644
--- a/examples/views/print/Print.vue
+++ b/examples/views/print/Print.vue
@@ -85,11 +85,11 @@
{{ demoCodes[7] }}
- 打印合同
+ 打印自定义模板
- 打印合同
+ 打印自定义模板
@@ -421,7 +421,7 @@ export default defineComponent({
`
VXETable.print({
- sheetName: '打印合同模板',
+ sheetName: '打印自定义模板',
style: printStyle,
content: printTmpl
})
@@ -739,7 +739,7 @@ export default defineComponent({
`
- 打印合同
+ 打印自定义模板
`,
@@ -876,7 +876,7 @@ export default defineComponent({
\`
VXETable.print({
- sheetName: '打印合同模板',
+ sheetName: '打印自定义模板',
style: printStyle,
content: printTmpl
})
diff --git a/examples/views/table/edit/Insert.vue b/examples/views/table/edit/Insert.vue
index ec77bd290..58fa23677 100644
--- a/examples/views/table/edit/Insert.vue
+++ b/examples/views/table/edit/Insert.vue
@@ -6,7 +6,7 @@
-
+
新增
在第3行插入并激活 Sex 单元格
在最后行插入
@@ -102,7 +102,7 @@ export default defineComponent({
demoCodes: [
`
-
+
新增
在第3行插入并激活 Sex 单元格
在最后行插入
diff --git a/examples/views/table/edit/Status.vue b/examples/views/table/edit/Status.vue
index 84e3fddc7..e0dab255b 100644
--- a/examples/views/table/edit/Status.vue
+++ b/examples/views/table/edit/Status.vue
@@ -7,7 +7,7 @@
-
+
新增
删除选中
获取新增
@@ -39,7 +39,7 @@
-
+
更新并替换新数据
@@ -167,7 +167,7 @@ export default defineComponent({
demoCodes: [
`
-
+
新增
删除选中
获取新增
@@ -199,7 +199,7 @@ export default defineComponent({
-
+
更新并替换新数据
diff --git a/examples/views/table/plugin/ExportPDF.vue b/examples/views/table/plugin/ExportPDF.vue
index 68c579cce..12723b36e 100644
--- a/examples/views/table/plugin/ExportPDF.vue
+++ b/examples/views/table/plugin/ExportPDF.vue
@@ -6,7 +6,7 @@
-
+
导出数据
@@ -88,7 +88,7 @@ export default defineComponent({
demoCodes: [
`
-
+
导出数据
diff --git a/examples/views/table/plugin/ExportXLSX.vue b/examples/views/table/plugin/ExportXLSX.vue
index f625399cc..29bda80ac 100644
--- a/examples/views/table/plugin/ExportXLSX.vue
+++ b/examples/views/table/plugin/ExportXLSX.vue
@@ -6,7 +6,7 @@
-
+
清空数据
导出数据
@@ -113,7 +113,7 @@ export default defineComponent({
demoCodes: [
`
-
+
清空数据
导出数据
diff --git a/examples/views/table/tree/Toolbar.vue b/examples/views/table/tree/Toolbar.vue
index 8e34c5b38..0bb08da44 100644
--- a/examples/views/table/tree/Toolbar.vue
+++ b/examples/views/table/tree/Toolbar.vue
@@ -6,7 +6,7 @@
-
+
{{ $t('app.body.button.insert') }}
保存
@@ -138,7 +138,7 @@ export default defineComponent({
demoCodes: [
`
-
+
{{ $t('app.body.button.insert') }}
保存
diff --git a/package.json b/package.json
index c280d1561..9d4a538bf 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "vxe-table",
- "version": "4.0.0-alpha.4",
+ "version": "4.0.0-beta.0",
"description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、虚拟列表、模态窗口、自定义模板、渲染器、贼灵活的配置项、扩展接口等...",
"scripts": {
"serve": "vue-cli-service serve",
@@ -11,8 +11,7 @@
"lib:dev_pack": "vue-cli-service build --target lib --name index --dest lib_dev index.ts",
"lib:pro_pack": "vue-cli-service build --target lib --name index --dest lib_pro index.ts",
"lib": "npm run lib:dev_pack && npm run lib:pro_pack && npm run lib:modules",
- "format": "eslint --fix examples/**/*.{js,ts,vue}",
- "postinstall": "node scripts/postinstall || echo \"ignore\""
+ "format": "eslint --fix examples/**/*.{js,ts,vue}"
},
"files": [
"lib",
diff --git a/packages/table/src/table.ts b/packages/table/src/table.ts
index a01420f05..33909835a 100644
--- a/packages/table/src/table.ts
+++ b/packages/table/src/table.ts
@@ -3556,8 +3556,9 @@ export default defineComponent({
const isDel = keyCode === 46
const isF2 = keyCode === 113
const isContextMenu = keyCode === 93
- const isCtrlKey = evnt.ctrlKey
- const isShiftKey = evnt.shiftKey
+ const hasMetaKey = evnt.metaKey
+ const hasCtrlKey = evnt.ctrlKey
+ const hasShiftKey = evnt.shiftKey
const isAltKey = evnt.altKey
const operArrow = isLeftArrow || isUpArrow || isRightArrow || isDwArrow
const operCtxMenu = isMenu && ctxMenuStore.visible && (isEnter || isSpacebar || operArrow)
@@ -3613,7 +3614,7 @@ export default defineComponent({
}, 1000)
} else if (isEnter && !isAltKey && keyboardOpts.isEnter && (selected.row || actived.row || (treeConfig && highlightCurrentRow && currentRow))) {
// 退出选中
- if (isCtrlKey) {
+ if (hasCtrlKey) {
// 如果是激活编辑状态,则取消编辑
if (actived.row) {
params = actived.args
@@ -3627,15 +3628,15 @@ export default defineComponent({
// 如果是激活状态,退则出到上一行/下一行
if (selected.row || actived.row) {
const targetArgs = selected.row ? selected.args : actived.args
- if (isShiftKey) {
+ if (hasShiftKey) {
if (keyboardOpts.enterToTab) {
- $xetable.moveTabSelected(targetArgs, isShiftKey, evnt)
+ $xetable.moveTabSelected(targetArgs, hasShiftKey, evnt)
} else {
$xetable.moveSelected(targetArgs, isLeftArrow, true, isRightArrow, false, evnt)
}
} else {
if (keyboardOpts.enterToTab) {
- $xetable.moveTabSelected(targetArgs, isShiftKey, evnt)
+ $xetable.moveTabSelected(targetArgs, hasShiftKey, evnt)
} else {
$xetable.moveSelected(targetArgs, isLeftArrow, false, isRightArrow, true, evnt)
}
@@ -3666,9 +3667,9 @@ export default defineComponent({
} else if (isTab && keyboardOpts.isTab) {
// 如果按下了 Tab 键切换
if (selected.row || selected.column) {
- $xetable.moveTabSelected(selected.args, isShiftKey, evnt)
+ $xetable.moveTabSelected(selected.args, hasShiftKey, evnt)
} else if (actived.row || actived.column) {
- $xetable.moveTabSelected(actived.args, isShiftKey, evnt)
+ $xetable.moveTabSelected(actived.args, hasShiftKey, evnt)
}
} else if (isDel || (treeConfig && highlightCurrentRow && currentRow ? isBack && keyboardOpts.isArrow : isBack)) {
if (!isEditStatus) {
@@ -3690,7 +3691,7 @@ export default defineComponent({
}
}
}
- } else if (keyboardOpts.isEdit && !isCtrlKey && (isSpacebar || (keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 111) || (keyCode >= 186 && keyCode <= 192) || (keyCode >= 219 && keyCode <= 222))) {
+ } else if (keyboardOpts.isEdit && !hasCtrlKey && !hasMetaKey && (isSpacebar || (keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 111) || (keyCode >= 186 && keyCode <= 192) || (keyCode >= 219 && keyCode <= 222))) {
// 启用编辑后,空格键功能将失效
// if (isSpacebar) {
// evnt.preventDefault()
diff --git a/packages/tools/src/event.ts b/packages/tools/src/event.ts
index 9bdf7d824..ece041f3b 100644
--- a/packages/tools/src/event.ts
+++ b/packages/tools/src/event.ts
@@ -30,7 +30,14 @@ export const GlobalEvent = {
off (comp: VxeComponentInstance, type: string) {
XEUtils.remove(eventStore, item => item.comp === comp && item.type === type)
},
- trigger: triggerEvent
+ trigger: triggerEvent,
+ eqKeypad (evnt: KeyboardEvent, keyVal: string) {
+ const { key } = evnt
+ if (keyVal.toLowerCase() === key.toLowerCase()) {
+ return true
+ }
+ return false
+ }
}
if (browse.isDoc) {
diff --git a/scripts/postinstall.js b/scripts/postinstall.js
deleted file mode 100644
index fa14a9f69..000000000
--- a/scripts/postinstall.js
+++ /dev/null
@@ -1,14 +0,0 @@
-const env = process.env;
-const ADBLOCK = is(env.ADBLOCK);
-const CI = is(env.CI);
-const DISABLE_OPENCOLLECTIVE = is(env.DISABLE_OPENCOLLECTIVE);
-
-function is(it) {
- return !!it && it !== '0' && it !== 'false';
-}
-
-if (!ADBLOCK && !CI && !DISABLE_OPENCOLLECTIVE) {
- console.log('\n\x1B[89m>\x1B[93m ✌ 感谢使用 vxe-table ◕‿◕ \x1B[0m');
- console.log('\x1B[89m>\x1B[93m 如果该项目对您有帮助,可以通过以下链接捐赠与支持: \x1B[0m');
- console.log('\x1B[89m>\x1B[96m https://xuliangzhan_admin.gitee.io/vxe-table/#/donation/api \x1B[0m\n\n');
-}