|
|
@@ -163,6 +163,7 @@ function getFilterTenderTreeHtml() {
|
|
|
}
|
|
|
|
|
|
$(document).ready(() => {
|
|
|
+
|
|
|
autoFlashHeight();
|
|
|
function getObjHeight(select) {
|
|
|
return select.length > 0 ? select.height() : 0;
|
|
|
@@ -242,21 +243,33 @@ $(document).ready(() => {
|
|
|
$('#user-set').hide();
|
|
|
} else {
|
|
|
$('#user-set').show();
|
|
|
- if ($(this).attr('href') === '#guest') {
|
|
|
+ const href = $(this).attr('href');
|
|
|
+ if (href === '#guest') {
|
|
|
$('#add_user_dropdownMenuButton').attr('data-type', 'tourist');
|
|
|
- } else if ($(this).attr('href') === '#tzpro') {
|
|
|
+ } else if (href === '#tzpro') {
|
|
|
$('#add_user_dropdownMenuButton').attr('data-type', 'schedule');
|
|
|
- } else if ($(this).attr('href') === '#htgl') {
|
|
|
+ } else if (href === '#htgl') {
|
|
|
$('#add_user_dropdownMenuButton').attr('data-type', 'contract');
|
|
|
$('#contract-tip').show();
|
|
|
- } else if ($(this).attr('href') === '#sgrz') {
|
|
|
+ } else if (href === '#sgrz') {
|
|
|
$('#add_user_dropdownMenuButton').attr('data-type', 'construction');
|
|
|
} else if (_.includes(tenderPermissionKeys, $(this).attr('href').substring(1))) {
|
|
|
$('#add_user_dropdownMenuButton').attr('data-type', $(this).attr('href').substring(1));
|
|
|
} else if (_.includes(Object.keys(tPsKeys), $(this).attr('href').substring(1))) {
|
|
|
$('#add_user_dropdownMenuButton').attr('data-type', $(this).attr('href').substring(1));
|
|
|
}
|
|
|
+ let currentNavType = null;
|
|
|
+ if (href === '#guest') currentNavType = 'tourist';
|
|
|
+ else if (href === '#tzpro') currentNavType = 'schedule';
|
|
|
+ else if (href === '#htgl') currentNavType = 'contract';
|
|
|
+ else if (href === '#sgrz') currentNavType = 'construction';
|
|
|
+ else if (href === '#zlgl') currentNavType = 'quality';
|
|
|
+ else if (href === '#zlxj') currentNavType = 'inspection';
|
|
|
+ if(currentNavType) {
|
|
|
+ setTimeout(() => updateSelectedMarks(currentNavType), 0);
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
});
|
|
|
|
|
|
$('body').on('click', '.c-body a', function (e) {
|
|
|
@@ -397,6 +410,7 @@ $(document).ready(() => {
|
|
|
$('body').on('click', `#${key}-users .remove-${key}-user`, function () {
|
|
|
$('#remove_user_type').val(key);
|
|
|
$('#remove_user_id').val($(this).data('id'));
|
|
|
+ $('#show_id').val($(this).data('show-id'));
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -408,10 +422,15 @@ $(document).ready(() => {
|
|
|
return;
|
|
|
}
|
|
|
const id = parseInt($('#remove_user_id').val());
|
|
|
+ const showId = parseInt($('#show_id').val());
|
|
|
if (type === 'contract') {
|
|
|
postData('/sp/' + spid + '/contract/tender/' + cur_tenderid + '/audit/save', { type: 'del-audit', id }, function (data) {
|
|
|
- $('#'+ type + '-users').find('tr[data-id="'+ id +'"]').remove();
|
|
|
+ $('#'+ type + '-users').find('tr[data-uid="'+ id +'"]').remove();
|
|
|
$('#remove-user').modal('hide');
|
|
|
+ selectedUserIdsByType[type] = selectedUserIdsByType[type].filter(function(userId) {
|
|
|
+ return userId !== showId;
|
|
|
+ });
|
|
|
+ updateSelectedMarks();
|
|
|
});
|
|
|
} else if (type === 'construction') {
|
|
|
postData('/sp/' + spid + '/' + type + '/' + cur_tenderid + '/audit/save', { type: 'del-audit', id }, function (data) {
|
|
|
@@ -422,6 +441,19 @@ $(document).ready(() => {
|
|
|
postData('/sp/' + spid + '/quality/' + cur_tenderid + '/audit/save', { type: 'del-audit', id, key: type }, function (data) {
|
|
|
$('#'+ type + '-users').find('tr[data-uid="'+ id +'"]').remove();
|
|
|
$('#remove-user').modal('hide');
|
|
|
+ selectedUserIdsByType[type] = selectedUserIdsByType[type].filter(function(userId) {
|
|
|
+ return userId !== showId;
|
|
|
+ });
|
|
|
+ updateSelectedMarks();
|
|
|
+ });
|
|
|
+ } else if (_.includes(Object.keys(tPsKeys), type)) {
|
|
|
+ postData('/sp/' + spid + '/quality/' + cur_tenderid + '/audit/save', { type: 'del-audit', id, key: type, together: 1 }, function (data) {
|
|
|
+ $('#'+ type + '-users').find('tr[data-uid="'+ id +'"]').remove();
|
|
|
+ $('#remove-user').modal('hide');
|
|
|
+ selectedUserIdsByType[type] = selectedUserIdsByType[type].filter(function(userId) {
|
|
|
+ return userId !== showId;
|
|
|
+ });
|
|
|
+ updateSelectedMarks();
|
|
|
});
|
|
|
} else if (_.includes(Object.keys(tPsKeys), type)) {
|
|
|
postData('/sp/' + spid + '/quality/' + cur_tenderid + '/audit/save', { type: 'del-audit', id, key: type, together: 1 }, function (data) {
|
|
|
@@ -429,6 +461,7 @@ $(document).ready(() => {
|
|
|
$('#remove-user').modal('hide');
|
|
|
});
|
|
|
} else {
|
|
|
+
|
|
|
const prop = {
|
|
|
id: id,
|
|
|
type: 'del',
|
|
|
@@ -436,7 +469,12 @@ $(document).ready(() => {
|
|
|
postData('/tender/' + cur_tenderid + '/' + type + '/audit/save', prop, function (data) {
|
|
|
$('#'+ type + '-users').find('tr[data-id="'+ id +'"]').remove();
|
|
|
$('#remove-user').modal('hide');
|
|
|
+ selectedUserIdsByType[type] = selectedUserIdsByType[type].filter(function(userId) {
|
|
|
+ return userId !== showId;
|
|
|
+ });
|
|
|
+ updateSelectedMarks();
|
|
|
});
|
|
|
+
|
|
|
}
|
|
|
|
|
|
});
|
|
|
@@ -445,6 +483,13 @@ $(document).ready(() => {
|
|
|
let timerAddUser = null;
|
|
|
let oldSearchValAddUser = null;
|
|
|
$('body').on('input propertychange', '#add_user_dropdownMenu2 .gr-search', function (e) {
|
|
|
+
|
|
|
+ const currentDropdownType = $('#add_user_dropdownMenuButton').attr('data-type');
|
|
|
+ let currentSelectedIdsForType = [];
|
|
|
+ if (currentDropdownType && selectedUserIdsByType.hasOwnProperty(currentDropdownType)) {
|
|
|
+ currentSelectedIdsForType = selectedUserIdsByType[currentDropdownType]; // 获取对应类型的ID数组
|
|
|
+ }
|
|
|
+
|
|
|
oldSearchValAddUser = e.target.value;
|
|
|
timerAddUser && clearTimeout(timerAddUser);
|
|
|
timerAddUser = setTimeout(() => {
|
|
|
@@ -452,9 +497,14 @@ $(document).ready(() => {
|
|
|
if (newVal && newVal === oldSearchValAddUser) {
|
|
|
let html = '';
|
|
|
accountList.filter(item => item && item.id !== cur_uid && (item.name.indexOf(newVal) !== -1 || (item.mobile && item.mobile.indexOf(newVal) !== -1))).forEach(item => {
|
|
|
- html += `<dd class="border-bottom p-2 mb-0 " data-id="${item.id}" >
|
|
|
+ const itemIdInt = parseInt(item.id, 10);
|
|
|
+ const isSelected = currentSelectedIdsForType.includes(itemIdInt);
|
|
|
+ const selectedMarkStyle = isSelected ? '' : ' style="display:none;"';
|
|
|
+ html += `<dd class="border-bottom p-2 mb-0 user-item" data-id="${item.id}" >
|
|
|
<p class="mb-0 d-flex"><span class="text-primary">${item.name}</span><span
|
|
|
- class="ml-auto">${item.mobile || ''}</span></p>
|
|
|
+ class="ml-auto">${item.mobile || ''}</span>
|
|
|
+ <span class="selected-mark text-success ml-2"${selectedMarkStyle}><i class="fa fa-check"></i></span>
|
|
|
+ </p>
|
|
|
<span class="text-muted">${item.role || ''}</span>
|
|
|
</dd>`
|
|
|
});
|
|
|
@@ -469,6 +519,11 @@ $(document).ready(() => {
|
|
|
});
|
|
|
|
|
|
function resetAddUserHtml() {
|
|
|
+ const currentDropdownType = $('#add_user_dropdownMenuButton').attr('data-type');
|
|
|
+ let currentSelectedIdsForType = [];
|
|
|
+ if (currentDropdownType && selectedUserIdsByType.hasOwnProperty(currentDropdownType)) {
|
|
|
+ currentSelectedIdsForType = selectedUserIdsByType[currentDropdownType];
|
|
|
+ }
|
|
|
let html = '';
|
|
|
accountGroup.forEach((group, idx) => {
|
|
|
if (!group) return;
|
|
|
@@ -477,9 +532,14 @@ $(document).ready(() => {
|
|
|
<div class="dd-content" data-toggleid="${idx}">`;
|
|
|
group.groupList.forEach(item => {
|
|
|
if (item.id !== cur_uid) {
|
|
|
- html += `<dd class="border-bottom p-2 mb-0 " data-id="${item.id}" >
|
|
|
+ const itemIdInt = parseInt(item.id, 10);
|
|
|
+ const isSelected = currentSelectedIdsForType.includes(itemIdInt);
|
|
|
+ const selectedMarkStyle = isSelected ? '' : ' style="display:none;"';
|
|
|
+ html += `<dd class="border-bottom p-2 mb-0 user-item" data-id="${item.id}" >
|
|
|
<p class="mb-0 d-flex"><span class="text-primary">${item.name}</span><span
|
|
|
- class="ml-auto">${item.mobile || ''}</span></p>
|
|
|
+ class="ml-auto">${item.mobile || ''}</span>
|
|
|
+ <span class="selected-mark text-success ml-2"${selectedMarkStyle}><i class="fa fa-check"></i></span>
|
|
|
+ </p>
|
|
|
<span class="text-muted">${item.role || ''}</span>
|
|
|
</dd>`;
|
|
|
}
|
|
|
@@ -510,7 +570,7 @@ $(document).ready(() => {
|
|
|
});
|
|
|
|
|
|
// 选中用户
|
|
|
- $('body').on('click', '#add_user_dropdownMenu2 dl dd', function () {
|
|
|
+ $('body').on('click', '#add_user_dropdownMenu2 dl dd', function (e) {
|
|
|
const id = parseInt($(this).data('id'));
|
|
|
if (id) {
|
|
|
const user = _.find(accountList, function (item) {
|
|
|
@@ -524,6 +584,7 @@ $(document).ready(() => {
|
|
|
}
|
|
|
if (_.includes(saIdList, id)) {
|
|
|
toastr.error('该用户已存在列表中,无需重复添加');
|
|
|
+ e.stopPropagation();
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -532,6 +593,7 @@ $(document).ready(() => {
|
|
|
type: 'add',
|
|
|
};
|
|
|
postData('/tender/' + cur_tenderid + '/tourist/audit/save', prop, function (data) {
|
|
|
+ selectedUserIdsByType.tourist.push(id);
|
|
|
const html = `<tr data-uid="${user.id}" data-id="${data.id}">
|
|
|
<td>${user.name}</td>
|
|
|
<td>${user.role}</td>
|
|
|
@@ -548,10 +610,11 @@ $(document).ready(() => {
|
|
|
</div>
|
|
|
</td>
|
|
|
<td class="text-center">
|
|
|
- <a href="#remove-user1" data-id="${data.id}" data-toggle="modal" data-target="#remove-user" class="btn btn-sm btn-outline-danger remove-tourist-user">移除</a>
|
|
|
+ <a href="#remove-user1" data-id="${data.id}" data-show-id="${user.id}" data-toggle="modal" data-target="#remove-user" class="btn btn-sm btn-outline-danger remove-tourist-user">移除</a>
|
|
|
</td>
|
|
|
</tr>`;
|
|
|
$('#tourist-users').append(html);
|
|
|
+ updateSelectedMarks();
|
|
|
});
|
|
|
} else if (type === 'schedule') {
|
|
|
const user = _.find(accountList, function (item) {
|
|
|
@@ -571,6 +634,7 @@ $(document).ready(() => {
|
|
|
type: 'add',
|
|
|
};
|
|
|
postData('/tender/' + cur_tenderid + '/schedule/audit/save', prop, function (data) {
|
|
|
+ selectedUserIdsByType.schedule.push(user.id);
|
|
|
const html = `<tr data-uid="${user.id}" data-id="${data.id}">
|
|
|
<td>${user.name}</td>
|
|
|
<td>${user.role}</td>
|
|
|
@@ -587,10 +651,11 @@ $(document).ready(() => {
|
|
|
</div>
|
|
|
</td>
|
|
|
<td class="text-center">
|
|
|
- <a href="#remove-user1" data-id="${data.id}" data-toggle="modal" data-target="#remove-user" class="btn btn-sm btn-outline-danger remove-schedule-user">移除</a>
|
|
|
+ <a href="#remove-user1" data-id="${data.id}" data-show-id="${user.id}" data-toggle="modal" data-target="#remove-user" class="btn btn-sm btn-outline-danger remove-schedule-user">移除</a>
|
|
|
</td>
|
|
|
</tr>`;
|
|
|
$('#schedule-users').append(html);
|
|
|
+ updateSelectedMarks();
|
|
|
});
|
|
|
} else if (type === 'contract') {
|
|
|
const user = _.find(accountList, function (item) {
|
|
|
@@ -674,6 +739,7 @@ $(document).ready(() => {
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
+ e.stopPropagation();
|
|
|
});
|
|
|
sortCategory4User();
|
|
|
initTenderTree4User();
|
|
|
@@ -1006,6 +1072,55 @@ const tenderListSpec = (function(){
|
|
|
return { getTenderNodeHtml, getTenderTreeHeaderHtml }
|
|
|
})();
|
|
|
|
|
|
+function updateSelectedMarks(forcedType = null) {
|
|
|
+ let currentUserListSelector = '';
|
|
|
+ let selectedIdsArray = [];
|
|
|
+ let currentType = forcedType;
|
|
|
+ if (!currentType) {
|
|
|
+ const $activeTabPane = $('.tab-pane.active');
|
|
|
+ const activeTabId = $activeTabPane.attr('id');
|
|
|
+ switch(activeTabId) {
|
|
|
+ case 'guest': currentType = 'tourist'; break;
|
|
|
+ case 'tzpro': currentType = 'schedule'; break;
|
|
|
+ case 'htgl': currentType = 'contract'; break;
|
|
|
+ case 'sgrz': currentType = 'construction'; break;
|
|
|
+ case 'zlgl': currentType = 'quality'; break;
|
|
|
+ case 'zlxj': currentType = 'inspection'; break;
|
|
|
+ default: currentType = null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (currentType && selectedUserIdsByType.hasOwnProperty(currentType)) {
|
|
|
+ switch(currentType) {
|
|
|
+ case 'tourist': currentUserListSelector = '#tourist-users'; break;
|
|
|
+ case 'schedule': currentUserListSelector = '#schedule-users'; break;
|
|
|
+ case 'contract': currentUserListSelector = '#contract-users'; break;
|
|
|
+ case 'construction': currentUserListSelector = '#construction-users'; break;
|
|
|
+ case 'quality': currentUserListSelector = '#quality-users'; break;
|
|
|
+ case 'inspection': currentUserListSelector = '#inspection-users'; break;
|
|
|
+ }
|
|
|
+ selectedIdsArray = selectedUserIdsByType[currentType];
|
|
|
+ } else {
|
|
|
+ $('.user-item').find('.selected-mark').hide();
|
|
|
+ $('.user-item').removeClass('bg-light');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if ($('#add_user_dropdownMenu2 .book-list').length > 0) {
|
|
|
+ $('.user-item').each(function() {
|
|
|
+ const userIdStr = $(this).data('id');
|
|
|
+ const userId = parseInt(userIdStr, 10);
|
|
|
+ const $mark = $(this).find('.selected-mark');
|
|
|
+ if (!isNaN(userId) && selectedIdsArray.includes(userId)) {
|
|
|
+ $mark.show();
|
|
|
+ $(this).addClass('bg-light');
|
|
|
+ } else {
|
|
|
+ $mark.hide();
|
|
|
+ $(this).removeClass('bg-light');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
function setShenpiHtml(shenpi, tender, revising) {
|
|
|
let html = '';
|
|
|
if (shenpi.sp_lc.length > 0) {
|
|
|
@@ -1064,6 +1179,14 @@ function setShenpiHtml(shenpi, tender, revising) {
|
|
|
$('#splc').html(html);
|
|
|
}
|
|
|
|
|
|
+let selectedUserIdsByType = {
|
|
|
+ tourist: [],
|
|
|
+ schedule: [],
|
|
|
+ contract: [],
|
|
|
+ construction: [],
|
|
|
+ quality: [],
|
|
|
+ inspection: []
|
|
|
+};
|
|
|
function setTouristHtml(tourists) {
|
|
|
let html = '';
|
|
|
if (tourists.length > 0) {
|
|
|
@@ -1084,12 +1207,21 @@ function setTouristHtml(tourists) {
|
|
|
</div>
|
|
|
</td>
|
|
|
<td class="text-center">
|
|
|
- <a href="#remove-user1" data-id="${t.id}" data-toggle="modal" data-target="#remove-user" class="btn btn-sm btn-outline-danger remove-tourist-user">移除</a>
|
|
|
+ <a href="#remove-user1" data-id="${t.id}" data-show-id="${t.user_id}" data-toggle="modal" data-target="#remove-user" class="btn btn-sm btn-outline-danger remove-tourist-user">移除</a>
|
|
|
</td>
|
|
|
</tr>`;
|
|
|
}
|
|
|
+ selectedUserIdsByType.tourist = [];
|
|
|
+ if (Array.isArray(tourists)) {
|
|
|
+ tourists.forEach(function(tourist) {
|
|
|
+ if (tourist.user_id !== undefined && tourist.user_id !== null) {
|
|
|
+ selectedUserIdsByType.tourist.push(parseInt(tourist.user_id, 10));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
$('#tourist-users').html(html);
|
|
|
+ updateSelectedMarks();
|
|
|
}
|
|
|
|
|
|
function setScheduleHtml(scheduleAuditList) {
|
|
|
@@ -1113,12 +1245,20 @@ function setScheduleHtml(scheduleAuditList) {
|
|
|
</div>
|
|
|
</td>
|
|
|
<td class="text-center">
|
|
|
- <a href="#remove-user1" data-id="${sa.id}" data-toggle="modal" data-target="#remove-user" class="btn btn-sm btn-outline-danger remove-schedule-user">移除</a>
|
|
|
+ <a href="#remove-user1" data-id="${sa.id}" data-show-id="${sa.user_id}" data-toggle="modal" data-target="#remove-user" class="btn btn-sm btn-outline-danger remove-schedule-user">移除</a>
|
|
|
</td>
|
|
|
</tr>`;
|
|
|
}
|
|
|
+ if (Array.isArray(scheduleAuditList)) {
|
|
|
+ scheduleAuditList.forEach(function(sa) {
|
|
|
+ if (sa.audit_id !== undefined && sa.audit_id !== null) {
|
|
|
+ selectedUserIdsByType.schedule.push(parseInt(sa.audit_id, 10));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
$('#schedule-users').html(html);
|
|
|
+ updateSelectedMarks();
|
|
|
}
|
|
|
|
|
|
function setContractHtml(datas) {
|
|
|
@@ -1146,11 +1286,19 @@ function setContractHtml(datas) {
|
|
|
<input type="checkbox" class="permission-checkbox" data-type="permission_show_node" value="${ca.uid}" ${ca.permission_show_node ? 'checked' : ''}>
|
|
|
</td>
|
|
|
<td class="text-center">
|
|
|
- <a href="#remove-user1" data-toggle="modal" data-target="#remove-user" class="btn btn-outline-danger btn-sm ml-1 remove-contract-user" data-id="${ca.uid}">移除</a>
|
|
|
+ <a href="#remove-user1" data-show-id="${ca.uid}" data-toggle="modal" data-target="#remove-user" class="btn btn-outline-danger btn-sm ml-1 remove-contract-user" data-id="${ca.uid}">移除</a>
|
|
|
</td>
|
|
|
</tr>`;
|
|
|
}
|
|
|
+ if (Array.isArray(datas)) {
|
|
|
+ datas.forEach(function(ca) {
|
|
|
+ if (ca.uid !== undefined && ca.uid !== null) {
|
|
|
+ selectedUserIdsByType.contract.push(parseInt(ca.uid, 10));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
$('#contract-users').html(list);
|
|
|
+ updateSelectedMarks();
|
|
|
}
|
|
|
|
|
|
function setConstructionHtml(constructionAuditList) {
|
|
|
@@ -1167,12 +1315,20 @@ function setConstructionHtml(constructionAuditList) {
|
|
|
</div>
|
|
|
</td>
|
|
|
<td class="text-center">
|
|
|
- <a href="#remove-user1" data-id="${sa.id}" data-toggle="modal" data-target="#remove-user" class="btn btn-sm btn-outline-danger remove-construction-user">移除</a>
|
|
|
+ <a href="#remove-user1" data-show-id="${sa.uid}" data-id="${sa.id}" data-toggle="modal" data-target="#remove-user" class="btn btn-sm btn-outline-danger remove-construction-user">移除</a>
|
|
|
</td>
|
|
|
</tr>`;
|
|
|
}
|
|
|
+ if (Array.isArray(constructionAuditList)) {
|
|
|
+ constructionAuditList.forEach(function(sa) {
|
|
|
+ if (sa.uid !== undefined && sa.uid !== null) {
|
|
|
+ selectedUserIdsByType.construction.push(parseInt(sa.uid, 10));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
$('#construction-users').html(html);
|
|
|
+ updateSelectedMarks();
|
|
|
}
|
|
|
|
|
|
function setTenderPermissionsHtml(auditList, key, keys) {
|
|
|
@@ -1205,7 +1361,15 @@ function setTenderPermissionHtml(auditList, key) {
|
|
|
for (const m of auditList) {
|
|
|
html.push(getUserPermissionHtml(m, key));
|
|
|
}
|
|
|
+ if (Array.isArray(auditList)) {
|
|
|
+ auditList.forEach(function(sa) {
|
|
|
+ if (sa.uid !== undefined && sa.uid !== null) {
|
|
|
+ selectedUserIdsByType[key].push(parseInt(sa.uid, 10));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
$('#' + key + '-users').html(html.join(''));
|
|
|
+ updateSelectedMarks();
|
|
|
}
|
|
|
|
|
|
const getUserPermissionHtml = function(user, key) {
|
|
|
@@ -1218,7 +1382,7 @@ const getUserPermissionHtml = function(user, key) {
|
|
|
const checked = user[block.key] ? (user[block.key].indexOf(p.value) >= 0 ? 'checked' : '') : '';
|
|
|
html.push(`<td class="text-center"><input type="checkbox" data-block="${p.key}" data-value="${p.value}" ${checked}></td>`);
|
|
|
}
|
|
|
- html.push(`<td class="text-center"><a href="#remove-user1" data-id="${user.uid}" data-toggle="modal" data-target="#remove-user" class="btn btn-sm btn-outline-danger remove-${key}-user">移除</a></td>`);
|
|
|
+ html.push(`<td class="text-center"><a href="#remove-user1" data-show-id="${user.uid}" data-id="${user.uid}" data-toggle="modal" data-target="#remove-user" class="btn btn-sm btn-outline-danger remove-${key}-user">移除</a></td>`);
|
|
|
html.push('</tr>');
|
|
|
return html.join('');
|
|
|
};
|