@leevan/jtui 2.0.53 → 2.0.54

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.
@@ -1159,31 +1159,29 @@ export default {
1159
1159
  //全局排序自定义排序方法
1160
1160
  sortMethod({ data, column, property, order }) {
1161
1161
  let data1 = data.filter((item) => {
1162
- return property in item;
1162
+ return property in item && item[property] != null;
1163
1163
  });
1164
1164
  let data2 = data.filter((item) => {
1165
- return !(property in item);
1165
+ return !(property in item) || item[property] == null;
1166
1166
  });
1167
1167
  let list = [];
1168
1168
  if (order === "asc" || order === "desc") {
1169
- if(/.*[\u4e00-\u9fa5]+.*$/.test(data1[0][property]) ||
1170
- /[a-zA-Z]/i.test(data1[0][property])
1171
- ){
1172
- list = data1.sort((a, b) => {
1173
- return a[property].localeCompare(b[property]);
1174
- });
1175
- }else{
1176
- if(isNaN(data1[0][property])&&!isNaN(Date.parse(data1[0][property]))){
1177
- list = data1.sort((a, b) => {
1178
- return new Date(a[property]).getTime() - new Date(b[property]).getTime();
1179
- });
1180
- }else{
1181
- list = data1.sort((a, b) => {
1182
- return a[property] - b[property];
1183
- });
1169
+ list = data1.sort((a, b) => {
1170
+ const valA = a[property];
1171
+ const valB = b[property];
1172
+ const dateA = Date.parse(valA);
1173
+ const dateB = Date.parse(valB);
1174
+ if (!isNaN(dateA) && !isNaN(dateB)) {
1175
+ return dateA - dateB;
1184
1176
  }
1185
-
1186
- }
1177
+
1178
+ const numA = Number(valA);
1179
+ const numB = Number(valB);
1180
+ if (!isNaN(numA) && !isNaN(numB)) {
1181
+ return numA - numB;
1182
+ }
1183
+ return String(valA).localeCompare(String(valB));
1184
+ });
1187
1185
  }
1188
1186
  if (order === "desc") {
1189
1187
  list.reverse();