vxe-table 3.4.7-beta.2 → 3.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/export/src/mixin.js +4 -8
- package/lib/export/src/mixin.min.js +1 -1
- package/lib/index.umd.js +84 -50
- package/lib/index.umd.min.js +1 -1
- package/lib/table/src/methods.js +79 -41
- package/lib/table/src/methods.min.js +1 -1
- package/lib/validator/src/mixin.js +1 -1
- package/lib/validator/src/mixin.min.js +1 -1
- package/package.json +2 -3
- package/packages/export/src/mixin.js +5 -8
- package/packages/table/src/methods.js +38 -16
- package/packages/validator/src/mixin.js +1 -1
- package/types/table.d.ts +1 -0
|
@@ -216,7 +216,7 @@ var _default = {
|
|
|
216
216
|
var ruleProps = Object.keys(validRest);
|
|
217
217
|
return _this2.$nextTick().then(function () {
|
|
218
218
|
if (ruleProps.length) {
|
|
219
|
-
return validRest[ruleProps[0]][0];
|
|
219
|
+
return Promise.reject(validRest[ruleProps[0]][0]);
|
|
220
220
|
}
|
|
221
221
|
|
|
222
222
|
if (cb) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_tools=require("../../tools"),_utils=require("../../tools/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_tools=require("../../tools"),_utils=require("../../tools/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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 i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}var Rule=function(){function t(e){_classCallCheck(this,t),Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.max,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}return _createClass(t,[{key:"content",get:function(){return _tools.UtilTools.getFuncText(this.$options.content||this.$options.message)}},{key:"message",get:function(){return this.content}}]),t}();function validErrorRuleValue(e,t){var r=e.type,i=e.min,l=e.max,n=e.pattern,e="number"===r,r=e?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!e||!isNaN(t))||(!_xeUtils.default.eqNull(i)&&r<_xeUtils.default.toNumber(i)||(!_xeUtils.default.eqNull(l)&&r>_xeUtils.default.toNumber(l)||!(!n||(_xeUtils.default.isRegExp(n)?n:new RegExp(n)).test(t))))}var _default={methods:{_fullValidate:function(e,t){return this.beginValidate(e,t,!0)},_validate:function(e,t){return this.beginValidate(e,t)},handleValidError:function(t){var r=this;return new Promise(function(e){!1===r.validOpts.autoPos?(r.emitEvent("valid-error",t),e()):r.handleActived(t,{type:"valid-error",trigger:"call"}).then(function(){setTimeout(function(){e(r.showValidTooltip(t))},10)})})},beginValidate:function(e,o,i){var u=this,a={},l=this.editRules,s=this.afterFullData,c=this.treeConfig,t=this.treeOpts;!0===e?r=s:e&&(_xeUtils.default.isFunction(e)?o=e:r=_xeUtils.default.isArray(e)?e:[e]);var r=r||this.getInsertRecords().concat(this.getUpdateRecords()),n=[];if(this.lastCallTime=Date.now(),this.validRuleErr=!1,this.clearValidate(),l){var d=this.getColumns(),e=function(r){var e;!i&&u.validRuleErr||(e=[],d.forEach(function(t){!i&&u.validRuleErr||!_xeUtils.default.has(l,t.property)||e.push(u.validCellRules("all",r,t).catch(function(e){e={rule:e.rule,rules:e.rules,rowIndex:u.getRowIndex(r),row:r,columnIndex:u.getColumnIndex(t),column:t,$table:u};if(a[t.property]||(a[t.property]=[]),a[t.property].push(e),!i)return u.validRuleErr=!0,Promise.reject(e)}))}),n.push(Promise.all(e)))};return c?_xeUtils.default.eachTree(r,e,t):r.forEach(e),Promise.all(n).then(function(){var e=Object.keys(a);return u.$nextTick().then(function(){return e.length?Promise.reject(a[e[0]][0]):void(o&&o())})}).catch(function(n){return new Promise(function(e){function t(){u.$nextTick(function(){o?(o(a),e()):e(a)})}function r(){n.cell=u.getCell(n.row,n.column),_tools.DomTools.scrollToView(n.cell),u.handleValidError(n).then(t)}var i=n.row,l=s.indexOf(i),i=0<l?s[l-1]:i;!1===u.validOpts.autoPos?t():(c?u.scrollToTreeRow(i):u.scrollToRow(i)).then(r)})})}return this.$nextTick().then(function(){o&&o()})},hasCellRules:function(t,e,r){var i=this.editRules,r=r.property;if(r&&i){r=_xeUtils.default.get(i,r);return r&&_xeUtils.default.find(r,function(e){return"all"===t||!e.trigger||t===e.trigger})}return!1},validCellRules:function(n,o,u,e){var a,s,c=this,t=this.editRules,r=u.property,d=[],f=[];return r&&t&&((a=_xeUtils.default.get(t,r))&&(s=_xeUtils.default.isUndefined(e)?_xeUtils.default.get(o,r):e,a.forEach(function(t){var e,r=t.type,i=t.trigger,l=t.required;"all"!==n&&i&&n!==i||(_xeUtils.default.isFunction(t.validator)?(e=t.validator({cellValue:s,rule:t,rules:a,row:o,rowIndex:c.getRowIndex(o),column:u,columnIndex:c.getColumnIndex(u),$table:c}))&&(_xeUtils.default.isError(e)?(c.validRuleErr=!0,d.push(new Rule({type:"custom",trigger:i,content:e.message,rule:new Rule(t)}))):e.catch&&f.push(e.catch(function(e){c.validRuleErr=!0,d.push(new Rule({type:"custom",trigger:i,content:e&&e.message?e.message:t.content||t.message,rule:new Rule(t)}))}))):(r="array"===r?!_xeUtils.default.isArray(s)||!s.length:(0,_utils.eqEmptyValue)(s),(l?r||validErrorRuleValue(t,s):!r&&validErrorRuleValue(t,s))&&(c.validRuleErr=!0,d.push(new Rule(t)))))}))),Promise.all(f).then(function(){if(d.length){var e={rules:d,rule:d[0]};return Promise.reject(e)}})},_clearValidate:function(){var e=this.$refs.validTip;return Object.assign(this.validStore,{visible:!1,row:null,column:null,content:"",rule:null}),e&&e.visible&&e.close(),this.$nextTick()},triggerValidate:function(t){var r=this,e=this.editConfig,i=this.editStore,l=this.editRules,n=this.validStore,i=i.actived;if(i.row&&l){var i=i.args,o=i.row,u=i.column,a=i.cell;if(this.hasCellRules(t,o,u))return this.validCellRules(t,o,u).then(function(){"row"===e.mode&&n.visible&&n.row===o&&n.column===u&&r.clearValidate()}).catch(function(e){e=e.rule;if(e.trigger&&t!==e.trigger)return Promise.resolve();e={rule:e,row:o,column:u,cell:a};return r.showValidTooltip(e),Promise.reject(e)})}return Promise.resolve()},showValidTooltip:function(e){var t=this,r=this.$refs,i=this.height,l=this.tableData,n=this.validOpts,o=e.rule,u=e.row,a=e.column,s=e.cell,c=r.validTip,d=o.content;return this.$nextTick(function(){if(Object.assign(t.validStore,{row:u,column:a,rule:o,content:d,visible:!0}),t.emitEvent("valid-error",e),c&&("tooltip"===n.message||"default"===n.message&&!i&&l.length<2))return c.open(s,d)})}}};exports.default=_default;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vxe-table",
|
|
3
|
-
"version": "3.4.7
|
|
3
|
+
"version": "3.4.7",
|
|
4
4
|
"description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"serve": "vue-cli-service serve",
|
|
@@ -66,8 +66,7 @@
|
|
|
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.
|
|
70
|
-
"xlsx": "^0.17.0"
|
|
69
|
+
"xe-utils": "^3.4.3"
|
|
71
70
|
},
|
|
72
71
|
"peerDependencies": {
|
|
73
72
|
"vue": "^2.6.0",
|
|
@@ -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
|
|
5
|
+
import { mergeBodyMethod } from '../../table/src/util'
|
|
6
6
|
import { browse } from '../../tools/src/dom'
|
|
7
7
|
|
|
8
8
|
const { formatText } = UtilTools
|
|
@@ -40,16 +40,13 @@ 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) {
|
|
44
44
|
const seqOpts = $xetable.seqOpts
|
|
45
45
|
const seqMethod = seqOpts.seqMethod || column.seqMethod
|
|
46
46
|
if (seqMethod) {
|
|
47
47
|
return seqMethod({ row, rowIndex, column, columnIndex })
|
|
48
48
|
}
|
|
49
|
-
|
|
50
|
-
return toTreePathSeq(path)
|
|
51
|
-
}
|
|
52
|
-
return seqOpts.startIndex + rowIndex + 1
|
|
49
|
+
return $xetable.getRowSeq(row)
|
|
53
50
|
}
|
|
54
51
|
|
|
55
52
|
function defaultFilterExportColumn (column) {
|
|
@@ -106,7 +103,7 @@ function getLabelData ($xetable, opts, columns, datas) {
|
|
|
106
103
|
} else {
|
|
107
104
|
switch (column.type) {
|
|
108
105
|
case 'seq':
|
|
109
|
-
cellValue = getSeq($xetable, row, rowIndex, column, columnIndex
|
|
106
|
+
cellValue = getSeq($xetable, row, rowIndex, column, columnIndex)
|
|
110
107
|
break
|
|
111
108
|
case 'checkbox':
|
|
112
109
|
cellValue = toBooleanValue($xetable.isCheckedByCheckboxRow(row))
|
|
@@ -162,7 +159,7 @@ function getLabelData ($xetable, opts, columns, datas) {
|
|
|
162
159
|
} else {
|
|
163
160
|
switch (column.type) {
|
|
164
161
|
case 'seq':
|
|
165
|
-
cellValue = getSeq($xetable, row, rowIndex, column, columnIndex
|
|
162
|
+
cellValue = getSeq($xetable, row, rowIndex, column, columnIndex)
|
|
166
163
|
break
|
|
167
164
|
case 'checkbox':
|
|
168
165
|
cellValue = toBooleanValue($xetable.isCheckedByCheckboxRow(row))
|
|
@@ -283,7 +283,7 @@ const Methods = {
|
|
|
283
283
|
return clearTableAllStatus(this)
|
|
284
284
|
},
|
|
285
285
|
/**
|
|
286
|
-
* 同步 data
|
|
286
|
+
* 同步 data 数据(即将废弃)
|
|
287
287
|
* 如果用了该方法,那么组件将不再记录增删改的状态,只能自行实现对应逻辑
|
|
288
288
|
* 对于某些特殊的场景,比如深层树节点元素发生变动时可能会用到
|
|
289
289
|
*/
|
|
@@ -1167,34 +1167,53 @@ const Methods = {
|
|
|
1167
1167
|
})
|
|
1168
1168
|
}
|
|
1169
1169
|
if (treeConfig && transform) {
|
|
1170
|
+
// 筛选虚拟树
|
|
1170
1171
|
tableTree = XEUtils.searchTree(tableFullTreeData, handleFilter, { ...treeOpts, original: true })
|
|
1172
|
+
tableData = tableTree
|
|
1171
1173
|
} else {
|
|
1172
1174
|
tableData = treeConfig ? tableFullTreeData.filter(handleFilter) : tableFullData.filter(handleFilter)
|
|
1173
1175
|
tableTree = tableData
|
|
1174
1176
|
}
|
|
1175
1177
|
} else {
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
+
if (treeConfig && transform) {
|
|
1179
|
+
// 还原虚拟树
|
|
1180
|
+
tableTree = XEUtils.searchTree(tableFullTreeData, () => true, { ...treeOpts, original: true })
|
|
1181
|
+
tableData = tableTree
|
|
1182
|
+
} else {
|
|
1183
|
+
tableData = treeConfig ? tableFullTreeData.slice(0) : tableFullData.slice(0)
|
|
1184
|
+
tableTree = tableData
|
|
1185
|
+
}
|
|
1178
1186
|
}
|
|
1179
1187
|
const firstOrderColumn = orderColumns[0]
|
|
1180
1188
|
if (!allRemoteSort && firstOrderColumn) {
|
|
1181
|
-
if (
|
|
1182
|
-
|
|
1183
|
-
|
|
1189
|
+
if (treeConfig && transform) {
|
|
1190
|
+
// 虚拟树和列表一样,只能排序根级节点
|
|
1191
|
+
if (allSortMethod) {
|
|
1192
|
+
const sortRests = allSortMethod({ data: tableTree, sortList: orderColumns, $table: this })
|
|
1193
|
+
tableTree = XEUtils.isArray(sortRests) ? sortRests : tableTree
|
|
1194
|
+
} else {
|
|
1195
|
+
tableTree = XEUtils.orderBy(tableTree, orderColumns.map(({ column, order }) => [getOrderField(this, column), order]))
|
|
1196
|
+
}
|
|
1197
|
+
tableData = tableTree
|
|
1184
1198
|
} else {
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
tableData = XEUtils.
|
|
1199
|
+
if (allSortMethod) {
|
|
1200
|
+
const sortRests = allSortMethod({ data: tableData, column: firstOrderColumn.column, property: firstOrderColumn.property, order: firstOrderColumn.order, sortList: orderColumns, $table: this })
|
|
1201
|
+
tableData = XEUtils.isArray(sortRests) ? sortRests : tableData
|
|
1188
1202
|
} else {
|
|
1189
|
-
// 兼容
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1203
|
+
// 兼容 v4
|
|
1204
|
+
if (sortMultiple) {
|
|
1205
|
+
tableData = XEUtils.orderBy(tableData, orderColumns.map(({ column, order }) => [getOrderField(this, column), order]))
|
|
1206
|
+
} else {
|
|
1207
|
+
// 兼容 v2,在 v4 中废弃, sortBy 不能为数组
|
|
1208
|
+
let sortByConfs
|
|
1209
|
+
if (XEUtils.isArray(firstOrderColumn.sortBy)) {
|
|
1210
|
+
sortByConfs = firstOrderColumn.sortBy.map(item => [item, firstOrderColumn.order])
|
|
1211
|
+
}
|
|
1212
|
+
tableData = XEUtils.orderBy(tableData, sortByConfs || [firstOrderColumn].map(({ column, order }) => [getOrderField(this, column), order]))
|
|
1193
1213
|
}
|
|
1194
|
-
tableData = XEUtils.orderBy(tableData, sortByConfs || [firstOrderColumn].map(({ column, order }) => [getOrderField(this, column), order]))
|
|
1195
1214
|
}
|
|
1215
|
+
tableTree = tableData
|
|
1196
1216
|
}
|
|
1197
|
-
tableTree = tableData
|
|
1198
1217
|
}
|
|
1199
1218
|
this.afterFullData = tableData
|
|
1200
1219
|
this.afterTreeFullData = tableTree
|
|
@@ -1214,14 +1233,16 @@ const Methods = {
|
|
|
1214
1233
|
const seq = path.map((num, i) => i % 2 === 0 ? (Number(num) + 1) : '.').join('')
|
|
1215
1234
|
if (allrest) {
|
|
1216
1235
|
allrest.seq = seq
|
|
1236
|
+
allrest._index = index
|
|
1217
1237
|
}
|
|
1218
1238
|
if (fullrest) {
|
|
1219
1239
|
fullrest.seq = seq
|
|
1240
|
+
fullrest._index = index
|
|
1220
1241
|
} else {
|
|
1221
1242
|
fullAllDataRowIdData[rowid] = { row, rowid, seq, index: -1, $index: -1, _index: index, items: [], parent: null, level: 0 }
|
|
1222
1243
|
fullDataRowIdData[rowid] = { row, rowid, seq, index: -1, $index: -1, _index: index, items: [], parent: null, level: 0 }
|
|
1223
1244
|
}
|
|
1224
|
-
}, treeOpts)
|
|
1245
|
+
}, { children: treeOpts.mapChildren })
|
|
1225
1246
|
} else {
|
|
1226
1247
|
afterFullData.forEach((row, index) => {
|
|
1227
1248
|
const rowid = getRowid(this, row)
|
|
@@ -1230,6 +1251,7 @@ const Methods = {
|
|
|
1230
1251
|
const seq = index + 1
|
|
1231
1252
|
if (allrest) {
|
|
1232
1253
|
allrest.seq = seq
|
|
1254
|
+
allrest._index = index
|
|
1233
1255
|
}
|
|
1234
1256
|
if (fullrest) {
|
|
1235
1257
|
fullrest.seq = seq
|