vxe-table 4.13.29 → 4.13.30
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/grid/src/grid.js +25 -26
- package/es/style.css +1 -1
- package/es/table/module/edit/hook.js +11 -27
- package/es/table/module/export/hook.js +15 -20
- package/es/table/module/validator/hook.js +104 -44
- package/es/table/src/table.js +7 -21
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +25 -26
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +166 -131
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/edit/hook.js +11 -27
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/module/export/hook.js +15 -20
- package/lib/table/module/export/hook.min.js +1 -1
- package/lib/table/module/validator/hook.js +106 -47
- package/lib/table/module/validator/hook.min.js +1 -1
- package/lib/table/src/table.js +7 -9
- package/lib/table/src/table.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +1 -1
- package/packages/grid/src/grid.ts +25 -27
- package/packages/table/module/edit/hook.ts +11 -27
- package/packages/table/module/export/hook.ts +17 -22
- package/packages/table/module/validator/hook.ts +106 -43
- package/packages/table/src/table.ts +7 -21
- /package/es/{iconfont.1747286444797.ttf → iconfont.1747357348072.ttf} +0 -0
- /package/es/{iconfont.1747286444797.woff → iconfont.1747357348072.woff} +0 -0
- /package/es/{iconfont.1747286444797.woff2 → iconfont.1747357348072.woff2} +0 -0
- /package/lib/{iconfont.1747286444797.ttf → iconfont.1747357348072.ttf} +0 -0
- /package/lib/{iconfont.1747286444797.woff → iconfont.1747357348072.woff} +0 -0
- /package/lib/{iconfont.1747286444797.woff2 → iconfont.1747357348072.woff2} +0 -0
package/lib/index.umd.js
CHANGED
|
@@ -3138,7 +3138,7 @@ function eqEmptyValue(cellValue) {
|
|
|
3138
3138
|
;// ./packages/ui/index.ts
|
|
3139
3139
|
|
|
3140
3140
|
|
|
3141
|
-
const version = "4.13.
|
|
3141
|
+
const version = "4.13.30";
|
|
3142
3142
|
core_.VxeUI.version = version;
|
|
3143
3143
|
core_.VxeUI.tableVersion = version;
|
|
3144
3144
|
core_.VxeUI.setConfig({
|
|
@@ -3599,7 +3599,7 @@ var esnext_iterator_some = __webpack_require__(7550);
|
|
|
3599
3599
|
const {
|
|
3600
3600
|
log: log_log
|
|
3601
3601
|
} = core_.VxeUI;
|
|
3602
|
-
const log_version = `table v${"4.13.
|
|
3602
|
+
const log_version = `table v${"4.13.30"}`;
|
|
3603
3603
|
const warnLog = log_log.create('warn', log_version);
|
|
3604
3604
|
const errLog = log_log.create('error', log_version);
|
|
3605
3605
|
;// ./packages/table/src/columnInfo.ts
|
|
@@ -10875,15 +10875,13 @@ const scrollXLoad=!!virtualXOpts.enabled&&virtualXOpts.gt>-1&&(virtualXOpts.gt==
|
|
|
10875
10875
|
// }
|
|
10876
10876
|
// }
|
|
10877
10877
|
// }
|
|
10878
|
-
// if (process.env.VUE_APP_VXE_ENV === 'development') {
|
|
10879
10878
|
// if (props.showHeader && !props.showHeaderOverflow) {
|
|
10880
10879
|
// warnLog('vxe.error.reqProp', ['show-header-overflow'])
|
|
10881
10880
|
// }
|
|
10882
10881
|
// if (props.showFooter && !props.showFooterOverflow) {
|
|
10883
10882
|
// warnLog('vxe.error.reqProp', ['show-footer-overflow'])
|
|
10884
10883
|
// }
|
|
10885
|
-
if(props.spanMethod){warnLog('vxe.error.scrollErrProp',['span-method']);}if(props.footerSpanMethod){warnLog('vxe.error.scrollErrProp',['footer-span-method']);}//
|
|
10886
|
-
if(isReset){const{visibleSize}=handleVirtualXVisible();scrollXStore.startIndex=0;scrollXStore.endIndex=visibleSize;scrollXStore.visibleSize=visibleSize;scrollXStore.visibleStartIndex=0;scrollXStore.visibleEndIndex=visibleSize;}}// 如果列被显示/隐藏,则清除合并状态
|
|
10884
|
+
if(props.spanMethod){warnLog('vxe.error.scrollErrProp',['span-method']);}if(props.footerSpanMethod){warnLog('vxe.error.scrollErrProp',['footer-span-method']);}if(isReset){const{visibleSize}=handleVirtualXVisible();scrollXStore.startIndex=0;scrollXStore.endIndex=visibleSize;scrollXStore.visibleSize=visibleSize;scrollXStore.visibleStartIndex=0;scrollXStore.visibleEndIndex=visibleSize;}}// 如果列被显示/隐藏,则清除合并状态
|
|
10887
10885
|
// 如果列被设置为固定,则清除合并状态
|
|
10888
10886
|
if(visibleColumn.length!==internalData.visibleColumn.length||!internalData.visibleColumn.every((column,index)=>column===visibleColumn[index])){$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();}reactData.scrollXLoad=scrollXLoad;visibleColumn.forEach((column,index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest._index=index;}});internalData.visibleColumn=visibleColumn;handleTableColumn();if(isReset){updateColumnOffsetLeft();return $xeTable.updateFooter().then(()=>{return $xeTable.recalculate();}).then(()=>{$xeTable.updateCellAreas();return $xeTable.recalculate();});}return $xeTable.updateFooter();};const initColumnSort=()=>{const{collectColumn}=internalData;collectColumn.forEach((column,index)=>{const sortIndex=index+1;column.sortNumber=sortIndex;column.renderSortNumber=sortIndex;});};const handleColumn=collectColumn=>{const expandOpts=computeExpandOpts.value;internalData.collectColumn=collectColumn;const tableFullColumn=getColumnList(collectColumn);internalData.tableFullColumn=tableFullColumn;reactData.isColLoading=true;reactData.isDragColMove=false;initColumnSort();return Promise.resolve(restoreCustomStorage()).then(()=>{const{scrollXLoad,scrollYLoad,expandColumn}=reactData;cacheColumnMap();parseColumns(true).then(()=>{if(reactData.scrollXLoad){loadScrollXData();}});$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.handleTableData(true);if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){warnLog('vxe.error.scrollErrProp',['column.type=expand']);}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(()=>{if($xeToolbar){$xeToolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});}if($xeTable.handleUpdateCustomColumn){$xeTable.handleUpdateCustomColumn();}reactData.isColLoading=false;return $xeTable.recalculate();});});};const updateScrollYStatus=fullData=>{const{treeConfig}=props;const virtualYOpts=computeVirtualYOpts.value;const treeOpts=computeTreeOpts.value;const{transform}=treeOpts;const allList=fullData||internalData.tableFullData;// 如果gt为0,则总是启用
|
|
10889
10887
|
const scrollYLoad=(transform||!treeConfig)&&!!virtualYOpts.enabled&&virtualYOpts.gt>-1&&(virtualYOpts.gt===0||virtualYOpts.gt<allList.length);reactData.scrollYLoad=scrollYLoad;return scrollYLoad;};/**
|
|
@@ -10937,7 +10935,7 @@ setTimeout(()=>$xeTable.recalculate(),50);});},/**
|
|
|
10937
10935
|
* @param {Row} row 行对象
|
|
10938
10936
|
* @param {Object} record 新数据
|
|
10939
10937
|
* @param {String} field 字段名
|
|
10940
|
-
*/reloadRow(row,record,field){const{keepSource}=props;const{tableData}=reactData;const{tableSourceData}=internalData;if(keepSource){const rowIndex=tableMethods.getRowIndex(row);const oRow=tableSourceData[rowIndex];if(oRow&&row){if(field){const newValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(record||row,field),true);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row,field,newValue);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(oRow,field,newValue);}else{const rowkey=getRowkey($xeTable);const rowid=getRowid($xeTable,row);const newRecord=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(Object.assign({},record),true);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(newRecord,rowkey,rowid);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().destructuring(oRow,Object.assign(row,newRecord));}}reactData.tableData=tableData.slice(0);}else{
|
|
10938
|
+
*/reloadRow(row,record,field){const{keepSource}=props;const{tableData}=reactData;const{tableSourceData}=internalData;if(keepSource){const rowIndex=tableMethods.getRowIndex(row);const oRow=tableSourceData[rowIndex];if(oRow&&row){if(field){const newValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(record||row,field),true);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row,field,newValue);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(oRow,field,newValue);}else{const rowkey=getRowkey($xeTable);const rowid=getRowid($xeTable,row);const newRecord=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(Object.assign({},record),true);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(newRecord,rowkey,rowid);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().destructuring(oRow,Object.assign(row,newRecord));}}reactData.tableData=tableData.slice(0);}else{errLog('vxe.error.reqProp',['keep-source']);}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},getParams(){return props.params;},/**
|
|
10941
10939
|
* 用于树结构,给行数据加载子节点
|
|
10942
10940
|
*/loadTreeChildren(row,childRecords){const{keepSource}=props;const{tableSourceData,fullDataRowIdData,fullAllDataRowIdData,sourceDataRowIdData}=internalData;const treeOpts=computeTreeOpts.value;const{transform,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const parentRest=fullAllDataRowIdData[getRowid($xeTable,row)];const parentLevel=parentRest?parentRest.level:0;return tableMethods.createData(childRecords).then(rows=>{if(keepSource){const rowid=getRowid($xeTable,row);const matchObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableSourceData,item=>rowid===getRowid($xeTable,item),{children:childrenField});if(matchObj){matchObj.item[childrenField]=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(rows,true);}rows.forEach(childRow=>{const rowid=getRowid($xeTable,childRow);sourceDataRowIdData[rowid]=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(childRow,true);});}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(rows,(childRow,index,items,path,parentItem,nodes)=>{const rowid=getRowid($xeTable,childRow);const parentRow=parentItem||parentRest.row;const rest={row:childRow,rowid,seq:-1,index,_index:-1,$index:-1,treeIndex:-1,items,parent:parentRow,level:parentLevel+nodes.length,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullDataRowIdData[rowid]=rest;fullAllDataRowIdData[rowid]=rest;},{children:childrenField});row[childrenField]=rows;if(transform){row[mapChildrenField]=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(rows,false);}updateAfterDataIndex();return rows;});},/**
|
|
10943
10941
|
* 加载列配置
|
|
@@ -10988,7 +10986,7 @@ setTimeout(()=>$xeTable.recalculate(),50);});},/**
|
|
|
10988
10986
|
* 如果传 row 则还原一行
|
|
10989
10987
|
* 如果传 rows 则还原多行
|
|
10990
10988
|
* 如果还额外传了 field 则还原指定的单元格数据
|
|
10991
|
-
*/revertData(rows,field){const{keepSource,treeConfig}=props;const{fullAllDataRowIdData,fullDataRowIdData,tableSourceData,sourceDataRowIdData,tableFullData,afterFullData,removeRowMaps}=internalData;const treeOpts=computeTreeOpts.value;const{transform}=treeOpts;const{handleGetRowId}=createHandleGetRowId($xeTable);if(!keepSource){
|
|
10989
|
+
*/revertData(rows,field){const{keepSource,treeConfig}=props;const{fullAllDataRowIdData,fullDataRowIdData,tableSourceData,sourceDataRowIdData,tableFullData,afterFullData,removeRowMaps}=internalData;const treeOpts=computeTreeOpts.value;const{transform}=treeOpts;const{handleGetRowId}=createHandleGetRowId($xeTable);if(!keepSource){errLog('vxe.error.reqProp',['keep-source']);return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();}let targetRows=rows;if(rows){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){targetRows=[rows];}}else{targetRows=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toArray($xeTable.getUpdateRecords());}let reDelFlag=false;if(targetRows.length){targetRows.forEach(item=>{const rowid=handleGetRowId(item);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const row=rowRest.row;if(!$xeTable.isInsertByRow(row)){const oRow=sourceDataRowIdData[rowid];if(oRow&&row){if(field){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row,field,external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(oRow,field),true));}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().destructuring(row,external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(oRow,true));}if(!fullDataRowIdData[rowid]&&$xeTable.isRemoveByRow(row)){if(removeRowMaps[rowid]){delete removeRowMaps[rowid];}tableFullData.unshift(row);afterFullData.unshift(row);reDelFlag=true;}}}}});}if(rows){if(reDelFlag){reactData.removeRowFlag++;$xeTable.updateFooter();$xeTable.cacheRowMap(false);$xeTable.handleTableData(treeConfig&&transform);if(!(treeConfig&&transform)){$xeTable.updateAfterDataIndex();}$xeTable.checkSelectionStatus();if(reactData.scrollYLoad){$xeTable.updateScrollYSpace();}}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(()=>{$xeTable.updateCellAreas();return $xeTable.recalculate();});}return $xeTable.reloadData(tableSourceData);},/**
|
|
10992
10990
|
* 清空单元格内容
|
|
10993
10991
|
* 如果不创参数,则清空整个表格内容
|
|
10994
10992
|
* 如果传 row 则清空一行内容
|
|
@@ -11144,7 +11142,7 @@ return handleSortEvent(new Event('click'),sortConfs,isUpdate);},setSortByEvent(e
|
|
|
11144
11142
|
*/isRowExpandLoaded(row){const{fullAllDataRowIdData}=internalData;const rowRest=fullAllDataRowIdData[getRowid($xeTable,row)];return rowRest&&!!rowRest.expandLoaded;},clearRowExpandLoaded(row){const{fullAllDataRowIdData,rowExpandLazyLoadedMaps}=internalData;const expandOpts=computeExpandOpts.value;const{lazy}=expandOpts;const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(lazy&&rowRest){rowRest.expandLoaded=false;delete rowExpandLazyLoadedMaps[rowid];}reactData.rowExpandedFlag++;return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},/**
|
|
11145
11143
|
* 重新懒加载展开行,并展开内容
|
|
11146
11144
|
* @param {Row} row 行对象
|
|
11147
|
-
*/reloadRowExpand(row){const{rowExpandLazyLoadedMaps}=internalData;const expandOpts=computeExpandOpts.value;const{lazy}=expandOpts;const rowid=getRowid($xeTable,row);if(lazy&&!rowExpandLazyLoadedMaps[rowid]){$xeTable.clearRowExpandLoaded(row).then(()=>handleAsyncRowExpand(row));}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},reloadExpandContent(row){
|
|
11145
|
+
*/reloadRowExpand(row){const{rowExpandLazyLoadedMaps}=internalData;const expandOpts=computeExpandOpts.value;const{lazy}=expandOpts;const rowid=getRowid($xeTable,row);if(lazy&&!rowExpandLazyLoadedMaps[rowid]){$xeTable.clearRowExpandLoaded(row).then(()=>handleAsyncRowExpand(row));}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},reloadExpandContent(row){warnLog('vxe.error.delFunc',['reloadExpandContent','reloadRowExpand']);// 即将废弃
|
|
11148
11146
|
return $xeTable.reloadRowExpand(row);},/**
|
|
11149
11147
|
* 切换展开行
|
|
11150
11148
|
*/toggleRowExpand(row){return $xeTable.setRowExpand(row,!$xeTable.isRowExpandByRow(row));},/**
|
|
@@ -11161,7 +11159,7 @@ rowExpandedMaps={};internalData.rowExpandedMaps=rowExpandedMaps;rows=rows.slice(
|
|
|
11161
11159
|
* 判断行是否为展开状态
|
|
11162
11160
|
* @param {Row} row 行对象
|
|
11163
11161
|
*/isRowExpandByRow(row){const{rowExpandedFlag}=reactData;const{rowExpandedMaps}=internalData;const rowid=getRowid($xeTable,row);return!!rowExpandedFlag&&!!rowExpandedMaps[rowid];},isExpandByRow(row){// 已废弃
|
|
11164
|
-
|
|
11162
|
+
warnLog('vxe.error.delFunc',['isExpandByRow','isRowExpandByRow']);return tableMethods.isRowExpandByRow(row);},/**
|
|
11165
11163
|
* 手动清空展开行状态,数据会恢复成未展开的状态
|
|
11166
11164
|
*/clearRowExpand(){const{tableFullData}=internalData;const expandOpts=computeExpandOpts.value;const{reserve}=expandOpts;const expList=$xeTable.getRowExpandRecords();internalData.rowExpandedMaps={};reactData.rowExpandedFlag++;if(reserve){tableFullData.forEach(row=>handleRowExpandReserve(row,false));}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(()=>{if(expList.length){return $xeTable.recalculate(true);}}).then(()=>{updateRowOffsetTop();updateRowExpandStyle();handleRowExpandScroll();return $xeTable.updateCellAreas();});},clearRowExpandReserve(){internalData.rowExpandedReserveRowMap={};return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},getRowExpandRecords(){const rest=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(internalData.rowExpandedMaps,item=>{if(item){rest.push(item);}});return rest;},setRowGroups(fieldOrColumns){const{rowGroupConfig}=props;if(!rowGroupConfig){errLog('vxe.error.reqProp',['row-group-config']);return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();}if(fieldOrColumns){handleUpdateRowGroup((external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrColumns)?fieldOrColumns:[fieldOrColumns]).map(fieldOrColumn=>{return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(fieldOrColumn)?fieldOrColumn:fieldOrColumn.field;}));return loadTableData(internalData.tableSynchData,true);}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},clearRowGroups(){const{rowGroupConfig}=props;if(!rowGroupConfig){errLog('vxe.error.reqProp',['row-group-config']);return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();}handleUpdateRowGroup([]);return loadTableData(internalData.tableSynchData,true);},isRowGroupRecord(row){const{isRowGroupStatus}=reactData;return isRowGroupStatus&&row.isAggregate;},isRowGroupExpandByRow(row){const{rowGroupExpandedFlag}=reactData;const{rowGroupExpandedMaps}=internalData;return!!rowGroupExpandedFlag&&!!rowGroupExpandedMaps[getRowid($xeTable,row)];},setRowGroupExpand(rows,expanded){if(rows){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}return handleRowGroupVirtualExpand(rows,expanded);}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},setAllRowGroupExpand(expanded){const{tableFullGroupData}=internalData;const rowGroupOpts=computeRowGroupOpts.value;const{mapChildrenField}=rowGroupOpts;const rgExpandedMaps={};if(expanded&&mapChildrenField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullGroupData,row=>{if(row[mapChildrenField]&&row[mapChildrenField].length){rgExpandedMaps[getRowid($xeTable,row)]=row;}},{children:mapChildrenField});}internalData.rowGroupExpandedMaps=rgExpandedMaps;handleVirtualTreeToList();reactData.rowGroupExpandedFlag++;return $xeTable.handleTableData();},clearRowGroupExpand(){internalData.rowGroupExpandedMaps={};handleVirtualTreeToList();reactData.rowGroupExpandedFlag++;return $xeTable.handleTableData();},getTreeExpandRecords(){const rest=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(internalData.treeExpandedMaps,item=>{if(item){rest.push(item);}});return rest;},/**
|
|
11167
11165
|
* 判断树节点是否懒加载完成
|
|
@@ -11169,7 +11167,7 @@ if(true){warnLog('vxe.error.delFunc',['isExpandByRow','isRowExpandByRow']);}retu
|
|
|
11169
11167
|
*/isTreeExpandLoaded(row){const{fullAllDataRowIdData}=internalData;const rowRest=fullAllDataRowIdData[getRowid($xeTable,row)];return rowRest&&!!rowRest.treeLoaded;},clearTreeExpandLoaded(rows){const{fullAllDataRowIdData,treeExpandedMaps}=internalData;const treeOpts=computeTreeOpts.value;const{transform}=treeOpts;if(rows){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}rows.forEach(row=>{const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest.treeLoaded=false;if(treeExpandedMaps[rowid]){delete treeExpandedMaps[rowid];}}});}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(fullAllDataRowIdData,rowRest=>{rowRest.treeLoaded=false;});}internalData.treeExpandedMaps={};if(transform){handleVirtualTreeToList();$xeTable.handleTableData();}reactData.treeExpandedFlag++;return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},/**
|
|
11170
11168
|
* 重新懒加载树节点,并展开该节点
|
|
11171
11169
|
* @param {Row} row 行对象
|
|
11172
|
-
*/reloadTreeExpand(row){const{treeExpandLazyLoadedMaps}=internalData;const treeOpts=computeTreeOpts.value;const hasChildField=treeOpts.hasChild||treeOpts.hasChildField;const{transform,lazy}=treeOpts;const rowid=getRowid($xeTable,row);if(lazy&&row[hasChildField]&&!treeExpandLazyLoadedMaps[rowid]){return $xeTable.clearTreeExpandLoaded(row).then(()=>{return handleAsyncTreeExpandChilds(row);}).then(()=>{if(transform){handleVirtualTreeToList();$xeTable.handleTableData();}reactData.treeExpandedFlag++;}).then(()=>{return $xeTable.recalculate();});}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},reloadTreeChilds(row){
|
|
11170
|
+
*/reloadTreeExpand(row){const{treeExpandLazyLoadedMaps}=internalData;const treeOpts=computeTreeOpts.value;const hasChildField=treeOpts.hasChild||treeOpts.hasChildField;const{transform,lazy}=treeOpts;const rowid=getRowid($xeTable,row);if(lazy&&row[hasChildField]&&!treeExpandLazyLoadedMaps[rowid]){return $xeTable.clearTreeExpandLoaded(row).then(()=>{return handleAsyncTreeExpandChilds(row);}).then(()=>{if(transform){handleVirtualTreeToList();$xeTable.handleTableData();}reactData.treeExpandedFlag++;}).then(()=>{return $xeTable.recalculate();});}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},reloadTreeChilds(row){warnLog('vxe.error.delFunc',['reloadTreeChilds','reloadTreeExpand']);// 即将废弃
|
|
11173
11171
|
return $xeTable.reloadTreeExpand(row);},/**
|
|
11174
11172
|
* 切换/展开树节点
|
|
11175
11173
|
*/toggleTreeExpand(row){return $xeTable.setTreeExpand(row,!$xeTable.isTreeExpandByRow(row));},/**
|
|
@@ -11324,7 +11322,7 @@ const dragMinLeft=isRightFixed?0:cellRect.x-tableRect.x+dragBtnWidth+minInterval
|
|
|
11324
11322
|
const updateEvent=evnt=>{evnt.stopPropagation();evnt.preventDefault();const tableHeight=tableEl.clientHeight;const offsetX=evnt.clientX-dragClientX;let left=dragPosLeft+offsetX;if(isLeftFixed){if(rightContainerRect){left=Math.min(left,rightContainerRect.x-tableRect.x-fixedLeftRemainWidth-minInterval);}}else if(isRightFixed){if(leftContainerElem){left=Math.max(left,leftContainerElem.clientWidth+fixedRightRemainWidth+minInterval);}left=Math.min(left,dragMaxLeft);}dragLeft=Math.max(left,dragMinLeft);const resizeBarLeft=Math.max(1,dragLeft);resizeBarElem.style.left=`${resizeBarLeft}px`;resizeBarElem.style.top=`${scrollbarXToTop?osbHeight:0}px`;resizeBarElem.style.height=`${scrollbarXToTop?tableHeight-osbHeight:tableHeight}px`;if(resizableOpts.showDragTip&&resizeTipElem){resizeTipElem.textContent=table_getI18n('vxe.table.resizeColTip',[Math.floor(resizeColumn.renderWidth+(isRightFixed?dragPosLeft-dragLeft:dragLeft-dragPosLeft))]);const tableWrapperWidth=tableEl.clientWidth;const resizeBarWidth=resizeBarElem.clientWidth;const resizeTipWidth=resizeTipElem.clientWidth;const resizeTipHeight=resizeTipElem.clientHeight;let resizeTipLeft=-resizeTipWidth;if(resizeBarLeft<resizeTipWidth+resizeBarWidth){resizeTipLeft=0;}else if(resizeBarLeft>tableWrapperWidth){resizeTipLeft+=tableWrapperWidth-resizeBarLeft;}resizeTipElem.style.left=`${resizeTipLeft}px`;resizeTipElem.style.top=`${Math.min(tableHeight-resizeTipHeight,Math.max(0,evnt.clientY-tableRect.y-resizeTipHeight/2))}px`;}reactData.isDragResize=true;};reactData.isDragResize=true;addClass(tableEl,'col-drag--resize');resizeBarElem.style.display='block';document.onmousemove=updateEvent;document.onmouseup=function(evnt){document.onmousemove=null;document.onmouseup=null;resizeBarElem.style.display='none';internalData._lastResizeTime=Date.now();setTimeout(()=>{reactData.isDragResize=false;},50);const resizeWidth=resizeColumn.renderWidth+(isRightFixed?dragPosLeft-dragLeft:dragLeft-dragPosLeft);const resizeParams={...params,resizeWidth,resizeColumn};if(resizableOpts.dragMode==='fixed'){visibleColumn.forEach(item=>{if(item.id!==resizeColumn.id){if(!item.resizeWidth){item.resizeWidth=item.renderWidth;}}});}if($xeTable.handleColResizeCellAreaEvent){$xeTable.handleColResizeCellAreaEvent(evnt,resizeParams);}else{resizeColumn.resizeWidth=resizeWidth;handleUpdateColResize(evnt,resizeParams);}removeClass(tableEl,'col-drag--resize');};updateEvent(evnt);if($xeTable.closeMenu){$xeTable.closeMenu();}},handleColResizeDblclickEvent(evnt,params){const resizableOpts=computeResizableOpts.value;const{isDblclickAutoWidth}=resizableOpts;const el=refElem.value;if(isDblclickAutoWidth&&el){evnt.stopPropagation();evnt.preventDefault();const{fullColumnIdData}=internalData;const{column}=params;let resizeColumn=column;if(column.children&&column.children.length){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(column.children,childColumn=>{resizeColumn=childColumn;});}const colid=resizeColumn.id;const colRest=fullColumnIdData[colid];const dragBtnElem=evnt.target;const cell=dragBtnElem.parentNode;const cellParams=Object.assign(params,{cell});const colMinWidth=getColReMinWidth(cellParams);el.setAttribute('data-calc-col','Y');let resizeWidth=calcColumnAutoWidth(resizeColumn,el);el.removeAttribute('data-calc-col');if(colRest){resizeWidth=Math.max(resizeWidth,colRest.width);}resizeWidth=Math.max(colMinWidth,resizeWidth);const resizeParams={...params,resizeWidth,resizeColumn};reactData.isDragResize=false;internalData._lastResizeTime=Date.now();if($xeTable.handleColResizeDblclickCellAreaEvent){$xeTable.handleColResizeDblclickCellAreaEvent(evnt,resizeParams);}else{resizeColumn.resizeWidth=resizeWidth;handleUpdateColResize(evnt,resizeParams);}}},handleRowResizeMousedownEvent(evnt,params){evnt.stopPropagation();evnt.preventDefault();const{row}=params;const{overflowX,scrollbarWidth,overflowY,scrollbarHeight}=reactData;const{elemStore,fullAllDataRowIdData}=internalData;const osbWidth=overflowY?scrollbarWidth:0;const osbHeight=overflowX?scrollbarHeight:0;const scrollbarYToLeft=computeScrollbarYToLeft.value;const resizableOpts=computeResizableOpts.value;const rowOpts=computeRowOpts.value;const cellOpts=computeCellOpts.value;const tableEl=refElem.value;const resizeBarElem=refRowResizeBar.value;if(!resizeBarElem){return;}const{clientY:dragClientY}=evnt;const resizeTipElem=resizeBarElem.firstElementChild;const dragBtnElem=evnt.currentTarget;const tdEl=dragBtnElem.parentNode;const trEl=tdEl.parentNode;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(!bodyScrollElem){return;}const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(!rowRest){return;}const defaultRowHeight=computeDefaultRowHeight.value;const currCellHeight=rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight;const tableRect=tableEl.getBoundingClientRect();const trRect=trEl.getBoundingClientRect();const targetOffsetY=dragClientY-trRect.y-trEl.clientHeight;let resizeHeight=currCellHeight;const cellEl=tdEl.querySelector('.vxe-cell');let cellMinHeight=0;if(cellEl){const cellStyle=getComputedStyle(cellEl);cellMinHeight=Math.max(1,Math.ceil(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellStyle.paddingTop)+external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(cellStyle.paddingBottom)));}const minTop=trRect.y-tableRect.y+cellMinHeight;// 处理拖动事件
|
|
11325
11323
|
const updateEvent=evnt=>{evnt.stopPropagation();evnt.preventDefault();const rtWidth=tableEl.clientWidth-osbWidth;const tableHeight=tableEl.clientHeight-osbHeight;let dragTop=evnt.clientY-tableRect.y-targetOffsetY;if(dragTop<minTop){dragTop=minTop;}else{resizeHeight=Math.max(cellMinHeight,currCellHeight+evnt.clientY-dragClientY);}resizeBarElem.style.left=`${scrollbarYToLeft?osbWidth:0}px`;resizeBarElem.style.top=`${dragTop}px`;resizeBarElem.style.width=`${rtWidth}px`;if(resizableOpts.showDragTip&&resizeTipElem){resizeTipElem.textContent=table_getI18n('vxe.table.resizeRowTip',[resizeHeight]);const resizeTipWidth=resizeTipElem.clientWidth;const resizeTipHeight=resizeTipElem.clientHeight;let resizeBarLeft=Math.max(2,evnt.clientX-tableRect.x);let resizeBarTop=0;if(resizeBarLeft+resizeTipWidth>=rtWidth-2){resizeBarLeft=rtWidth-resizeTipWidth-2;}if(dragTop+resizeTipHeight>=tableHeight){resizeBarTop=tableHeight-(dragTop+resizeTipHeight);}resizeTipElem.style.left=`${resizeBarLeft}px`;resizeTipElem.style.top=`${resizeBarTop}px`;}reactData.isDragResize=true;};reactData.isDragResize=true;addClass(tableEl,'row-drag--resize');resizeBarElem.style.display='block';document.onmousemove=updateEvent;document.onmouseup=function(evnt){document.onmousemove=null;document.onmouseup=null;resizeBarElem.style.display='none';internalData._lastResizeTime=Date.now();setTimeout(()=>{reactData.isDragResize=false;},50);if(resizeHeight!==currCellHeight){const resizeParams={...params,resizeHeight,resizeRow:row};internalData.isResizeCellHeight=true;if($xeTable.handleRowResizeCellAreaEvent){$xeTable.handleRowResizeCellAreaEvent(evnt,resizeParams);}else{rowRest.resizeHeight=resizeHeight;handleUpdateRowResize(evnt,resizeParams);updateRowOffsetTop();}}removeClass(tableEl,'row-drag--resize');};updateEvent(evnt);},handleRowResizeDblclickEvent(evnt,params){const resizableOpts=computeResizableOpts.value;const{isDblclickAutoHeight}=resizableOpts;const el=refElem.value;if(isDblclickAutoHeight&&el){evnt.stopPropagation();evnt.preventDefault();const{editStore}=reactData;const{fullAllDataRowIdData}=internalData;const{actived}=editStore;const{row}=params;const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(!rowRest){return;}const handleRsHeight=()=>{el.setAttribute('data-calc-row','Y');const resizeHeight=calcCellAutoHeight(rowRest,el);el.removeAttribute('data-calc-row');const resizeParams={...params,resizeHeight,resizeRow:row};reactData.isDragResize=false;internalData._lastResizeTime=Date.now();if($xeTable.handleRowResizeDblclickCellAreaEvent){$xeTable.handleRowResizeDblclickCellAreaEvent(evnt,resizeParams);}else{rowRest.resizeHeight=resizeHeight;handleUpdateRowResize(evnt,resizeParams);}};if(actived.row||actived.column){$xeTable.clearEdit().then(handleRsHeight);}else{handleRsHeight();}}},saveCustomStore(type){const{customConfig}=props;const tableId=computeTableId.value;const customOpts=computeCustomOpts.value;const{updateStore,storage}=customOpts;const isAllCustom=storage===true;const storageOpts=isAllCustom?{}:Object.assign({},storage||{});const isCustomResizable=isAllCustom||storageOpts.resizable;const isCustomVisible=isAllCustom||storageOpts.visible;const isCustomFixed=isAllCustom||storageOpts.fixed;const isCustomSort=isAllCustom||storageOpts.sort;if(type!=='reset'){// fix:修复拖动列宽,重置按钮无法点击的问题
|
|
11326
11324
|
reactData.isCustomStatus=true;}if((customConfig?isEnableConf(customOpts):customOpts.enabled)&&(isCustomResizable||isCustomVisible||isCustomFixed||isCustomSort)){if(!tableId){errLog('vxe.error.reqProp',['id']);return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();}const storeData=type==='reset'?{resizableData:{},sortData:{},visibleData:{},fixedData:{}}:tableMethods.getCustomStoreData();if(updateStore){return updateStore({$table:$xeTable,id:tableId,type,storeData});}else{setCustomStorageMap(tableId,type==='reset'?null:storeData);}}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},handleCustom(){const{mouseConfig}=props;if(mouseConfig){if($xeTable.clearSelected){$xeTable.clearSelected();}if($xeTable.clearCellAreas){$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();}}tablePrivateMethods.analyColumnWidth();return tableMethods.refreshColumn(true);},handleUpdateDataQueue(){reactData.upDataFlag++;},handleRefreshColumnQueue(){reactData.reColumnFlag++;},preventEvent(evnt,type,args,next,end){let evntList=table_interceptor.get(type);// 兼容老版本
|
|
11327
|
-
if(!evntList.length&&type==='event.clearEdit'){evntList=table_interceptor.get('event.clearActived');if(
|
|
11325
|
+
if(!evntList.length&&type==='event.clearEdit'){evntList=table_interceptor.get('event.clearActived');if(evntList.length){warnLog('vxe.error.delEvent',['event.clearActived','event.clearEdit']);}}// 兼容老版本
|
|
11328
11326
|
let rest=null;let isStop=false;for(let i=0;i<evntList.length;i++){const func=evntList[i];const fnRest=func(Object.assign({$grid:$xeGrid,$table:$xeTable,$event:evnt},args));if(fnRest===false){isStop=true;break;}else if(fnRest&&fnRest.status===false){rest=fnRest.result;isStop=true;break;}}if(!isStop){if(next){rest=next();}}if(end){end();}return rest;},updateCheckboxStatus(){const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{afterTreeFullData,afterGroupFullData,selectCheckboxMaps,treeIndeterminateRowMaps}=internalData;const rowGroupOpts=computeRowGroupOpts.value;const treeOpts=computeTreeOpts.value;const childrenField=treeOpts.children||treeOpts.childrenField;const checkboxOpts=computeCheckboxOpts.value;const{checkField,checkStrictly,checkMethod}=checkboxOpts;if(checkStrictly){return;}if(isRowGroupStatus||treeConfig){const{handleGetRowId}=createHandleGetRowId($xeTable);const childRowMaps={};const childRowList=[];if(isRowGroupStatus){// 行分组
|
|
11329
11327
|
const mapChildrenField=rowGroupOpts.mapChildrenField;if(mapChildrenField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterGroupFullData,row=>{const rowid=handleGetRowId(row);const childList=row[mapChildrenField];if(childList&&childList.length&&!childRowMaps[rowid]){childRowMaps[rowid]=1;childRowList.unshift([row,rowid,childList]);}},{children:mapChildrenField});}}else if(treeConfig){// 树结构
|
|
11330
11328
|
const{transform,mapChildrenField}=treeOpts;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData,row=>{const rowid=handleGetRowId(row);const childList=row[transform?mapChildrenField:childrenField];if(childList&&childList.length&&!childRowMaps[rowid]){childRowMaps[rowid]=1;childRowList.unshift([row,rowid,childList]);}},{children:transform?mapChildrenField:childrenField});}childRowList.forEach(vals=>{const row=vals[0];const rowid=vals[1];const childList=vals[2];let sLen=0;// 已选
|
|
@@ -13568,31 +13566,6 @@ const gridComponentEmits = [...emits, 'page-change', 'form-submit', 'form-submit
|
|
|
13568
13566
|
// return nextTick()
|
|
13569
13567
|
// }
|
|
13570
13568
|
};
|
|
13571
|
-
// 检查插槽
|
|
13572
|
-
if (true) {
|
|
13573
|
-
gridMethods.loadColumn = columns => {
|
|
13574
|
-
const $xeTable = refTable.value;
|
|
13575
|
-
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(columns, column => {
|
|
13576
|
-
if (column.slots) {
|
|
13577
|
-
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(column.slots, func => {
|
|
13578
|
-
if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(func)) {
|
|
13579
|
-
if (!slots[func]) {
|
|
13580
|
-
errLog('vxe.error.notSlot', [func]);
|
|
13581
|
-
}
|
|
13582
|
-
}
|
|
13583
|
-
});
|
|
13584
|
-
}
|
|
13585
|
-
});
|
|
13586
|
-
if ($xeTable) {
|
|
13587
|
-
return $xeTable.loadColumn(columns);
|
|
13588
|
-
}
|
|
13589
|
-
return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
|
|
13590
|
-
};
|
|
13591
|
-
gridMethods.reloadColumn = columns => {
|
|
13592
|
-
gridExtendTableMethods.clearAll();
|
|
13593
|
-
return gridMethods.loadColumn(columns);
|
|
13594
|
-
};
|
|
13595
|
-
}
|
|
13596
13569
|
const gridPrivateMethods = {
|
|
13597
13570
|
extendTableMethods,
|
|
13598
13571
|
callSlot(slotFunc, params) {
|
|
@@ -13668,7 +13641,31 @@ const gridComponentEmits = [...emits, 'page-change', 'form-submit', 'form-submit
|
|
|
13668
13641
|
}, evnt);
|
|
13669
13642
|
}
|
|
13670
13643
|
};
|
|
13671
|
-
Object.assign($xeGrid, gridExtendTableMethods, gridMethods, gridPrivateMethods
|
|
13644
|
+
Object.assign($xeGrid, gridExtendTableMethods, gridMethods, gridPrivateMethods, {
|
|
13645
|
+
// 检查插槽
|
|
13646
|
+
loadColumn(columns) {
|
|
13647
|
+
const $xeTable = refTable.value;
|
|
13648
|
+
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(columns, column => {
|
|
13649
|
+
if (column.slots) {
|
|
13650
|
+
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(column.slots, func => {
|
|
13651
|
+
if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(func)) {
|
|
13652
|
+
if (!slots[func]) {
|
|
13653
|
+
errLog('vxe.error.notSlot', [func]);
|
|
13654
|
+
}
|
|
13655
|
+
}
|
|
13656
|
+
});
|
|
13657
|
+
}
|
|
13658
|
+
});
|
|
13659
|
+
if ($xeTable) {
|
|
13660
|
+
return $xeTable.loadColumn(columns);
|
|
13661
|
+
}
|
|
13662
|
+
return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
|
|
13663
|
+
},
|
|
13664
|
+
reloadColumn(columns) {
|
|
13665
|
+
$xeGrid.clearAll();
|
|
13666
|
+
return $xeGrid.loadColumn(columns);
|
|
13667
|
+
}
|
|
13668
|
+
});
|
|
13672
13669
|
const columnFlag = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)(0);
|
|
13673
13670
|
(0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.columns ? props.columns.length : -1, () => {
|
|
13674
13671
|
columnFlag.value++;
|
|
@@ -14816,10 +14813,8 @@ edit_hook_hooks.add('tableEditModule', {
|
|
|
14816
14813
|
fullDataRowIdData[rowid] = rest;
|
|
14817
14814
|
fullAllDataRowIdData[rowid] = rest;
|
|
14818
14815
|
} else {
|
|
14819
|
-
if (
|
|
14820
|
-
|
|
14821
|
-
warnLog('vxe.error.unableInsert');
|
|
14822
|
-
}
|
|
14816
|
+
if (parentRowId) {
|
|
14817
|
+
warnLog('vxe.error.unableInsert');
|
|
14823
14818
|
}
|
|
14824
14819
|
afterFullData[funcName](item);
|
|
14825
14820
|
tableFullTreeData[funcName](item);
|
|
@@ -14964,11 +14959,9 @@ edit_hook_hooks.add('tableEditModule', {
|
|
|
14964
14959
|
const parentLevel = parentRest ? parentRest.level : 0;
|
|
14965
14960
|
newRecords.forEach((item, i) => {
|
|
14966
14961
|
const rowid = getRowid($xeTable, item);
|
|
14967
|
-
if (
|
|
14968
|
-
if (item[treeOpts.parentField]) {
|
|
14969
|
-
|
|
14970
|
-
errLog('vxe.error.errProp', [`${treeOpts.parentField}=${item[treeOpts.parentField]}`, `${treeOpts.parentField}=${parentRow[rowField]}`]);
|
|
14971
|
-
}
|
|
14962
|
+
if (item[treeOpts.parentField]) {
|
|
14963
|
+
if (parentRow && item[treeOpts.parentField] !== parentRow[rowField]) {
|
|
14964
|
+
errLog('vxe.error.errProp', [`${treeOpts.parentField}=${item[treeOpts.parentField]}`, `${treeOpts.parentField}=${parentRow[rowField]}`]);
|
|
14972
14965
|
}
|
|
14973
14966
|
}
|
|
14974
14967
|
if (parentRow) {
|
|
@@ -15013,9 +15006,7 @@ edit_hook_hooks.add('tableEditModule', {
|
|
|
15013
15006
|
}
|
|
15014
15007
|
}
|
|
15015
15008
|
} else {
|
|
15016
|
-
|
|
15017
|
-
warnLog('vxe.error.unableInsert');
|
|
15018
|
-
}
|
|
15009
|
+
warnLog('vxe.error.unableInsert');
|
|
15019
15010
|
insertTreeRow(newRecords, true);
|
|
15020
15011
|
}
|
|
15021
15012
|
} else {
|
|
@@ -15593,9 +15584,7 @@ edit_hook_hooks.add('tableEditModule', {
|
|
|
15593
15584
|
return [];
|
|
15594
15585
|
},
|
|
15595
15586
|
getActiveRecord() {
|
|
15596
|
-
|
|
15597
|
-
warnLog('vxe.error.delFunc', ['getActiveRecord', 'getEditRecord']);
|
|
15598
|
-
}
|
|
15587
|
+
warnLog('vxe.error.delFunc', ['getActiveRecord', 'getEditRecord']);
|
|
15599
15588
|
return $xeTable.getEditRecord();
|
|
15600
15589
|
},
|
|
15601
15590
|
getEditRecord() {
|
|
@@ -15633,9 +15622,7 @@ edit_hook_hooks.add('tableEditModule', {
|
|
|
15633
15622
|
},
|
|
15634
15623
|
clearActived(row) {
|
|
15635
15624
|
// 即将废弃
|
|
15636
|
-
|
|
15637
|
-
warnLog('vxe.error.delFunc', ['clearActived', 'clearEdit']);
|
|
15638
|
-
}
|
|
15625
|
+
warnLog('vxe.error.delFunc', ['clearActived', 'clearEdit']);
|
|
15639
15626
|
return $xeTable.clearEdit(row);
|
|
15640
15627
|
},
|
|
15641
15628
|
/**
|
|
@@ -15660,9 +15647,7 @@ edit_hook_hooks.add('tableEditModule', {
|
|
|
15660
15647
|
return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
|
|
15661
15648
|
},
|
|
15662
15649
|
isActiveByRow(row) {
|
|
15663
|
-
|
|
15664
|
-
warnLog('vxe.error.delFunc', ['isActiveByRow', 'isEditByRow']);
|
|
15665
|
-
}
|
|
15650
|
+
warnLog('vxe.error.delFunc', ['isActiveByRow', 'isEditByRow']);
|
|
15666
15651
|
// 即将废弃
|
|
15667
15652
|
return $xeTable.isEditByRow(row);
|
|
15668
15653
|
},
|
|
@@ -15677,9 +15662,7 @@ edit_hook_hooks.add('tableEditModule', {
|
|
|
15677
15662
|
return editStore.actived.row === row;
|
|
15678
15663
|
},
|
|
15679
15664
|
setActiveRow(row) {
|
|
15680
|
-
|
|
15681
|
-
warnLog('vxe.error.delFunc', ['setActiveRow', 'setEditRow']);
|
|
15682
|
-
}
|
|
15665
|
+
warnLog('vxe.error.delFunc', ['setActiveRow', 'setEditRow']);
|
|
15683
15666
|
// 即将废弃
|
|
15684
15667
|
return editMethods.setEditRow(row);
|
|
15685
15668
|
},
|
|
@@ -15701,9 +15684,7 @@ edit_hook_hooks.add('tableEditModule', {
|
|
|
15701
15684
|
return handleEditCell(row, column, isPos);
|
|
15702
15685
|
},
|
|
15703
15686
|
setActiveCell(row, fieldOrColumn) {
|
|
15704
|
-
|
|
15705
|
-
warnLog('vxe.error.delFunc', ['setActiveCell', 'setEditCell']);
|
|
15706
|
-
}
|
|
15687
|
+
warnLog('vxe.error.delFunc', ['setActiveCell', 'setEditCell']);
|
|
15707
15688
|
// 即将废弃
|
|
15708
15689
|
return editMethods.setEditCell(row, fieldOrColumn);
|
|
15709
15690
|
},
|
|
@@ -15935,7 +15916,7 @@ let htmlCellElem;
|
|
|
15935
15916
|
const csvBOM = '\ufeff';
|
|
15936
15917
|
const enterSymbol = '\r\n';
|
|
15937
15918
|
function defaultFilterExportColumn(column) {
|
|
15938
|
-
return column.field || ['seq', 'checkbox', 'radio'].indexOf(column.type) > -1;
|
|
15919
|
+
return !!column.field || ['seq', 'checkbox', 'radio'].indexOf(column.type || '') > -1;
|
|
15939
15920
|
}
|
|
15940
15921
|
const getConvertColumns = columns => {
|
|
15941
15922
|
const result = [];
|
|
@@ -17052,7 +17033,7 @@ export_hook_hooks.add('tableExportModule', {
|
|
|
17052
17033
|
}
|
|
17053
17034
|
return false;
|
|
17054
17035
|
}
|
|
17055
|
-
return exportOpts.original ? column.field : defaultFilterExportColumn(column);
|
|
17036
|
+
return exportOpts.original ? !!column.field : defaultFilterExportColumn(column);
|
|
17056
17037
|
};
|
|
17057
17038
|
const handleExportAndPrint = (options, isPrint) => {
|
|
17058
17039
|
const {
|
|
@@ -17120,7 +17101,7 @@ export_hook_hooks.add('tableExportModule', {
|
|
|
17120
17101
|
});
|
|
17121
17102
|
// 默认选中
|
|
17122
17103
|
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(exportColumns, (column, index, items, path, parent) => {
|
|
17123
|
-
const isColGroup = column.children && column.children.length;
|
|
17104
|
+
const isColGroup = column.children && column.children.length > 0;
|
|
17124
17105
|
let isChecked = false;
|
|
17125
17106
|
if (columns && columns.length) {
|
|
17126
17107
|
isChecked = handleFilterColumns(defOpts, column, columns);
|
|
@@ -17265,7 +17246,7 @@ export_hook_hooks.add('tableExportModule', {
|
|
|
17265
17246
|
mode = selectRecords.length ? 'selected' : 'current';
|
|
17266
17247
|
}
|
|
17267
17248
|
const customCols = columns && columns.length ? columns : external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(collectColumn, column => {
|
|
17268
|
-
const isColGroup = column.children && column.children.length;
|
|
17249
|
+
const isColGroup = column.children && column.children.length > 0;
|
|
17269
17250
|
let isChecked = false;
|
|
17270
17251
|
if (columns && columns.length) {
|
|
17271
17252
|
isChecked = handleFilterColumns(opts, column, columns);
|
|
@@ -17286,7 +17267,7 @@ export_hook_hooks.add('tableExportModule', {
|
|
|
17286
17267
|
});
|
|
17287
17268
|
// 如果设置源数据,则默认导出设置了字段的列
|
|
17288
17269
|
if (!customCols && !columnFilterMethod) {
|
|
17289
|
-
|
|
17270
|
+
columnFilterMethod = ({
|
|
17290
17271
|
column
|
|
17291
17272
|
}) => {
|
|
17292
17273
|
if (excludeFields) {
|
|
@@ -17300,8 +17281,9 @@ export_hook_hooks.add('tableExportModule', {
|
|
|
17300
17281
|
}
|
|
17301
17282
|
return false;
|
|
17302
17283
|
}
|
|
17303
|
-
return original ? column.field : defaultFilterExportColumn(column);
|
|
17284
|
+
return original ? !!column.field : defaultFilterExportColumn(column);
|
|
17304
17285
|
};
|
|
17286
|
+
handleOptions.columnFilterMethod = columnFilterMethod;
|
|
17305
17287
|
}
|
|
17306
17288
|
if (customCols) {
|
|
17307
17289
|
handleOptions._isCustomColumn = true;
|
|
@@ -17395,10 +17377,8 @@ export_hook_hooks.add('tableExportModule', {
|
|
|
17395
17377
|
// 检查类型,如果为自定义导出,则不需要校验类型
|
|
17396
17378
|
if (!handleOptions.exportMethod && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includes(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(exportOpts._typeMaps), type)) {
|
|
17397
17379
|
errLog('vxe.error.notType', [type]);
|
|
17398
|
-
if (
|
|
17399
|
-
|
|
17400
|
-
warnLog('vxe.error.reqPlugin', [4, 'plugin-export-xlsx']);
|
|
17401
|
-
}
|
|
17380
|
+
if (['xlsx', 'pdf'].includes(type)) {
|
|
17381
|
+
warnLog('vxe.error.reqPlugin', [4, 'plugin-export-xlsx']);
|
|
17402
17382
|
}
|
|
17403
17383
|
const params = {
|
|
17404
17384
|
status: false
|
|
@@ -17425,10 +17405,8 @@ export_hook_hooks.add('tableExportModule', {
|
|
|
17425
17405
|
handleOptions.data = selectRecords;
|
|
17426
17406
|
}
|
|
17427
17407
|
} else if (mode === 'all') {
|
|
17428
|
-
if (
|
|
17429
|
-
|
|
17430
|
-
warnLog('vxe.error.errProp', ['all', 'mode=current,selected']);
|
|
17431
|
-
}
|
|
17408
|
+
if (!$xeGrid) {
|
|
17409
|
+
errLog('vxe.error.errProp', ['all', 'mode=current,selected']);
|
|
17432
17410
|
}
|
|
17433
17411
|
if ($xeGrid && !handleOptions.remote) {
|
|
17434
17412
|
const gridReactData = $xeGrid.reactData;
|
|
@@ -17448,10 +17426,8 @@ export_hook_hooks.add('tableExportModule', {
|
|
|
17448
17426
|
const ajaxMethods = ajax.queryAll;
|
|
17449
17427
|
const queryAllSuccessMethods = ajax.queryAllSuccess;
|
|
17450
17428
|
const queryAllErrorMethods = ajax.queryAllError;
|
|
17451
|
-
if (
|
|
17452
|
-
|
|
17453
|
-
warnLog('vxe.error.notFunc', ['proxy-config.ajax.queryAll']);
|
|
17454
|
-
}
|
|
17429
|
+
if (!ajaxMethods) {
|
|
17430
|
+
errLog('vxe.error.notFunc', ['proxy-config.ajax.queryAll']);
|
|
17455
17431
|
}
|
|
17456
17432
|
if (ajaxMethods) {
|
|
17457
17433
|
const params = {
|
|
@@ -17728,7 +17704,7 @@ export_hook_hooks.add('tableExportModule', {
|
|
|
17728
17704
|
if (!props.exportConfig) {
|
|
17729
17705
|
errLog('vxe.error.reqProp', ['export-config']);
|
|
17730
17706
|
}
|
|
17731
|
-
handleExportAndPrint(defOpts);
|
|
17707
|
+
return handleExportAndPrint(defOpts);
|
|
17732
17708
|
},
|
|
17733
17709
|
closePrint: handleCloseExport,
|
|
17734
17710
|
openPrint(options) {
|
|
@@ -17739,7 +17715,7 @@ export_hook_hooks.add('tableExportModule', {
|
|
|
17739
17715
|
if (!props.printConfig) {
|
|
17740
17716
|
errLog('vxe.error.reqProp', ['print-config']);
|
|
17741
17717
|
}
|
|
17742
|
-
handleExportAndPrint(defOpts, true);
|
|
17718
|
+
return handleExportAndPrint(defOpts, true);
|
|
17743
17719
|
}
|
|
17744
17720
|
};
|
|
17745
17721
|
return exportMethods;
|
|
@@ -18374,6 +18350,108 @@ class Rule {
|
|
|
18374
18350
|
return this.content;
|
|
18375
18351
|
}
|
|
18376
18352
|
}
|
|
18353
|
+
// 如果存在 pattern,判断正则
|
|
18354
|
+
function validREValue(pattern, val) {
|
|
18355
|
+
if (pattern && !(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isRegExp(pattern) ? pattern : new RegExp(pattern)).test(val)) {
|
|
18356
|
+
return false;
|
|
18357
|
+
}
|
|
18358
|
+
return true;
|
|
18359
|
+
}
|
|
18360
|
+
// 如果存在 max,判断最大值
|
|
18361
|
+
function validMaxValue(max, num) {
|
|
18362
|
+
if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(max) && num > external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(max)) {
|
|
18363
|
+
return false;
|
|
18364
|
+
}
|
|
18365
|
+
return true;
|
|
18366
|
+
}
|
|
18367
|
+
// 如果存在 min,判断最小值
|
|
18368
|
+
function validMinValue(min, num) {
|
|
18369
|
+
if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(min) && num < external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(min)) {
|
|
18370
|
+
return false;
|
|
18371
|
+
}
|
|
18372
|
+
return true;
|
|
18373
|
+
}
|
|
18374
|
+
function validRuleValue(rule, val, required) {
|
|
18375
|
+
const {
|
|
18376
|
+
type,
|
|
18377
|
+
min,
|
|
18378
|
+
max,
|
|
18379
|
+
pattern
|
|
18380
|
+
} = rule;
|
|
18381
|
+
const isArrType = type === 'array';
|
|
18382
|
+
const isNumType = type === 'number';
|
|
18383
|
+
const isStrType = type === 'string';
|
|
18384
|
+
const strVal = `${val}`;
|
|
18385
|
+
if (!validREValue(pattern, strVal)) {
|
|
18386
|
+
return false;
|
|
18387
|
+
}
|
|
18388
|
+
if (isArrType) {
|
|
18389
|
+
if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(val)) {
|
|
18390
|
+
return false;
|
|
18391
|
+
}
|
|
18392
|
+
if (required) {
|
|
18393
|
+
if (!val.length) {
|
|
18394
|
+
return false;
|
|
18395
|
+
}
|
|
18396
|
+
}
|
|
18397
|
+
if (!validMinValue(min, val.length)) {
|
|
18398
|
+
return false;
|
|
18399
|
+
}
|
|
18400
|
+
if (!validMaxValue(max, val.length)) {
|
|
18401
|
+
return false;
|
|
18402
|
+
}
|
|
18403
|
+
} else if (isNumType) {
|
|
18404
|
+
const numVal = Number(val);
|
|
18405
|
+
if (isNaN(numVal)) {
|
|
18406
|
+
return false;
|
|
18407
|
+
}
|
|
18408
|
+
if (!validMinValue(min, numVal)) {
|
|
18409
|
+
return false;
|
|
18410
|
+
}
|
|
18411
|
+
if (!validMaxValue(max, numVal)) {
|
|
18412
|
+
return false;
|
|
18413
|
+
}
|
|
18414
|
+
} else {
|
|
18415
|
+
if (isStrType) {
|
|
18416
|
+
if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(val)) {
|
|
18417
|
+
return false;
|
|
18418
|
+
}
|
|
18419
|
+
}
|
|
18420
|
+
if (required) {
|
|
18421
|
+
if (!strVal) {
|
|
18422
|
+
return false;
|
|
18423
|
+
}
|
|
18424
|
+
}
|
|
18425
|
+
if (!validMinValue(min, strVal.length)) {
|
|
18426
|
+
return false;
|
|
18427
|
+
}
|
|
18428
|
+
if (!validMaxValue(max, strVal.length)) {
|
|
18429
|
+
return false;
|
|
18430
|
+
}
|
|
18431
|
+
}
|
|
18432
|
+
return true;
|
|
18433
|
+
}
|
|
18434
|
+
function checkRuleStatus(rule, val) {
|
|
18435
|
+
const {
|
|
18436
|
+
required
|
|
18437
|
+
} = rule;
|
|
18438
|
+
const isEmptyVal = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(val);
|
|
18439
|
+
if (required) {
|
|
18440
|
+
if (isEmptyVal) {
|
|
18441
|
+
return false;
|
|
18442
|
+
}
|
|
18443
|
+
if (!validRuleValue(rule, val, required)) {
|
|
18444
|
+
return false;
|
|
18445
|
+
}
|
|
18446
|
+
} else {
|
|
18447
|
+
if (!isEmptyVal) {
|
|
18448
|
+
if (!validRuleValue(rule, val, required)) {
|
|
18449
|
+
return false;
|
|
18450
|
+
}
|
|
18451
|
+
}
|
|
18452
|
+
}
|
|
18453
|
+
return true;
|
|
18454
|
+
}
|
|
18377
18455
|
const tableValidatorMethodKeys = ['fullValidate', 'validate', 'fullValidateField', 'validateField', 'clearValidate'];
|
|
18378
18456
|
validator_hook_hooks.add('tableValidatorModule', {
|
|
18379
18457
|
setupTable($xeTable) {
|
|
@@ -18589,10 +18667,8 @@ validator_hook_hooks.add('tableValidatorModule', {
|
|
|
18589
18667
|
* 完整校验行,和 validate 的区别就是会给有效数据中的每一行进行校验
|
|
18590
18668
|
*/
|
|
18591
18669
|
fullValidate(rows, cb) {
|
|
18592
|
-
if (
|
|
18593
|
-
|
|
18594
|
-
warnLog('vxe.error.notValidators', ['fullValidate(rows, callback)', 'fullValidate(rows)']);
|
|
18595
|
-
}
|
|
18670
|
+
if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(cb)) {
|
|
18671
|
+
warnLog('vxe.error.notValidators', ['fullValidate(rows, callback)', 'fullValidate(rows)']);
|
|
18596
18672
|
}
|
|
18597
18673
|
return beginValidate(rows, null, cb, true);
|
|
18598
18674
|
},
|
|
@@ -18668,33 +18744,6 @@ validator_hook_hooks.add('tableValidatorModule', {
|
|
|
18668
18744
|
return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
|
|
18669
18745
|
}
|
|
18670
18746
|
};
|
|
18671
|
-
const validErrorRuleValue = (rule, val) => {
|
|
18672
|
-
const {
|
|
18673
|
-
type,
|
|
18674
|
-
min,
|
|
18675
|
-
max,
|
|
18676
|
-
pattern
|
|
18677
|
-
} = rule;
|
|
18678
|
-
const isNumType = type === 'number';
|
|
18679
|
-
const numVal = isNumType ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(val) : external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().getSize(val);
|
|
18680
|
-
// 判断数值
|
|
18681
|
-
if (isNumType && isNaN(val)) {
|
|
18682
|
-
return true;
|
|
18683
|
-
}
|
|
18684
|
-
// 如果存在 min,判断最小值
|
|
18685
|
-
if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(min) && numVal < external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(min)) {
|
|
18686
|
-
return true;
|
|
18687
|
-
}
|
|
18688
|
-
// 如果存在 max,判断最大值
|
|
18689
|
-
if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(max) && numVal > external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(max)) {
|
|
18690
|
-
return true;
|
|
18691
|
-
}
|
|
18692
|
-
// 如果存在 pattern,正则校验
|
|
18693
|
-
if (pattern && !(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isRegExp(pattern) ? pattern : new RegExp(pattern)).test(val)) {
|
|
18694
|
-
return true;
|
|
18695
|
-
}
|
|
18696
|
-
return false;
|
|
18697
|
-
};
|
|
18698
18747
|
validatorPrivateMethods = {
|
|
18699
18748
|
/**
|
|
18700
18749
|
* 校验数据
|
|
@@ -18726,9 +18775,7 @@ validator_hook_hooks.add('tableValidatorModule', {
|
|
|
18726
18775
|
const cellValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(val) ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, field) : val;
|
|
18727
18776
|
rules.forEach(rule => {
|
|
18728
18777
|
const {
|
|
18729
|
-
type,
|
|
18730
18778
|
trigger,
|
|
18731
|
-
required,
|
|
18732
18779
|
validator
|
|
18733
18780
|
} = rule;
|
|
18734
18781
|
if (validType === 'all' || !trigger || validType === trigger) {
|
|
@@ -18753,9 +18800,7 @@ validator_hook_hooks.add('tableValidatorModule', {
|
|
|
18753
18800
|
if (tcvMethod) {
|
|
18754
18801
|
customValid = tcvMethod(validParams);
|
|
18755
18802
|
} else {
|
|
18756
|
-
|
|
18757
|
-
warnLog('vxe.error.notValidators', [validator]);
|
|
18758
|
-
}
|
|
18803
|
+
errLog('vxe.error.notValidators', [validator]);
|
|
18759
18804
|
}
|
|
18760
18805
|
} else {
|
|
18761
18806
|
errLog('vxe.error.notValidators', [validator]);
|
|
@@ -18786,17 +18831,7 @@ validator_hook_hooks.add('tableValidatorModule', {
|
|
|
18786
18831
|
}
|
|
18787
18832
|
}
|
|
18788
18833
|
} else {
|
|
18789
|
-
|
|
18790
|
-
const isArrVal = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(cellValue);
|
|
18791
|
-
let hasEmpty = true;
|
|
18792
|
-
if (isArrType || isArrVal) {
|
|
18793
|
-
hasEmpty = !isArrVal || !cellValue.length;
|
|
18794
|
-
} else if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(cellValue)) {
|
|
18795
|
-
hasEmpty = eqEmptyValue(cellValue.trim());
|
|
18796
|
-
} else {
|
|
18797
|
-
hasEmpty = eqEmptyValue(cellValue);
|
|
18798
|
-
}
|
|
18799
|
-
if (required ? hasEmpty || validErrorRuleValue(rule, cellValue) : !hasEmpty && validErrorRuleValue(rule, cellValue)) {
|
|
18834
|
+
if (!checkRuleStatus(rule, cellValue)) {
|
|
18800
18835
|
validRuleErr = true;
|
|
18801
18836
|
errorRules.push(new Rule(rule));
|
|
18802
18837
|
}
|