|
|
@@ -198,7 +198,11 @@ export default {
|
|
|
ghcyfx.tableData = apiData;
|
|
|
// 从第一条数据中提取属性名,作为表格列(若数据为空则不渲染列)
|
|
|
if (apiData.length > 0) {
|
|
|
- ghcyfx.tableColumns = Object.keys(apiData[0]);
|
|
|
+ // 获取列名并按中文排序
|
|
|
+ ghcyfx.tableColumns = Object.keys(apiData[0]).sort((a, b) => {
|
|
|
+ // 使用localeCompare按中文拼音排序(支持简体中文)
|
|
|
+ return a.localeCompare(b, "zh-CN");
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
@@ -350,11 +354,18 @@ export default {
|
|
|
transValue(rawData) {
|
|
|
// 兼容原始数据为null/undefined的情况
|
|
|
if (!rawData || typeof rawData !== "object") return [];
|
|
|
-
|
|
|
- return Object.entries(rawData).map(([key, value]) => ({
|
|
|
- label: key, // 直接使用原始字段名
|
|
|
- value: value === null || value === undefined ? "" : String(value), // 空值处理,转为字符串避免渲染问题
|
|
|
+ const labelValueList = Object.entries(rawData).map(([key, value]) => ({
|
|
|
+ label: key, // 直接使用原始字段名作为label
|
|
|
+ value: value === null || value === undefined ? "" : String(value), // 空值处理
|
|
|
}));
|
|
|
+
|
|
|
+ // 按label的中文拼音排序
|
|
|
+ return labelValueList.sort((a, b) => {
|
|
|
+ return a.label.localeCompare(b.label, "zh-CN", {
|
|
|
+ sensitivity: "base", // 忽略大小写和重音
|
|
|
+ numeric: true, // 数字部分按数值排序
|
|
|
+ });
|
|
|
+ });
|
|
|
},
|
|
|
});
|
|
|
onUnmounted(() => {
|