feat: 添加合并特来电平台数据功能

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
This commit is contained in:
user9994793890
2026-07-13 11:11:10 +08:00
parent fd272361fc
commit 81945f467a
4 changed files with 196 additions and 7 deletions

View File

@@ -958,6 +958,19 @@
</div>
</div>
</div>
<!-- 合并特来电数据选项(仅按企业拆分时显示) -->
<div class="form-group" id="merge-telecom-group" style="display:none; margin-top: 16px; padding: 12px; background: var(--muted); border-radius: 8px;">
<label style="display: flex; align-items: center; gap: 8px; cursor: pointer; margin-bottom: 8px;">
<input type="checkbox" id="merge-telecom" onchange="toggleTelecomVehicleNo()" style="width: 16px; height: 16px;">
<span>合并特来电平台数据</span>
<small class="form-hint" style="margin: 0;">(需要输入车量自编号进行匹配)</small>
</label>
<div id="telecom-vehicle-no-group" style="display:none; margin-top: 8px;">
<label>特来电车量自编号 <span class="form-hint">(对应企业名称,多个用逗号分隔)</span></label>
<input type="text" id="telecom-vehicle-no" class="form-control" placeholder="输入车量自编号,多个用逗号分隔">
</div>
</div>
</div>
<!-- 时段设置 -->
@@ -1112,6 +1125,15 @@
document.getElementById('split-type').value = '';
document.getElementById('split-value').innerHTML = '<option value="">请先选择拆分方式</option>';
// 重置合并特来电配置
const mergeTelecomCheckbox = document.getElementById('merge-telecom');
const telecomVehicleNoInput = document.getElementById('telecom-vehicle-no');
const mergeTelecomGroup = document.getElementById('merge-telecom-group');
if (mergeTelecomCheckbox) mergeTelecomCheckbox.checked = false;
if (telecomVehicleNoInput) telecomVehicleNoInput.value = '';
if (mergeTelecomGroup) mergeTelecomGroup.style.display = 'none';
toggleTelecomVehicleNo();
loadFields();
initTimePeriodEditor();
clearAllTimePeriods();
@@ -1289,6 +1311,15 @@
}
}
// 切换特来电车量自编号输入框显示
function toggleTelecomVehicleNo() {
const mergeTelecom = document.getElementById('merge-telecom').checked;
const vehicleNoGroup = document.getElementById('telecom-vehicle-no-group');
if (vehicleNoGroup) {
vehicleNoGroup.style.display = mergeTelecom ? 'block' : 'none';
}
}
// 更新已选实体计数
function updateSelectedCount() {
const select = document.getElementById('split-value');
@@ -1456,6 +1487,16 @@
const splitType = document.getElementById('split-type').value;
const select = document.getElementById('split-value');
// 显示/隐藏合并特来电选项(仅按企业拆分时显示)
const mergeTelecomGroup = document.getElementById('merge-telecom-group');
if (mergeTelecomGroup) {
mergeTelecomGroup.style.display = splitType === 'company_id' ? 'block' : 'none';
if (splitType !== 'company_id') {
document.getElementById('merge-telecom').checked = false;
toggleTelecomVehicleNo();
}
}
if (!splitType) {
select.innerHTML = '<option value="">请先选择拆分方式</option>';
return;
@@ -1566,6 +1607,10 @@
// 获取时段配置
const timePeriods = getTimePeriodConfig();
// 获取合并特来电配置
const mergeTelecom = document.getElementById('merge-telecom')?.checked || false;
const telecomVehicleNo = document.getElementById('telecom-vehicle-no')?.value.trim() || '';
if (!configName || !splitType || !splitValue) {
alert('请填写所有必填字段');
@@ -1576,6 +1621,16 @@
alert('请至少选择一个字段');
return;
}
// 验证合并特来电配置
if (mergeTelecom && splitType !== 'company_id') {
alert('合并特来电数据仅支持按企业拆分');
return;
}
if (mergeTelecom && !telecomVehicleNo) {
alert('请输入特来电车量自编号');
return;
}
const data = {
config_name: configName,
@@ -1584,7 +1639,9 @@
split_name: splitName,
selected_fields: selectedFields,
sum_fields: sumFields,
time_periods: timePeriods
time_periods: timePeriods,
merge_telecom: mergeTelecom,
telecom_vehicle_no: telecomVehicleNo
};
try {
@@ -1647,6 +1704,17 @@
initTimePeriodEditor();
setTimePeriodConfig(config.time_periods);
// 加载合并特来电配置
const mergeTelecomCheckbox = document.getElementById('merge-telecom');
const telecomVehicleNoInput = document.getElementById('telecom-vehicle-no');
if (mergeTelecomCheckbox) {
mergeTelecomCheckbox.checked = config.merge_telecom === 1 || config.merge_telecom === true;
toggleTelecomVehicleNo();
}
if (telecomVehicleNoInput) {
telecomVehicleNoInput.value = config.telecom_vehicle_no || '';
}
document.getElementById('config-modal').classList.add('active');
}
}