diff --git a/src/app/pages/facility-sort.pipe.ts b/src/app/pages/facility-sort.pipe.ts new file mode 100644 index 0000000..46d2c30 --- /dev/null +++ b/src/app/pages/facility-sort.pipe.ts @@ -0,0 +1,67 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { FacilityInfoUIItem } from '../babylon/view/facilityinfoinscene-window/facilityinfo-ui-item'; + +@Pipe({ + name: 'facilitySort' +}) +export class FacilitySortPipe implements PipeTransform { + + transform(items: FacilityInfoUIItem[]) { + items.forEach(item=>{ + if (!this.isHasNumber(item.getPropertyData().name)) { + item.getPropertyData().name = this.handleChineseNumber(item.getPropertyData().name) + } + }) + items.sort(function (a, b) { + var _a = a.getPropertyData().name.match(/^(.*?)(\d*)$/); + var _b = b.getPropertyData().name.match(/^(.*?)(\d*)$/); + if (_a[1] === _b[1]) { + return parseInt(_a[2] || 0) - parseInt(_b[2] || 0); + } else { + return _a[1].localeCompare(_b[1]); + } + }) + return items; + } + + //处理 汉字数字 + handleChineseNumber(str: string): string { + if (str.includes('一')) { + str = str.replace("一", "") + return `1${str}` + } else if (str.includes('二')) { + str = str.replace("二", "") + return `2${str}` + } else if (str.includes('三')) { + str = str.replace("三", "") + return `3${str}` + } else if (str.includes('四')) { + str = str.replace("四", "") + return `4${str}` + } else if (str.includes('五')) { + str = str.replace("五", "") + return `5${str}` + } else if (str.includes('六')) { + str = str.replace("六", "") + return `6${str}` + } else if (str.includes('七')) { + str = str.replace("七", "") + return `7${str}` + } else if (str.includes('八')) { + str = str.replace("八", "") + return `8${str}` + } else if (str.includes('九')) { + str = str.replace("九", "") + return `9${str}` + } else { + return str + } + } + + //正则校验 是否包含阿拉伯数字 + isHasNumber(str: string): boolean { + let reg = /\d/; + return reg.test(str) + } + +} diff --git a/src/app/pages/left-domain/left-domain.component.html b/src/app/pages/left-domain/left-domain.component.html index c7fadf5..8c3842b 100644 --- a/src/app/pages/left-domain/left-domain.component.html +++ b/src/app/pages/left-domain/left-domain.component.html @@ -47,7 +47,7 @@