Files
vxe-table/lib/tools/src/utils.js
xuliangzhan 4f23cf4cc2 内部重构
2019-12-11 17:21:17 +08:00

324 lines
10 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.UtilTools = void 0;
var _xeUtils = _interopRequireDefault(require("xe-utils/methods/xe-utils"));
var _conf = _interopRequireDefault(require("../../conf"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
var zindexIndex = 0;
var lastZindex = 0;
var columnUniqueId = 0;
var ColumnConfig =
/*#__PURE__*/
function () {
function ColumnConfig($table, _vm) {
var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
renderHeader = _ref.renderHeader,
renderCell = _ref.renderCell,
renderData = _ref.renderData;
_classCallCheck(this, ColumnConfig);
var formatter = _vm.formatter;
if (_vm.cellRender && _vm.editRender) {
UtilTools.warn('vxe.error.cellEditRender');
}
if (_vm.type === 'index') {// UtilTools.warn('vxe.error.delProp', ['index', 'seq'])
} else if (_vm.type === 'selection') {
UtilTools.warn('vxe.error.delProp', ['selection', 'checkbox']);
} else if (_vm.type === 'expand') {
if ($table.treeConfig && $table.treeOpts.line) {
UtilTools.error('vxe.error.treeLineExpand');
}
if (_vm.slots && !_vm.slots.content && _vm.slots.default) {
UtilTools.warn('vxe.error.expandContent');
}
}
if (formatter) {
if (_xeUtils.default.isString(formatter)) {
if (!_xeUtils.default.isFunction(_xeUtils.default[formatter])) {
UtilTools.error('vxe.error.notFunc', [formatter]);
}
} else if (_xeUtils.default.isArray(formatter)) {
if (!_xeUtils.default.isFunction(_xeUtils.default[formatter[0]])) {
UtilTools.error('vxe.error.notFunc', [formatter[0]]);
}
}
}
Object.assign(this, {
// 基本属性
id: "col_".concat(++columnUniqueId),
type: _vm.type,
prop: _vm.prop,
property: _vm.field || _vm.prop,
title: _vm.title,
label: _vm.label,
width: _vm.width,
minWidth: _vm.minWidth,
resizable: _vm.resizable,
fixed: _vm.fixed,
align: _vm.align,
headerAlign: _vm.headerAlign,
footerAlign: _vm.footerAlign,
showOverflow: _vm.showOverflow,
showHeaderOverflow: _vm.showHeaderOverflow,
className: _vm.class || _vm.className,
headerClassName: _vm.headerClassName,
footerClassName: _vm.footerClassName,
indexMethod: _vm.indexMethod,
formatter: formatter,
sortable: _vm.sortable,
sortBy: _vm.sortBy,
sortMethod: _vm.sortMethod,
remoteSort: _vm.remoteSort,
filters: UtilTools.getFilters(_vm.filters),
filterMultiple: _xeUtils.default.isBoolean(_vm.filterMultiple) ? _vm.filterMultiple : true,
filterMethod: _vm.filterMethod,
filterRender: _vm.filterRender,
treeNode: _vm.treeNode,
cellRender: _vm.cellRender,
editRender: _vm.editRender,
// 自定义参数
checked: false,
params: _vm.params,
// 渲染属性
visible: _xeUtils.default.isBoolean(_vm.visible) ? _vm.visible : true,
level: 1,
rowSpan: 1,
colSpan: 1,
order: null,
renderWidth: 0,
renderHeight: 0,
resizeWidth: 0,
renderLeft: 0,
model: {},
renderHeader: renderHeader || _vm.renderHeader,
renderCell: renderCell || _vm.renderCell,
renderData: renderData,
// 单元格插槽,只对 grid 有效
slots: _vm.slots,
own: _vm
});
}
_createClass(ColumnConfig, [{
key: "getTitle",
value: function getTitle() {
// 在 v3.0 中废弃 label、type=index
return UtilTools.getFuncText(this.own.title || this.own.label || (this.type === 'seq' || this.type === 'index' ? _conf.default.i18n('vxe.column.seqTitle') : ''));
}
}, {
key: "update",
value: function update(name, value) {
// 不支持双向的属性
if (!['filters'].includes(name)) {
this[name] = value;
}
}
}]);
return ColumnConfig;
}();
function outLog(type) {
return function (message, params) {
var msg = UtilTools.getLog(message, params);
console[type](msg);
return msg;
};
}
var UtilTools = {
warn: outLog('warn'),
error: outLog('error'),
getLog: function getLog(message, params) {
return "[vxe-table] ".concat(_xeUtils.default.template(_conf.default.i18n(message), params));
},
getSize: function getSize(_ref2) {
var size = _ref2.size,
$parent = _ref2.$parent;
return size || ($parent && ['medium', 'small', 'mini'].indexOf($parent.size) > -1 ? $parent.size : null);
},
getFuncText: function getFuncText(content) {
return _xeUtils.default.isFunction(content) ? content() : _conf.default.translate ? _conf.default.translate(content) : content;
},
nextZIndex: function nextZIndex($table) {
if ($table && $table.zIndex) {
return $table.zIndex;
}
lastZindex = _conf.default.zIndex + zindexIndex++;
return lastZindex;
},
getLastZIndex: function getLastZIndex() {
return lastZindex;
},
// 行主键 key
getRowkey: function getRowkey($table) {
return $table.rowId;
},
// 行主键 value
getRowid: function getRowid($table, row) {
var rowId = _xeUtils.default.get(row, UtilTools.getRowkey($table));
return rowId ? encodeURIComponent(rowId) : '';
},
// 触发事件
emitEvent: function emitEvent(_vm, type, args) {
if (_vm.$listeners[type]) {
_vm.$emit.apply(_vm, [type].concat(args));
}
},
// 获取所有的列,排除分组
getColumnList: function getColumnList(columns) {
var result = [];
columns.forEach(function (column) {
result.push.apply(result, column.children && column.children.length ? UtilTools.getColumnList(column.children) : [column]);
});
return result;
},
getClass: function getClass(property, params) {
return property ? _xeUtils.default.isFunction(property) ? property(params) : property : '';
},
getFilters: function getFilters(filters) {
return (filters || []).map(function (_ref3) {
var label = _ref3.label,
value = _ref3.value,
data = _ref3.data,
checked = _ref3.checked;
return {
label: label,
value: value,
data: data,
_data: data,
checked: !!checked
};
});
},
formatText: function formatText(value, placeholder) {
return '' + (value === null || value === void 0 ? placeholder ? _conf.default.emptyCell : '' : value);
},
getCellValue: function getCellValue(row, column) {
return _xeUtils.default.get(row, column.property);
},
getCellLabel: function getCellLabel(row, column, params) {
var formatter = column.formatter;
var cellValue = UtilTools.getCellValue(row, column);
var cellLabel = cellValue;
if (params && formatter) {
var rest, formatData;
var $table = params.$table;
var colid = column.id;
var fullAllDataRowMap = $table.fullAllDataRowMap;
var cacheFormat = fullAllDataRowMap.has(row);
if (cacheFormat) {
rest = fullAllDataRowMap.get(row);
formatData = rest.formatData;
if (!formatData) {
formatData = fullAllDataRowMap.get(row).formatData = {};
}
}
if (rest && formatData[colid]) {
if (formatData[colid].value === cellValue) {
return formatData[colid].label;
}
}
if (_xeUtils.default.isString(formatter)) {
cellLabel = _xeUtils.default[formatter] ? _xeUtils.default[formatter](cellValue) : '';
} else if (_xeUtils.default.isArray(formatter)) {
cellLabel = _xeUtils.default[formatter[0]] ? _xeUtils.default[formatter[0]].apply(_xeUtils.default, [cellValue].concat(formatter.slice(1))) : '';
} else {
cellLabel = formatter(Object.assign({
cellValue: cellValue
}, params));
}
if (formatData) {
formatData[colid] = {
value: cellValue,
label: cellLabel
};
}
}
return cellLabel;
},
setCellValue: function setCellValue(row, column, value) {
return _xeUtils.default.set(row, column.property, value);
},
getColumnConfig: function getColumnConfig($table, _vm, options) {
return _vm instanceof ColumnConfig ? _vm : new ColumnConfig($table, _vm, options);
},
// 组装列配置
assemColumn: function assemColumn(_vm) {
var $table = _vm.$table,
$column = _vm.$column,
columnConfig = _vm.columnConfig;
var groupConfig = $column ? $column.columnConfig : null;
columnConfig.slots = _vm.$scopedSlots;
if (groupConfig && $column.$children.length > 0) {
if (!groupConfig.children) {
groupConfig.children = [];
}
groupConfig.children.splice([].indexOf.call($column.$el.children, _vm.$el), 0, columnConfig);
} else {
$table.collectColumn.splice([].indexOf.call($table.$refs.hideColumn.children, _vm.$el), 0, columnConfig);
}
},
// 销毁列
destroyColumn: function destroyColumn(_vm) {
var $table = _vm.$table,
columnConfig = _vm.columnConfig;
var matchObj = _xeUtils.default.findTree($table.collectColumn, function (column) {
return column === columnConfig;
});
if (matchObj) {
matchObj.items.splice(matchObj.index, 1);
}
},
hasChildrenList: function hasChildrenList(item) {
return item && item.children && item.children.length > 0;
},
parseFile: function parseFile(file) {
var name = file.name;
var tIndex = _xeUtils.default.lastIndexOf(name, '.');
var type = name.substring(tIndex + 1, name.length);
var filename = name.substring(0, tIndex);
return {
filename: filename,
type: type
};
}
};
exports.UtilTools = UtilTools;
var _default = UtilTools;
exports.default = _default;