| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- const handsonUtils = {
- /**
- * 获取被排序后的数组
- *
- * @param changeData 发生改变的数据
- * @param source 数组
- *
- * @return array 经过排序后或者经过搜索后的数组
- */
- getParam: function(changeData, source, hot, trimmedArr) {
- function arrayUnique(arr, name){ //去重
- var hash = {};
- return arr.reduce(function(item, next) {
- hash[next[name]] ? '' : hash[next[name]] = true && item.push(next);
- return item;
- }, []);
- }
- let newData = arrayUnique(changeData, 0)
- let param = "";
- //被筛选过后的数组
- // let trimmedArr = this.trimmedRows();
- //是否启用了排序
- let isSort = hot.getPlugin("columnSorting").isSorted();
- if (trimmedArr.length && isSort) {
- //排序后的数组
- let sortArr = hot.getPlugin("columnSorting").rowsMapper.__arrayMap;
- param = newData.map(item => {
- return hot.getSourceDataAtRow(trimmedArr[sortArr[item[0]]]);
- });
- } else if (isSort) {
- //排序后的数组
- let sortArr = hot.getPlugin("columnSorting").rowsMapper.__arrayMap;
- param = newData.map(item => {
- return hot.getSourceDataAtRow(sortArr[item[0]]);
- });
- } else if (trimmedArr.length) {
- param = newData.map(item => {
- return hot.getSourceDataAtRow(trimmedArr[item[0]]);
- });
- } else {
- param = newData.map(item => {
- return hot.getSourceDataAtRow(item[0]);
- });
- }
- return param;
- },
- /**
- *
- * @param {handsontable修改参数} changeData
- * @param {*} source
- * @param {handsontabele实例} hot
- * @param {排序数组} trimmedArr
- *
- * @return 修改数值的前一个对象
- */
- getUnshiftParam: function(changeData, source, hot, trimmedArr) {
- //是否启用了排序
- let isSort = hot.getPlugin("columnSorting").isSorted();
- if (trimmedArr.length && isSort) {
- //排序后的数组
- let sortArr = hot.getPlugin("columnSorting").rowsMapper.__arrayMap;
- return hot.getSourceDataAtRow(trimmedArr[sortArr[changeData[0][0] - 1]])
- } else if (isSort) {
- //排序后的数组
- let sortArr = hot.getPlugin("columnSorting").rowsMapper.__arrayMap;
- return hot.getSourceDataAtRow(sortArr[changeData[0][0] - 1])
- } else if (trimmedArr.length) {
- //进行了筛选
- return hot.getSourceDataAtRow(trimmedArr[changeData[0][0] - 1])
- } else {
- //没有进行排序和筛选
- return hot.getSourceDataAtRow(changeData[0][0] - 1);
- }
- },
- }
- export default handsonUtils
|