vxe-table 4.1.5 → 4.1.8
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/es/export/src/hook.js +16 -5
- package/es/form/src/form.js +2 -2
- package/es/grid/src/grid.js +6 -2
- package/es/table/src/props.js +6 -6
- package/es/table/src/table.js +25 -18
- package/es/v-x-e-table/src/conf.js +4 -1
- package/es/validator/src/hook.js +3 -3
- package/lib/export/src/hook.js +27 -10
- package/lib/export/src/hook.min.js +1 -1
- package/lib/form/src/form.js +2 -2
- package/lib/form/src/form.min.js +1 -1
- package/lib/grid/src/grid.js +6 -3
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +95 -140
- package/lib/index.umd.min.js +2 -1
- package/lib/table/src/props.js +6 -6
- package/lib/table/src/table.js +28 -22
- package/lib/table/src/table.min.js +1 -1
- package/lib/v-x-e-table/src/conf.js +4 -1
- package/lib/v-x-e-table/src/conf.min.js +1 -1
- package/lib/validator/src/hook.js +3 -3
- package/lib/validator/src/hook.min.js +1 -1
- package/package.json +3 -26
- package/packages/export/src/hook.ts +16 -5
- package/packages/form/src/form.ts +2 -2
- package/packages/grid/src/grid.ts +6 -2
- package/packages/table/src/props.ts +6 -6
- package/packages/table/src/table.ts +24 -17
- package/packages/v-x-e-table/src/conf.ts +4 -1
- package/packages/v-x-e-table/src/renderer.ts +1 -1
- package/packages/validator/src/hook.ts +3 -3
- package/types/table.d.ts +4 -0
- package/types/v-x-e-table/renderer.d.ts +4 -2
|
@@ -16,6 +16,7 @@ var GlobalConfig = {
|
|
|
16
16
|
showHeader: true,
|
|
17
17
|
animat: true,
|
|
18
18
|
delayHover: 250,
|
|
19
|
+
autoResize: true,
|
|
19
20
|
// keepSource: false,
|
|
20
21
|
// showOverflow: null,
|
|
21
22
|
// showHeaderOverflow: null,
|
|
@@ -23,7 +24,6 @@ var GlobalConfig = {
|
|
|
23
24
|
// resizeInterval: 500,
|
|
24
25
|
// size: null,
|
|
25
26
|
// zIndex: null,
|
|
26
|
-
// autoResize: false,
|
|
27
27
|
// stripe: false,
|
|
28
28
|
// border: false,
|
|
29
29
|
// round: false,
|
|
@@ -96,6 +96,9 @@ var GlobalConfig = {
|
|
|
96
96
|
mouseConfig: {
|
|
97
97
|
extension: true
|
|
98
98
|
},
|
|
99
|
+
keyboardConfig: {
|
|
100
|
+
isEsc: true
|
|
101
|
+
},
|
|
99
102
|
areaConfig: {
|
|
100
103
|
selectCellByHeader: true
|
|
101
104
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var iconPrefix="vxe-icon--",GlobalConfig={size:null,zIndex:999,version:0,emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,radioConfig:{strict:!0},checkboxConfig:{strict:!0},validConfig:{showMessage:!0,message:"default"},sortConfig:{showIcon:!0},filterConfig:{showIcon:!0},treeConfig:{rowField:"id",parentField:"parentId",children:"children",hasChild:"hasChild",indent:20,showIcon:!0},expandConfig:{showIcon:!0},editConfig:{showIcon:!0,showAsterisk:!0},importConfig:{modes:["insert","covering"]},exportConfig:{modes:["current","selected"]},printConfig:{modes:["current","selected"]},mouseConfig:{extension:!0},areaConfig:{selectCellByHeader:!0},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},scrollX:{enabled:!0,gt:60},scrollY:{enabled:!0,gt:100}},export:{types:{}},icon:{TABLE_SORT_ASC:iconPrefix+"caret-top",TABLE_SORT_DESC:iconPrefix+"caret-bottom",TABLE_FILTER_NONE:iconPrefix+"funnel",TABLE_FILTER_MATCH:iconPrefix+"funnel",TABLE_EDIT:iconPrefix+"edit-outline",TABLE_HELP:iconPrefix+"question",TABLE_TREE_LOADED:iconPrefix+"refresh roll",TABLE_TREE_OPEN:iconPrefix+"caret-right rotate90",TABLE_TREE_CLOSE:iconPrefix+"caret-right",TABLE_EXPAND_LOADED:iconPrefix+"refresh roll",TABLE_EXPAND_OPEN:iconPrefix+"arrow-right rotate90",TABLE_EXPAND_CLOSE:iconPrefix+"arrow-right",BUTTON_DROPDOWN:iconPrefix+"arrow-bottom",BUTTON_LOADING:iconPrefix+"refresh roll",SELECT_LOADED:iconPrefix+"refresh roll",SELECT_OPEN:iconPrefix+"caret-bottom rotate180",SELECT_CLOSE:iconPrefix+"caret-bottom",PAGER_JUMP_PREV:iconPrefix+"d-arrow-left",PAGER_JUMP_NEXT:iconPrefix+"d-arrow-right",PAGER_PREV_PAGE:iconPrefix+"arrow-left",PAGER_NEXT_PAGE:iconPrefix+"arrow-right",PAGER_JUMP_MORE:iconPrefix+"more",INPUT_CLEAR:iconPrefix+"close",INPUT_PWD:iconPrefix+"eye-slash",INPUT_SHOW_PWD:iconPrefix+"eye",INPUT_PREV_NUM:iconPrefix+"caret-top",INPUT_NEXT_NUM:iconPrefix+"caret-bottom",INPUT_DATE:iconPrefix+"calendar",INPUT_SEARCH:iconPrefix+"search",MODAL_ZOOM_IN:iconPrefix+"square",MODAL_ZOOM_OUT:iconPrefix+"zoomout",MODAL_CLOSE:iconPrefix+"close",MODAL_INFO:iconPrefix+"info",MODAL_SUCCESS:iconPrefix+"success",MODAL_WARNING:iconPrefix+"warning",MODAL_ERROR:iconPrefix+"error",MODAL_QUESTION:iconPrefix+"question",MODAL_LOADING:iconPrefix+"refresh roll",TOOLBAR_TOOLS_REFRESH:iconPrefix+"refresh",TOOLBAR_TOOLS_REFRESH_LOADING:iconPrefix+"refresh roll",TOOLBAR_TOOLS_IMPORT:iconPrefix+"upload",TOOLBAR_TOOLS_EXPORT:iconPrefix+"download",TOOLBAR_TOOLS_PRINT:iconPrefix+"print",TOOLBAR_TOOLS_ZOOM_IN:iconPrefix+"zoomin",TOOLBAR_TOOLS_ZOOM_OUT:iconPrefix+"zoomout",TOOLBAR_TOOLS_CUSTOM:iconPrefix+"menu",FORM_PREFIX:iconPrefix+"question",FORM_SUFFIX:iconPrefix+"question",FORM_FOLDING:iconPrefix+"arrow-top rotate180",FORM_UNFOLDING:iconPrefix+"arrow-top"},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,message:!0,props:{list:null,result:"result",total:"page.total",message:"message"}}},tooltip:{trigger:"hover",theme:"dark",leaveDelay:300},pager:{},form:{validConfig:{showMessage:!0,autoPos:!0},titleAsterisk:!0},input:{minDate:new Date(1900,0,1),maxDate:new Date(2100,0,1),startDay:1,selectDay:1,digits:2,controls:!0},textarea:{},select:{multiCharOverflow:8},toolbar:{},button:{},radio:{},checkbox:{},switch:{},modal:{top:15,showHeader:!0,minWidth:340,minHeight:140,lockView:!0,mask:!0,duration:3e3,marginSize:0,dblclickZoom:!0,showTitleOverflow:!0,animat:!0,showClose:!0,draggable:!0,storageKey:"VXE_MODAL_POSITION"},list:{scrollY:{enabled:!0,gt:100}},i18n:function(e){return e}},_default=GlobalConfig;exports.default=_default;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var iconPrefix="vxe-icon--",GlobalConfig={size:null,zIndex:999,version:0,emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,radioConfig:{strict:!0},checkboxConfig:{strict:!0},validConfig:{showMessage:!0,message:"default"},sortConfig:{showIcon:!0},filterConfig:{showIcon:!0},treeConfig:{rowField:"id",parentField:"parentId",children:"children",hasChild:"hasChild",indent:20,showIcon:!0},expandConfig:{showIcon:!0},editConfig:{showIcon:!0,showAsterisk:!0},importConfig:{modes:["insert","covering"]},exportConfig:{modes:["current","selected"]},printConfig:{modes:["current","selected"]},mouseConfig:{extension:!0},keyboardConfig:{isEsc:!0},areaConfig:{selectCellByHeader:!0},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},scrollX:{enabled:!0,gt:60},scrollY:{enabled:!0,gt:100}},export:{types:{}},icon:{TABLE_SORT_ASC:iconPrefix+"caret-top",TABLE_SORT_DESC:iconPrefix+"caret-bottom",TABLE_FILTER_NONE:iconPrefix+"funnel",TABLE_FILTER_MATCH:iconPrefix+"funnel",TABLE_EDIT:iconPrefix+"edit-outline",TABLE_HELP:iconPrefix+"question",TABLE_TREE_LOADED:iconPrefix+"refresh roll",TABLE_TREE_OPEN:iconPrefix+"caret-right rotate90",TABLE_TREE_CLOSE:iconPrefix+"caret-right",TABLE_EXPAND_LOADED:iconPrefix+"refresh roll",TABLE_EXPAND_OPEN:iconPrefix+"arrow-right rotate90",TABLE_EXPAND_CLOSE:iconPrefix+"arrow-right",BUTTON_DROPDOWN:iconPrefix+"arrow-bottom",BUTTON_LOADING:iconPrefix+"refresh roll",SELECT_LOADED:iconPrefix+"refresh roll",SELECT_OPEN:iconPrefix+"caret-bottom rotate180",SELECT_CLOSE:iconPrefix+"caret-bottom",PAGER_JUMP_PREV:iconPrefix+"d-arrow-left",PAGER_JUMP_NEXT:iconPrefix+"d-arrow-right",PAGER_PREV_PAGE:iconPrefix+"arrow-left",PAGER_NEXT_PAGE:iconPrefix+"arrow-right",PAGER_JUMP_MORE:iconPrefix+"more",INPUT_CLEAR:iconPrefix+"close",INPUT_PWD:iconPrefix+"eye-slash",INPUT_SHOW_PWD:iconPrefix+"eye",INPUT_PREV_NUM:iconPrefix+"caret-top",INPUT_NEXT_NUM:iconPrefix+"caret-bottom",INPUT_DATE:iconPrefix+"calendar",INPUT_SEARCH:iconPrefix+"search",MODAL_ZOOM_IN:iconPrefix+"square",MODAL_ZOOM_OUT:iconPrefix+"zoomout",MODAL_CLOSE:iconPrefix+"close",MODAL_INFO:iconPrefix+"info",MODAL_SUCCESS:iconPrefix+"success",MODAL_WARNING:iconPrefix+"warning",MODAL_ERROR:iconPrefix+"error",MODAL_QUESTION:iconPrefix+"question",MODAL_LOADING:iconPrefix+"refresh roll",TOOLBAR_TOOLS_REFRESH:iconPrefix+"refresh",TOOLBAR_TOOLS_REFRESH_LOADING:iconPrefix+"refresh roll",TOOLBAR_TOOLS_IMPORT:iconPrefix+"upload",TOOLBAR_TOOLS_EXPORT:iconPrefix+"download",TOOLBAR_TOOLS_PRINT:iconPrefix+"print",TOOLBAR_TOOLS_ZOOM_IN:iconPrefix+"zoomin",TOOLBAR_TOOLS_ZOOM_OUT:iconPrefix+"zoomout",TOOLBAR_TOOLS_CUSTOM:iconPrefix+"menu",FORM_PREFIX:iconPrefix+"question",FORM_SUFFIX:iconPrefix+"question",FORM_FOLDING:iconPrefix+"arrow-top rotate180",FORM_UNFOLDING:iconPrefix+"arrow-top"},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,message:!0,props:{list:null,result:"result",total:"page.total",message:"message"}}},tooltip:{trigger:"hover",theme:"dark",leaveDelay:300},pager:{},form:{validConfig:{showMessage:!0,autoPos:!0},titleAsterisk:!0},input:{minDate:new Date(1900,0,1),maxDate:new Date(2100,0,1),startDay:1,selectDay:1,digits:2,controls:!0},textarea:{},select:{multiCharOverflow:8},toolbar:{},button:{},radio:{},checkbox:{},switch:{},modal:{top:15,showHeader:!0,minWidth:340,minHeight:140,lockView:!0,mask:!0,duration:3e3,marginSize:0,dblclickZoom:!0,showTitleOverflow:!0,animat:!0,showClose:!0,draggable:!0,storageKey:"VXE_MODAL_POSITION"},list:{scrollY:{enabled:!0,gt:100}},i18n:function(e){return e}},_default=GlobalConfig;exports.default=_default;
|
|
@@ -203,7 +203,7 @@ var validatorHook = {
|
|
|
203
203
|
var ruleProps = Object.keys(validRest);
|
|
204
204
|
return (0, _vue.nextTick)().then(function () {
|
|
205
205
|
if (ruleProps.length) {
|
|
206
|
-
return
|
|
206
|
+
return validRest[ruleProps[0]][0];
|
|
207
207
|
}
|
|
208
208
|
|
|
209
209
|
if (cb) {
|
|
@@ -211,14 +211,14 @@ var validatorHook = {
|
|
|
211
211
|
}
|
|
212
212
|
});
|
|
213
213
|
}).catch(function (firstErrParams) {
|
|
214
|
-
return new Promise(function (resolve
|
|
214
|
+
return new Promise(function (resolve) {
|
|
215
215
|
var finish = function finish() {
|
|
216
216
|
(0, _vue.nextTick)(function () {
|
|
217
217
|
if (cb) {
|
|
218
218
|
cb(validRest);
|
|
219
219
|
resolve();
|
|
220
220
|
} else {
|
|
221
|
-
|
|
221
|
+
resolve(validRest);
|
|
222
222
|
}
|
|
223
223
|
});
|
|
224
224
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../tools/utils"),_dom=require("../../tools/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},Rule=function(){function e(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.max,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}return Object.defineProperty(e.prototype,"content",{get:function(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"message",{get:function(){return this.content},enumerable:!1,configurable:!0}),e}(),tableValidatorMethodKeys=["fullValidate","validate","clearValidate"],validatorHook={setupTable:function(f){function r(e,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../tools/utils"),_dom=require("../../tools/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},Rule=function(){function e(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.max,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}return Object.defineProperty(e.prototype,"content",{get:function(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"message",{get:function(){return this.content},enumerable:!1,configurable:!0}),e}(),tableValidatorMethodKeys=["fullValidate","validate","clearValidate"],validatorHook={setupTable:function(f){function r(e,u,l){var o={},n=v.editRules,a=v.treeConfig,s=m.afterFullData,t=x.value,c=_.value;!0===e?r=s:e&&(_xeUtils.default.isFunction(e)?u=e:r=_xeUtils.default.isArray(e)?e:[e]);var r=r||(f.getInsertRecords?f.getInsertRecords().concat(f.getUpdateRecords()):[]),i=[];if(m._lastCallTime=Date.now(),g=!1,w.clearValidate(),n){var d=f.getColumns(),e=function(r){var e;!l&&g||(e=[],d.forEach(function(t){!l&&g||!_xeUtils.default.has(n,t.property)||e.push(b.validCellRules("all",r,t).catch(function(e){e={rule:e.rule,rules:e.rules,rowIndex:f.getRowIndex(r),row:r,columnIndex:f.getColumnIndex(t),column:t,$table:f};if(o[t.property]||(o[t.property]=[]),o[t.property].push(e),!l)return g=!0,Promise.reject(e)}))}),i.push(Promise.all(e)))};return a?_xeUtils.default.eachTree(r,e,t):r.forEach(e),Promise.all(i).then(function(){var e=Object.keys(o);return(0,_vue.nextTick)().then(function(){return e.length?o[e[0]][0]:void(u&&u())})}).catch(function(i){return new Promise(function(e){function t(){var t;i.cell=f.getCell(i.row,i.column),(0,_dom.scrollToView)(i.cell),t=i,new Promise(function(e){!1===_.value.autoPos?(f.dispatchEvent("valid-error",t,null),e()):f.handleActived(t,{type:"valid-error",trigger:"call"}).then(function(){setTimeout(function(){e(b.showValidTooltip(t))},10)})}).then(r)}var r=function(){(0,_vue.nextTick)(function(){u?(u(o),e()):e(o)})},l=i.row,n=s.indexOf(l),l=0<n?s[n-1]:l;!1===c.autoPos?r():(a?f.scrollToTreeRow(l):f.scrollToRow(l)).then(t)})})}return(0,_vue.nextTick)().then(function(){u&&u()})}function p(e,t){var r=e.type,l=e.min,n=e.max,i=e.pattern,r=(e="number"===r)?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!e||!isNaN(t))||(!_xeUtils.default.eqNull(l)&&r<_xeUtils.default.toNumber(l)||(!_xeUtils.default.eqNull(n)&&r>_xeUtils.default.toNumber(n)||!(!i||(_xeUtils.default.isRegExp(i)?i:new RegExp(i)).test(t))))}var g,v=f.props,d=f.reactData,m=f.internalData,h=f.getRefMaps().refValidTooltip,e=f.getComputeMaps(),_=e.computeValidOpts,x=e.computeTreeOpts,s=e.computeEditOpts,w={},b={},b={validCellRules:function(i,u,o,e){var a,s,t=v.editRules,r=o.property,c=[],d=[];return r&&t&&((a=_xeUtils.default.get(t,r))&&(s=_xeUtils.default.isUndefined(e)?_xeUtils.default.get(u,r):e,a.forEach(function(t){var e,r=t.type,l=t.trigger,n=t.required;"all"!==i&&l&&i!==l||(_xeUtils.default.isFunction(t.validator)?(e=t.validator({cellValue:s,rule:t,rules:a,row:u,rowIndex:f.getRowIndex(u),column:o,columnIndex:f.getColumnIndex(o),$table:f}))&&(_xeUtils.default.isError(e)?(g=!0,c.push(new Rule({type:"custom",trigger:l,content:e.message,rule:new Rule(t)}))):e.catch&&d.push(e.catch(function(e){g=!0,c.push(new Rule({type:"custom",trigger:l,content:e&&e.message?e.message:t.content||t.message,rule:new Rule(t)}))}))):(r="array"===r?!_xeUtils.default.isArray(s)||!s.length:(0,_utils.eqEmptyValue)(s),(n?r||p(t,s):!r&&p(t,s))&&(g=!0,c.push(new Rule(t)))))}))),Promise.all(d).then(function(){if(c.length){var e={rules:c,rule:c[0]};return Promise.reject(e)}})},hasCellRules:function(t,e,r){var l=v.editRules,r=r.property;if(r&&l){r=_xeUtils.default.get(l,r);return r&&!!_xeUtils.default.find(r,function(e){return"all"===t||!e.trigger||t===e.trigger})}return!1},triggerValidate:function(t){var e=v.editConfig,r=v.editRules,l=d.editStore,n=d.validStore,l=l.actived,i=s.value;if(e&&r&&l.row){var l=l.args,u=l.row,o=l.column,a=l.cell;if(b.hasCellRules(t,u,o))return b.validCellRules(t,u,o).then(function(){"row"===i.mode&&n.visible&&n.row===u&&n.column===o&&w.clearValidate()}).catch(function(e){e=e.rule;if(e.trigger&&t!==e.trigger)return Promise.resolve();e={rule:e,row:u,column:o,cell:a};return b.showValidTooltip(e),Promise.reject(e)})}return Promise.resolve()},showValidTooltip:function(e){var t=v.height,r=d.tableData,l=d.validStore,n=_.value,i=e.rule,u=e.row,o=e.column,a=e.cell,s=h.value,c=i.content;return(0,_vue.nextTick)().then(function(){if(Object.assign(l,{row:u,column:o,rule:i,content:c,visible:!0}),f.dispatchEvent("valid-error",e,null),s&&("tooltip"===n.message||"default"===n.message&&!t&&r.length<2))return s.open(a,c)})}};return __assign(__assign({},w={fullValidate:function(e,t){return r(e,t,!0)},validate:function(e,t){return r(e,t)},clearValidate:function(){var e=d.validStore,t=h.value;return Object.assign(e,{visible:!1,row:null,column:null,content:"",rule:null}),t&&t.reactData.visible&&t.close(),(0,_vue.nextTick)()}}),b)},setupGrid:function(e){return e.extendTableMethods(tableValidatorMethodKeys)}},_default=validatorHook;exports.default=_default;
|
package/package.json
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vxe-table",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.8",
|
|
4
4
|
"description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"serve": "vue-cli-service serve",
|
|
7
7
|
"lint": "vue-cli-service lint",
|
|
8
|
-
"build": "
|
|
9
|
-
"build:examples": "vue-cli-service build",
|
|
10
|
-
"build:docs": "gulp update_docs",
|
|
8
|
+
"build": "vue-cli-service build",
|
|
11
9
|
"lib:modules": "gulp build",
|
|
12
10
|
"lib:pack": "vue-cli-service build --target lib --name index --dest lib_temp index.ts",
|
|
13
11
|
"lib": "npm run lib:pack && npm run lib:modules",
|
|
@@ -29,9 +27,7 @@
|
|
|
29
27
|
"style": "lib/style.css",
|
|
30
28
|
"typings": "types/index.d.ts",
|
|
31
29
|
"devDependencies": {
|
|
32
|
-
"@types/qrcode": "^1.4.1",
|
|
33
30
|
"@types/resize-observer-browser": "^0.1.6",
|
|
34
|
-
"@types/sortablejs": "^1.10.7",
|
|
35
31
|
"@typescript-eslint/eslint-plugin": "^4.18.0",
|
|
36
32
|
"@typescript-eslint/parser": "^4.18.0",
|
|
37
33
|
"@vue/cli-plugin-babel": "~4.5.0",
|
|
@@ -43,18 +39,13 @@
|
|
|
43
39
|
"@vue/compiler-sfc": "^3.2.18",
|
|
44
40
|
"@vue/eslint-config-standard": "^5.1.2",
|
|
45
41
|
"@vue/eslint-config-typescript": "^7.0.0",
|
|
46
|
-
"ant-design-vue": "^2.2.8",
|
|
47
42
|
"core-js": "^3.6.5",
|
|
48
|
-
"dayjs": "^1.10.7",
|
|
49
|
-
"element-plus": "^1.1.0-beta.24",
|
|
50
43
|
"eslint": "^6.7.2",
|
|
51
44
|
"eslint-plugin-import": "^2.20.2",
|
|
52
45
|
"eslint-plugin-node": "^11.1.0",
|
|
53
46
|
"eslint-plugin-promise": "^4.2.1",
|
|
54
47
|
"eslint-plugin-standard": "^4.0.0",
|
|
55
48
|
"eslint-plugin-vue": "^7.0.0",
|
|
56
|
-
"exceljs": "^4.3.0",
|
|
57
|
-
"font-awesome": "^4.7.0",
|
|
58
49
|
"gulp": "^4.0.2",
|
|
59
50
|
"gulp-autoprefixer": "^6.1.0",
|
|
60
51
|
"gulp-babel": "^8.0.0",
|
|
@@ -67,29 +58,15 @@
|
|
|
67
58
|
"gulp-sourcemaps": "^2.6.5",
|
|
68
59
|
"gulp-typescript": "^5.0.1",
|
|
69
60
|
"gulp-uglify": "^3.0.2",
|
|
70
|
-
"highlight.js": "^11.2.0",
|
|
71
|
-
"jsbarcode": "^3.11.0",
|
|
72
|
-
"jspdf": "^2.4.0",
|
|
73
61
|
"node-sass": "^6.0.1",
|
|
74
|
-
"qrcode": "^1.4.4",
|
|
75
62
|
"sass-loader": "^10.0.5",
|
|
76
|
-
"sortablejs": "^1.14.0",
|
|
77
63
|
"typescript": "~4.3.5",
|
|
78
64
|
"vue": "^3.2.21",
|
|
79
65
|
"vue-i18n": "^9.1.7",
|
|
80
66
|
"vue-router": "^4.0.11",
|
|
81
67
|
"vuex": "^4.0.2",
|
|
82
|
-
"vxe-table-plugin-antd": "^3.0.5",
|
|
83
|
-
"vxe-table-plugin-element": "^3.0.5",
|
|
84
|
-
"vxe-table-plugin-export-pdf": "^3.0.2",
|
|
85
|
-
"vxe-table-plugin-export-xlsx": "^3.0.3",
|
|
86
|
-
"vxe-table-plugin-menus": "^3.0.6",
|
|
87
|
-
"vxe-table-plugin-renderer": "^3.0.2",
|
|
88
|
-
"vxe-table-plugin-shortcut-key": "^3.0.2",
|
|
89
68
|
"xe-ajax": "^4.0.5",
|
|
90
|
-
"xe-
|
|
91
|
-
"xe-utils": "^3.4.0",
|
|
92
|
-
"xlsx": "^0.17.2"
|
|
69
|
+
"xe-utils": "^3.4.0"
|
|
93
70
|
},
|
|
94
71
|
"peerDependencies": {
|
|
95
72
|
"vue": "^3.2.2",
|
|
@@ -100,6 +100,9 @@ function getFooterData (opts: any, footerTableData: any) {
|
|
|
100
100
|
|
|
101
101
|
function getCsvCellTypeLabel (column: any, cellValue: any) {
|
|
102
102
|
if (cellValue) {
|
|
103
|
+
if (column.type === 'seq') {
|
|
104
|
+
return `\t${cellValue}`
|
|
105
|
+
}
|
|
103
106
|
switch (column.cellType) {
|
|
104
107
|
case 'string':
|
|
105
108
|
if (!isNaN(cellValue)) {
|
|
@@ -292,10 +295,16 @@ const tableExportHook: VxeGlobalHooksHandles.HookOptions = {
|
|
|
292
295
|
return row[treeOpts.children] && row[treeOpts.children].length
|
|
293
296
|
}
|
|
294
297
|
|
|
295
|
-
const getSeq = (row: any, rowIndex: any, column: any, columnIndex: any) => {
|
|
298
|
+
const getSeq = (row: any, rowIndex: any, column: any, columnIndex: any, paths: string[] | null) => {
|
|
296
299
|
const seqOpts = computeSeqOpts.value
|
|
297
300
|
const seqMethod = seqOpts.seqMethod || column.seqMethod
|
|
298
|
-
|
|
301
|
+
if (seqMethod) {
|
|
302
|
+
return seqMethod({ row, rowIndex, column, columnIndex })
|
|
303
|
+
}
|
|
304
|
+
if (paths) {
|
|
305
|
+
return paths.map((num, i) => i % 2 === 0 ? (Number(num) + 1) : '.').join('')
|
|
306
|
+
}
|
|
307
|
+
return seqOpts.startIndex + rowIndex + 1
|
|
299
308
|
}
|
|
300
309
|
|
|
301
310
|
const toBooleanValue = (cellValue: any) => {
|
|
@@ -314,10 +323,11 @@ const tableExportHook: VxeGlobalHooksHandles.HookOptions = {
|
|
|
314
323
|
if (treeConfig) {
|
|
315
324
|
// 如果是树表格只允许导出数据源
|
|
316
325
|
const rest: any[] = []
|
|
326
|
+
const expandMaps: Map<any, number> = new Map()
|
|
317
327
|
XEUtils.eachTree(datas, (item, rowIndex, items, path, parent, nodes) => {
|
|
318
328
|
const row = item._row || item
|
|
319
329
|
const parentRow = parent && parent._row ? parent._row : parent
|
|
320
|
-
if ((isAllExpand || !parentRow || $xetable.isTreeExpandByRow(parentRow))) {
|
|
330
|
+
if ((isAllExpand || !parentRow || (expandMaps.has(parentRow) && $xetable.isTreeExpandByRow(parentRow)))) {
|
|
321
331
|
const hasRowChild = hasTreeChildren(row)
|
|
322
332
|
const item: any = {
|
|
323
333
|
_row: row,
|
|
@@ -340,7 +350,7 @@ const tableExportHook: VxeGlobalHooksHandles.HookOptions = {
|
|
|
340
350
|
} else {
|
|
341
351
|
switch (column.type) {
|
|
342
352
|
case 'seq':
|
|
343
|
-
cellValue = getSeq(row, rowIndex, column, columnIndex)
|
|
353
|
+
cellValue = getSeq(row, rowIndex, column, columnIndex, path)
|
|
344
354
|
break
|
|
345
355
|
case 'checkbox':
|
|
346
356
|
cellValue = toBooleanValue($xetable.isCheckedByCheckboxRow(row))
|
|
@@ -371,6 +381,7 @@ const tableExportHook: VxeGlobalHooksHandles.HookOptions = {
|
|
|
371
381
|
}
|
|
372
382
|
item[column.id] = XEUtils.toValueString(cellValue)
|
|
373
383
|
})
|
|
384
|
+
expandMaps.set(row, 1)
|
|
374
385
|
rest.push(Object.assign(item, row))
|
|
375
386
|
}
|
|
376
387
|
}, treeOpts)
|
|
@@ -395,7 +406,7 @@ const tableExportHook: VxeGlobalHooksHandles.HookOptions = {
|
|
|
395
406
|
} else {
|
|
396
407
|
switch (column.type) {
|
|
397
408
|
case 'seq':
|
|
398
|
-
cellValue = getSeq(row, rowIndex, column, columnIndex)
|
|
409
|
+
cellValue = getSeq(row, rowIndex, column, columnIndex, [])
|
|
399
410
|
break
|
|
400
411
|
case 'checkbox':
|
|
401
412
|
cellValue = toBooleanValue($xetable.isCheckedByCheckboxRow(row))
|
|
@@ -395,7 +395,7 @@ export default defineComponent({
|
|
|
395
395
|
callback()
|
|
396
396
|
}
|
|
397
397
|
}).catch(() => {
|
|
398
|
-
return new Promise<void>((resolve
|
|
398
|
+
return new Promise<void>((resolve) => {
|
|
399
399
|
showErrTime = window.setTimeout(() => {
|
|
400
400
|
itemList.forEach((item) => {
|
|
401
401
|
if (item.errRule) {
|
|
@@ -412,7 +412,7 @@ export default defineComponent({
|
|
|
412
412
|
callback(validRest)
|
|
413
413
|
resolve()
|
|
414
414
|
} else {
|
|
415
|
-
|
|
415
|
+
resolve(validRest)
|
|
416
416
|
}
|
|
417
417
|
})
|
|
418
418
|
})
|
|
@@ -871,7 +871,11 @@ export default defineComponent({
|
|
|
871
871
|
body.insertRecords = insertRecords.filter((row) => $xetable.findRowIndexOf(pendingRecords, row) === -1)
|
|
872
872
|
}
|
|
873
873
|
// 只校验新增和修改的数据
|
|
874
|
-
return $xetable.validate(body.insertRecords.concat(updateRecords)).then(() => {
|
|
874
|
+
return $xetable.validate(body.insertRecords.concat(updateRecords)).then((errMap) => {
|
|
875
|
+
if (errMap) {
|
|
876
|
+
// 如果校验不通过
|
|
877
|
+
return
|
|
878
|
+
}
|
|
875
879
|
if (body.insertRecords.length || removeRecords.length || updateRecords.length || body.pendingRecords.length) {
|
|
876
880
|
reactData.tableLoading = true
|
|
877
881
|
return Promise.resolve((beforeSave || ajaxMethods)(...applyArgs))
|
|
@@ -916,7 +920,7 @@ export default defineComponent({
|
|
|
916
920
|
VXETable.modal.message({ id: code, content: GlobalConfig.i18n('vxe.grid.dataUnchanged'), status: 'info' })
|
|
917
921
|
}
|
|
918
922
|
}
|
|
919
|
-
})
|
|
923
|
+
})
|
|
920
924
|
} else {
|
|
921
925
|
if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
|
|
922
926
|
errLog('vxe.error.notFunc', ['proxy-config.ajax.save'])
|
|
@@ -34,15 +34,15 @@ export default {
|
|
|
34
34
|
footerAlign: { type: String as PropType<VxeTablePropTypes.FooterAlign>, default: () => GlobalConfig.table.footerAlign },
|
|
35
35
|
// 是否显示表头
|
|
36
36
|
showHeader: { type: Boolean as PropType<VxeTablePropTypes.ShowHeader>, default: () => GlobalConfig.table.showHeader },
|
|
37
|
-
//
|
|
37
|
+
// (即将废弃)是否要高亮当前选中行
|
|
38
38
|
highlightCurrentRow: { type: Boolean as PropType<VxeTablePropTypes.HighlightCurrentRow>, default: () => GlobalConfig.table.highlightCurrentRow },
|
|
39
|
-
//
|
|
39
|
+
// (即将废弃)鼠标移到行是否要高亮显示
|
|
40
40
|
highlightHoverRow: { type: Boolean as PropType<VxeTablePropTypes.HighlightHoverRow>, default: () => GlobalConfig.table.highlightHoverRow },
|
|
41
|
-
//
|
|
41
|
+
// (即将废弃)是否要高亮当前选中列
|
|
42
42
|
highlightCurrentColumn: { type: Boolean as PropType<VxeTablePropTypes.HighlightCurrentColumn>, default: () => GlobalConfig.table.highlightCurrentColumn },
|
|
43
|
-
//
|
|
43
|
+
// (即将废弃)鼠标移到列是否要高亮显示
|
|
44
44
|
highlightHoverColumn: { type: Boolean as PropType<VxeTablePropTypes.HighlightHoverColumn>, default: () => GlobalConfig.table.highlightHoverColumn },
|
|
45
|
-
//
|
|
45
|
+
// (即将废弃)激活单元格编辑时是否高亮显示
|
|
46
46
|
highlightCell: Boolean as PropType<VxeTablePropTypes.HighlightCell>,
|
|
47
47
|
// 是否显示表尾合计
|
|
48
48
|
showFooter: Boolean as PropType<VxeTablePropTypes.ShowFooter>,
|
|
@@ -153,7 +153,7 @@ export default {
|
|
|
153
153
|
scrollX: Object as PropType<VxeTablePropTypes.ScrollX>,
|
|
154
154
|
// 纵向虚拟滚动配置项
|
|
155
155
|
scrollY: Object as PropType<VxeTablePropTypes.ScrollY>,
|
|
156
|
-
//
|
|
156
|
+
// (即将废弃)优化相关
|
|
157
157
|
animat: { type: Boolean as PropType<VxeTablePropTypes.Animat>, default: () => GlobalConfig.table.animat },
|
|
158
158
|
delayHover: { type: Number as PropType<VxeTablePropTypes.DelayHover>, default: () => GlobalConfig.table.delayHover as number },
|
|
159
159
|
// 额外的参数
|
|
@@ -3086,6 +3086,16 @@ export default defineComponent({
|
|
|
3086
3086
|
const treeOpts = computeTreeOpts.value
|
|
3087
3087
|
const reserveSelection: any[] = []
|
|
3088
3088
|
if (checkboxOpts.reserve) {
|
|
3089
|
+
const afterFullIdMaps: { [key: string]: number } = {}
|
|
3090
|
+
if (treeConfig) {
|
|
3091
|
+
XEUtils.eachTree(afterFullData, row => {
|
|
3092
|
+
afterFullIdMaps[getRowid($xetable, row)] = 1
|
|
3093
|
+
}, treeOpts)
|
|
3094
|
+
} else {
|
|
3095
|
+
afterFullData.forEach(row => {
|
|
3096
|
+
afterFullIdMaps[getRowid($xetable, row)] = 1
|
|
3097
|
+
})
|
|
3098
|
+
}
|
|
3089
3099
|
XEUtils.each(checkboxReserveRowMap, (oldRow, oldRowid) => {
|
|
3090
3100
|
if (oldRow) {
|
|
3091
3101
|
if (isFull) {
|
|
@@ -3093,14 +3103,8 @@ export default defineComponent({
|
|
|
3093
3103
|
reserveSelection.push(oldRow)
|
|
3094
3104
|
}
|
|
3095
3105
|
} else {
|
|
3096
|
-
if (
|
|
3097
|
-
|
|
3098
|
-
reserveSelection.push(oldRow)
|
|
3099
|
-
}
|
|
3100
|
-
} else {
|
|
3101
|
-
if (!afterFullData.some(row => getRowid($xetable, row) === oldRowid)) {
|
|
3102
|
-
reserveSelection.push(oldRow)
|
|
3103
|
-
}
|
|
3106
|
+
if (!afterFullIdMaps[oldRowid]) {
|
|
3107
|
+
reserveSelection.push(oldRow)
|
|
3104
3108
|
}
|
|
3105
3109
|
}
|
|
3106
3110
|
}
|
|
@@ -3226,7 +3230,7 @@ export default defineComponent({
|
|
|
3226
3230
|
return selectRow
|
|
3227
3231
|
}
|
|
3228
3232
|
} else {
|
|
3229
|
-
if (
|
|
3233
|
+
if ($xetable.findRowIndexOf(afterFullData, selectRow) > -1) {
|
|
3230
3234
|
return selectRow
|
|
3231
3235
|
}
|
|
3232
3236
|
}
|
|
@@ -3989,6 +3993,7 @@ export default defineComponent({
|
|
|
3989
3993
|
const { mouseConfig, keyboardConfig } = props
|
|
3990
3994
|
const { filterStore, ctxMenuStore, editStore } = reactData
|
|
3991
3995
|
const mouseOpts = computeMouseOpts.value
|
|
3996
|
+
const keyboardOpts = computeKeyboardOpts.value
|
|
3992
3997
|
const { actived } = editStore
|
|
3993
3998
|
const isEsc = hasEventKey(evnt, EVENT_KEYS.ESCAPE)
|
|
3994
3999
|
if (isEsc) {
|
|
@@ -4002,13 +4007,15 @@ export default defineComponent({
|
|
|
4002
4007
|
$xetable.closeMenu()
|
|
4003
4008
|
}
|
|
4004
4009
|
tableMethods.closeFilter()
|
|
4005
|
-
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
|
|
4011
|
-
|
|
4010
|
+
if (keyboardConfig && keyboardOpts.isEsc) {
|
|
4011
|
+
// 如果是激活编辑状态,则取消编辑
|
|
4012
|
+
if (actived.row) {
|
|
4013
|
+
const params = actived.args
|
|
4014
|
+
$xetable.clearActived(evnt)
|
|
4015
|
+
// 如果配置了选中功能,则为选中状态
|
|
4016
|
+
if (mouseOpts.selected) {
|
|
4017
|
+
nextTick(() => $xetable.handleSelected(params, evnt))
|
|
4018
|
+
}
|
|
4012
4019
|
}
|
|
4013
4020
|
}
|
|
4014
4021
|
}
|
|
@@ -4072,7 +4079,7 @@ export default defineComponent({
|
|
|
4072
4079
|
$xetable.closeMenu()
|
|
4073
4080
|
}
|
|
4074
4081
|
tableMethods.closeFilter()
|
|
4075
|
-
if (
|
|
4082
|
+
if (keyboardConfig && keyboardOpts.isEsc) {
|
|
4076
4083
|
// 如果是激活编辑状态,则取消编辑
|
|
4077
4084
|
if (actived.row) {
|
|
4078
4085
|
const params = actived.args
|
|
@@ -13,6 +13,7 @@ const GlobalConfig: VXETableGlobalConfig = {
|
|
|
13
13
|
showHeader: true,
|
|
14
14
|
animat: true,
|
|
15
15
|
delayHover: 250,
|
|
16
|
+
autoResize: true,
|
|
16
17
|
// keepSource: false,
|
|
17
18
|
// showOverflow: null,
|
|
18
19
|
// showHeaderOverflow: null,
|
|
@@ -20,7 +21,6 @@ const GlobalConfig: VXETableGlobalConfig = {
|
|
|
20
21
|
// resizeInterval: 500,
|
|
21
22
|
// size: null,
|
|
22
23
|
// zIndex: null,
|
|
23
|
-
// autoResize: false,
|
|
24
24
|
// stripe: false,
|
|
25
25
|
// border: false,
|
|
26
26
|
// round: false,
|
|
@@ -93,6 +93,9 @@ const GlobalConfig: VXETableGlobalConfig = {
|
|
|
93
93
|
mouseConfig: {
|
|
94
94
|
extension: true
|
|
95
95
|
},
|
|
96
|
+
keyboardConfig: {
|
|
97
|
+
isEsc: true
|
|
98
|
+
},
|
|
96
99
|
areaConfig: {
|
|
97
100
|
selectCellByHeader: true
|
|
98
101
|
},
|
|
@@ -685,7 +685,7 @@ export const renderer: VxeGlobalRenderer = {
|
|
|
685
685
|
XEUtils.each(opts, (options, name) => renderer.add(name, options))
|
|
686
686
|
return renderer
|
|
687
687
|
},
|
|
688
|
-
get (name) {
|
|
688
|
+
get (name: string) {
|
|
689
689
|
return renderMap[name] || null
|
|
690
690
|
},
|
|
691
691
|
add (name, options) {
|
|
@@ -149,21 +149,21 @@ const validatorHook: VxeGlobalHooksHandles.HookOptions = {
|
|
|
149
149
|
const ruleProps = Object.keys(validRest)
|
|
150
150
|
return nextTick().then(() => {
|
|
151
151
|
if (ruleProps.length) {
|
|
152
|
-
return
|
|
152
|
+
return validRest[ruleProps[0]][0]
|
|
153
153
|
}
|
|
154
154
|
if (cb) {
|
|
155
155
|
cb()
|
|
156
156
|
}
|
|
157
157
|
})
|
|
158
158
|
}).catch(firstErrParams => {
|
|
159
|
-
return new Promise<void>((resolve
|
|
159
|
+
return new Promise<void>((resolve) => {
|
|
160
160
|
const finish = () => {
|
|
161
161
|
nextTick(() => {
|
|
162
162
|
if (cb) {
|
|
163
163
|
cb(validRest)
|
|
164
164
|
resolve()
|
|
165
165
|
} else {
|
|
166
|
-
|
|
166
|
+
resolve(validRest)
|
|
167
167
|
}
|
|
168
168
|
})
|
|
169
169
|
}
|
package/types/table.d.ts
CHANGED
|
@@ -17,6 +17,8 @@ export interface DefineRendererOption<T> {
|
|
|
17
17
|
filterRemoteMethod?(params: VxeGlobalRendererHandles.FilterRemoteMethod): boolean;
|
|
18
18
|
filterResetMethod?(params: VxeGlobalRendererHandles.FilterResetMethodParams): void;
|
|
19
19
|
filterRecoverMethod?(params: VxeGlobalRendererHandles.FilterRecoverMethodParams): void;
|
|
20
|
+
// 默认行为
|
|
21
|
+
defaultFilterMethod?(params: VxeGlobalRendererHandles.FilterMethodParams): boolean;
|
|
20
22
|
|
|
21
23
|
// 单元格渲染
|
|
22
24
|
renderHeader?(renderOpts: VxeGlobalRendererHandles.RenderHeaderOptions, params: VxeGlobalRendererHandles.RenderHeaderParams): T;
|
|
@@ -197,7 +199,7 @@ export namespace VxeGlobalRendererHandles {
|
|
|
197
199
|
/**
|
|
198
200
|
* 渲染器名称
|
|
199
201
|
*/
|
|
200
|
-
name
|
|
202
|
+
name?: string;
|
|
201
203
|
/**
|
|
202
204
|
* 目标组件渲染的参数
|
|
203
205
|
*/
|
|
@@ -246,7 +248,7 @@ export interface VxeGlobalRenderer {
|
|
|
246
248
|
mixin(options: {
|
|
247
249
|
[name: string]: RendererOptions;
|
|
248
250
|
}): VxeGlobalRenderer;
|
|
249
|
-
get(name: string): DefineRendererOption<VxeGlobalRendererHandles.RenderResult>;
|
|
251
|
+
get(name: string | null | undefined): DefineRendererOption<VxeGlobalRendererHandles.RenderResult>;
|
|
250
252
|
add(name: string, options: RendererOptions): VxeGlobalRenderer;
|
|
251
253
|
delete(name: string): void;
|
|
252
254
|
}
|