Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
filterMethod ({ option, row, column }) {
let { data } = option
let cellValue = XEUtils.get(row, column.property)
/* eslint-disable eqeqeq */
return cellValue == data
}
})
filterMethod({ option, row, column }: any) {
let { data }: any = option
let { filterRender: renderOpts }: any = column
let { props = {} }: any = renderOpts
let cellValue: any = XEUtils.get(row, column.property)
if (data) {
switch (props.type) {
case 'daterange':
return equalDaterange(cellValue, data, props, 'yyyy-MM-dd')
case 'datetimerange':
return equalDaterange(cellValue, data, props, 'yyyy-MM-dd HH:ss:mm')
case 'monthrange':
return equalDaterange(cellValue, data, props, 'yyyy-MM')
default:
return cellValue === data
}
}
return false
}
},
return filterColumns.every(({ column, valueList, itemList }) => {
if (valueList.length && !(filterOpts.remote || remoteFilter)) {
let { filterRender, property, filterMethod } = column
let compConf = filterRender ? VXETable.renderer.get(filterRender.name) : null
if (!filterMethod && compConf && compConf.renderFilter) {
filterMethod = compConf.filterMethod
}
return filterMethod ? itemList.some(item => filterMethod({ value: item.value, option: item, row, column })) : valueList.indexOf(XEUtils.get(row, property)) > -1
}
return true
})
})
this.isIndeterminate = !this.isAllSelected && afterFullData.some(row => XEUtils.get(row, property) || treeIndeterminates.indexOf(row) > -1)
} else {
validCellRules (type, row, column, val) {
let { editRules, treeConfig } = this
let { property } = column
let errorRules = []
let cellVailds = []
if (property && editRules) {
let rules = XEUtils.get(editRules, property)
if (rules) {
let cellValue = XEUtils.isUndefined(val) ? XEUtils.get(row, property) : val
rules.forEach(rule => {
cellVailds.push(
new Promise(resolve => {
if (type === 'all' || !rule.trigger || type === rule.trigger) {
if (XEUtils.isFunction(rule.validator)) {
rule.validator(rule, cellValue, e => {
if (XEUtils.isError(e)) {
let cusRule = { type: 'custom', trigger: rule.trigger, message: e.message, rule: new Rule(rule) }
errorRules.push(new Rule(cusRule))
}
return resolve()
}, { rules, row, column, [`${treeConfig ? '$' : ''}rowIndex`]: this.getRowIndex(row), columnIndex: this.getColumnIndex(column) })
} else {
let isNumber = rule.type === 'number'
let numVal = isNumber ? XEUtils.toNumber(cellValue) : XEUtils.getSize(cellValue)
if (cellValue === null || cellValue === undefined || cellValue === '') {
renderCell (h, renderOpts, params, context) {
let { options, optionGroups, optionProps = {}, optionGroupProps = {} } = renderOpts
let { row, column } = params
let cellValue = XEUtils.get(row, column.property)
let selectItem
let labelProp = optionProps.label || 'label'
let valueProp = optionProps.value || 'value'
if (optionGroups) {
let groupOptions = optionGroupProps.options || 'options'
for (let index = 0; index < optionGroups.length; index++) {
selectItem = XEUtils.find(optionGroups[index][groupOptions], item => item[valueProp] === cellValue)
if (selectItem) {
break
}
}
return selectItem ? selectItem[labelProp] : cellValue
} else {
selectItem = XEUtils.find(options, item => item[valueProp] === cellValue)
return selectItem ? selectItem[labelProp] : cellValue
}
function renderFormOptions (h, options, renderOpts, params, context) {
let { data, property } = params
let { optionProps = {} } = renderOpts
let labelProp = optionProps.label || 'label'
let valueProp = optionProps.value || 'value'
let disabledProp = optionProps.disabled || 'disabled'
let cellValue = XEUtils.get(data, property)
return options.map((item, index) => {
return h('option', {
attrs: {
value: item[valueProp],
disabled: item[disabledProp]
},
domProps: {
selected: item[valueProp] === cellValue
},
key: index
}, item[labelProp])
})
}
indeterminate = treeIndeterminates.indexOf(row) > -1
}
}
return [
h('span', {
class: ['vxe-cell--checkbox', {
'is--checked': isChecked,
'is--disabled': isDisabled,
'is--indeterminate': indeterminate
}],
on
}, [
h('i', {
class: 'vxe-checkbox--icon'
})
].concat(labelField ? (slots && slots.default ? slots.default(params, h) : [XEUtils.get(row, labelField)]) : []))
]
},
renderTreeSelectionCellByProp (h, params) {
}, XEUtils.map(optionGroups, (group: any, gIndex: number) => {
return h('el-option-group', {
props: {
label: group[groupLabel]
},
key: gIndex
}, renderOptions(h, group[groupOptions], optionProps))
}))
]
}
return [
h('el-select', {
props,
attrs,
model: {
value: XEUtils.get(row, column.property),
callback(cellValue: any) {
XEUtils.set(row, column.property, cellValue)
}
},
on: getCellEvents(renderOpts, params)
}, renderOptions(h, options, optionProps))
]
},
renderCell(h: Function, renderOpts: any, params: any) {