diff --git a/lib/field_mapping.py b/lib/field_mapping.py
index 8b137b0..406086d 100644
--- a/lib/field_mapping.py
+++ b/lib/field_mapping.py
@@ -129,7 +129,7 @@ FIELD_MAPPING = {
# 订单完成信息
'finish_type': '完成类型',
'finish_code': '完成代码',
- 'finish_msg': '完成消息',
+ 'finish_msg': '结束原因',
'finish_time': '完成时间',
# 取消信息
diff --git a/public/static/css/style.css b/public/static/css/style.css
index 2e4f0a2..b0b683b 100644
--- a/public/static/css/style.css
+++ b/public/static/css/style.css
@@ -397,6 +397,18 @@ font-weight: 500;
margin-left: 4px;
}
+.field-key-name {
+color: #999;
+font-size: 12px;
+font-family: Consolas, Monaco, monospace;
+font-weight: normal;
+}
+
+.entity-selected-top {
+border-left: 3px solid #4472C4;
+padding-left: 7px;
+}
+
.checkbox-item input[type="checkbox"] {
width: 16px;
height: 16px;
diff --git a/public/static/js/config.js b/public/static/js/config.js
index 721ecaa..15ad49d 100644
--- a/public/static/js/config.js
+++ b/public/static/js/config.js
@@ -62,6 +62,8 @@ function showCreateModal() {
document.getElementById('modal-title').textContent = '创建配置';
document.getElementById('config-name').value = '';
document.getElementById('split-type').value = '';
+ // 清空已选实体
+ selectedEntityIds.clear();
// 清空实体列表
document.getElementById('entity-list').innerHTML = '
+
${item.name} ${item.typeLabel}
@@ -882,6 +918,7 @@ async function moveConfig(configId, direction) {
// 关闭模态框
function closeModal() {
document.getElementById('config-modal').classList.remove('active');
+ selectedEntityIds.clear();
}
@@ -902,16 +939,6 @@ function setDefaultTimePeriods() {
updateTimePeriodSummary();
}
-// 拆分方式改变时加载实体列表
-function onSplitTypeChange() {
- const splitType = document.getElementById('split-type').value;
- if (splitType) {
- loadEntities(1, '');
- } else {
- document.getElementById('entity-list').innerHTML = '
请先选择拆分方式
';
- }
-}
-
// 导出配置
function exportConfigs() {
try {
diff --git a/public/static/js/entity.js b/public/static/js/entity.js
index 197a497..ceec7fc 100644
--- a/public/static/js/entity.js
+++ b/public/static/js/entity.js
@@ -42,7 +42,9 @@ async function loadEntities(page = 1, search = '') {
if (entities.length === 0) {
container.innerHTML = '
无数据
';
} else {
- container.innerHTML = entities.map(e => {
+ const selected = [];
+ const unselected = [];
+ entities.forEach(e => {
let value = '';
let name = '';
let typeLabel = '';
@@ -62,11 +64,23 @@ async function loadEntities(page = 1, search = '') {
name = e.station_name;
}
- const isChecked = selectedEntityIds.has(String(value)) ? 'checked' : '';
+ const item = { value, name, typeLabel };
+ if (selectedEntityIds.has(String(value))) {
+ selected.push(item);
+ } else {
+ unselected.push(item);
+ }
+ });
+
+ const sortedEntities = [...selected, ...unselected];
+
+ container.innerHTML = sortedEntities.map(e => {
+ const isChecked = selectedEntityIds.has(String(e.value)) ? 'checked' : '';
+ const isSelectedTop = selectedEntityIds.has(String(e.value));
return `
-
-
-
${name} ${typeLabel}
+
+
+ ${e.name} ${e.typeLabel}
`;
}).join('');
@@ -89,15 +103,45 @@ function toggleEntityCheckbox(item, value) {
if (checkbox.checked) {
item.classList.add('checked');
+ item.classList.add('entity-selected-top');
selectedEntityIds.add(String(value));
} else {
item.classList.remove('checked');
+ item.classList.remove('entity-selected-top');
selectedEntityIds.delete(String(value));
}
updateSelectedCount();
}
+// 重新排序列表(已选的在前面)
+function reorderEntityList() {
+ const container = document.getElementById('entity-list');
+ const items = Array.from(container.querySelectorAll('.checkbox-item'));
+ if (items.length === 0) return;
+
+ const selected = [];
+ const unselected = [];
+
+ items.forEach(item => {
+ const checkbox = item.querySelector('input[type="checkbox"]');
+ if (checkbox.checked) {
+ selected.push(item);
+ item.classList.add('entity-selected-top');
+ } else {
+ unselected.push(item);
+ item.classList.remove('entity-selected-top');
+ }
+ });
+
+ // 用文档片段移动,避免 innerHTML 清空导致状态丢失
+ const fragment = document.createDocumentFragment();
+ [...selected, ...unselected].forEach(item => {
+ fragment.appendChild(item);
+ });
+ container.appendChild(fragment);
+}
+
// 更新已选数量显示
function updateSelectedCount() {
const countSpan = document.getElementById('selected-count');
@@ -125,6 +169,7 @@ function toggleSelectAllEntities() {
});
updateSelectedCount();
+ reorderEntityList();
}
// 更新实体分页UI
diff --git a/templates/index.html b/templates/index.html
index abf0552..b6a5288 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -4,7 +4,7 @@
订单日报系统
-
+
@@ -350,11 +350,11 @@
-
-
-
-
-
-
+
+
+
+
+
+