@aliretail/react-materials-components
Version:
248 lines (198 loc) • 5.82 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.deleteTable = deleteTable;
exports.fieldKey = void 0;
exports.getData = getData;
exports.getErrInfo = getErrInfo;
exports.getFiledkeys = getFiledkeys;
exports.getRatioTotal = getRatioTotal;
exports.getValidataKeys = getValidataKeys;
exports.getValueByName = getValueByName;
exports.getValues = getValues;
exports.vaditorValue = vaditorValue;
var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var fieldKey = 'ratioTable';
exports.fieldKey = fieldKey;
function getData(oldData, changeData) {
var data = [];
if (!Array.isArray(oldData)) {
data = [changeData];
}
var isAdd = true;
data = oldData.map(function (item, index) {
var sort = "" + index;
if (item.id === changeData.id || sort === changeData.id) {
isAdd = false;
return (0, _extends3["default"])({}, item, changeData);
}
return item;
});
if (isAdd) {
data = [].concat(data, [changeData]);
}
return data;
} // value值格式化,计算它的同步比例总值
// export function valueFormat(val: Array<any>): Array<any> {
// if (!Array.isArray(val)) {
// return [];
// }
// const data = val.map((item) => {
// const { dataSource } = item;
// const total = Array.isArray(dataSource)
// ? dataSource.reduce((b, a) => {
// return b.ratio + a.ratio;
// })
// : 0;
// return {
// ...item,
// totalProportion: total || 0,
// };
// });
// return data;
// }
// 计算同步比例总和
function getRatioTotal(data, ratioKey) {
var total = 0;
if (!Array.isArray(data)) {
return total;
} // reduce
data.forEach(function (item) {
var num = isNaN(item[ratioKey]) ? 0 : Number(item[ratioKey]);
total += num;
});
return total;
}
function vaditorValue(value) {
var firstData = value && value[0] && value[0].dataSource || null;
if (!Array.isArray(firstData) || firstData.length < 1) {
return '至少填写一条规则';
} // 校验是否填写完整
var notFull = value.some(function (item) {
var dataSource = item.dataSource;
if (!Array.isArray(dataSource) || dataSource.length < 1) {
return false;
}
console.log(dataSource);
return dataSource.some(function (data) {
console.log(data);
return Object.keys(data).some(function (key) {
console.log(data[key]);
return !data[key];
});
});
});
if (notFull) {
return '请将规则填写完整';
}
}
function getFiledkeys(name) {
if (!name) {
return;
}
var keyList = name.split('.');
return {
index: keyList[1],
tableIndex: keyList[2],
tableDataIndex: keyList[3]
};
}
function getValues(data) {
var value = data.value,
keys = data.keys,
val = data.val,
ratioKey = data.ratioKey;
if (!Array.isArray(value) || !keys) {
return [];
}
var newValue = value.map(function (item, index) {
if ("" + index === keys.index) {
var _ref = item || {},
dataSource = _ref.dataSource,
totalProportion = _ref.totalProportion;
var total = totalProportion || 0;
var oldData = Array.isArray(dataSource) ? dataSource : [];
var newData = oldData.map(function (oldInfo, num) {
// console.log(num, keys.tableIndex);
if ("" + num === keys.tableIndex) {
var _extends2;
var currentRatio = oldInfo && oldInfo[ratioKey] || 0;
total = keys.tableDataIndex === ratioKey ? total - currentRatio + val : total;
return (0, _extends3["default"])({}, oldInfo || {}, (_extends2 = {}, _extends2[keys.tableDataIndex] = val, _extends2));
}
return oldInfo;
});
return (0, _extends3["default"])({}, item || {}, {
totalProportion: total,
dataSource: newData
});
}
return item;
});
return newValue;
}
function getValidataKeys(columns, value) {
if (!Array.isArray(columns) || !Array.isArray(value)) {
return [];
}
var validataKeys = [];
value.forEach(function (item, index) {
var _ref2 = item || {},
dataSource = _ref2.dataSource;
if (!Array.isArray(dataSource) || dataSource.length < 1) {
return;
}
dataSource.forEach(function (data, sourceIndex) {
columns.forEach(function (column) {
var _ref3 = column || {},
dataIndex = _ref3.dataIndex;
validataKeys.push(fieldKey + "." + index + "." + sourceIndex + "." + dataIndex);
});
});
});
return validataKeys;
} // inputErr格式为{index: {index:{ dataIndex:err}}}
function getErrInfo(inputErr, currentErr) {
var allErr = {};
if (inputErr) {
Object.keys(inputErr).forEach(function (tableKey) {
var info = inputErr[tableKey] || {};
Object.keys(info).forEach(function (rowKey) {
var errInfo = info[rowKey] || {};
Object.keys(errInfo).forEach(function (errKey) {
var key = fieldKey + "." + tableKey + "." + rowKey + "." + errKey;
allErr[key] = errInfo[errKey];
});
});
});
}
if (currentErr) {
Object.keys(currentErr).forEach(function (key) {
if (!allErr[key]) {
allErr[key] = '';
}
});
}
return allErr;
} // 删除对应的table
function deleteTable(value, key) {
if (!Array.isArray(value)) {
return [];
}
var data = value.slice();
data.splice(Number(key), 1);
return data;
} // 查询
function getValueByName(data, name) {
if (!Array.isArray(data)) {
return [];
}
return data.filter(function (item) {
var _ref4 = item || {},
label = _ref4.label;
if (!label) {
return false;
}
return label.includes(name);
});
}