Elements-SY

modify

...@@ -461,12 +461,12 @@ export function restTableHeight($refs) { ...@@ -461,12 +461,12 @@ export function restTableHeight($refs) {
461 * @param {string || Object} keys 461 * @param {string || Object} keys
462 * @description 对数组中指定的JSON字段去重和指定的字段进行排序 462 * @description 对数组中指定的JSON字段去重和指定的字段进行排序
463 * @example 463 * @example
464 - * 当指定一个字段去重时:removeDuplicates(arr, "flightRoute") 464 + * 当指定一个字段去重时:removeDuplicates(arr, "name")
465 * 当指定一个字段去重并且排序如下: 465 * 当指定一个字段去重并且排序如下:
466 - * const result = removeDuplicates(arr, { 466 + * removeDuplicates(res.data.list, {
467 - * duplicate: "flightRoute", // 去重字段 467 + * duplicate: "name", // 去重字段
468 - * sortType: "Number", // 排序类型:number、string 468 + * sortType: "Number", // 排序类型
469 - * sortAttr: "routePriority", // 排序字段 469 + * sortAttr: "id", // 排序字段
470 * }) 470 * })
471 */ 471 */
472 export function removeDuplicates(arr, keys) { 472 export function removeDuplicates(arr, keys) {
...@@ -500,6 +500,7 @@ export function removeDuplicates(arr, keys) { ...@@ -500,6 +500,7 @@ export function removeDuplicates(arr, keys) {
500 if (result.unique.length) { 500 if (result.unique.length) {
501 result.unique = sortFn("unique"); 501 result.unique = sortFn("unique");
502 } 502 }
503 + // 返回排序去重结果
503 return result; 504 return result;
504 } 505 }
505 } 506 }
...@@ -514,3 +515,40 @@ export function removeDuplicates(arr, keys) { ...@@ -514,3 +515,40 @@ export function removeDuplicates(arr, keys) {
514 } 515 }
515 } 516 }
516 } 517 }
518 +/**
519 + * Array Json
520 + * @param {Array} arr
521 + * @param {string} key
522 + * @description 把所有重复的过滤出来
523 + * @example
524 + * filterRepeat(arr, "name")
525 + */
526 +export function filterRepeat(arr, key) {
527 + const duplicateIds = arr
528 + .map((item) => item[key])
529 + .filter((key, index, array) => array.indexOf(key) !== index);
530 +
531 + return arr.filter((item) => duplicateIds.includes(item[key]));
532 +}
533 +/**
534 + * Array Json
535 + * @param {Array} arr
536 + * @param {string} key
537 + * @param {string} time
538 + * @description 把数组JSON字段重复的值过滤出来,并且根据时间戳返回最新的那一条且返回新的数组
539 + * @example
540 + * filterRepeatNewData(arr, "name", "createTime")
541 + */
542 +export function filterRepeatNewData(arr, key, time) {
543 + // 找出最大时间戳
544 + const maxDate = filterRepeat(arr, key).reduce(
545 + (max, obj) =>
546 + new Date(obj[time]).getTime() > max ? new Date(obj[time]).getTime() : max,
547 + -Infinity
548 + );
549 + // 找出最大时间戳对应的数据并且返回新的数组
550 + const result = filterRepeat(arr, key).filter(
551 + (obj) => new Date(obj[time]).getTime() === maxDate
552 + );
553 + return result;
554 +}
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
17 </el-row> 17 </el-row>
18 </el-form> 18 </el-form>
19 <Tables ref="cargoLog" ductName="cargoLog" :order="false" :border='false' :data="data.tableData" 19 <Tables ref="cargoLog" ductName="cargoLog" :order="false" :border='false' :data="data.tableData"
20 - :headerData="tableHeader" tableAlign="center" :showOverflowTooltip="false" :height="tableHeight" 20 + :headerData="tableHeader" tableAlign="center" :showOverflowTooltip="false"
21 :page="selectData.page" :limitSize="selectData.size" :pageSizes="[100]" :pagination="false" 21 :page="selectData.page" :limitSize="selectData.size" :pageSizes="[100]" :pagination="false"
22 :loading="loading" @currentChange="currentChange"> 22 :loading="loading" @currentChange="currentChange">
23 </Tables> 23 </Tables>
......