bixi
Version:
企业级中后台前端解决方案
28 lines (22 loc) • 803 B
text/typescript
import { get, isFunction } from '@bixi/core/utils';
import { NzSafeAny } from 'ng-zorro-antd/core/types';
import { IAllowFn, ICol, IFn, IRenderProp, IRow } from './table.type';
export function valueGetter(row: IRow, col: ICol, index: number) {
const value = get(row, col.key as string);
if (isFunction(col.value)) {
return (col.value as IFn<IRenderProp>)(value, row, index);
} else {
return value;
}
}
export function propGetter(row: IRow, col: ICol, index: number, fn: IAllowFn<IRenderProp>) {
if (!row) return undefined;
if (isFunction(fn)) {
return (fn as IFn<IRenderProp>)(valueGetter(row, col, index), row, index);
}
return fn;
}
export function hasKey(obj: NzSafeAny, key: string) {
if (typeof obj !== 'object') return false;
return obj.hasOwnProperty(key);
}