308 lines
16 KiB
HTML
308 lines
16 KiB
HTML
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
|
<resource-share type="script" src="/assets/js/formConfigs/TestForm.js"></resource-share>
|
|
<resource-share type="style" src="/assets/css/formpower.css"></resource-share>
|
|
<resource-share type="style" src="/assets/lib/NeoUI/NeoWebUI3/WebUI3.css"></resource-share>
|
|
|
|
<div class="layui-fluid">
|
|
<div class="layui-row layui-col-space15">
|
|
<div class="layui-col-md12">
|
|
<div class="layui-card" id="Member-Card"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
const TABLE_CONFIG = {
|
|
base: {
|
|
cardId: 'Member-Card',
|
|
primaryKey: 'UserUUID',
|
|
title: '站点用户管理',
|
|
full: true,
|
|
api: {
|
|
get: '/API/FormAPI/Get/SiteUserManagement',
|
|
modify: '/API/FormAPI/ModifyItem/SiteUserManagement',
|
|
add: '/API/FormAPI/Add/SiteUserManagement',
|
|
edit: '/API/FormAPI/Modify/SiteUserManagement',
|
|
delete: '/API/FormAPI/Delete/SiteUserManagement'
|
|
},
|
|
editableFields: [
|
|
'UserJobNumber',
|
|
'UserName',
|
|
'UserPermission',
|
|
'UserPositionStatus',
|
|
'UserPersonalSignature',
|
|
'UserJob',
|
|
'UserEmail',
|
|
'UserGender',
|
|
'UserTele',
|
|
'UserTheme',
|
|
'UserPhotoViewPort'
|
|
],
|
|
toolbarBtns: [
|
|
{ name: "新增用户", class: 'primary', event: 'NewMember' },
|
|
{ name: "复制选中的 UUID", class: '', event: 'CopyCheckedUUID' },
|
|
{ name: "批量删除", class: '', event: 'BatchDelete' },
|
|
{ name: "导出数据", class: '', event: 'Export' },
|
|
{ name: "刷新", class: '', event: 'Refresh' },
|
|
],
|
|
toolsBtns: [
|
|
{ name: "查看", class: 'view', event: 'detail' },
|
|
{ name: "查看背包", class: 'view', event: 'detailBackpack' },
|
|
{ name: "编辑", class: '', event: 'edit' },
|
|
{ name: "复制 UUID", class: '', event: 'CopyUUID' },
|
|
{ name: "更多 <i class=\"layui-icon layui-icon-down\"></i>", class: '', event: 'more' }
|
|
],
|
|
// filterList: [] // 待修改
|
|
},
|
|
render: {
|
|
method: 'GET',
|
|
tree: { view: { iconLeaf: '<i class="layui-icon layui-icon-username"></i>' } },
|
|
cols: [[
|
|
{ type: 'checkbox', fixed: 'left', sticky: true },
|
|
{ field: 'UserUUID', title: '用户编号', minWidth: 120, sticky: true },
|
|
{ field: 'UserJobNumber', title: '用户工号', minWidth: 120, sticky: true, edit: 'text', type: 'number', minlength: 8, maxlength: 8 },
|
|
{ field: 'UserName', title: '用户昵称', minWidth: 100, sticky: true, edit: 'text' },
|
|
{ field: 'UserPermission', title: '用户权限', minWidth: 80, edit: 'text', type: 'number', minlength: 1.0, maxlength: 5.0, templet: function(d) {
|
|
const permissionMap = {
|
|
1.0: '管理员',
|
|
0.5: '操作员',
|
|
0.1: '普通用户'
|
|
};
|
|
return permissionMap[d.UserPermission] || d.UserPermission;
|
|
}},
|
|
{ field: 'UserGender', title: '用户性别', edit: 'text', type: 'number', minlength: -1, maxlength: 1, minWidth: 60 },
|
|
{ field: 'UserEmail', title: '用户邮件', edit: 'text', maxlength: 256, minWidth: 180 },
|
|
{ field: 'UserEmailVerify', title: '邮件验证', minWidth: 50, templet: function(d) {
|
|
return d.UserEmailVerify ?
|
|
'<span class="layui-badge layui-bg-blue">已验证</span>' :
|
|
'<span class="layui-badge layui-bg-red">未验证</span>';
|
|
}},
|
|
{ field: 'UserAccountLicense', title: '账户许可证', minWidth: 50, templet: function(d) {
|
|
return d.UserAccountLicense ?
|
|
'<span class="layui-badge layui-bg-green">通过</span>' :
|
|
'<span class="layui-badge layui-bg-red">终止</span>';
|
|
}},
|
|
{ field: 'UserTele', title: '用户电话', edit: 'text', maxlength: 11, minWidth: 120 },
|
|
{ field: 'UserLastLoginDate', title: '最后登录时间', minWidth: 200 },
|
|
{ field: 'UserCreateTime', title: '创建时间', minWidth: 200 },
|
|
{ fixed: 'right', title: '操作', width: 250, sticky: true}
|
|
]],
|
|
height: 580
|
|
},
|
|
events: {
|
|
toolbar: {
|
|
NewMember: (manager) => {
|
|
manager.confirmAddFormSubmit({
|
|
formKey: 'user-add',
|
|
successMessage: '成功添加用户信息'
|
|
});
|
|
}
|
|
},
|
|
tool: {
|
|
detail: (trData, trObj, manager) => {
|
|
layer.open({
|
|
type: 2,
|
|
title: `用户详情 - ${trData.UserName}`,
|
|
content: `/WorkGroup/UserDetail.html?UserUUID=${trData.UserUUID}`,
|
|
area: ['800px', '600px'],
|
|
shade: 0.3,
|
|
maxmin: true
|
|
});
|
|
},
|
|
detailBackpack: (trData, trObj, manager) => {
|
|
gerp.addTab(
|
|
`站点用户管理 - 背包 [${trData.UserName}]`,
|
|
`/KeyUnit/Backpack.html?UserUUID=${trData.UserUUID}`
|
|
);
|
|
},
|
|
edit: (trData, trObj, manager) => {
|
|
manager.confirmFormSubmit({
|
|
formKey: 'user-edit',
|
|
openForm: { data: trData },
|
|
trData: trData,
|
|
successMessage: '成功修改用户信息'
|
|
});
|
|
},
|
|
CopyUUID: (trData, trObj, manager) => {
|
|
copyToClipboard({ text: trData.UserUUID }).then(() => {
|
|
layer.msg(`复制成功,UUID: ${trData.UserUUID}`, {icon: 1});
|
|
})
|
|
.catch((err) => {
|
|
layer.msg(`复制失败:${err}`, {icon: 1});
|
|
});
|
|
},
|
|
more: (trData, trObj, manager) => {
|
|
dropdown.render({
|
|
elem: trObj,
|
|
show: true,
|
|
align: 'right',
|
|
data: [
|
|
{ title: '重置密码', id: 'resetPwd' },
|
|
{ title: '验证密码', id: 'verifyPassword' },
|
|
{ title: '禁用账户', id: 'disableAccount' },
|
|
{ title: '启用账户', id: 'enableAccount' },
|
|
{ title: '通过邮箱验证', id: 'enableEmailVerify' },
|
|
{ title: '结束邮箱验证', id: 'disableEmailVerify' },
|
|
{ title: '删除', id: 'del' }
|
|
],
|
|
click: (menudata) => {
|
|
switch (menudata.id) {
|
|
case 'resetPwd':
|
|
layer.prompt({
|
|
title: '重置密码',
|
|
value: '123456789',
|
|
formType: 1
|
|
}, function(pwd, index) {
|
|
$.ajax({
|
|
url: "/API/SiteUserManagement/ResetPassword",
|
|
type: 'POST',
|
|
data: {
|
|
UserUUID: trData.UserUUID,
|
|
UserNewPassword: pwd
|
|
},
|
|
success: function(res) {
|
|
if (res.code == 0) {
|
|
layer.msg('密码重置成功', {icon: 1});
|
|
} else {
|
|
layer.msg(`重置失败:${res.msg}`, {icon: 5});
|
|
}
|
|
},
|
|
error: handleAjaxError
|
|
});
|
|
layer.close(index);
|
|
});
|
|
break;
|
|
case 'verifyPassword':
|
|
layer.prompt({
|
|
title: '验证用户密码',
|
|
formType: 1 // 密码输入框
|
|
}, function(pwd, index) {
|
|
// 发起请求验证密码
|
|
$.ajax({
|
|
url: "/API/SiteUserManagement/VerifyPassword",
|
|
type: 'POST',
|
|
data: {
|
|
UserUUID: trData.UserUUID,
|
|
UserPassword: pwd
|
|
},
|
|
success: function(res) {
|
|
if (res.code == 0) {
|
|
layer.msg('密码正确', {icon: 1, time: 1500});
|
|
} else {
|
|
layer.msg(`密码错误:${res.msg || '未知错误'}`, {icon: 5, time: 2000});
|
|
}
|
|
},
|
|
error: handleAjaxError
|
|
});
|
|
layer.close(index); // 关闭输入框
|
|
});
|
|
break;
|
|
case 'disableAccount':
|
|
layer.confirm("确定要禁用用户【" + trData.UserName + "】吗?", {
|
|
title: '禁用确认',
|
|
icon: 3
|
|
}, function(index) {
|
|
$.ajax({
|
|
url: "/API/SiteUserManagement/DisableAccount",
|
|
type: 'POST',
|
|
data: { UserUUID: trData.UserUUID },
|
|
success: function(res) {
|
|
if (res.code == 0) {
|
|
layer.msg('账户已禁用', {icon: 1});
|
|
tableInst.reload();
|
|
} else {
|
|
layer.msg(`禁用失败:${res.msg}`, {icon: 5});
|
|
}
|
|
},
|
|
error: handleAjaxError
|
|
});
|
|
layer.close(index);
|
|
});
|
|
break;
|
|
case 'enableAccount':
|
|
layer.confirm("确定要启用用户【" + trData.UserName + "】吗?", {
|
|
title: '启用确认',
|
|
icon: 3
|
|
}, function(index) {
|
|
$.ajax({
|
|
url: "/API/SiteUserManagement/EnableAccount",
|
|
type: 'POST',
|
|
data: { UserUUID: trData.UserUUID },
|
|
success: function(res) {
|
|
if (res.code == 0) {
|
|
layer.msg('账户已启用', {icon: 1});
|
|
tableInst.reload();
|
|
} else {
|
|
layer.msg(`启用失败:${res.msg}`, {icon: 5});
|
|
}
|
|
},
|
|
error: handleAjaxError
|
|
});
|
|
layer.close(index);
|
|
});
|
|
break;
|
|
case 'enableEmailVerify':
|
|
layer.confirm(`确定要通过用户【${trData.UserName}】的邮箱验证吗?`, {
|
|
title: '通过邮箱验证确认',
|
|
icon: 3
|
|
}, function(index) {
|
|
$.ajax({
|
|
url: "/API/SiteUserManagement/EnableAccountEmailVerify",
|
|
type: 'POST',
|
|
data: { UserUUID: trData.UserUUID },
|
|
success: function(res) {
|
|
if (res.code == 0) {
|
|
layer.msg('邮箱验证已通过', {icon: 1});
|
|
tableInst.reload(); // 刷新表格更新状态
|
|
} else {
|
|
layer.msg(`通过失败:${res.msg}`, {icon: 5});
|
|
}
|
|
},
|
|
error: handleAjaxError
|
|
});
|
|
layer.close(index);
|
|
});
|
|
break;
|
|
case 'disableEmailVerify':
|
|
layer.confirm(`确定要结束用户【${trData.UserName}】的邮箱验证状态吗?`, {
|
|
title: '结束邮箱验证确认',
|
|
icon: 3
|
|
}, function(index) {
|
|
$.ajax({
|
|
url: "/API/SiteUserManagement/DisableAccountEmailVerify",
|
|
type: 'POST',
|
|
data: { UserUUID: trData.UserUUID },
|
|
success: function(res) {
|
|
if (res.code == 0) {
|
|
layer.msg('邮箱验证已结束', {icon: 1});
|
|
tableInst.reload(); // 刷新表格更新状态
|
|
} else {
|
|
layer.msg(`结束失败:${res.msg}`, {icon: 5});
|
|
}
|
|
},
|
|
error: handleAjaxError
|
|
});
|
|
layer.close(index);
|
|
});
|
|
break;
|
|
case 'del':
|
|
manager.confirmAction({
|
|
title: "用户管理",
|
|
message: `确认要注销 用户 ${trData.UserName} 吗?`,
|
|
api: manager.config.base.api.delete,
|
|
params: { id: trData.id },
|
|
successMessage: "删除成功"
|
|
});
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
window.tableManager = new tableEngine.TableManager(TABLE_CONFIG);
|
|
|
|
</script>
|