fix: 修复字段和求和字段复选框回显问题,优化求和字段逻辑
Coze-Commit-Type: user Coze-User-ID: 3722323274763196 Coze-Conversation-ID: 9894087
This commit is contained in:
@@ -616,6 +616,18 @@
|
||||
}
|
||||
}
|
||||
|
||||
// 可求和的数值类型字段
|
||||
const SUMMABLE_FIELD_KEYS = [
|
||||
'charge_degree', 'charge_ah', 'charge_begin_soc', 'charge_end_soc',
|
||||
'receivable_electric_fee', 'receivable_service_fee', 'receivable_total_fee',
|
||||
'charge_elecfee_amount', 'charge_elecfee_cost_amount', 'charge_service_amount',
|
||||
'charging_amt', 'actual_pay_amount', 'pay_amount',
|
||||
'settle_electric_fee', 'settle_service_fee', 'settle_fee',
|
||||
'coupon_amount', 'coupon_total_amount', 'elecfee_coupon_amount', 'servicefee_coupon_amount',
|
||||
'invoice_fee', 'activity_electric_fee', 'activity_service_fee', 'activity_total_fee',
|
||||
'total_money'
|
||||
];
|
||||
|
||||
// 渲染字段列表
|
||||
function renderFields(selectedFields = [], sumFields = []) {
|
||||
const fieldsList = document.getElementById('fields-list');
|
||||
@@ -623,20 +635,41 @@
|
||||
|
||||
fieldsList.innerHTML = allFields.map(field => `
|
||||
<label class="checkbox-item">
|
||||
<input type="checkbox" value="${field.field}"
|
||||
${selectedFields.includes(field.field) ? 'checked' : ''}>
|
||||
<input type="checkbox" value="${field.key}"
|
||||
${selectedFields.includes(field.key) ? 'checked' : ''}>
|
||||
${field.display}
|
||||
</label>
|
||||
`).join('');
|
||||
|
||||
sumFieldsList.innerHTML = allFields.map(field => `
|
||||
// 为字段列表添加 change 事件监听,动态更新求和字段
|
||||
fieldsList.addEventListener('change', function() {
|
||||
const checkedFields = Array.from(fieldsList.querySelectorAll('input:checked')).map(cb => cb.value);
|
||||
refreshSumFieldsList(checkedFields, []);
|
||||
});
|
||||
|
||||
// 初始化求和字段列表(只显示已选字段中的可求和字段)
|
||||
refreshSumFieldsList(selectedFields, sumFields);
|
||||
}
|
||||
|
||||
// 刷新求和字段列表(仅显示已选字段中的数值类型字段)
|
||||
function refreshSumFieldsList(selectedFields, currentSumFields) {
|
||||
const sumFieldsList = document.getElementById('sum-fields-list');
|
||||
const availableSumFields = allFields.filter(f =>
|
||||
selectedFields.includes(f.key) && SUMMABLE_FIELD_KEYS.includes(f.key)
|
||||
);
|
||||
|
||||
if (availableSumFields.length === 0) {
|
||||
sumFieldsList.innerHTML = '<small class="text-muted">请先在上方选择数值类型的字段</small>';
|
||||
} else {
|
||||
sumFieldsList.innerHTML = availableSumFields.map(field => `
|
||||
<label class="checkbox-item">
|
||||
<input type="checkbox" value="${field.field}"
|
||||
${sumFields.includes(field.field) ? 'checked' : ''}>
|
||||
<input type="checkbox" value="${field.key}"
|
||||
${currentSumFields.includes(field.key) ? 'checked' : ''}>
|
||||
${field.display}
|
||||
</label>
|
||||
`).join('');
|
||||
}
|
||||
}
|
||||
|
||||
// 当前实体加载状态
|
||||
let currentEntityType = '';
|
||||
|
||||
Reference in New Issue
Block a user