587 lines
25 KiB
Java
587 lines
25 KiB
Java
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<title>用户管理</title>
|
||
<meta charset="utf-8">
|
||
<!-- 指定以IE8的方式来渲染 -->
|
||
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"/>
|
||
<link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon"/>
|
||
<script type="text/javascript" src="/js/jquery-1.8.0.min.js"></script>
|
||
<script type="text/javascript" src="/js/colorbox/jquery.colorbox-min.js"></script>
|
||
<script type="text/javascript" src="/js/colorbox/colorboxSet.js"></script>
|
||
<link href="/js/colorbox/colorbox.css" rel="stylesheet" type="text/css"/>
|
||
<link rel="stylesheet" type="text/css" href="/js/easyui-1.3.5/themes/default/easyui.css"/>
|
||
<link rel="stylesheet" type="text/css" href="/js/easyui-1.3.5/themes/icon.css"/>
|
||
<link type="text/css" rel="stylesheet" href="/css/common.css"/>
|
||
<script type="text/javascript" src="/js/easyui-1.3.5/jquery.easyui.min.js"></script>
|
||
<script type="text/javascript" src="/js/easyui-1.3.5/locale/easyui-lang-zh_CN.js"></script>
|
||
<script type="text/javascript" src="/js/common/common.js"></script>
|
||
</head>
|
||
<body>
|
||
<!-- 数据显示table -->
|
||
<div id="tablePanel" class="easyui-panel" data-options="fit:true" style="padding:1px;top:300px;" title="用户列表" iconCls="icon-list">
|
||
<table id="searchTable">
|
||
<tr>
|
||
<td>登录名称:</td>
|
||
<td>
|
||
<input type="text" name="searchLoginame" id="searchLoginame" style="width:100px;"/>
|
||
</td>
|
||
<td> </td>
|
||
<td> </td>
|
||
<td>用户名称:</td>
|
||
<td>
|
||
<input type="text" name="searchUsername" id="searchUsername" style="width:100px;"/>
|
||
</td>
|
||
<td> </td>
|
||
<td> </td>
|
||
<td> </td>
|
||
<td>
|
||
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-search" id="searchBtn">查询</a>
|
||
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-redo" id="searchResetBtn">重置</a>
|
||
<a id="btnSetRole" class='easyui-linkbutton iframe iframe_LargeForm' href='#' title='分配角色'>分配角色</a>
|
||
<a id="btnSetDepart" class='easyui-linkbutton iframe iframe_LargeForm' href='#' title='分配仓库'>分配仓库</a>
|
||
<a id="btnSetCustomer" class='easyui-linkbutton iframe iframe_LargeForm' href='#' title='分配客户'>分配客户</a>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
<table id="tableData" style="top:300px;border-bottom-color:#FFFFFF"></table>
|
||
</div>
|
||
|
||
<div id="userDlg" class="easyui-dialog" style="width:380px;padding:10px 20px"
|
||
closed="true" buttons="#dlg-buttons" modal="true" collapsible="false" closable="true">
|
||
<form id="usernameFM" method="post" novalidate>
|
||
<div class="fitem" style="padding:5px">
|
||
<label id="loginameLabel">登录名称 </label>
|
||
<input name="loginame" id="loginame" class="easyui-validatebox"
|
||
data-options="required:true,validType:'length[2,15]'" style="width: 120px;height: 20px"/>
|
||
初始密码:123456
|
||
</div>
|
||
<div class="fitem" style="padding:5px">
|
||
<label id="orgAbrLabel">部 门 </label>
|
||
<input name="orgAbr" id="orgAbr" style="width: 120px;height: 20px"/>
|
||
<a href="javascript:void(0)" class="l-btn l-btn-plain" group="" id="lookForSelectOrganization">
|
||
<span class="l-btn-left"><span class="l-btn-text icon-search l-btn-icon-left"></span></span></a>
|
||
<input name="orgaId" id="orgaId" type="hidden"/>
|
||
<input name="selectType" id="selectType" type="hidden"/>
|
||
<input name="orgaUserRelId" id="orgaUserRelId" type="hidden"/>
|
||
<!--一个兼容input框,没有实际用处,但是必须存在-->
|
||
<input name="id" id="id" type="hidden"/>
|
||
</div>
|
||
<div class="fitem" style="padding:5px">
|
||
<label id="userBlngOrgaDsplSeqLabel">用户排序 </label>
|
||
<input name="userBlngOrgaDsplSeq" id="userBlngOrgaDsplSeq" style="width: 230px;height: 20px"/>
|
||
</div>
|
||
<div class="fitem" style="padding:5px">
|
||
<label id="usernameLabel">用户名称 </label>
|
||
<input name="username" id="username" class="easyui-validatebox"
|
||
data-options="required:true,validType:'length[2,30]'" style="width: 230px;height: 20px"/>
|
||
</div>
|
||
<div class="fitem" style="padding:5px">
|
||
<label id="positionLabel">职 位 </label>
|
||
<input name="position" id="position" style="width: 230px;height: 20px"/>
|
||
</div>
|
||
<div class="fitem" style="padding:5px">
|
||
<label id="phonenumLabel">联系电话 </label>
|
||
<input name="phonenum" id="phonenum" class="easyui-numberbox" style="width: 230px;height: 20px"/>
|
||
</div>
|
||
<div class="fitem" style="padding:5px">
|
||
<label id="emailLabel">电子邮箱 </label>
|
||
<input name="email" id="email" class="easyui-validatebox" validType="email"
|
||
style="width: 230px;height: 20px"/>
|
||
</div>
|
||
<div class="fitem" style="padding:5px">
|
||
<label id="descriptionLabel">描 述 </label>
|
||
<textarea name="description" id="description" rows="2" cols="2" style="width: 230px;"></textarea>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
<div id="dlg-buttons">
|
||
<a href="javascript:void(0)" id="resetPwd" class="easyui-linkbutton" iconCls="icon-redo">重置密码</a>
|
||
<a href="javascript:void(0)" id="saveusername" class="easyui-linkbutton" iconCls="icon-ok">保存</a>
|
||
<a href="javascript:void(0)" id="cancelusername" class="easyui-linkbutton" iconCls="icon-cancel"
|
||
onclick="javascript:$('#userDlg').dialog('close')">取消</a>
|
||
</div>
|
||
<div id="forSelectOrganizationDlg" class="easyui-dialog" style="width:380px;padding:10px 20px"
|
||
closed="true" modal="true" cache="false" collapsible="false" closable="true">
|
||
</div>
|
||
<script type="text/javascript">
|
||
//初始化界面
|
||
$(function () {
|
||
initConfig();
|
||
initTableData();
|
||
ininPager();
|
||
browserFit();
|
||
});
|
||
|
||
//初始化配置
|
||
function initConfig() {
|
||
$("#btnSetDepart").hide();
|
||
$("#btnSetCustomer").hide();
|
||
var config = getSystemConfig();
|
||
if(config) {
|
||
if(config.depotFlag == "1") {
|
||
$("#btnSetDepart").show();
|
||
}
|
||
if(config.customerFlag == "1") {
|
||
$("#btnSetCustomer").show();
|
||
}
|
||
}
|
||
}
|
||
|
||
//浏览器适配
|
||
function browserFit() {
|
||
if (getOs() == 'MSIE') {
|
||
$("#usernameLabel").empty().append("用户名称 ");
|
||
$("#loginameLabel").empty().append("登录名称 ");
|
||
$("#orgAbrLabel").empty().append("部 门 ");
|
||
$("#userBlngOrgaDsplSeqLabel").empty().append("用户排序 ");
|
||
$("#positionLabel").empty().append("职 位 ");
|
||
$("#phonenumLabel").empty().append("联系电话 ");
|
||
$("#emailLabel").empty().append("电子邮箱 ");
|
||
$("#descriptionLabel").empty().append("描 述 ");
|
||
$("#searchPositionLabel").empty().append("职 位:");
|
||
$("#searchDeptLabel").empty().append("部 门:");
|
||
$("#searchDescLabel").empty().append("描 述:");
|
||
}
|
||
else {
|
||
$("#usernameLabel").empty().append("用户名称 ");
|
||
$("#loginameLabel").empty().append("登录名称 ");
|
||
$("#orgAbrLabel").empty().append("部 门 ");
|
||
$("#userBlngOrgaDsplSeqLabel").empty().append("用户排序 ");
|
||
$("#positionLabel").empty().append("职 位 ");
|
||
$("#phonenumLabel").empty().append("联系电话 ");
|
||
$("#emailLabel").empty().append("电子邮箱 ");
|
||
$("#descriptionLabel").empty().append("描 述 ");
|
||
$("#searchPositionLabel").empty().append("职 位:");
|
||
$("#searchDeptLabel").empty().append("部 门:");
|
||
$("#searchDescLabel").empty().append("描 述:");
|
||
}
|
||
}
|
||
|
||
//初始化表格数据
|
||
function initTableData() {
|
||
$('#tableData').datagrid({
|
||
height: heightInfo,
|
||
nowrap: false,
|
||
rownumbers: false,
|
||
//动画效果
|
||
animate: false,
|
||
//选中单行
|
||
singleSelect: true,
|
||
collapsible: false,
|
||
pagination: true,
|
||
//交替出现背景
|
||
striped: true,
|
||
pageSize: initPageSize,
|
||
pageList: initPageNum,
|
||
columns: [[
|
||
{field: 'id', width: 35, align: "center", checkbox:true},
|
||
{
|
||
title: '操作', field: 'isystem', align: "center", width: 80, formatter: function (value, rec, index) {
|
||
var str = '';
|
||
if(rec.loginame != "jsh") {
|
||
str += '<img src="/js/easyui-1.3.5/themes/icons/pencil.png" style="cursor: pointer;" onclick="editUser(\'' + index + '\');"/> ';
|
||
}
|
||
if (rec.id != rec.tenantId) {
|
||
str += '<img src="/js/easyui-1.3.5/themes/icons/edit_remove.png" style="cursor: pointer;" onclick="deleteUser(' + rec.id + ');"/>';
|
||
}
|
||
else {
|
||
str += '';
|
||
}
|
||
return str;
|
||
}
|
||
},
|
||
{title: '登录名称', field: 'loginame', width: 80},
|
||
{title: '用户名称', field: 'username', width: 80, align: "center"},
|
||
{title: '职位', field: 'position', width: 115, align: "center"},
|
||
{title: '部门', field: 'orgAbr', width: 115, align: "center"},
|
||
{title: '电子邮箱', field: 'email', width: 150, align: "center"},
|
||
{title: '电话号码', field: 'phonenum', width: 150, align: "center"},
|
||
{title: '用户排序', field: 'userBlngOrgaDsplSeq', width: 60, align: "center"},
|
||
{title: '描述', field: 'description', width: 130},
|
||
{field: 'orgaId',hidden:true, width: 10}
|
||
]],
|
||
toolbar: [
|
||
{
|
||
id: 'addUser',
|
||
text: '增加',
|
||
iconCls: 'icon-add',
|
||
handler: function () {
|
||
addUser();
|
||
}
|
||
},
|
||
{
|
||
id: 'deleteUser',
|
||
text: '删除',
|
||
iconCls: 'icon-remove',
|
||
handler: function () {
|
||
batDeleteUser();
|
||
}
|
||
}
|
||
],
|
||
onLoadError: function () {
|
||
$.messager.alert('页面加载提示', '页面加载异常,请稍后再试!', 'error');
|
||
return;
|
||
}
|
||
});
|
||
dgResize();
|
||
showUserDetails(1, initPageSize);
|
||
}
|
||
|
||
//初始化键盘enter事件
|
||
$(document).keydown(function (event) {
|
||
//兼容 IE和firefox 事件
|
||
var e = window.event || event;
|
||
var k = e.keyCode || e.which || e.charCode;
|
||
//兼容 IE,firefox 兼容
|
||
var obj = e.srcElement ? e.srcElement : e.target;
|
||
//绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件
|
||
if (k == "13" && (obj.id == "username" || obj.id == "department" || obj.id == "phonenum"
|
||
|| obj.id == "email" || obj.id == "description" || obj.id == "position")) {
|
||
$("#saveusername").click();
|
||
}
|
||
|
||
//搜索按钮添加快捷键
|
||
if (k == "13" && (obj.id == "searchUsername" || obj.id == "searchLoginame" || obj.id == "searchPhonenum"
|
||
|| obj.id == "searchPosition" || obj.id == "searchEmail" || obj.id == "searchDesc" || obj.id == "searchDept")) {
|
||
$("#searchBtn").click();
|
||
}
|
||
});
|
||
|
||
//分页信息处理
|
||
function ininPager() {
|
||
try {
|
||
var opts = $("#tableData").datagrid('options');
|
||
var pager = $("#tableData").datagrid('getPager');
|
||
pager.pagination({
|
||
onSelectPage: function (pageNum, pageSize) {
|
||
opts.pageNumber = pageNum;
|
||
opts.pageSize = pageSize;
|
||
pager.pagination('refresh',
|
||
{
|
||
pageNumber: pageNum,
|
||
pageSize: pageSize
|
||
});
|
||
showUserDetails(pageNum, pageSize);
|
||
}
|
||
});
|
||
}
|
||
catch (e) {
|
||
$.messager.alert('异常处理提示', "分页信息异常 : " + e.name + ": " + e.message, 'error');
|
||
}
|
||
}
|
||
|
||
//删除用户信息
|
||
function deleteUser(userID) {
|
||
$.messager.confirm('删除确认', '确定要删除此用户信息吗?', function (r) {
|
||
if (r) {
|
||
$.ajax({
|
||
type: "post",
|
||
url: "/user/deleteUser",
|
||
dataType: "json",
|
||
data: ({
|
||
ids: userID
|
||
}),
|
||
success: function (res) {
|
||
if(res && res.code != 200) {
|
||
$.messager.alert('提示', res.msg, 'error');
|
||
return;
|
||
}
|
||
$.messager.alert('提示', res.msg, 'info');
|
||
$("#searchBtn").click();
|
||
},
|
||
//此处添加错误处理
|
||
error: function () {
|
||
$.messager.alert('删除提示', '删除用户信息异常,请稍后再试!', 'error');
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
});
|
||
}
|
||
|
||
//批量删除用户
|
||
function batDeleteUser() {
|
||
var row = $('#tableData').datagrid('getChecked');
|
||
if (row.length == 0) {
|
||
$.messager.alert('删除提示', '没有记录被选中!', 'info');
|
||
return;
|
||
}
|
||
if (row.length > 0) {
|
||
$.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条用户信息吗?', function (r) {
|
||
if (r) {
|
||
var ids = "";
|
||
for (var i = 0; i < row.length; i++) {
|
||
if (i == row.length - 1) {
|
||
ids += row[i].id;
|
||
break;
|
||
}
|
||
ids += row[i].id + ",";
|
||
}
|
||
if(row[i].loginame == "jsh"){
|
||
$.messager.alert('提示', '租户jsh不能删除!', 'warning');
|
||
return;
|
||
} else if(row[i].id == row[i].tenantId) {
|
||
$.messager.alert('提示', '不能删除自己!', 'warning');
|
||
return;
|
||
} else {
|
||
$.ajax({
|
||
type: "post",
|
||
url: "/user/batchDeleteUser",
|
||
dataType: "json",
|
||
async: false,
|
||
data: ({
|
||
ids: ids,
|
||
}),
|
||
success: function (res) {
|
||
if(res && res.code != 200) {
|
||
$.messager.alert('提示', res.msg, 'error');
|
||
return;
|
||
}
|
||
$.messager.alert('提示', res.msg, 'info');
|
||
$("#searchBtn").click();
|
||
$(":checkbox").attr("checked", false);
|
||
},
|
||
//此处添加错误处理
|
||
error: function () {
|
||
$.messager.alert('删除提示', '删除用户信息异常,请稍后再试!', 'error');
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
//增加用户
|
||
var url;
|
||
var userID = 0;
|
||
//保存编辑前的名称
|
||
var oldLoginName = "";
|
||
|
||
function addUser() {
|
||
if(checkPower()){
|
||
return;
|
||
}
|
||
$('#userDlg').dialog('open').dialog('setTitle', '<img src="/js/easyui-1.3.5/themes/icons/edit_add.png"/> 增加用户');
|
||
$(".window-mask").css({width: webW, height: webH});
|
||
$('#usernameFM').form('clear');
|
||
var row = {};
|
||
$('#usernameFM').form('load', row);
|
||
$("#username").focus();
|
||
$("#loginame").removeAttr("readonly");
|
||
oldLoginName = "";
|
||
userID = 0;
|
||
/**机构选择*/
|
||
$("#selectType").val("org");
|
||
url = '/user/addUser';
|
||
}
|
||
|
||
//重置用户密码
|
||
$("#resetPwd").off("click").on("click", function () {
|
||
$.messager.confirm('重置用户密码', '确定重置该用户的密码为123456吗?', function (r) {
|
||
if (r) {
|
||
$.ajax({
|
||
type: "post",
|
||
url: "/user/resetPwd",
|
||
dataType: "json",
|
||
data: ({
|
||
id: userID
|
||
}),
|
||
success: function (res) {
|
||
if (res && res.code === 200) {
|
||
$.messager.alert('提示', '重置密码成功', 'info');
|
||
}
|
||
},
|
||
//此处添加错误处理
|
||
error: function () {
|
||
$.messager.alert('提示', '重置密码失败,请稍后再试!', 'error');
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
//保存用户信息
|
||
$("#saveusername").off("click").on("click", function () {
|
||
/**
|
||
* 2019-03-12
|
||
* 此处用户名和登录名是否重复的校验在保存操作时处理
|
||
* */
|
||
var reg = /^([0-9])+$/;
|
||
var phonenum = $.trim($("#phonenum").val());
|
||
if (phonenum.length > 0 && !reg.test(phonenum)) {
|
||
$.messager.alert('提示', '电话号码只能是数字', 'info');
|
||
$("#phonenum").val("").focus();
|
||
return;
|
||
}
|
||
$.ajax({
|
||
url: url,
|
||
type: "post",
|
||
dataType: "json",
|
||
data: {
|
||
info: JSON.stringify($("#usernameFM").serializeObject())
|
||
},
|
||
success: function(res) {
|
||
if(res && res.code != 200) {
|
||
$.messager.alert('提示', res.msg, 'error');
|
||
return;
|
||
}
|
||
$('#userDlg').dialog('close');
|
||
//加载完以后重新初始化
|
||
var opts = $("#tableData").datagrid('options');
|
||
showUserDetails(opts.pageNumber, opts.pageSize);
|
||
},
|
||
//此处添加错误处理
|
||
error: function () {
|
||
$.messager.alert('提示', '网络异常,请稍后再试!', 'error');
|
||
return;
|
||
}
|
||
});
|
||
});
|
||
|
||
//编辑用户信息
|
||
function editUser(index) {
|
||
var rowsdata = $("#tableData").datagrid("getRows")[index];
|
||
var row = {
|
||
username: rowsdata.username,
|
||
loginame: rowsdata.loginame,
|
||
position: rowsdata.position,
|
||
email: rowsdata.email,
|
||
phonenum: rowsdata.phonenum,
|
||
description: rowsdata.description,
|
||
orgAbr: rowsdata.orgAbr,
|
||
orgaId: rowsdata.orgaId,
|
||
orgaUserRelId: rowsdata.orgaUserRelId,
|
||
userBlngOrgaDsplSeq: rowsdata.userBlngOrgaDsplSeq
|
||
};
|
||
oldLoginName = rowsdata.username;
|
||
$('#userDlg').dialog('open').dialog('setTitle', '<img src="/js/easyui-1.3.5/themes/icons/pencil.png"/> 编辑用户信息');
|
||
$(".window-mask").css({width: webW, height: webH});
|
||
$('#usernameFM').form('load', row);
|
||
userID = rowsdata.id;
|
||
//焦点在名称输入框==定焦在输入文字后面
|
||
$("#username").val("").focus().val(rowsdata.username);
|
||
$("#loginame").attr("readonly","readonly");
|
||
/**机构选择*/
|
||
$("#selectType").val("org");
|
||
url = '/user/updateUser?id=' + rowsdata.id;
|
||
}
|
||
|
||
|
||
//搜索处理
|
||
$("#searchBtn").unbind().bind({
|
||
click: function () {
|
||
showUserDetails(1, initPageSize);
|
||
var opts = $("#tableData").datagrid('options');
|
||
var pager = $("#tableData").datagrid('getPager');
|
||
opts.pageNumber = 1;
|
||
opts.pageSize = initPageSize;
|
||
pager.pagination('refresh',
|
||
{
|
||
pageNumber: 1,
|
||
pageSize: initPageSize
|
||
});
|
||
}
|
||
});
|
||
|
||
function showUserDetails(pageNo, pageSize) {
|
||
var userName = $.trim($("#searchUsername").val());
|
||
var loginName = $.trim($("#searchLoginame").val());
|
||
$.ajax({
|
||
type: "get",
|
||
url: "/user/getUserList",
|
||
dataType: "json",
|
||
data: ({
|
||
search: JSON.stringify({
|
||
userName: userName,
|
||
loginName: loginName
|
||
}),
|
||
currentPage: pageNo,
|
||
pageSize: pageSize
|
||
}),
|
||
success: function (res) {
|
||
if(res && res.code === 200){
|
||
if(res.data && res.data.page) {
|
||
$("#tableData").datagrid('loadData', res.data.page);
|
||
}
|
||
}
|
||
},
|
||
//此处添加错误处理
|
||
error: function () {
|
||
$.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error');
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
//重置按钮
|
||
$("#searchResetBtn").unbind().bind({
|
||
click: function () {
|
||
$("#searchUsername").val("");
|
||
$("#searchLoginame").val("");
|
||
$("#searchPhonenum").val("");
|
||
$("#searchPosition").val("");
|
||
$("#searchDept").val("");
|
||
$("#searchEmail").val("");
|
||
$("#searchDesc").val("");
|
||
|
||
|
||
//加载完以后重新初始化
|
||
$("#searchBtn").click();
|
||
}
|
||
});
|
||
|
||
//分配角色
|
||
$('#btnSetRole').click(function () {
|
||
var currentRow = $("#tableData").datagrid("getSelected");
|
||
if (currentRow == null) {
|
||
$.messager.alert('提示',"请选择一条数据再操作!",'warning');
|
||
return false;
|
||
}
|
||
if (currentRow.id == currentRow.tenantId) {
|
||
$.messager.alert('提示',"不能给自己配置角色!",'warning');
|
||
return false;
|
||
}
|
||
this.href = "/pages/user/userRole.html?id=" + currentRow.id;
|
||
});
|
||
|
||
//分配部门
|
||
$('#btnSetDepart').click(function () {
|
||
var currentRow = $("#tableData").datagrid("getSelected");
|
||
if (currentRow == null) {
|
||
$.messager.alert('提示',"请选择一条数据再操作!",'warning');
|
||
return false;
|
||
}
|
||
this.href = "/pages/user/userDepot.html?id=" + currentRow.id;
|
||
});
|
||
|
||
//分配客户
|
||
$('#btnSetCustomer').click(function () {
|
||
var currentRow = $("#tableData").datagrid("getSelected");
|
||
if (currentRow == null) {
|
||
$.messager.alert('提示',"请选择一条数据再操作!",'warning');
|
||
return false;
|
||
}
|
||
this.href = "/pages/user/userCustomer.html?id=" + currentRow.id;
|
||
});
|
||
/**
|
||
* 用户选择机构
|
||
* */
|
||
$("#lookForSelectOrganization").on("click", function () {
|
||
$('#forSelectOrganizationDlg').dialog({
|
||
title: '机构选择',
|
||
width: webW/2,
|
||
height: webH/2,
|
||
closed: false,
|
||
cache: false,
|
||
href: '/pages/manage/organization_forselect.html',
|
||
modal: true,
|
||
resizable:true
|
||
});
|
||
});
|
||
</script>
|
||
</body>
|
||
</html> |