import { isNumber, isString } from "@pisell/utils";
import { getValueByKeys } from "../../utils";

// 字段过滤器函数
export default function (_ref) {
  var value = _ref.value,
    key = _ref.key,
    item = _ref.item;
  // 如果value为空，则不过滤
  if (!isString(value)) {
    return true;
  }
  var lowerCaseValue = value.toLowerCase();

  // 如果key是keywords，则使用模糊查询
  if (key === "keywords") {
    // Todo: 后续换为表格列的dataIndex取值过滤
    return JSON.stringify(item).toLowerCase().includes(lowerCaseValue);
    // 表格展示对象中的值时不适用
    // return Object.values(item)
    //   .filter((v) => isString(v) || isNumber(v))
    //   .some((item) => {
    //     return `${item}`.includes(value);
    //   });
  }

  var dataValue = getValueByKeys(item, key);
  if (isString(dataValue) || isNumber(dataValue)) {
    return "".concat(dataValue).toLowerCase().includes(lowerCaseValue);
  }
}