vxe-table 3.4.5 → 3.4.7-beta.2
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/README.en.md +1 -1
- package/README.md +1 -1
- package/README.zh-TW.md +1 -1
- package/lib/button/src/button.js +15 -14
- package/lib/button/src/button.min.js +1 -1
- package/lib/edit/src/mixin.js +19 -25
- package/lib/edit/src/mixin.min.js +1 -1
- package/lib/export/src/mixin.js +25 -10
- package/lib/export/src/mixin.min.js +1 -1
- package/lib/filter/src/mixin.js +25 -1
- package/lib/filter/src/mixin.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 +713 -423
- package/lib/index.umd.min.js +1 -1
- package/lib/select/src/select.js +1 -1
- package/lib/select/src/select.min.js +1 -1
- package/lib/table/src/body.js +9 -17
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +16 -17
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/methods.js +503 -317
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +6 -6
- package/lib/table/src/util.js +7 -0
- package/lib/table/src/util.min.js +1 -1
- package/lib/tools/src/dom.js +2 -9
- package/lib/tools/src/dom.min.js +1 -1
- package/lib/tools/src/utils.js +1 -1
- package/lib/tools/src/utils.min.js +1 -1
- package/lib/v-x-e-table/src/conf.js +5 -1
- package/lib/v-x-e-table/src/conf.min.js +1 -1
- package/package.json +3 -3
- package/packages/button/src/button.js +14 -14
- package/packages/edit/src/mixin.js +18 -21
- package/packages/export/src/mixin.js +17 -6
- package/packages/filter/src/mixin.js +20 -1
- package/packages/grid/src/grid.js +6 -2
- package/packages/select/src/select.js +1 -1
- package/packages/table/src/body.js +12 -16
- package/packages/table/src/cell.js +15 -15
- package/packages/table/src/methods.js +149 -47
- package/packages/table/src/table.js +6 -6
- package/packages/table/src/util.js +4 -0
- package/packages/tools/src/dom.js +2 -7
- package/packages/tools/src/utils.js +1 -1
- package/packages/v-x-e-table/src/conf.js +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.UtilTools=void 0,exports.eqEmptyValue=eqEmptyValue,exports.isEnableConf=isEnableConf;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_formats=require("../../v-x-e-table/src/formats");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Map"===(r="Object"===r&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}var zindexIndex=0,lastZindex=1,ColumnInfo=function(){function f(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},o=r.renderHeader,l=r.renderCell,n=r.renderFooter,i=r.renderData;_classCallCheck(this,f);var a,s=e.$xegrid,u=s?s.proxyOpts:null,d=t.formatter,c=!_xeUtils.default.isBoolean(t.visible)||t.visible;"development"===process.env.NODE_ENV&&(r=["seq","checkbox","radio","expand","html"],t.type&&-1===r.indexOf(t.type)&&UtilTools.warn("vxe.error.errProp",["type=".concat(t.type),r.join(", ")]),(_xeUtils.default.isBoolean(t.cellRender)||t.cellRender&&!_xeUtils.default.isObject(t.cellRender))&&UtilTools.warn("vxe.error.errProp",["column.cell-render=".concat(t.cellRender),"column.cell-render={}"]),(_xeUtils.default.isBoolean(t.editRender)||t.editRender&&!_xeUtils.default.isObject(t.editRender))&&UtilTools.warn("vxe.error.errProp",["column.edit-render=".concat(t.editRender),"column.edit-render={}"]),t.cellRender&&t.editRender&&UtilTools.warn("vxe.error.errConflicts",["column.cell-render","column.edit-render"]),"expand"===t.type&&e.treeConfig&&e.treeOpts.line&&UtilTools.error("vxe.error.errConflicts",["tree-config.line","column.type=expand"]),t.remoteSort&&UtilTools.warn("vxe.error.delProp",["column.remote-sort","sort-config.remote"]),t.sortMethod&&UtilTools.warn("vxe.error.delProp",["column.sort-method","sort-config.sortMethod"]),d&&(_xeUtils.default.isString(d)?(a=_formats.formats.get(d)||_xeUtils.default[d],_xeUtils.default.isFunction(a)||UtilTools.error("vxe.error.notFunc",[d])):_xeUtils.default.isArray(d)&&(a=_formats.formats.get(d[0])||_xeUtils.default[d[0]],_xeUtils.default.isFunction(a)||UtilTools.error("vxe.error.notFunc",[d[0]])))),Object.assign(this,{type:t.type,property:t.field,title:t.title,width:t.width,minWidth:t.minWidth,resizable:t.resizable,fixed:t.fixed,align:t.align,headerAlign:t.headerAlign,footerAlign:t.footerAlign,showOverflow:t.showOverflow,showHeaderOverflow:t.showHeaderOverflow,showFooterOverflow:t.showFooterOverflow,className:t.className,headerClassName:t.headerClassName,footerClassName:t.footerClassName,formatter:d,sortable:t.sortable,sortBy:t.sortBy,sortType:t.sortType,sortMethod:t.sortMethod,remoteSort:t.remoteSort,filters:UtilTools.getFilters(t.filters),filterMultiple:!_xeUtils.default.isBoolean(t.filterMultiple)||t.filterMultiple,filterMethod:t.filterMethod,filterResetMethod:t.filterResetMethod,filterRecoverMethod:t.filterRecoverMethod,filterRender:t.filterRender,treeNode:t.treeNode,cellType:t.cellType,cellRender:t.cellRender,editRender:t.editRender,contentRender:t.contentRender,exportMethod:t.exportMethod,footerExportMethod:t.footerExportMethod,titleHelp:t.titleHelp,params:t.params,id:t.colId||_xeUtils.default.uniqueId("col_"),parentId:null,visible:c,halfVisible:!1,defaultVisible:c,checked:!1,halfChecked:!1,disabled:!1,level:1,rowSpan:1,colSpan:1,order:null,sortTime:0,renderWidth:0,renderHeight:0,resizeWidth:0,renderLeft:0,renderArgs:[],model:{},renderHeader:o||t.renderHeader,renderCell:l||t.renderCell,renderFooter:n||t.renderFooter,renderData:i,slots:t.slots}),u&&u.beforeColumn&&u.beforeColumn({$grid:s,column:this})}return _createClass(f,[{key:"getTitle",value:function(){return UtilTools.getFuncText(this.title||("seq"===this.type?_conf.default.i18n("vxe.table.seqTitle"):""))}},{key:"getKey",value:function(){return this.property||(this.type?"type=".concat(this.type):null)}},{key:"update",value:function(e,t){"filters"!==e&&("field"===e?this.property=t:this[e]=t)}}]),f}();function isEnableConf(e){return e&&!1!==e.enabled}function outLog(r){return function(e,t){t=UtilTools.getLog(e,t);return console[r](t),t}}function eqEmptyValue(e){return""===e||_xeUtils.default.eqNull(e)}var UtilTools={warn:outLog("warn"),error:outLog("error"),getLog:function(e,t){return"[vxe-table] ".concat(_conf.default.i18n(e,t))},getFuncText:function(e){return _xeUtils.default.isFunction(e)?e():_conf.default.translate?_conf.default.translate(e):e},nextZIndex:function(){return lastZindex=_conf.default.zIndex+zindexIndex++},getLastZIndex:function(){return lastZindex},getRowkey:function(e){return e.rowId||"
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.UtilTools=void 0,exports.eqEmptyValue=eqEmptyValue,exports.isEnableConf=isEnableConf;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_formats=require("../../v-x-e-table/src/formats");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Map"===(r="Object"===r&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}var zindexIndex=0,lastZindex=1,ColumnInfo=function(){function f(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},o=r.renderHeader,l=r.renderCell,n=r.renderFooter,i=r.renderData;_classCallCheck(this,f);var a,s=e.$xegrid,u=s?s.proxyOpts:null,d=t.formatter,c=!_xeUtils.default.isBoolean(t.visible)||t.visible;"development"===process.env.NODE_ENV&&(r=["seq","checkbox","radio","expand","html"],t.type&&-1===r.indexOf(t.type)&&UtilTools.warn("vxe.error.errProp",["type=".concat(t.type),r.join(", ")]),(_xeUtils.default.isBoolean(t.cellRender)||t.cellRender&&!_xeUtils.default.isObject(t.cellRender))&&UtilTools.warn("vxe.error.errProp",["column.cell-render=".concat(t.cellRender),"column.cell-render={}"]),(_xeUtils.default.isBoolean(t.editRender)||t.editRender&&!_xeUtils.default.isObject(t.editRender))&&UtilTools.warn("vxe.error.errProp",["column.edit-render=".concat(t.editRender),"column.edit-render={}"]),t.cellRender&&t.editRender&&UtilTools.warn("vxe.error.errConflicts",["column.cell-render","column.edit-render"]),"expand"===t.type&&e.treeConfig&&e.treeOpts.line&&UtilTools.error("vxe.error.errConflicts",["tree-config.line","column.type=expand"]),t.remoteSort&&UtilTools.warn("vxe.error.delProp",["column.remote-sort","sort-config.remote"]),t.sortMethod&&UtilTools.warn("vxe.error.delProp",["column.sort-method","sort-config.sortMethod"]),d&&(_xeUtils.default.isString(d)?(a=_formats.formats.get(d)||_xeUtils.default[d],_xeUtils.default.isFunction(a)||UtilTools.error("vxe.error.notFunc",[d])):_xeUtils.default.isArray(d)&&(a=_formats.formats.get(d[0])||_xeUtils.default[d[0]],_xeUtils.default.isFunction(a)||UtilTools.error("vxe.error.notFunc",[d[0]])))),Object.assign(this,{type:t.type,property:t.field,title:t.title,width:t.width,minWidth:t.minWidth,resizable:t.resizable,fixed:t.fixed,align:t.align,headerAlign:t.headerAlign,footerAlign:t.footerAlign,showOverflow:t.showOverflow,showHeaderOverflow:t.showHeaderOverflow,showFooterOverflow:t.showFooterOverflow,className:t.className,headerClassName:t.headerClassName,footerClassName:t.footerClassName,formatter:d,sortable:t.sortable,sortBy:t.sortBy,sortType:t.sortType,sortMethod:t.sortMethod,remoteSort:t.remoteSort,filters:UtilTools.getFilters(t.filters),filterMultiple:!_xeUtils.default.isBoolean(t.filterMultiple)||t.filterMultiple,filterMethod:t.filterMethod,filterResetMethod:t.filterResetMethod,filterRecoverMethod:t.filterRecoverMethod,filterRender:t.filterRender,treeNode:t.treeNode,cellType:t.cellType,cellRender:t.cellRender,editRender:t.editRender,contentRender:t.contentRender,exportMethod:t.exportMethod,footerExportMethod:t.footerExportMethod,titleHelp:t.titleHelp,params:t.params,id:t.colId||_xeUtils.default.uniqueId("col_"),parentId:null,visible:c,halfVisible:!1,defaultVisible:c,checked:!1,halfChecked:!1,disabled:!1,level:1,rowSpan:1,colSpan:1,order:null,sortTime:0,renderWidth:0,renderHeight:0,resizeWidth:0,renderLeft:0,renderArgs:[],model:{},renderHeader:o||t.renderHeader,renderCell:l||t.renderCell,renderFooter:n||t.renderFooter,renderData:i,slots:t.slots}),u&&u.beforeColumn&&u.beforeColumn({$grid:s,column:this})}return _createClass(f,[{key:"getTitle",value:function(){return UtilTools.getFuncText(this.title||("seq"===this.type?_conf.default.i18n("vxe.table.seqTitle"):""))}},{key:"getKey",value:function(){return this.property||(this.type?"type=".concat(this.type):null)}},{key:"update",value:function(e,t){"filters"!==e&&("field"===e?this.property=t:this[e]=t)}}]),f}();function isEnableConf(e){return e&&!1!==e.enabled}function outLog(r){return function(e,t){t=UtilTools.getLog(e,t);return console[r](t),t}}function eqEmptyValue(e){return""===e||_xeUtils.default.eqNull(e)}var UtilTools={warn:outLog("warn"),error:outLog("error"),getLog:function(e,t){return"[vxe-table] ".concat(_conf.default.i18n(e,t))},getFuncText:function(e){return _xeUtils.default.isFunction(e)?e():_conf.default.translate?_conf.default.translate(e):e},nextZIndex:function(){return lastZindex=_conf.default.zIndex+zindexIndex++},getLastZIndex:function(){return lastZindex},getRowkey:function(e){return e.rowId||"_X_ID"},getRowid:function(e,t){e=_xeUtils.default.get(t,UtilTools.getRowkey(e));return _xeUtils.default.eqNull(e)?"":encodeURIComponent(e)},getColumnList:function(e){var t=[];return e.forEach(function(e){t.push.apply(t,_toConsumableArray(e.children&&e.children.length?UtilTools.getColumnList(e.children):[e]))}),t},getClass:function(e,t){return e?_xeUtils.default.isFunction(e)?e(t):e:""},getFilters:function(e){return e&&_xeUtils.default.isArray(e)?e.map(function(e){var t=e.label,r=e.value,o=e.data,l=e.resetValue,e=e.checked;return{label:t,value:r,data:o,resetValue:l,checked:!!e,_checked:!!e}}):e},formatText:function(e,t){return""+(""===e||null==e?t?_conf.default.emptyCell:"":e)},getCellValue:function(e,t){return _xeUtils.default.get(e,t.property)},setCellValue:function(e,t,r){return _xeUtils.default.set(e,t.property,r)},isColumn:function(e){return e instanceof ColumnInfo},getColumnConfig:function(e,t,r){return UtilTools.isColumn(t)?t:new ColumnInfo(e,t,r)},assemColumn:function(e){var t=e.$el,r=e.$xetable,o=e.$xecolumn,l=e.columnConfig,n=o?o.columnConfig:null;l.slots=e.$scopedSlots,n?("development"===process.env.NODE_ENV&&("vxe-table-column"===o.$options._componentTag?UtilTools.error("vxe.error.groupTag",["<vxe-table-colgroup title=".concat(o.title," ...>"),"<vxe-table-column title=".concat(o.title," ...>")]):"vxe-column"===o.$options._componentTag&&UtilTools.warn("vxe.error.groupTag",["<vxe-colgroup title=".concat(o.title," ...>"),"<vxe-column title=".concat(o.title," ...>")])),n.children||(n.children=[]),n.children.splice([].indexOf.call(o.$el.children,t),0,l)):r.staticColumns.splice([].indexOf.call(r.$refs.hideColumn.children,t),0,l)},destroyColumn:function(e){var t=e.$xetable,r=e.columnConfig,t=_xeUtils.default.findTree(t.staticColumns,function(e){return e===r});t&&t.items.splice(t.index,1)},hasChildrenList:function(e){return e&&e.children&&0<e.children.length},parseFile:function(e){var t=e.name,r=_xeUtils.default.lastIndexOf(t,"."),e=t.substring(r+1,t.length);return{filename:t.substring(0,r),type:e}},isNumVal:function(e){return!isNaN(parseFloat(""+e))}},_default=exports.UtilTools=UtilTools;exports.default=_default;
|
|
@@ -57,7 +57,7 @@ var _default = {
|
|
|
57
57
|
// storage: false,
|
|
58
58
|
// checkMethod () {}
|
|
59
59
|
// },
|
|
60
|
-
// rowId: '
|
|
60
|
+
// rowId: '_X_ID', // 行数据的唯一主键字段名
|
|
61
61
|
sortConfig: {
|
|
62
62
|
// remote: false,
|
|
63
63
|
// trigger: 'default',
|
|
@@ -75,6 +75,7 @@ var _default = {
|
|
|
75
75
|
parentField: 'parentId',
|
|
76
76
|
children: 'children',
|
|
77
77
|
hasChild: 'hasChild',
|
|
78
|
+
mapChildren: '_X_CHILD',
|
|
78
79
|
indent: 20,
|
|
79
80
|
showIcon: true
|
|
80
81
|
},
|
|
@@ -99,6 +100,9 @@ var _default = {
|
|
|
99
100
|
mouseConfig: {
|
|
100
101
|
extension: true
|
|
101
102
|
},
|
|
103
|
+
keyboardConfig: {
|
|
104
|
+
isEsc: true
|
|
105
|
+
},
|
|
102
106
|
areaConfig: {
|
|
103
107
|
selectCellByHeader: true
|
|
104
108
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var iconPrefix="vxe-icon--",_default={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},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}};exports.default=_default;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var iconPrefix="vxe-icon--",_default={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",mapChildren:"_X_CHILD",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}};exports.default=_default;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vxe-table",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.7-beta.2",
|
|
4
4
|
"description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"serve": "vue-cli-service serve",
|
|
@@ -66,12 +66,12 @@
|
|
|
66
66
|
"vuex": "^3.4.0",
|
|
67
67
|
"xe-ajax": "^4.0.5",
|
|
68
68
|
"xe-clipboard": "^1.10.1",
|
|
69
|
-
"xe-utils": "^3.4.
|
|
69
|
+
"xe-utils": "^3.4.2",
|
|
70
70
|
"xlsx": "^0.17.0"
|
|
71
71
|
},
|
|
72
72
|
"peerDependencies": {
|
|
73
73
|
"vue": "^2.6.0",
|
|
74
|
-
"xe-utils": "^3.2
|
|
74
|
+
"xe-utils": "^3.4.2"
|
|
75
75
|
},
|
|
76
76
|
"vetur": {
|
|
77
77
|
"tags": "helper/vetur/tags.json",
|
|
@@ -264,38 +264,38 @@ export default {
|
|
|
264
264
|
const panelStyle = {
|
|
265
265
|
zIndex: panelIndex
|
|
266
266
|
}
|
|
267
|
-
const {
|
|
267
|
+
const { top, left, boundingTop, visibleHeight, visibleWidth } = DomTools.getAbsolutePos(targetElem)
|
|
268
268
|
let panelPlacement = 'bottom'
|
|
269
269
|
if (transfer) {
|
|
270
|
-
let
|
|
271
|
-
let
|
|
270
|
+
let btnLeft = left + targetWidth - panelWidth
|
|
271
|
+
let btnTop = top + targetHeight
|
|
272
272
|
if (placement === 'top') {
|
|
273
273
|
panelPlacement = 'top'
|
|
274
|
-
|
|
274
|
+
btnTop = top - panelHeight
|
|
275
275
|
} else if (!placement) {
|
|
276
276
|
// 如果下面不够放,则向上
|
|
277
|
-
if (
|
|
277
|
+
if (boundingTop + targetHeight + panelHeight + marginSize > visibleHeight) {
|
|
278
278
|
panelPlacement = 'top'
|
|
279
|
-
|
|
279
|
+
btnTop = top - panelHeight
|
|
280
280
|
}
|
|
281
281
|
// 如果上面不够放,则向下(优先)
|
|
282
|
-
if (
|
|
282
|
+
if (btnTop < marginSize) {
|
|
283
283
|
panelPlacement = 'bottom'
|
|
284
|
-
|
|
284
|
+
btnTop = top + targetHeight
|
|
285
285
|
}
|
|
286
286
|
}
|
|
287
287
|
// 如果溢出右边
|
|
288
|
-
if (
|
|
289
|
-
|
|
288
|
+
if (btnLeft + panelWidth + marginSize > visibleWidth) {
|
|
289
|
+
btnLeft -= btnLeft + panelWidth + marginSize - visibleWidth
|
|
290
290
|
}
|
|
291
291
|
// 如果溢出左边
|
|
292
|
-
if (
|
|
293
|
-
|
|
292
|
+
if (btnLeft < marginSize) {
|
|
293
|
+
btnLeft = marginSize
|
|
294
294
|
}
|
|
295
295
|
Object.assign(panelStyle, {
|
|
296
|
-
left: `${
|
|
296
|
+
left: `${btnLeft}px`,
|
|
297
297
|
right: 'auto',
|
|
298
|
-
top: `${
|
|
298
|
+
top: `${btnTop}px`,
|
|
299
299
|
minWidth: `${targetWidth}px`
|
|
300
300
|
})
|
|
301
301
|
} else {
|
|
@@ -6,12 +6,12 @@ import { browse } from '../../tools/src/dom'
|
|
|
6
6
|
const { getRowid } = UtilTools
|
|
7
7
|
|
|
8
8
|
function insertTreeRow (_vm, newRecords, isAppend) {
|
|
9
|
-
const {
|
|
9
|
+
const { tableFullTreeData, afterFullData, fullDataRowIdData, fullAllDataRowIdData, treeOpts } = _vm
|
|
10
10
|
const funcName = isAppend ? 'push' : 'unshift'
|
|
11
11
|
newRecords.forEach(item => {
|
|
12
12
|
const parentRowId = item[treeOpts.parentField]
|
|
13
13
|
const rowid = getRowid(_vm, item)
|
|
14
|
-
const matchObj = parentRowId ? XEUtils.findTree(
|
|
14
|
+
const matchObj = parentRowId ? XEUtils.findTree(tableFullTreeData, item => parentRowId === item[treeOpts.rowField], treeOpts) : null
|
|
15
15
|
if (matchObj) {
|
|
16
16
|
const { item: parentRow } = matchObj
|
|
17
17
|
const parentRest = fullAllDataRowIdData[getRowid(_vm, parentRow)]
|
|
@@ -21,7 +21,7 @@ function insertTreeRow (_vm, newRecords, isAppend) {
|
|
|
21
21
|
parentChilds = parentRow[treeOpts.children] = []
|
|
22
22
|
}
|
|
23
23
|
parentChilds[funcName](item)
|
|
24
|
-
const rest = { row: item, rowid, index: -1, _index: -1, $index: -1, items: parentChilds, parent, level: parentLevel + 1 }
|
|
24
|
+
const rest = { row: item, rowid, seq: -1, index: -1, _index: -1, $index: -1, items: parentChilds, parent, level: parentLevel + 1 }
|
|
25
25
|
fullDataRowIdData[rowid] = rest
|
|
26
26
|
fullAllDataRowIdData[rowid] = rest
|
|
27
27
|
} else {
|
|
@@ -31,13 +31,12 @@ function insertTreeRow (_vm, newRecords, isAppend) {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
afterFullData[funcName](item)
|
|
34
|
-
|
|
35
|
-
const rest = { row: item, rowid, index: -1, _index: -1, $index: -1, items:
|
|
34
|
+
tableFullTreeData[funcName](item)
|
|
35
|
+
const rest = { row: item, rowid, seq: -1, index: -1, _index: -1, $index: -1, items: tableFullTreeData, parent: null, level: 0 }
|
|
36
36
|
fullDataRowIdData[rowid] = rest
|
|
37
37
|
fullAllDataRowIdData[rowid] = rest
|
|
38
38
|
}
|
|
39
39
|
})
|
|
40
|
-
_vm.updateVirtualTreeData()
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
export default {
|
|
@@ -59,7 +58,7 @@ export default {
|
|
|
59
58
|
* @param {Row} row 指定行
|
|
60
59
|
*/
|
|
61
60
|
_insertAt (records, row) {
|
|
62
|
-
const {
|
|
61
|
+
const { tableFullTreeData, mergeList, afterFullData, editStore, tableFullData, treeConfig, fullDataRowIdData, fullAllDataRowIdData, treeOpts } = this
|
|
63
62
|
const { transform } = treeOpts
|
|
64
63
|
if (!XEUtils.isArray(records)) {
|
|
65
64
|
records = [records]
|
|
@@ -99,7 +98,7 @@ export default {
|
|
|
99
98
|
} else {
|
|
100
99
|
// 如果为虚拟树
|
|
101
100
|
if (treeConfig && transform) {
|
|
102
|
-
const matchObj = XEUtils.findTree(
|
|
101
|
+
const matchObj = XEUtils.findTree(tableFullTreeData, item => row[treeOpts.rowField] === item[treeOpts.rowField], treeOpts)
|
|
103
102
|
if (matchObj) {
|
|
104
103
|
const { parent: parentRow } = matchObj
|
|
105
104
|
const parentChilds = matchObj.items
|
|
@@ -118,11 +117,10 @@ export default {
|
|
|
118
117
|
item[treeOpts.parentField] = parentRow[treeOpts.rowField]
|
|
119
118
|
}
|
|
120
119
|
parentChilds.splice(matchObj.index + i, 0, item)
|
|
121
|
-
const rest = { row: item, rowid, index: -1, _index: -1, $index: -1, items: parentChilds, parent: parentRow, level: parentLevel + 1 }
|
|
120
|
+
const rest = { row: item, rowid, seq: -1, index: -1, _index: -1, $index: -1, items: parentChilds, parent: parentRow, level: parentLevel + 1 }
|
|
122
121
|
fullDataRowIdData[rowid] = rest
|
|
123
122
|
fullAllDataRowIdData[rowid] = rest
|
|
124
123
|
})
|
|
125
|
-
this.updateVirtualTreeData()
|
|
126
124
|
} else {
|
|
127
125
|
if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
|
|
128
126
|
UtilTools.warn('vxe.error.unableInsert')
|
|
@@ -152,12 +150,12 @@ export default {
|
|
|
152
150
|
}
|
|
153
151
|
}
|
|
154
152
|
editStore.insertList.unshift(...newRecords)
|
|
155
|
-
this.
|
|
156
|
-
this.handleTableData(transform)
|
|
153
|
+
this.handleTableData(treeConfig && treeOpts.transform)
|
|
157
154
|
this.updateFooter()
|
|
158
155
|
this.cacheRowMap()
|
|
156
|
+
this.updateAfterDataIndex()
|
|
159
157
|
this.checkSelectionStatus()
|
|
160
|
-
if (scrollYLoad) {
|
|
158
|
+
if (this.scrollYLoad) {
|
|
161
159
|
this.updateScrollYSpace()
|
|
162
160
|
}
|
|
163
161
|
return this.$nextTick().then(() => {
|
|
@@ -177,7 +175,7 @@ export default {
|
|
|
177
175
|
* 如果为空则删除所有
|
|
178
176
|
*/
|
|
179
177
|
_remove (rows) {
|
|
180
|
-
const { afterFullData, tableFullData,
|
|
178
|
+
const { afterFullData, tableFullData, tableFullTreeData, treeConfig, mergeList, editStore, checkboxOpts, selection, isInsertByRow, treeOpts } = this
|
|
181
179
|
const { transform } = treeOpts
|
|
182
180
|
const { actived, removeList, insertList } = editStore
|
|
183
181
|
const { checkField: property } = checkboxOpts
|
|
@@ -213,7 +211,7 @@ export default {
|
|
|
213
211
|
if (treeConfig && transform) {
|
|
214
212
|
rows.forEach((row) => {
|
|
215
213
|
const rowid = getRowid(this, row)
|
|
216
|
-
const matchObj = XEUtils.findTree(
|
|
214
|
+
const matchObj = XEUtils.findTree(tableFullTreeData, item => rowid === getRowid(this, item), treeOpts)
|
|
217
215
|
if (matchObj) {
|
|
218
216
|
const rItems = matchObj.items.splice(matchObj.index, 1)
|
|
219
217
|
rest.push(rItems[0])
|
|
@@ -222,7 +220,6 @@ export default {
|
|
|
222
220
|
if (afIndex > -1) {
|
|
223
221
|
afterFullData.splice(afIndex, 1)
|
|
224
222
|
}
|
|
225
|
-
this.updateVirtualTreeData()
|
|
226
223
|
})
|
|
227
224
|
} else {
|
|
228
225
|
rows.forEach(row => {
|
|
@@ -258,12 +255,12 @@ export default {
|
|
|
258
255
|
insertList.splice(iIndex, 1)
|
|
259
256
|
}
|
|
260
257
|
})
|
|
261
|
-
this.
|
|
262
|
-
this.handleTableData(transform)
|
|
258
|
+
this.handleTableData(treeConfig && treeOpts.transform)
|
|
263
259
|
this.updateFooter()
|
|
264
260
|
this.cacheRowMap()
|
|
261
|
+
this.updateAfterDataIndex()
|
|
265
262
|
this.checkSelectionStatus()
|
|
266
|
-
if (scrollYLoad) {
|
|
263
|
+
if (this.scrollYLoad) {
|
|
267
264
|
this.updateScrollYSpace()
|
|
268
265
|
}
|
|
269
266
|
return this.$nextTick().then(() => {
|
|
@@ -316,7 +313,7 @@ export default {
|
|
|
316
313
|
* 获取新增的临时数据
|
|
317
314
|
*/
|
|
318
315
|
_getInsertRecords () {
|
|
319
|
-
const { treeConfig,
|
|
316
|
+
const { treeConfig, tableFullTreeData, tableFullData, treeOpts } = this
|
|
320
317
|
const insertList = this.editStore.insertList
|
|
321
318
|
const insertRecords = []
|
|
322
319
|
if (insertList.length) {
|
|
@@ -324,7 +321,7 @@ export default {
|
|
|
324
321
|
if (treeConfig && treeOpts.transform) {
|
|
325
322
|
insertList.forEach(row => {
|
|
326
323
|
const rowid = getRowid(this, row)
|
|
327
|
-
const matchObj = XEUtils.findTree(
|
|
324
|
+
const matchObj = XEUtils.findTree(tableFullTreeData, item => rowid === getRowid(this, item), treeOpts)
|
|
328
325
|
if (matchObj) {
|
|
329
326
|
insertRecords.push(row)
|
|
330
327
|
}
|
|
@@ -2,7 +2,7 @@ import XEUtils from 'xe-utils'
|
|
|
2
2
|
import GlobalConfig from '../../v-x-e-table/src/conf'
|
|
3
3
|
import VXETable from '../../v-x-e-table'
|
|
4
4
|
import { UtilTools } from '../../tools'
|
|
5
|
-
import { mergeBodyMethod } from '../../table/src/util'
|
|
5
|
+
import { mergeBodyMethod, toTreePathSeq } from '../../table/src/util'
|
|
6
6
|
import { browse } from '../../tools/src/dom'
|
|
7
7
|
|
|
8
8
|
const { formatText } = UtilTools
|
|
@@ -40,10 +40,16 @@ function hasTreeChildren ($xetable, row) {
|
|
|
40
40
|
return row[treeOpts.children] && row[treeOpts.children].length > 0
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
function getSeq ($xetable, row, rowIndex, column, columnIndex) {
|
|
43
|
+
function getSeq ($xetable, row, rowIndex, column, columnIndex, path) {
|
|
44
44
|
const seqOpts = $xetable.seqOpts
|
|
45
45
|
const seqMethod = seqOpts.seqMethod || column.seqMethod
|
|
46
|
-
|
|
46
|
+
if (seqMethod) {
|
|
47
|
+
return seqMethod({ row, rowIndex, column, columnIndex })
|
|
48
|
+
}
|
|
49
|
+
if (path) {
|
|
50
|
+
return toTreePathSeq(path)
|
|
51
|
+
}
|
|
52
|
+
return seqOpts.startIndex + rowIndex + 1
|
|
47
53
|
}
|
|
48
54
|
|
|
49
55
|
function defaultFilterExportColumn (column) {
|
|
@@ -73,10 +79,11 @@ function getLabelData ($xetable, opts, columns, datas) {
|
|
|
73
79
|
if (treeConfig) {
|
|
74
80
|
// 如果是树表格只允许导出数据源
|
|
75
81
|
const rest = []
|
|
82
|
+
const expandMaps = new Map()
|
|
76
83
|
XEUtils.eachTree(datas, (item, rowIndex, items, path, parent, nodes) => {
|
|
77
84
|
const row = item._row || item
|
|
78
85
|
const parentRow = parent && parent._row ? parent._row : parent
|
|
79
|
-
if ((isAllExpand || !parentRow || $xetable.isTreeExpandByRow(parentRow))) {
|
|
86
|
+
if ((isAllExpand || !parentRow || (expandMaps.has(parentRow) && $xetable.isTreeExpandByRow(parentRow)))) {
|
|
80
87
|
const hasRowChild = hasTreeChildren($xetable, row)
|
|
81
88
|
const item = {
|
|
82
89
|
_row: row,
|
|
@@ -99,7 +106,7 @@ function getLabelData ($xetable, opts, columns, datas) {
|
|
|
99
106
|
} else {
|
|
100
107
|
switch (column.type) {
|
|
101
108
|
case 'seq':
|
|
102
|
-
cellValue = getSeq($xetable, row, rowIndex, column, columnIndex)
|
|
109
|
+
cellValue = getSeq($xetable, row, rowIndex, column, columnIndex, path)
|
|
103
110
|
break
|
|
104
111
|
case 'checkbox':
|
|
105
112
|
cellValue = toBooleanValue($xetable.isCheckedByCheckboxRow(row))
|
|
@@ -130,6 +137,7 @@ function getLabelData ($xetable, opts, columns, datas) {
|
|
|
130
137
|
}
|
|
131
138
|
item[column.id] = XEUtils.toValueString(cellValue)
|
|
132
139
|
})
|
|
140
|
+
expandMaps.set(row, 1)
|
|
133
141
|
rest.push(Object.assign(item, row))
|
|
134
142
|
}
|
|
135
143
|
}, treeOpts)
|
|
@@ -154,7 +162,7 @@ function getLabelData ($xetable, opts, columns, datas) {
|
|
|
154
162
|
} else {
|
|
155
163
|
switch (column.type) {
|
|
156
164
|
case 'seq':
|
|
157
|
-
cellValue = getSeq($xetable, row, rowIndex, column, columnIndex)
|
|
165
|
+
cellValue = getSeq($xetable, row, rowIndex, column, columnIndex, null)
|
|
158
166
|
break
|
|
159
167
|
case 'checkbox':
|
|
160
168
|
cellValue = toBooleanValue($xetable.isCheckedByCheckboxRow(row))
|
|
@@ -227,6 +235,9 @@ function getFooterData (opts, footerTableData) {
|
|
|
227
235
|
|
|
228
236
|
function getCsvCellTypeLabel (column, cellValue) {
|
|
229
237
|
if (cellValue) {
|
|
238
|
+
if (column.type === 'seq') {
|
|
239
|
+
return `\t${cellValue}`
|
|
240
|
+
}
|
|
230
241
|
switch (column.cellType) {
|
|
231
242
|
case 'string':
|
|
232
243
|
if (!isNaN(cellValue)) {
|
|
@@ -5,6 +5,25 @@ import VXETable from '../../v-x-e-table'
|
|
|
5
5
|
|
|
6
6
|
export default {
|
|
7
7
|
methods: {
|
|
8
|
+
/**
|
|
9
|
+
* 手动弹出筛选面板
|
|
10
|
+
* @param column
|
|
11
|
+
*/
|
|
12
|
+
_openFilter (fieldOrColumn) {
|
|
13
|
+
const column = handleFieldOrColumn(this, fieldOrColumn)
|
|
14
|
+
if (column && column.filters) {
|
|
15
|
+
const { elemStore } = this
|
|
16
|
+
const { fixed } = column
|
|
17
|
+
return this.scrollToColumn(column).then(() => {
|
|
18
|
+
const headerWrapperElem = elemStore[`${fixed || 'main'}-header-wrapper`] || elemStore['main-header-wrapper']
|
|
19
|
+
if (headerWrapperElem) {
|
|
20
|
+
const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-filter--btn`)
|
|
21
|
+
DomTools.triggerEvent(filterBtnElem, 'click')
|
|
22
|
+
}
|
|
23
|
+
})
|
|
24
|
+
}
|
|
25
|
+
return this.$nextTick()
|
|
26
|
+
},
|
|
8
27
|
/**
|
|
9
28
|
* 修改筛选条件列表
|
|
10
29
|
* @param {ColumnInfo} fieldOrColumn 列
|
|
@@ -85,7 +104,7 @@ export default {
|
|
|
85
104
|
// 判断面板不能大于表格高度
|
|
86
105
|
let maxHeight = null
|
|
87
106
|
if (filterHeight >= bodyElem.clientHeight) {
|
|
88
|
-
maxHeight = Math.max(
|
|
107
|
+
maxHeight = Math.max(60, bodyElem.clientHeight - (filterFootElem ? filterFootElem.offsetHeight : 0) - (filterHeadElem ? filterHeadElem.offsetHeight : 0))
|
|
89
108
|
}
|
|
90
109
|
if (column.fixed === 'left') {
|
|
91
110
|
left = targetElem.offsetLeft + targetElem.offsetParent.offsetLeft - centerWidth
|
|
@@ -670,7 +670,11 @@ export default {
|
|
|
670
670
|
body.insertRecords = insertRecords.filter(row => pendingRecords.indexOf(row) === -1)
|
|
671
671
|
}
|
|
672
672
|
// 只校验新增和修改的数据
|
|
673
|
-
return this.validate(body.insertRecords.concat(updateRecords)).then(() => {
|
|
673
|
+
return this.validate(body.insertRecords.concat(updateRecords)).then((errMap) => {
|
|
674
|
+
if (errMap) {
|
|
675
|
+
// 如果校验不通过
|
|
676
|
+
return
|
|
677
|
+
}
|
|
674
678
|
if (body.insertRecords.length || removeRecords.length || updateRecords.length || body.pendingRecords.length) {
|
|
675
679
|
this.tableLoading = true
|
|
676
680
|
return Promise.resolve((beforeSave || ajaxMethods)(...applyArgs))
|
|
@@ -715,7 +719,7 @@ export default {
|
|
|
715
719
|
VXETable.modal.message({ id: code, content: GlobalConfig.i18n('vxe.grid.dataUnchanged'), status: 'info' })
|
|
716
720
|
}
|
|
717
721
|
}
|
|
718
|
-
})
|
|
722
|
+
})
|
|
719
723
|
} else {
|
|
720
724
|
if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
|
|
721
725
|
UtilTools.error('vxe.error.notFunc', ['proxy-config.ajax.save'])
|
|
@@ -40,7 +40,7 @@ function renderLine (h, _vm, $xetable, rowLevel, items, params) {
|
|
|
40
40
|
/**
|
|
41
41
|
* 渲染列
|
|
42
42
|
*/
|
|
43
|
-
function renderColumn (h, _vm, $xetable,
|
|
43
|
+
function renderColumn (h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, columns, items) {
|
|
44
44
|
const {
|
|
45
45
|
$listeners: tableListeners,
|
|
46
46
|
afterFullData,
|
|
@@ -98,7 +98,7 @@ function renderColumn (h, _vm, $xetable, $seq, seq, rowid, fixedType, rowLevel,
|
|
|
98
98
|
const bindMouseenter = tableListeners['cell-mouseenter']
|
|
99
99
|
const bindMouseleave = tableListeners['cell-mouseleave']
|
|
100
100
|
const triggerDblclick = (editRender && editConfig && editOpts.trigger === 'dblclick')
|
|
101
|
-
const params = { $table: $xetable,
|
|
101
|
+
const params = { $table: $xetable, seq, rowid, row, rowIndex, $rowIndex, _rowIndex, column, columnIndex, $columnIndex, _columnIndex, fixed: fixedType, type: renderType, isHidden: fixedHiddenColumn, level: rowLevel, visibleData: afterFullData, data: tableData, items }
|
|
102
102
|
// 虚拟滚动不支持动态高度
|
|
103
103
|
if ((scrollXLoad || scrollYLoad) && !hasEllipsis) {
|
|
104
104
|
showEllipsis = hasEllipsis = true
|
|
@@ -266,7 +266,7 @@ function renderColumn (h, _vm, $xetable, $seq, seq, rowid, fixedType, rowLevel,
|
|
|
266
266
|
}, tdVNs)
|
|
267
267
|
}
|
|
268
268
|
|
|
269
|
-
function renderRows (h, _vm, $xetable,
|
|
269
|
+
function renderRows (h, _vm, $xetable, fixedType, tableData, tableColumn) {
|
|
270
270
|
const {
|
|
271
271
|
stripe,
|
|
272
272
|
rowKey,
|
|
@@ -280,24 +280,19 @@ function renderRows (h, _vm, $xetable, $seq, fixedType, tableData, tableColumn)
|
|
|
280
280
|
editOpts,
|
|
281
281
|
treeExpandeds,
|
|
282
282
|
scrollYLoad,
|
|
283
|
-
scrollYStore,
|
|
284
283
|
editStore,
|
|
285
284
|
rowExpandeds,
|
|
286
285
|
radioOpts,
|
|
287
286
|
checkboxOpts,
|
|
288
287
|
expandColumn,
|
|
289
288
|
hasFixedColumn,
|
|
290
|
-
|
|
289
|
+
fullDataRowIdData,
|
|
291
290
|
rowOpts
|
|
292
291
|
} = $xetable
|
|
293
292
|
const rows = []
|
|
294
293
|
tableData.forEach((row, $rowIndex) => {
|
|
295
294
|
const trOn = {}
|
|
296
295
|
let rowIndex = $rowIndex
|
|
297
|
-
let seq = rowIndex + 1
|
|
298
|
-
if (scrollYLoad) {
|
|
299
|
-
seq += scrollYStore.startIndex
|
|
300
|
-
}
|
|
301
296
|
const _rowIndex = $xetable.getVTRowIndex(row)
|
|
302
297
|
// 确保任何情况下 rowIndex 都精准指向真实 data 索引
|
|
303
298
|
rowIndex = $xetable.getRowIndex(row)
|
|
@@ -317,9 +312,10 @@ function renderRows (h, _vm, $xetable, $seq, fixedType, tableData, tableColumn)
|
|
|
317
312
|
}
|
|
318
313
|
}
|
|
319
314
|
const rowid = UtilTools.getRowid($xetable, row)
|
|
320
|
-
const rest =
|
|
315
|
+
const rest = fullDataRowIdData[rowid]
|
|
321
316
|
const rowLevel = rest ? rest.level : 0
|
|
322
|
-
const
|
|
317
|
+
const seq = rest ? rest.seq : -1
|
|
318
|
+
const params = { $table: $xetable, seq, rowid, fixed: fixedType, type: renderType, level: rowLevel, row, rowIndex, $rowIndex }
|
|
323
319
|
let isNewRow = false
|
|
324
320
|
if (editConfig) {
|
|
325
321
|
isNewRow = editStore.insertList.indexOf(row) > -1
|
|
@@ -340,7 +336,7 @@ function renderRows (h, _vm, $xetable, $seq, fixedType, tableData, tableColumn)
|
|
|
340
336
|
key: rowKey || treeConfig ? rowid : $rowIndex,
|
|
341
337
|
on: trOn
|
|
342
338
|
}, tableColumn.map((column, $columnIndex) => {
|
|
343
|
-
return renderColumn(h, _vm, $xetable,
|
|
339
|
+
return renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, tableColumn, tableData)
|
|
344
340
|
}))
|
|
345
341
|
)
|
|
346
342
|
// 如果行被展开了
|
|
@@ -353,7 +349,7 @@ function renderRows (h, _vm, $xetable, $seq, fixedType, tableData, tableColumn)
|
|
|
353
349
|
}
|
|
354
350
|
const { showOverflow } = expandColumn
|
|
355
351
|
const hasEllipsis = (XEUtils.isUndefined(showOverflow) || XEUtils.isNull(showOverflow)) ? allColumnOverflow : showOverflow
|
|
356
|
-
const expandParams = { $table: $xetable,
|
|
352
|
+
const expandParams = { $table: $xetable, seq, column: expandColumn, fixed: fixedType, type: renderType, level: rowLevel, row, rowIndex, $rowIndex }
|
|
357
353
|
rows.push(
|
|
358
354
|
h('tr', {
|
|
359
355
|
class: 'vxe-body--expanded-row',
|
|
@@ -381,10 +377,10 @@ function renderRows (h, _vm, $xetable, $seq, fixedType, tableData, tableColumn)
|
|
|
381
377
|
)
|
|
382
378
|
}
|
|
383
379
|
// 如果是树形表格
|
|
384
|
-
if (treeConfig && !scrollYLoad && treeExpandeds.length) {
|
|
380
|
+
if (treeConfig && !scrollYLoad && !treeOpts.transform && treeExpandeds.length) {
|
|
385
381
|
const rowChildren = row[treeOpts.children]
|
|
386
382
|
if (rowChildren && rowChildren.length && treeExpandeds.indexOf(row) > -1) {
|
|
387
|
-
rows.push(...renderRows(h, _vm, $xetable,
|
|
383
|
+
rows.push(...renderRows(h, _vm, $xetable, fixedType, rowChildren, tableColumn))
|
|
388
384
|
}
|
|
389
385
|
}
|
|
390
386
|
})
|
|
@@ -529,7 +525,7 @@ export default {
|
|
|
529
525
|
*/
|
|
530
526
|
h('tbody', {
|
|
531
527
|
ref: 'tbody'
|
|
532
|
-
}, renderRows(h, this, $xetable,
|
|
528
|
+
}, renderRows(h, this, $xetable, fixedType, tableData, tableColumn))
|
|
533
529
|
]),
|
|
534
530
|
h('div', {
|
|
535
531
|
class: 'vxe-table--checkbox-range'
|
|
@@ -99,16 +99,16 @@ export const Cell = {
|
|
|
99
99
|
}
|
|
100
100
|
switch (type) {
|
|
101
101
|
case 'seq':
|
|
102
|
-
renMaps.renderHeader = this.
|
|
103
|
-
renMaps.renderCell = treeNode ? this.renderTreeIndexCell : this.
|
|
102
|
+
renMaps.renderHeader = this.renderSeqHeader
|
|
103
|
+
renMaps.renderCell = treeNode ? this.renderTreeIndexCell : this.renderSeqCell
|
|
104
104
|
break
|
|
105
105
|
case 'radio':
|
|
106
106
|
renMaps.renderHeader = this.renderRadioHeader
|
|
107
107
|
renMaps.renderCell = treeNode ? this.renderTreeRadioCell : this.renderRadioCell
|
|
108
108
|
break
|
|
109
109
|
case 'checkbox':
|
|
110
|
-
renMaps.renderHeader = this.
|
|
111
|
-
renMaps.renderCell = checkboxOpts.checkField ? (treeNode ? this.renderTreeSelectionCellByProp : this.
|
|
110
|
+
renMaps.renderHeader = this.renderCheckboxHeader
|
|
111
|
+
renMaps.renderCell = checkboxOpts.checkField ? (treeNode ? this.renderTreeSelectionCellByProp : this.renderCheckboxCellByProp) : (treeNode ? this.renderTreeSelectionCell : this.renderCheckboxCell)
|
|
112
112
|
break
|
|
113
113
|
case 'expand':
|
|
114
114
|
renMaps.renderCell = this.renderExpandCell
|
|
@@ -253,24 +253,24 @@ export const Cell = {
|
|
|
253
253
|
/**
|
|
254
254
|
* 索引
|
|
255
255
|
*/
|
|
256
|
-
|
|
256
|
+
renderSeqHeader (h, params) {
|
|
257
257
|
const { $table, column } = params
|
|
258
258
|
const { slots } = column
|
|
259
259
|
return renderTitleContent(h, params, slots && slots.header ? $table.callSlot(slots.header, params, h) : UtilTools.formatText(column.getTitle(), 1))
|
|
260
260
|
},
|
|
261
|
-
|
|
261
|
+
renderSeqCell (h, params) {
|
|
262
262
|
const { $table, column } = params
|
|
263
|
-
const { seqOpts } = $table
|
|
263
|
+
const { treeConfig, seqOpts } = $table
|
|
264
264
|
const { slots } = column
|
|
265
265
|
if (slots && slots.default) {
|
|
266
266
|
return $table.callSlot(slots.default, params, h)
|
|
267
267
|
}
|
|
268
|
-
const {
|
|
268
|
+
const { seq } = params
|
|
269
269
|
const seqMethod = seqOpts.seqMethod
|
|
270
|
-
return [UtilTools.formatText(seqMethod ? seqMethod(params) :
|
|
270
|
+
return [UtilTools.formatText(seqMethod ? seqMethod(params) : treeConfig ? seq : (seqOpts.startIndex || 0) + seq, 1)]
|
|
271
271
|
},
|
|
272
272
|
renderTreeIndexCell (h, params) {
|
|
273
|
-
return Cell.renderTreeIcon(h, params, Cell.
|
|
273
|
+
return Cell.renderTreeIcon(h, params, Cell.renderSeqCell(h, params))
|
|
274
274
|
},
|
|
275
275
|
|
|
276
276
|
/**
|
|
@@ -350,7 +350,7 @@ export const Cell = {
|
|
|
350
350
|
/**
|
|
351
351
|
* 多选
|
|
352
352
|
*/
|
|
353
|
-
|
|
353
|
+
renderCheckboxHeader (h, params) {
|
|
354
354
|
const { $table, column, isHidden } = params
|
|
355
355
|
const { isIndeterminate: isAllCheckboxIndeterminate, isAllCheckboxDisabled } = $table
|
|
356
356
|
const { slots } = column
|
|
@@ -409,7 +409,7 @@ export const Cell = {
|
|
|
409
409
|
] : []))
|
|
410
410
|
])
|
|
411
411
|
},
|
|
412
|
-
|
|
412
|
+
renderCheckboxCell (h, params) {
|
|
413
413
|
const { $table, row, column, isHidden } = params
|
|
414
414
|
const { treeConfig, treeIndeterminates } = $table
|
|
415
415
|
const { labelField, checkMethod, visibleMethod } = $table.checkboxOpts
|
|
@@ -474,9 +474,9 @@ export const Cell = {
|
|
|
474
474
|
]
|
|
475
475
|
},
|
|
476
476
|
renderTreeSelectionCell (h, params) {
|
|
477
|
-
return Cell.renderTreeIcon(h, params, Cell.
|
|
477
|
+
return Cell.renderTreeIcon(h, params, Cell.renderCheckboxCell(h, params))
|
|
478
478
|
},
|
|
479
|
-
|
|
479
|
+
renderCheckboxCellByProp (h, params) {
|
|
480
480
|
const { $table, row, column, isHidden } = params
|
|
481
481
|
const { treeConfig, treeIndeterminates } = $table
|
|
482
482
|
const { labelField, checkField: property, halfField, checkMethod, visibleMethod } = $table.checkboxOpts
|
|
@@ -541,7 +541,7 @@ export const Cell = {
|
|
|
541
541
|
]
|
|
542
542
|
},
|
|
543
543
|
renderTreeSelectionCellByProp (h, params) {
|
|
544
|
-
return Cell.renderTreeIcon(h, params, Cell.
|
|
544
|
+
return Cell.renderTreeIcon(h, params, Cell.renderCheckboxCellByProp(h, params))
|
|
545
545
|
},
|
|
546
546
|
|
|
547
547
|
/**
|