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 = []) {
|
function renderFields(selectedFields = [], sumFields = []) {
|
||||||
const fieldsList = document.getElementById('fields-list');
|
const fieldsList = document.getElementById('fields-list');
|
||||||
@@ -623,20 +635,41 @@
|
|||||||
|
|
||||||
fieldsList.innerHTML = allFields.map(field => `
|
fieldsList.innerHTML = allFields.map(field => `
|
||||||
<label class="checkbox-item">
|
<label class="checkbox-item">
|
||||||
<input type="checkbox" value="${field.field}"
|
<input type="checkbox" value="${field.key}"
|
||||||
${selectedFields.includes(field.field) ? 'checked' : ''}>
|
${selectedFields.includes(field.key) ? 'checked' : ''}>
|
||||||
${field.display}
|
${field.display}
|
||||||
</label>
|
</label>
|
||||||
`).join('');
|
`).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">
|
<label class="checkbox-item">
|
||||||
<input type="checkbox" value="${field.field}"
|
<input type="checkbox" value="${field.key}"
|
||||||
${sumFields.includes(field.field) ? 'checked' : ''}>
|
${currentSumFields.includes(field.key) ? 'checked' : ''}>
|
||||||
${field.display}
|
${field.display}
|
||||||
</label>
|
</label>
|
||||||
`).join('');
|
`).join('');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 当前实体加载状态
|
// 当前实体加载状态
|
||||||
let currentEntityType = '';
|
let currentEntityType = '';
|
||||||
|
|||||||
Reference in New Issue
Block a user