feat: 添加字段自定义报表名头功能
Coze-Commit-Type: user Coze-User-ID: 3722323274763196 Coze-Conversation-ID: 9894087
This commit is contained in:
@@ -1125,6 +1125,9 @@
|
||||
document.getElementById('split-type').value = '';
|
||||
document.getElementById('split-value').innerHTML = '<option value="">请先选择拆分方式</option>';
|
||||
|
||||
// 重置字段自定义名头
|
||||
fieldCustomNames = {};
|
||||
|
||||
// 重置合并特来电配置
|
||||
const mergeTelecomCheckbox = document.getElementById('merge-telecom');
|
||||
const telecomVehicleNoInput = document.getElementById('telecom-vehicle-no');
|
||||
@@ -1212,12 +1215,20 @@
|
||||
refreshSelectedFieldsOrder(checkedFields);
|
||||
}
|
||||
|
||||
// 字段自定义名头存储
|
||||
let fieldCustomNames = {};
|
||||
|
||||
// 刷新已选字段顺序列表
|
||||
function refreshSelectedFieldsOrder(selectedFields) {
|
||||
function refreshSelectedFieldsOrder(selectedFields, customNames = null) {
|
||||
const orderGroup = document.getElementById('selected-fields-order-group');
|
||||
const orderList = document.getElementById('selected-fields-order');
|
||||
if (!orderList) return;
|
||||
|
||||
// 如果传入了自定义名头,更新全局变量
|
||||
if (customNames !== null) {
|
||||
fieldCustomNames = {...customNames};
|
||||
}
|
||||
|
||||
// 根据是否有已选字段,显示/隐藏字段顺序区域
|
||||
if (orderGroup) {
|
||||
orderGroup.style.display = selectedFields.length > 0 ? 'block' : 'none';
|
||||
@@ -1229,12 +1240,16 @@
|
||||
orderList.innerHTML = selectedFields.map((fieldKey, index) => {
|
||||
const field = allFields.find(f => f.key === fieldKey);
|
||||
const displayName = field ? field.display : fieldKey;
|
||||
const customName = fieldCustomNames[fieldKey] || '';
|
||||
const isFirst = index === 0;
|
||||
const isLast = index === selectedFields.length - 1;
|
||||
return `
|
||||
<div class="selected-field-item" data-field="${fieldKey}">
|
||||
<span class="field-index">#${index + 1}</span>
|
||||
<span class="field-name">${displayName}</span>
|
||||
<span class="field-name" title="${displayName}">${displayName}</span>
|
||||
<input type="text" class="field-custom-name" placeholder="自定义报表名头" value="${customName}"
|
||||
onchange="updateFieldCustomName('${fieldKey}', this.value)"
|
||||
style="flex: 1; min-width: 100px; padding: 4px 8px; font-size: 12px;">
|
||||
<div class="field-actions">
|
||||
<button type="button" class="btn-move" onclick="moveFieldUp(${index})" ${isFirst ? 'disabled' : ''} title="上移">↑</button>
|
||||
<button type="button" class="btn-move" onclick="moveFieldDown(${index})" ${isLast ? 'disabled' : ''} title="下移">↓</button>
|
||||
@@ -1244,6 +1259,20 @@
|
||||
}).join('');
|
||||
}
|
||||
}
|
||||
|
||||
// 更新字段自定义名头
|
||||
function updateFieldCustomName(fieldKey, customName) {
|
||||
if (customName && customName.trim()) {
|
||||
fieldCustomNames[fieldKey] = customName.trim();
|
||||
} else {
|
||||
delete fieldCustomNames[fieldKey];
|
||||
}
|
||||
}
|
||||
|
||||
// 获取字段自定义名头
|
||||
function getFieldCustomNames() {
|
||||
return {...fieldCustomNames};
|
||||
}
|
||||
|
||||
// 字段上移
|
||||
function moveFieldUp(index) {
|
||||
@@ -1631,6 +1660,9 @@
|
||||
alert('请输入特来电车量自编号');
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取字段自定义名头
|
||||
const fieldCustomNamesData = getFieldCustomNames();
|
||||
|
||||
const data = {
|
||||
config_name: configName,
|
||||
@@ -1641,7 +1673,8 @@
|
||||
sum_fields: sumFields,
|
||||
time_periods: timePeriods,
|
||||
merge_telecom: mergeTelecom,
|
||||
telecom_vehicle_no: telecomVehicleNo
|
||||
telecom_vehicle_no: telecomVehicleNo,
|
||||
field_custom_names: fieldCustomNamesData
|
||||
};
|
||||
|
||||
try {
|
||||
@@ -1697,8 +1730,9 @@
|
||||
// 加载字段并回显选中状态
|
||||
await loadFields(config.selected_fields, config.sum_fields);
|
||||
|
||||
// 加载字段顺序
|
||||
refreshSelectedFieldsOrder(config.selected_fields);
|
||||
// 加载字段顺序和自定义名头
|
||||
const customNames = config.field_custom_names || {};
|
||||
refreshSelectedFieldsOrder(config.selected_fields, customNames);
|
||||
|
||||
// 初始化时段编辑器并加载配置
|
||||
initTimePeriodEditor();
|
||||
|
||||
Reference in New Issue
Block a user