linkmore-design
Version:
🌈 🚀lm组件库。🚀
152 lines (141 loc) • 6.4 kB
JavaScript
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _typeof from "@babel/runtime/helpers/esm/typeof";
import dayjs from 'dayjs';
// 检查是否存在内容
export function getIsHas(val) {
// 检查是否数字类型, 是否布尔类型
var flag = !!val || typeof val === 'number' || typeof val === 'boolean';
// 检查空对象和空数组
if (!!val && _typeof(val) === 'object') {
var _Object$keys;
flag = Array.isArray(val) ? !!val.length : !!((_Object$keys = Object.keys(val)) !== null && _Object$keys !== void 0 && _Object$keys.length);
}
return flag;
}
/*
* 数据(布尔值、数值)转字符串后对比是否相等 str, strs, type
* @params {Array | String} strs
* @params {String} type 比对类型
* @type includes 是否包含在数组内
*/
export function toStringIsEqual(str, strs, type) {
if (type === 'includes') {
return strs === null || strs === void 0 ? void 0 : strs.some(function (v) {
return toStringIsEqual(str, v);
});
}
return String(str) === String(strs);
}
// 根据类型返回对应的值
export function getValueForType(type) {
if (['checkbox', 'cascader'].includes(type)) {
return [];
}
return '';
}
// 数组对象去重
export function uniqueFunc(arr, guid) {
var res = new Map();
return arr.filter(function (item) {
var isHas = (item === null || item === void 0 ? void 0 : item[guid]) || typeof (item === null || item === void 0 ? void 0 : item[guid]) === 'number';
var resetItem = isHas ? item === null || item === void 0 ? void 0 : item[guid] : item;
return !res.has(resetItem) && res.set(resetItem, 1);
});
}
// 获取最近的时间段
export function getRanges() {
return {
近一周: [dayjs().subtract(7, 'day').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')],
近一月: [dayjs().subtract(1, 'month').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')],
近一年: [dayjs().subtract(1, 'year').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')]
};
}
// 级联选择器获取深层结构数据 type: 遍历子/父结构
export function getFlatItem(getItem, checkedValue) {
var _getItem$props, _getItem$props2;
var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'children';
var filterValues = getItem !== null && getItem !== void 0 && (_getItem$props = getItem.props) !== null && _getItem$props !== void 0 && _getItem$props.multiple ? checkedValue : [checkedValue];
var originArr = (getItem === null || getItem === void 0 ? void 0 : getItem.data) || [];
// 用于自定义读取的字段
var fieldNames = _objectSpread({
label: 'label',
value: 'value',
children: 'children'
}, (getItem === null || getItem === void 0 ? void 0 : (_getItem$props2 = getItem.props) === null || _getItem$props2 === void 0 ? void 0 : _getItem$props2.fieldNames) || {});
var nArr = [];
// 获取子级项
var getChildren = function getChildren(item) {
var _item$fieldNames$chil;
if (!item) return;
if (type === 'parent') {
nArr.push(item);
return;
}
if (item !== null && item !== void 0 && (_item$fieldNames$chil = item[fieldNames.children]) !== null && _item$fieldNames$chil !== void 0 && _item$fieldNames$chil.length) {
item === null || item === void 0 ? void 0 : item[fieldNames.children].forEach(function (v) {
return getChildren(v);
});
} else {
nArr.push(item);
}
};
// 检测到三级结构
filterValues.forEach(function (item) {
if (item.length === 1) {
var findItem = originArr === null || originArr === void 0 ? void 0 : originArr.find(function (v) {
return toStringIsEqual(v === null || v === void 0 ? void 0 : v[fieldNames.value], item[item.length - 1]);
});
getChildren(findItem);
}
if (item.length === 2) {
var _originArr$find;
var findArr1 = originArr === null || originArr === void 0 ? void 0 : (_originArr$find = originArr.find(function (v) {
return toStringIsEqual(v === null || v === void 0 ? void 0 : v[fieldNames.value], item[0]);
})) === null || _originArr$find === void 0 ? void 0 : _originArr$find[fieldNames.children];
var _findItem = findArr1 === null || findArr1 === void 0 ? void 0 : findArr1.find(function (v) {
return toStringIsEqual(v === null || v === void 0 ? void 0 : v[fieldNames.value], item[item.length - 1]);
});
getChildren(_findItem);
}
if (item.length === 3) {
var _originArr$find2, _findArr$find;
var _findArr = originArr === null || originArr === void 0 ? void 0 : (_originArr$find2 = originArr.find(function (v) {
return toStringIsEqual(v === null || v === void 0 ? void 0 : v[fieldNames.value], item[0]);
})) === null || _originArr$find2 === void 0 ? void 0 : _originArr$find2[fieldNames.children];
var findArr2 = _findArr === null || _findArr === void 0 ? void 0 : (_findArr$find = _findArr.find(function (v) {
return toStringIsEqual(v === null || v === void 0 ? void 0 : v[fieldNames.value], item[1]);
})) === null || _findArr$find === void 0 ? void 0 : _findArr$find[fieldNames.children];
var _findItem2 = findArr2 === null || findArr2 === void 0 ? void 0 : findArr2.find(function (v) {
return toStringIsEqual(v === null || v === void 0 ? void 0 : v[fieldNames.value], item[item.length - 1]);
});
nArr.push(_findItem2);
}
});
return nArr;
}
// 返回过滤掉隐藏字段后的查询结构 () => {...}
export function getFilterShow(basicFilter, dataSource) {
return Object.keys(basicFilter).reduce(function (pre, cur) {
var value = basicFilter[cur];
if (dataSource.some(function (v) {
return v.field === cur && (v.show || typeof v.show !== 'boolean');
})) {
// eslint-disable-next-line no-param-reassign
pre[cur] = value;
}
return pre;
}, {});
}
// 返回过滤掉隐藏字段后的查询结构 () => [...]
export function getFilterShowQuery(basicQuery, dataSource) {
return Object.keys(basicQuery).reduce(function (pre, cur) {
var value = basicQuery[cur];
if (dataSource.some(function (v) {
return v.field === cur && v.show || typeof v.show !== 'boolean';
})) {
return [].concat(_toConsumableArray(pre), [value]);
}
return pre;
}, []);
}