feat: 优化客户编辑弹窗,根据意向产品动态显示试用时间字段并调整列表展示。

This commit is contained in:
zulifeng 2026-01-29 19:36:25 +08:00
parent 9250803979
commit ecaf0aa786
2 changed files with 47 additions and 8 deletions

View File

@ -1082,7 +1082,7 @@
<div id="editTrialPeriodModal" class="modal">
<div class="modal-content">
<div class="modal-header">
<h3><i class="fas fa-clock"></i> 编辑试用时间</h3>
<h3><i class="fas fa-user-edit"></i> 编辑客户信息</h3>
<span class="close">&times;</span>
</div>
<div class="modal-body">
@ -1113,13 +1113,13 @@
<input type="text" id="editTrialIntendedProductOther" name="editIntendedProductOther"
placeholder="请输入其他意向产品" style="display: none; margin-top: 8px" />
</div>
<div class="form-group">
<div class="form-group" id="editTrialStartTimeGroup">
<label for="editTrialStartTime">开始时间</label>
<input type="datetime-local" id="editTrialStartTime" name="startTime" required />
<input type="datetime-local" id="editTrialStartTime" name="startTime" />
</div>
<div class="form-group">
<div class="form-group" id="editTrialEndTimeGroup">
<label for="editTrialEndTime">结束时间</label>
<input type="datetime-local" id="editTrialEndTime" name="endTime" required />
<input type="datetime-local" id="editTrialEndTime" name="endTime" />
</div>
<div class="form-group">
<label>是否试用</label>

View File

@ -80,6 +80,14 @@ function initTrialPeriodsPage() {
setupIntendedProductCheckboxes('trialIntendedProductOtherCheckbox', 'trialIntendedProductOther');
setupIntendedProductCheckboxes('editTrialIntendedProductOtherCheckbox', 'editTrialIntendedProductOther');
// 为编辑弹窗的意向产品复选框添加监听器,控制时间字段显示
const editIntendedProductCheckboxes = document.querySelectorAll('input[name="editIntendedProduct"]');
editIntendedProductCheckboxes.forEach(checkbox => {
checkbox.addEventListener('change', function() {
updateEditTrialTimeFieldsVisibility();
});
});
// 刷新按钮事件
const refreshTrialPeriodsBtn = document.getElementById('refreshTrialPeriodsBtn');
if (refreshTrialPeriodsBtn) {
@ -509,13 +517,22 @@ function renderTrialPeriodsTable() {
const source = period.source || '';
const intendedProduct = period.intendedProduct || '';
// 检查意向产品是否包含"数据闭环"
// 如果只包含 robogo 或其他,则不显示试用相关信息
const hasDataLoop = intendedProduct.includes('数据闭环');
// 根据是否有数据闭环来决定显示内容
const statusCell = hasDataLoop ? statusBadge : '<span style="color: #999;">-</span>';
const startTimeCell = hasDataLoop ? startTime : '<span style="color: #999;">-</span>';
const endTimeCell = hasDataLoop ? endTime : '<span style="color: #999;">-</span>';
row.innerHTML = `
<td><strong>${customerName}</strong></td>
<td>${source}</td>
<td>${intendedProduct}</td>
<td>${statusBadge}</td>
<td>${startTime}</td>
<td>${endTime}</td>
<td>${statusCell}</td>
<td>${startTimeCell}</td>
<td>${endTimeCell}</td>
<td>${createdAt}</td>
<td class="action-cell">
<button class="action-btn edit-btn" data-id="${period.id}" title="编辑">
@ -630,9 +647,31 @@ function openEditTrialModal(periodId) {
isTrialRadio.checked = true;
}
// 控制时间字段的显示/隐藏
updateEditTrialTimeFieldsVisibility();
document.getElementById('editTrialPeriodModal').style.display = 'block';
}
// 更新编辑弹窗中时间字段的显示状态
function updateEditTrialTimeFieldsVisibility() {
const intendedProduct = getIntendedProductValue('editTrialIntendedProduct', 'editTrialIntendedProductOther');
const hasDataLoop = intendedProduct.includes('数据闭环');
const startTimeGroup = document.getElementById('editTrialStartTimeGroup');
const endTimeGroup = document.getElementById('editTrialEndTimeGroup');
if (startTimeGroup && endTimeGroup) {
if (hasDataLoop) {
startTimeGroup.style.display = 'block';
endTimeGroup.style.display = 'block';
} else {
startTimeGroup.style.display = 'none';
endTimeGroup.style.display = 'none';
}
}
}
// Delete trial period from page
async function deleteTrialPeriodFromPage(periodId) {
if (!confirm('确定要删除这个试用时间记录吗?')) {