$(document).ready(() => { autoFlashHeight(); // 选择账号 const refreshUnitUsersHtml = function () { const select = $('#sel-batch-unit').val(); const selectGroup = accountGroup.find(x => { return x.name === select; }); const html = []; if (selectGroup) { for (const u of selectGroup.groupList) { html.push(``); html.push(``); html.push(`${u.name}`); html.push(`${u.role}`); html.push(''); } } $('#sel-batch-users').html(html.join('')); }; $('#sel-batch').on('show.bs.modal', function() { accountGroup.forEach(ag => { ag.groupList.forEach(u => { u.select = false; }); }); refreshUnitUsersHtml(); }); $('#sel-batch-unit').change(function() { refreshUnitUsersHtml(); }); $('body').on('click', '[name=sel-batch-check]', function() { const select = $('#sel-batch-unit').val(); const selectGroup = accountGroup.find(x => { return x.name === select; }); const user = selectGroup.groupList.find(x => { return x.id === parseInt(this.getAttribute('id')); }); user.select = this.checked; }); $('#sel-batch-all').change(function() { const select = $('#sel-batch-unit').val(); const selectGroup = accountGroup.find(x => { return x.name === select; }); selectGroup.groupList.forEach(x => { x.select = x.sp_exist ? false : this.checked; }); refreshUnitUsersHtml(); }); $('#sel-batch-ok').click(() => { const select = []; for (const ag of accountGroup) { for (const u of ag.groupList) { if (u.select && !u.sp_exist) select.push(u.id); } } postData(`/sp/${spid}/setting/user/permission/update`, { add: select }, function() { window.location.reload(); }); }); // 移除账号 $('[name=remove-user]').click(function() { const id = this.getAttribute('data-id'); postData(`/sp/${spid}/setting/user/permission/update`, { del: id }, function() { window.location.reload(); }); }); $('[name=set-permission]').click(function() { const data = JSON.parse(this.getAttribute('data-account')); const permissionCheck = $('[name="permission-check"]'); for (const pc of permissionCheck) { const ptype = pc.getAttribute('ptype'); const pvalue = pc.getAttribute('pvalue'); const typePermission = (data[ptype + '_permission'] || '').split(','); pc.checked = typePermission.indexOf(pvalue) >= 0; } $('#permission-uid').val(data.permission_id); $('#permission').modal('show'); }); $('#permission-ok').click(function() { const data = { id: $('#permission-uid').val() }; const updatePermission = []; const permissionCheck = $('[name="permission-check"]'); for (const pc of permissionCheck) { const ptype = pc.getAttribute('ptype'); const pvalue = pc.getAttribute('pvalue'); let up = updatePermission.find(x => { return x.key === ptype; }); if (!up) { up = { key: ptype, value: [] }; updatePermission.push(up); } if (pc.checked) up.value.push(pvalue); } updatePermission.forEach(x => { data[x.key + '_permission'] = x.value.join(','); }); postData(`/sp/${spid}/setting/user/permission/update`, { update: data }, function() { window.location.reload(); }); }); $('#filter-valid').change(function() { const filter = this.checked; const users = $('[name=user-permission]'); for (const user of users) { if (filter) { const checked = $(':checked', user); if (checked.length > 0) { $(user).show(); } else { $(user).hide(); } } else { $(user).show(); } } }); $('#save-permission').click(function() { const updateData = []; const users = $('[name=user-permission]'); for (const user of users) { const data = { id: user.getAttribute('pid') }; const permissionKey = [], permission = {}; const check = $('[type=checkbox]', user); for (const c of check) { const ptype = c.getAttribute('ptype'); const pvalue = c.getAttribute('pvalue'); if (permissionKey.indexOf(ptype) < 0) { permissionKey.push(ptype); permission[ptype] = []; } if (c.checked) permission[ptype].push(pvalue); } permissionKey.forEach(x => { data[x + '_permission'] = permission[x].join(','); }); updateData.push(data); } postData(`/sp/${spid}/setting/user/permission/update`, { update: updateData }, function() { window.location.reload(); }) }); });