diff --git a/web/src/main/resources/static/index.html b/web/src/main/resources/static/index.html
index 6fbc0df..03b78b6 100644
--- a/web/src/main/resources/static/index.html
+++ b/web/src/main/resources/static/index.html
@@ -597,6 +597,10 @@
+ 负责人:
+
创建时间:
至
@@ -625,7 +629,7 @@
创建时间 |
跟进内容 |
响应时间 |
-
+
操作 |
@@ -647,6 +651,10 @@
+ 负责人:
+
创建时间:
至
@@ -674,7 +682,7 @@
创建时间 |
跟进内容 |
响应时间 |
-
+
操作 |
@@ -700,6 +708,7 @@
var managersList = [];
var allPersonalData = [];
+ var allPublicData = [];
var isLoadingAllData = false;
var currentManagerFilter = null;
var currentFilterTable = 'personal';
@@ -949,7 +958,7 @@
// 只对管理员显示负责人信息
if (userRole === '管理员') {
- managerCell = '' + (user.managerName || '-') + ' | ';
+ managerCell = '' + (user.managerName || '-') + ' | ';
} else {
managerCell = ' | ';
}
@@ -976,7 +985,7 @@
'' + (user.followup || '-') + ' | ' +
'' + responseTime + ' | ' +
managerCell +
- ' ' + jianDaoYunButton + ' | ' +
+ ' ' + jianDaoYunButton + ' | ' +
'';
personalBody.innerHTML += row;
@@ -1520,6 +1529,30 @@
updateFilterTags('public');
}
+ // 筛选个人数据负责人
+ function filterPersonalByManager() {
+ var managerName = document.getElementById('personalManagerFilter').value;
+ currentManagerFilter = managerName || null;
+ personalPage = 1; // 重置为第一页
+
+ // 总是加载所有数据以便筛选
+ loadAllPersonalData();
+
+ // 更新筛选标签
+ updateFilterTags('personal');
+ }
+
+ // 筛选公海池数据负责人
+ function filterPublicByManager() {
+ var managerName = document.getElementById('publicManagerFilter').value;
+ currentManagerFilter = managerName || null;
+ publicPage = 1; // 重置为第一页
+ loadPublicData(); // 重新加载公海池数据
+
+ // 更新筛选标签
+ updateFilterTags('public');
+ }
+
function loadPublicData() {
var userRole = userInfo.loginInfo.projectName;
var usersManagements = userInfo.usersManagements;
@@ -1561,6 +1594,10 @@
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
var data = JSON.parse(xhr.responseText);
+ // 保存公海池数据到全局变量
+ if (data.users) {
+ allPublicData = data.users;
+ }
displayPublicData(data);
renderPublicPagination(data.page, data.pages);
}
@@ -1958,6 +1995,104 @@
`;
+ // 详情弹窗HTML
+ var detailModalHTML = `
+
+
+
客户详情
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `;
+
// 分配弹窗HTML
var assignModalHTML = `
@@ -2037,6 +2172,7 @@
document.body.insertAdjacentHTML('beforeend', followupModalHTML);
document.body.insertAdjacentHTML('beforeend', returnModalHTML);
document.body.insertAdjacentHTML('beforeend', jianDaoYunModalHTML);
+ document.body.insertAdjacentHTML('beforeend', detailModalHTML);
document.body.insertAdjacentHTML('beforeend', assignModalHTML);
document.body.insertAdjacentHTML('beforeend', alertModalHTML);
document.body.insertAdjacentHTML('beforeend', typeHelpModalHTML);
@@ -2061,6 +2197,8 @@
closeAssignModal();
} else if (modalId === 'typeHelpModal') {
closeTypeHelpModal();
+ } else if (modalId === 'detailModal') {
+ closeDetailModal();
}
}
});
@@ -2074,6 +2212,7 @@
addModalOutsideClose('alertModal');
addModalOutsideClose('assignModal');
addModalOutsideClose('typeHelpModal');
+ addModalOutsideClose('detailModal');
function showTypeHelp() {
document.getElementById('typeHelpModal').style.display = 'block';
@@ -2198,6 +2337,17 @@
return typeMap[type] || type;
}
+ function mapUserLevel(level) {
+ var levelMap = {
+ 'important': 'A-重要客户',
+ 'ordinary': 'B-普通客户',
+ 'low_value': 'C-低价值客户',
+ 'logistics': 'D-物流自提客户',
+ 'unclassified': '-'
+ };
+ return levelMap[level] || level;
+ }
+
function calculateResponseTime(createdAt, followupAt) {
if (!createdAt || !followupAt) return '-';
var createTime = new Date(createdAt);
@@ -2309,7 +2459,7 @@
// 只对管理员显示负责人信息
if (userRole === '管理员') {
- managerCell = '
' + (user.managerName || '-') + ' | ';
+ managerCell = '' + (user.managerName || '-') + ' | ';
} else {
managerCell = ' | ';
}
@@ -2336,7 +2486,7 @@
'' + (user.followup || '-') + ' | ' +
'' + responseTime + ' | ' +
managerCell +
- ' ' + jianDaoYunButton + ' | ' +
+ ' ' + jianDaoYunButton + ' | ' +
'';
personalBody.innerHTML += row;
@@ -2405,7 +2555,7 @@
// 只对管理员显示负责人信息
if (userRole === '管理员') {
- managerCell = '' + (user.managerName || '-') + ' | ';
+ managerCell = '' + (user.managerName || '-') + ' | ';
} else {
managerCell = ' | ';
}
@@ -2419,7 +2569,7 @@
'' + (user.followup || '-') + ' | ' +
'' + responseTime + ' | ' +
managerCell +
- ' | ' +
+ ' | ' +
'';
publicBody.innerHTML += row;
@@ -2616,6 +2766,77 @@
document.body.style.overflow = 'auto';
}
+ function openDetailModal(userId) {
+ // 根据userId查找用户数据
+ var user = null;
+
+ // 首先在个人数据中查找
+ if (allPersonalData.length > 0) {
+ for (var i = 0; i < allPersonalData.length; i++) {
+ if (allPersonalData[i].userId === userId) {
+ user = allPersonalData[i];
+ break;
+ }
+ }
+ }
+
+ // 如果在个人数据中找不到,尝试在公海池数据中查找
+ if (!user && allPublicData.length > 0) {
+ for (var i = 0; i < allPublicData.length; i++) {
+ if (allPublicData[i].userId === userId) {
+ user = allPublicData[i];
+ break;
+ }
+ }
+ }
+
+ if (!user) {
+ // 如果在所有数据源中都找不到
+ showAlert('未找到该客户数据');
+ return;
+ }
+
+ // 填充客户详情数据
+ document.getElementById('detailUserId').textContent = user.userId || '-';
+ document.getElementById('detailUserName').textContent = user.nickName || '-';
+ document.getElementById('detailPhone').textContent = user.phoneNumber || '-';
+ document.getElementById('detailType').textContent = mapUserType(user.type) || '-';
+ document.getElementById('detailCreatedAt').textContent = formatDateTime(user.created_at) || '-';
+ document.getElementById('detailFollowup').textContent = user.followup || '-';
+
+ var responseTime = calculateResponseTime(user.created_at, user.followup_at);
+ document.getElementById('detailResponseTime').textContent = responseTime;
+
+ document.getElementById('detailManagerName').textContent = user.managerName || '-';
+
+ // 显示简道云状态
+ var syncStatus = '';
+ if (user.sync_statuss === 0 || user.sync_statuss === 1) {
+ syncStatus = '已写入简道云';
+ } else {
+ syncStatus = '未写入简道云';
+ }
+ document.getElementById('detailSyncStatus').textContent = syncStatus;
+
+ // 显示其他可能的字段
+ document.getElementById('detailLevel').textContent = mapUserLevel(user.level) || '-';
+ document.getElementById('detailRegion').textContent = user.region || '-';
+ document.getElementById('detailDetailedAddress').textContent = user.detailedaddress || '-';
+ document.getElementById('detailCompany').textContent = user.company || '-';
+ document.getElementById('detailDemand').textContent = user.demand || '-';
+
+ // 显示弹窗
+ document.getElementById('detailModal').style.display = 'block';
+ // 防止背景滚动
+ document.body.style.overflow = 'hidden';
+ }
+
+ function closeDetailModal() {
+ document.getElementById('detailModal').style.display = 'none';
+ // 恢复背景滚动
+ document.body.style.overflow = 'auto';
+ }
+
function saveJianDaoYun() {
var userId = document.getElementById('jianDaoYunUserId').value;
var usersManagements = userInfo.usersManagements;
@@ -2827,7 +3048,20 @@
var select = document.getElementById('managerSelect');
select.innerHTML = '';
+ // 清空并初始化负责人筛选下拉框
+ var personalManagerFilter = document.getElementById('personalManagerFilter');
+ var publicManagerFilter = document.getElementById('publicManagerFilter');
+
+ if (personalManagerFilter) {
+ personalManagerFilter.innerHTML = '';
+ }
+
+ if (publicManagerFilter) {
+ publicManagerFilter.innerHTML = '';
+ }
+
managersList.forEach(function(manager) {
+ // 填充分配模态框的下拉框
var option = document.createElement('option');
option.value = manager.managerId;
option.textContent = manager.userName;
@@ -2838,6 +3072,22 @@
option.setAttribute('data-root', manager.root);
option.setAttribute('data-assistant', manager.assistant);
select.appendChild(option);
+
+ // 填充个人数据标签页的负责人筛选下拉框
+ if (personalManagerFilter) {
+ var personalOption = document.createElement('option');
+ personalOption.value = manager.userName;
+ personalOption.textContent = manager.userName;
+ personalManagerFilter.appendChild(personalOption);
+ }
+
+ // 填充公海池数据标签页的负责人筛选下拉框
+ if (publicManagerFilter) {
+ var publicOption = document.createElement('option');
+ publicOption.value = manager.userName;
+ publicOption.textContent = manager.userName;
+ publicManagerFilter.appendChild(publicOption);
+ }
});
}