Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
trOn.mouseleave = evnt => {
if (isOperateMouse($xetable)) {
return
}
$xetable.clearHoverRow()
}
}
let rowid = UtilTools.getRowid($xetable, row)
rows.push(
h('tr', {
class: ['vxe-body--row', {
'row--stripe': stripe && rowIndex > 0 && (rowIndex + 1) % 2 === 0,
'row--new': editStore.insertList.indexOf(row) > -1,
'row--radio': radioOpts.highlight && $xetable.selectRow === row,
'row--cheched': checkboxOpts.highlight && $xetable.isCheckedByCheckboxRow(row)
}, rowClassName ? XEUtils.isFunction(rowClassName) ? rowClassName({ $table: $xetable, $seq, seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex }) : rowClassName : ''],
attrs: {
'data-rowid': rowid
},
style: rowStyle ? (XEUtils.isFunction(rowStyle) ? rowStyle({ $table: $xetable, $seq, seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex }) : rowStyle) : null,
key: rowKey || treeConfig ? rowid : $rowIndex,
on: trOn
}, tableColumn.map((column, $columnIndex) => {
let columnIndex = getColumnIndex(column)
return renderColumn(h, _vm, $xetable, $seq, seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, column, columnIndex, $columnIndex, tableColumn, tableData)
}))
)
// 如果行被展开了
if (rowExpandeds.length && rowExpandeds.indexOf(row) > -1) {
let expandColumnIndex = getColumnIndex(expandColumn)
let cellStyle
if (treeConfig) {
}, footerData.map((list, $rowIndex) => {
return h('tr', {
class: ['vxe-footer--row', footerRowClassName ? XEUtils.isFunction(footerRowClassName) ? footerRowClassName({ $table: $xetable, $rowIndex, fixed: fixedType }) : footerRowClassName : ''],
style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle({ $table: $xetable, $rowIndex, fixed: fixedType }) : footerRowStyle) : null
}, tableColumn.map((column, $columnIndex) => {
let { showOverflow, footerAlign, align, footerClassName } = column
let isColGroup = column.children && column.children.length
let fixedHiddenColumn = fixedType ? column.fixed !== fixedType && !isColGroup : column.fixed && overflowX
let cellOverflow = (XEUtils.isUndefined(showOverflow) || XEUtils.isNull(showOverflow)) ? allColumnOverflow : showOverflow
let footAlign = footerAlign || align || allFooterAlign || allAlign
let showEllipsis = cellOverflow === 'ellipsis'
let showTitle = cellOverflow === 'title'
let showTooltip = cellOverflow === true || cellOverflow === 'tooltip'
let hasEllipsis = showTitle || showTooltip || showEllipsis
let attrs = { 'data-colid': column.id }
let tfOns = {}
// 确保任何情况下 columnIndex 都精准指向真实列索引
let columnIndex = getColumnIndex(column)
let params = { $table: $xetable, $rowIndex, column, columnIndex, $columnIndex, fixed: fixedType }
if (showTitle || showTooltip) {
$xetable.clearHoverRow()
}
}
let rowid = UtilTools.getRowid($xetable, row)
rows.push(
h('tr', {
class: ['vxe-body--row', {
'row--stripe': stripe && rowIndex > 0 && (rowIndex + 1) % 2 === 0,
'row--new': editStore.insertList.indexOf(row) > -1,
'row--radio': radioOpts.highlight && $xetable.selectRow === row,
'row--cheched': checkboxOpts.highlight && $xetable.isCheckedByCheckboxRow(row)
}, rowClassName ? XEUtils.isFunction(rowClassName) ? rowClassName({ $table: $xetable, $seq, seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex }) : rowClassName : ''],
attrs: {
'data-rowid': rowid
},
style: rowStyle ? (XEUtils.isFunction(rowStyle) ? rowStyle({ $table: $xetable, $seq, seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex }) : rowStyle) : null,
key: rowKey || treeConfig ? rowid : $rowIndex,
on: trOn
}, tableColumn.map((column, $columnIndex) => {
let columnIndex = getColumnIndex(column)
return renderColumn(h, _vm, $xetable, $seq, seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, column, columnIndex, $columnIndex, tableColumn, tableData)
}))
)
// 如果行被展开了
if (rowExpandeds.length && rowExpandeds.indexOf(row) > -1) {
let expandColumnIndex = getColumnIndex(expandColumn)
let cellStyle
if (treeConfig) {
cellStyle = {
paddingLeft: `${(rowLevel * treeOpts.indent) + 30}px`
}
}
}, footerData.map((list, $rowIndex) => {
return h('tr', {
class: ['vxe-footer--row', footerRowClassName ? XEUtils.isFunction(footerRowClassName) ? footerRowClassName({ $table: $xetable, $rowIndex, fixed: fixedType }) : footerRowClassName : ''],
style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle({ $table: $xetable, $rowIndex, fixed: fixedType }) : footerRowStyle) : null
}, tableColumn.map((column, $columnIndex) => {
let { showOverflow, footerAlign, align, footerClassName } = column
let isColGroup = column.children && column.children.length
let fixedHiddenColumn = fixedType ? column.fixed !== fixedType && !isColGroup : column.fixed && overflowX
let cellOverflow = (XEUtils.isUndefined(showOverflow) || XEUtils.isNull(showOverflow)) ? allColumnOverflow : showOverflow
let footAlign = footerAlign || align || allFooterAlign || allAlign
let showEllipsis = cellOverflow === 'ellipsis'
let showTitle = cellOverflow === 'title'
let showTooltip = cellOverflow === true || cellOverflow === 'tooltip'
let hasEllipsis = showTitle || showTooltip || showEllipsis
let attrs = { 'data-colid': column.id }
let tfOns = {}
// 确保任何情况下 columnIndex 都精准指向真实列索引
let columnIndex = getColumnIndex(column)
let params = { $table: $xetable, $rowIndex, column, columnIndex, $columnIndex, fixed: fixedType }
class: ['vxe-body--column', column.id, {
[`col--${cellAlign}`]: cellAlign,
[`col--${type}`]: type,
'col--last': $columnIndex === columns.length - 1,
'col--tree-node': treeNode,
'col--edit': editRender,
'col--ellipsis': hasEllipsis,
'edit--visible': editRender && editRender.type === 'visible',
'fixed--hidden': fixedHiddenColumn,
'col--dirty': isDirty,
'col--actived': editConfig && editRender && (actived.row === row && (actived.column === column || editOpts.mode === 'row')),
'col--valid-error': validError
}, UtilTools.getClass(className, params), UtilTools.getClass(cellClassName, params)],
key: columnKey ? column.id : columnIndex,
attrs,
style: cellStyle ? (XEUtils.isFunction(cellStyle) ? cellStyle(params) : cellStyle) : null,
on: tdOns
}, allColumnOverflow && fixedHiddenColumn
? [
h('div', {
class: ['vxe-cell', {
'c--title': showTitle,
'c--tooltip': showTooltip,
'c--ellipsis': showEllipsis
}]
})
]
: renderLine(h, _vm, $xetable, rowLevel, items, params).concat([
h('div', {
class: ['vxe-cell', {
'c--title': showTitle,
'c--tooltip': showTooltip,
}
})
]) : null,
h('div', {
class: 'vxe-modal--body'
}, [
status ? h('div', {
class: 'vxe-modal--status-wrapper'
}, [
h('i', {
class: ['vxe-modal--status-icon', iconStatus || GlobalConfig.icon[`modal${status.replace(/\b(\w)/, word => word.toUpperCase())}`]]
})
]) : null,
h('div', {
class: 'vxe-modal--content'
}, destroyOnClose && !visible ? [] : (defaultSlot ? defaultSlot.call(this, { $modal: this }, h) : (XEUtils.isFunction(message) ? message.call(this, h) : message)))
]),
showFooter ? h('div', {
class: 'vxe-modal--footer'
}, destroyOnClose && !visible ? [] : (footerSlot ? footerSlot.call(this, { $modal: this }, h) : [
type === 'confirm' ? h('vxe-button', {
on: {
click: this.cancelEvent
}
}, GlobalConfig.i18n('vxe.button.cancel')) : null,
h('vxe-button', {
props: {
status: 'primary'
},
on: {
click: this.confirmEvent
}
getFuncText (content) {
return XEUtils.isFunction(content) ? content() : (GlobalConfig.translate ? GlobalConfig.translate(content) : content)
},
nextZIndex ($xetable) {
[`col--${type}`]: type,
'col--last': $columnIndex === cols.length - 1,
'col--fixed': column.fixed,
'col--group': isColGroup,
'col--ellipsis': hasEllipsis,
'fixed--hidden': fixedHiddenColumn,
'is--sortable': column.sortable,
'is--filter': column.filters,
'filter--active': hasFilter
}, UtilTools.getClass(headerClassName, params), UtilTools.getClass(headerCellClassName, params)],
attrs: {
'data-colid': column.id,
colspan: column.colSpan,
rowspan: column.rowSpan
},
style: headerCellStyle ? (XEUtils.isFunction(headerCellStyle) ? headerCellStyle(params) : headerCellStyle) : null,
on: thOns,
key: columnKey || isColGroup ? column.id : columnIndex
}, [
h('div', {
class: ['vxe-cell', {
'c--title': showTitle,
'c--tooltip': showTooltip,
'c--ellipsis': showEllipsis
}]
}, column.renderHeader(h, params)),
/**
* 列宽拖动
*/
!fixedHiddenColumn && !isColGroup && (XEUtils.isBoolean(column.resizable) ? column.resizable : resizable) ? h('div', {
class: ['vxe-resizable', {
'is--line': !border
beginValidate (rows, cb, isAll) {
let validRest = {}
let status = true
let { editRules, afterFullData, treeConfig, treeOpts } = this
let vaildDatas = afterFullData
if (rows) {
if (XEUtils.isFunction(rows)) {
cb = rows
} else {
vaildDatas = XEUtils.isArray(rows) ? rows : [rows]
}
}
let rowValids = []
this.lastCallTime = Date.now()
this.clearValidate()
if (editRules) {
let columns = this.getColumns()
let handleVaild = row => {
let colVailds = []
columns.forEach((column, columnIndex) => {
if (XEUtils.has(editRules, column.property)) {
colVailds.push(
new Promise((resolve, reject) => {