|
@@ -13,6 +13,29 @@ const MemberPermission = function() {
|
|
|
// 搜索&展开收起
|
|
// 搜索&展开收起
|
|
|
let timer = null;
|
|
let timer = null;
|
|
|
let oldSearchVal = null;
|
|
let oldSearchVal = null;
|
|
|
|
|
+
|
|
|
|
|
+ const syncSelectedMarks = function() {
|
|
|
|
|
+ const selectedUids = new Set();
|
|
|
|
|
+ $('#member-list tr[uid]').each(function() {
|
|
|
|
|
+ const uid = parseInt($(this).attr('uid'), 10);
|
|
|
|
|
+ if (!isNaN(uid)) {
|
|
|
|
|
+ selectedUids.add(uid);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ $('.dropdown-menu .book-list dd[data-id]').each(function() {
|
|
|
|
|
+ const userId = parseInt($(this).data('id'), 10);
|
|
|
|
|
+ const $mark = $(this).find('.selected-mark');
|
|
|
|
|
+
|
|
|
|
|
+ if (!isNaN(userId) && $mark.length > 0) {
|
|
|
|
|
+ if (selectedUids.has(userId)) {
|
|
|
|
|
+ $mark.show();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $mark.hide();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
$('#member-search').bind('input propertychange', function(e) {
|
|
$('#member-search').bind('input propertychange', function(e) {
|
|
|
oldSearchVal = e.target.value;
|
|
oldSearchVal = e.target.value;
|
|
|
timer && clearTimeout(timer);
|
|
timer && clearTimeout(timer);
|
|
@@ -25,11 +48,14 @@ const MemberPermission = function() {
|
|
|
.forEach(item => {
|
|
.forEach(item => {
|
|
|
html += `<dd class="border-bottom p-2 mb-0 " data-id="${item.id}" >
|
|
html += `<dd class="border-bottom p-2 mb-0 " data-id="${item.id}" >
|
|
|
<p class="mb-0 d-flex"><span class="text-primary">${item.name}</span><span
|
|
<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" style="display:none;"><i class="fa fa-check"></i></span>
|
|
|
|
|
+ </p>
|
|
|
<span class="text-muted">${item.role || ''}</span></dd>`
|
|
<span class="text-muted">${item.role || ''}</span></dd>`
|
|
|
});
|
|
});
|
|
|
$('.book-list').empty();
|
|
$('.book-list').empty();
|
|
|
$('.book-list').append(html);
|
|
$('.book-list').append(html);
|
|
|
|
|
+ syncSelectedMarks();
|
|
|
} else {
|
|
} else {
|
|
|
if (!$('.acc-btn').length) {
|
|
if (!$('.acc-btn').length) {
|
|
|
accountGroup.forEach((group, idx) => {
|
|
accountGroup.forEach((group, idx) => {
|
|
@@ -40,7 +66,9 @@ const MemberPermission = function() {
|
|
|
group.groupList.forEach(item => {
|
|
group.groupList.forEach(item => {
|
|
|
html += `<dd class="border-bottom p-2 mb-0 " data-id="${item.id}" >
|
|
html += `<dd class="border-bottom p-2 mb-0 " data-id="${item.id}" >
|
|
|
<p class="mb-0 d-flex"><span class="text-primary">${item.name}</span><span
|
|
<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" style="display:none;"><i class="fa fa-check"></i></span>
|
|
|
|
|
+ </p>
|
|
|
<span class="text-muted">${item.role || ''}</span>
|
|
<span class="text-muted">${item.role || ''}</span>
|
|
|
</dd>`
|
|
</dd>`
|
|
|
});
|
|
});
|
|
@@ -48,6 +76,7 @@ const MemberPermission = function() {
|
|
|
});
|
|
});
|
|
|
$('.book-list').empty();
|
|
$('.book-list').empty();
|
|
|
$('.book-list').append(html);
|
|
$('.book-list').append(html);
|
|
|
|
|
+ syncSelectedMarks();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}, 400);
|
|
}, 400);
|
|
@@ -70,7 +99,8 @@ const MemberPermission = function() {
|
|
|
return false
|
|
return false
|
|
|
});
|
|
});
|
|
|
// 添加
|
|
// 添加
|
|
|
- $('dl').on('click', 'dd', function () {
|
|
|
|
|
|
|
+ $('dl').on('click', 'dd', function (e) {
|
|
|
|
|
+ e.stopPropagation();
|
|
|
const auditorId = parseInt($(this).data('id'));
|
|
const auditorId = parseInt($(this).data('id'));
|
|
|
const user = accountList.find(x => { return x.id === auditorId; });
|
|
const user = accountList.find(x => { return x.id === auditorId; });
|
|
|
const check = $(`tr[uid=${auditorId}]`, '#member-list');
|
|
const check = $(`tr[uid=${auditorId}]`, '#member-list');
|
|
@@ -79,9 +109,9 @@ const MemberPermission = function() {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
$('#member-list').append(getUserPermissionHtml({ uid: user.id, name: user.name, role: user.role }));
|
|
$('#member-list').append(getUserPermissionHtml({ uid: user.id, name: user.name, role: user.role }));
|
|
|
|
|
+ syncSelectedMarks();
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-
|
|
|
|
|
const getUserPermissionHtml = function(user) {
|
|
const getUserPermissionHtml = function(user) {
|
|
|
const html = [];
|
|
const html = [];
|
|
|
html.push(`<tr uid="${user.uid}">`);
|
|
html.push(`<tr uid="${user.uid}">`);
|
|
@@ -109,16 +139,19 @@ const MemberPermission = function() {
|
|
|
data.parts = permissionBlock.map(x => { return x.key; });
|
|
data.parts = permissionBlock.map(x => { return x.key; });
|
|
|
const result = await postDataAsync(setting.loadUrl, data );
|
|
const result = await postDataAsync(setting.loadUrl, data );
|
|
|
$('#member-list').html(getPermissionHtml(result));
|
|
$('#member-list').html(getPermissionHtml(result));
|
|
|
|
|
+ syncSelectedMarks();
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const show = async function(info) {
|
|
const show = async function(info) {
|
|
|
setting = info;
|
|
setting = info;
|
|
|
await loadMemberPermission();
|
|
await loadMemberPermission();
|
|
|
$('#member').modal('show');
|
|
$('#member').modal('show');
|
|
|
|
|
+ syncSelectedMarks();
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
$('#member').on('click', 'a[name="del-member"]', function () {
|
|
$('#member').on('click', 'a[name="del-member"]', function () {
|
|
|
$(this).parent().parent().remove();
|
|
$(this).parent().parent().remove();
|
|
|
|
|
+ syncSelectedMarks();
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
const getMemberPermission = function() {
|
|
const getMemberPermission = function() {
|