umy-ui-table 1.2.7 → 1.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +1 -1
- package/lib/umy-ui.common.js +1 -1
- package/lib/ux-grid.js +1 -1
- package/lib/ux-table-column.js +1 -1
- package/package.json +2 -2
- package/packages/ux-grid/mixins/index.js +18 -0
- package/packages/ux-grid/src/element-renderer.js +1 -1
- package/packages/ux-grid/src/grid-kernel.js +1 -1
- package/packages/ux-grid/src/interceptor.js +1 -1
- package/packages/ux-grid/src/setup.js +2 -2
- package/packages/ux-grid/src/ux-grid.vue +1 -4
- package/packages/ux-grid/test/contracts.cjs +26 -0
- package/packages/ux-table-column/index.js +1 -1
- package/packages/.DS_Store +0 -0
- package/packages/input/.DS_Store +0 -0
- package/packages/pagination/.DS_Store +0 -0
- package/packages/scrollbar/.DS_Store +0 -0
- package/packages/select/.DS_Store +0 -0
- package/packages/table/.DS_Store +0 -0
- package/packages/tag/.DS_Store +0 -0
- package/packages/tools/.DS_Store +0 -0
- package/packages/tools/utils/.DS_Store +0 -0
- package/packages/tooltip/.DS_Store +0 -0
- package/packages/u-table/.DS_Store +0 -0
- package/packages/ux-grid/.DS_Store +0 -0
package/lib/ux-table-column.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
module.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=39)}({35:function(e,t){e.exports=require("vxe-table/lib/column")},39:function(e,t,n){"use strict";n.r(t);var r=n(35),o=n.n(r),u=Object.assign({},o.a,{name:"UxTableColumn"});u.install=function(e){e.component(u.name,u)},t.default=u}});
|
|
1
|
+
module.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=39)}({35:function(e,t){e.exports=require("tomtaw-vxe-table/lib/column")},39:function(e,t,n){"use strict";n.r(t);var r=n(35),o=n.n(r),u=Object.assign({},o.a,{name:"UxTableColumn"});u.install=function(e){e.component(u.name,u)},t.default=u}});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "umy-ui-table",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.9",
|
|
4
4
|
"description": "一个基于 vue 的 PC 端表格UI库,解决万级数据渲染卡顿问题,过万数据点击全选卡顿,等等问题",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "foriacus"
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"resize-observer-polyfill": "^1.5.0",
|
|
42
42
|
"throttle-debounce": "^1.0.1",
|
|
43
43
|
"vuedraggable": "^2.23.2",
|
|
44
|
-
"vxe-table": "^3.
|
|
44
|
+
"tomtaw-vxe-table": "^3.25.2",
|
|
45
45
|
"vxe-pc-ui": "3.16.23",
|
|
46
46
|
"@vxe-ui/core": "^3.4.19",
|
|
47
47
|
"xe-utils": ">= 3"
|
|
@@ -85,6 +85,7 @@ export default {
|
|
|
85
85
|
showSummary: { default: false, type: Boolean }, // 是否需要合计
|
|
86
86
|
summaryMethod: Function, // 自定义的合计计算方法
|
|
87
87
|
fieldSort: { default: true, type: Boolean }, // 字段排序
|
|
88
|
+
rowConfig: Object, // 新版行配置;已定义字段优先于下方兼容参数(包括 false)
|
|
88
89
|
rowKey: Boolean, // 是否需要为每一行的 VNode 设置 key 属性(非特殊情况下没必要设置)
|
|
89
90
|
columnKey: Boolean, // 是否需要为每一列的 VNode 设置 key 属性(非特殊情况下不需要使用, 常用于拖拽列)
|
|
90
91
|
rowId: String, // 自定义行数据唯一主键的字段名(行数据必须要有唯一主键,默认自动生成)
|
|
@@ -113,6 +114,23 @@ export default {
|
|
|
113
114
|
type: String,
|
|
114
115
|
}, // 分页组件布局,子组件名用逗号分隔
|
|
115
116
|
},
|
|
117
|
+
computed: {
|
|
118
|
+
computedRowConfig() {
|
|
119
|
+
const config = Object.assign({}, this.rowConfig);
|
|
120
|
+
const legacy = {
|
|
121
|
+
keyField: this.rowId,
|
|
122
|
+
useKey: this.rowKey,
|
|
123
|
+
isCurrent: this.highlightCurrentRow,
|
|
124
|
+
isHover: this.highlightHoverRow,
|
|
125
|
+
};
|
|
126
|
+
Object.keys(legacy).forEach((key) => {
|
|
127
|
+
if (config[key] === undefined && legacy[key] !== undefined) {
|
|
128
|
+
config[key] = legacy[key];
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
return config;
|
|
132
|
+
},
|
|
133
|
+
},
|
|
116
134
|
methods: {
|
|
117
135
|
// 分页器的事件
|
|
118
136
|
handleSizeChange(val) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// 委托给 vxe-table 内置的 @vxe-ui/core VxeUI.interceptor 单例,
|
|
2
2
|
// 保证与 VxeGrid 内部 preventEvent / dispatchEvent 使用同一个实例
|
|
3
3
|
// (替代原 umy-table 内置的独立 interceptor store,否则拦截器钩子不会生效)
|
|
4
|
-
import { interceptor } from "vxe-table/lib/ui";
|
|
4
|
+
import { interceptor } from "tomtaw-vxe-table/lib/ui";
|
|
5
5
|
|
|
6
6
|
export default interceptor;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { VxeUI } from "vxe-table/lib/ui";
|
|
2
|
-
import zhCN from "vxe-table/lib/locale/lang/zh-CN";
|
|
1
|
+
import { VxeUI } from "tomtaw-vxe-table/lib/ui";
|
|
2
|
+
import zhCN from "tomtaw-vxe-table/lib/locale/lang/zh-CN";
|
|
3
3
|
import XEUtils from "xe-utils";
|
|
4
4
|
|
|
5
5
|
// Core setConfig deep-merges arrays by index. Restore pre-existing arrays
|
|
@@ -25,9 +25,8 @@
|
|
|
25
25
|
:virtual-y-config="computedVirtualYConfig"
|
|
26
26
|
:virtual-x-config="computedVirtualXConfig"
|
|
27
27
|
:stripe="stripe"
|
|
28
|
-
:row-
|
|
28
|
+
:row-config="computedRowConfig"
|
|
29
29
|
:column-key="columnKey"
|
|
30
|
-
:row-id="rowId"
|
|
31
30
|
:keep-source="keepSource"
|
|
32
31
|
:size="size"
|
|
33
32
|
:edit-config="editConfig"
|
|
@@ -45,8 +44,6 @@
|
|
|
45
44
|
:footer-method="footerMethod"
|
|
46
45
|
:show-header-overflow="showHeaderOverflow"
|
|
47
46
|
:show-footer-overflow="showFooterOverflow"
|
|
48
|
-
:highlight-current-row="highlightCurrentRow"
|
|
49
|
-
:highlight-hover-row="highlightHoverRow"
|
|
50
47
|
:row-class-name="rowClassName"
|
|
51
48
|
:cell-class-name="renderCellClassName"
|
|
52
49
|
:header-row-class-name="headerRowClassName"
|
|
@@ -26,6 +26,32 @@ const state = Object.assign({ $listeners: {}, $refs: {}, $emit: (...args) => eve
|
|
|
26
26
|
const tick = async () => { for (let i = 0; i < 8; i++) await Promise.resolve(); };
|
|
27
27
|
|
|
28
28
|
async function run() {
|
|
29
|
+
// New row config wins per field; legacy callers retain defaults and false.
|
|
30
|
+
const rowConfigVm = new Vue({
|
|
31
|
+
props: context.mixin.props,
|
|
32
|
+
computed: context.mixin.computed,
|
|
33
|
+
propsData: { rowId: 'legacyId', rowKey: true, highlightHoverRow: false }
|
|
34
|
+
});
|
|
35
|
+
assert.deepStrictEqual(Object.assign({}, rowConfigVm.computedRowConfig), {
|
|
36
|
+
keyField: 'legacyId', useKey: true, isCurrent: true, isHover: false
|
|
37
|
+
});
|
|
38
|
+
const supplied = { keyField: 'newId', useKey: false, isCurrent: false, height: 33 };
|
|
39
|
+
rowConfigVm.rowConfig = supplied;
|
|
40
|
+
assert.deepStrictEqual(Object.assign({}, rowConfigVm.computedRowConfig), {
|
|
41
|
+
keyField: 'newId', useKey: false, isCurrent: false, isHover: false, height: 33
|
|
42
|
+
});
|
|
43
|
+
assert.strictEqual(supplied.isHover, undefined, 'must not mutate consumer config');
|
|
44
|
+
rowConfigVm.rowConfig = { isHover: undefined };
|
|
45
|
+
rowConfigVm.highlightHoverRow = true;
|
|
46
|
+
assert.equal(rowConfigVm.computedRowConfig.isHover, true, 'undefined falls back reactively');
|
|
47
|
+
rowConfigVm.rowConfig = null;
|
|
48
|
+
assert.equal(rowConfigVm.computedRowConfig.keyField, 'legacyId');
|
|
49
|
+
rowConfigVm.$destroy();
|
|
50
|
+
const gridTemplate = read('src/ux-grid.vue').split('</template>')[0];
|
|
51
|
+
assert(gridTemplate.includes(':row-config="computedRowConfig"'));
|
|
52
|
+
for (const prop of ['row-id', 'row-key', 'highlight-current-row', 'highlight-hover-row']) {
|
|
53
|
+
assert(!gridTemplate.includes(':' + prop + '='), 'deprecated prop not forwarded: ' + prop);
|
|
54
|
+
}
|
|
29
55
|
// Real Vue listener bookkeeping: $off leaves empty arrays, $once removes itself.
|
|
30
56
|
const listenerVm = new Vue({ methods });
|
|
31
57
|
const selectedRows = [{ id: 1 }];
|
package/packages/.DS_Store
DELETED
|
Binary file
|
package/packages/input/.DS_Store
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/packages/table/.DS_Store
DELETED
|
Binary file
|
package/packages/tag/.DS_Store
DELETED
|
Binary file
|
package/packages/tools/.DS_Store
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|