evui 3.3.26 → 3.3.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/evui.common.js +51 -27
- package/dist/evui.common.js.map +1 -1
- package/dist/evui.umd.js +51 -27
- package/dist/evui.umd.js.map +1 -1
- package/dist/evui.umd.min.js +1 -1
- package/dist/evui.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/components/grid/uses.js +23 -13
package/package.json
CHANGED
|
@@ -498,7 +498,6 @@ export const checkEvent = (params) => {
|
|
|
498
498
|
|
|
499
499
|
export const sortEvent = (params) => {
|
|
500
500
|
const { sortInfo, stores, getColumnIndex, updatePagingInfo } = params;
|
|
501
|
-
const { props } = getCurrentInstance();
|
|
502
501
|
function OrderQueue() {
|
|
503
502
|
this.orders = ['asc', 'desc', 'init'];
|
|
504
503
|
this.dequeue = () => this.orders.shift();
|
|
@@ -542,35 +541,46 @@ export const sortEvent = (params) => {
|
|
|
542
541
|
return;
|
|
543
542
|
}
|
|
544
543
|
const index = getColumnIndex(sortInfo.sortField);
|
|
545
|
-
const type =
|
|
544
|
+
const type = stores.orderedColumns[index]?.type || 'string';
|
|
546
545
|
const sortFn = sortInfo.sortOrder === 'desc' ? setDesc : setAsc;
|
|
547
546
|
const numberSortFn = sortInfo.sortOrder === 'desc' ? numberSetDesc : numberSetAsc;
|
|
547
|
+
const getColumnValue = (a, b) => {
|
|
548
|
+
let aCol = a[ROW_DATA_INDEX][index];
|
|
549
|
+
let bCol = b[ROW_DATA_INDEX][index];
|
|
550
|
+
if (a[ROW_DATA_INDEX][index] && typeof a[ROW_DATA_INDEX][index] === 'object') {
|
|
551
|
+
aCol = a[ROW_DATA_INDEX][index][stores.orderedColumns[index]?.field];
|
|
552
|
+
bCol = b[ROW_DATA_INDEX][index][stores.orderedColumns[index]?.field];
|
|
553
|
+
}
|
|
554
|
+
return { aCol, bCol };
|
|
555
|
+
};
|
|
548
556
|
switch (type) {
|
|
549
557
|
case 'string':
|
|
550
558
|
stores.store.sort((a, b) => {
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
559
|
+
let { aCol, bCol } = getColumnValue(a, b);
|
|
560
|
+
if ((!aCol || typeof aCol === 'string') && (!bCol || typeof bCol === 'string')) {
|
|
561
|
+
aCol = aCol || '';
|
|
562
|
+
bCol = bCol || '';
|
|
563
|
+
return sortFn(aCol?.toLowerCase(), bCol?.toLowerCase());
|
|
556
564
|
}
|
|
557
565
|
return 0;
|
|
558
566
|
});
|
|
559
567
|
break;
|
|
560
568
|
case 'stringNumber':
|
|
561
569
|
stores.store.sort((a, b) => {
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
570
|
+
let { aCol, bCol } = getColumnValue(a, b);
|
|
571
|
+
if (!aCol || typeof aCol === 'string' || typeof aCol === 'number') {
|
|
572
|
+
aCol = aCol === '' ? null : aCol;
|
|
573
|
+
bCol = bCol === '' ? null : bCol;
|
|
574
|
+
return numberSortFn(aCol ?? null, bCol ?? null);
|
|
566
575
|
}
|
|
567
576
|
return 0;
|
|
568
577
|
});
|
|
569
578
|
break;
|
|
570
579
|
default:
|
|
571
580
|
stores.store.sort((a, b) => {
|
|
572
|
-
|
|
573
|
-
|
|
581
|
+
const { aCol, bCol } = getColumnValue(a, b);
|
|
582
|
+
if (!aCol || typeof aCol === 'number' || typeof aCol === 'boolean') {
|
|
583
|
+
return numberSortFn(aCol ?? null, bCol ?? null);
|
|
574
584
|
}
|
|
575
585
|
return 0;
|
|
576
586
|
});
|