Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
JSH ERP
Commits
01a044b7
Commit
01a044b7
authored
Oct 30, 2016
by
季圣华
Browse files
No commit message
No commit message
parent
8d3325e2
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
WebRoot/pages/manage/app.jsp
0 → 100644
View file @
01a044b7
This diff is collapsed.
Click to expand it.
WebRoot/pages/manage/assetname.jsp
0 → 100644
View file @
01a044b7
This diff is collapsed.
Click to expand it.
WebRoot/pages/manage/category.jsp
0 → 100644
View file @
01a044b7
<%@page
import=
"com.jsh.util.common.Tools"
%>
<%@ page
language=
"java"
import=
"java.util.*"
pageEncoding=
"utf-8"
%>
<%
String
path
=
request
.
getContextPath
();
String
basePath
=
request
.
getScheme
()+
"://"
+
request
.
getServerName
()+
":"
+
request
.
getServerPort
()+
path
+
"/"
;
String
clientIp
=
Tools
.
getCurrentUserIP
();
%>
<!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=
"
<%=
path
%>
/images/favicon.ico"
type=
"image/x-icon"
/>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"
<%=
path
%>
/js/easyui-1.3.5/themes/default/easyui.css"
/>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"
<%=
path
%>
/js/easyui-1.3.5/themes/icon.css"
/>
<link
type=
"text/css"
rel=
"stylesheet"
href=
"
<%=
path
%>
/css/common.css"
/>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/jquery-1.8.0.min.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/easyui-1.3.5/jquery.easyui.min.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/easyui-1.3.5/locale/easyui-lang-zh_CN.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/common/common.js"
></script>
</head>
<body>
<div
id=
"position"
class=
"easyui-panel"
title=
"当前位置:系统管理 > 资产类型"
collapsible=
"false"
closable=
"false"
/>
<!-- 查询 -->
<div
id =
"searchPanel"
class=
"easyui-panel"
style=
"padding:10px;"
title=
"查询窗口"
iconCls=
"icon-search"
collapsible=
"true"
closable=
"false"
>
<table
id=
"searchTable"
>
<tr>
<td>
类型名称:
</td>
<td>
<input
type=
"text"
name=
"searchCategory"
id=
"searchCategory"
style=
"width:230px;"
/>
</td>
<td>
</td>
<td>
</td>
<td
id=
"searchDescLabel"
>
描
述:
</td>
<td>
<input
type=
"text"
name=
"searchDesc"
id=
"searchDesc"
style=
"width:230px;"
/>
</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>
</td>
</tr>
</table>
</div>
<!-- 数据显示table -->
<div
id =
"tablePanel"
class=
"easyui-panel"
style=
"padding:1px;top:300px;"
title=
"类型列表"
iconCls=
"icon-list"
collapsible=
"true"
closable=
"false"
>
<table
id=
"tableData"
style=
"top:300px;border-bottom-color:#FFFFFF"
></table>
</div>
<div
id=
"categoryDlg"
class=
"easyui-dialog"
style=
"width:380px;padding:10px 20px"
closed=
"true"
buttons=
"#dlg-buttons"
modal=
"true"
cache=
"false"
collapsible=
"false"
closable=
"true"
>
<form
id=
"categoryFM"
method=
"post"
novalidate
>
<div
class=
"fitem"
style=
"padding:5px"
>
<label
id=
"categoryNameLabel"
>
类型名称
</label>
<input
name=
"categoryName"
id=
"categoryName"
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=
"descriptionLabel"
>
描
述
</label>
<textarea
name=
"description"
id=
"description"
rows=
"2"
cols=
"2"
style=
"width: 230px;"
></textarea>
</div>
<input
type=
"hidden"
name=
"clientIp"
id=
"clientIp"
value=
"
<%=
clientIp
%>
"
/>
</form>
</div>
<div
id=
"dlg-buttons"
>
<a
href=
"javascript:void(0)"
id=
"saveCategory"
class=
"easyui-linkbutton"
iconCls=
"icon-ok"
>
保存
</a>
<a
href=
"javascript:void(0)"
id=
"cancelCategory"
class=
"easyui-linkbutton"
iconCls=
"icon-cancel"
onclick=
"javascript:$('#categoryDlg').dialog('close')"
>
取消
</a>
</div>
<script
type=
"text/javascript"
>
//初始化界面
$
(
function
()
{
initTableData
();
ininPager
();
initForm
();
browserFit
();
});
//浏览器适配
function
browserFit
()
{
if
(
getOs
()
==
'
MSIE
'
)
{
$
(
"
#searchDescLabel
"
).
empty
().
append
(
"
描 述:
"
);
$
(
"
#categoryNameLabel
"
).
empty
().
append
(
"
类型名称
"
);
$
(
"
#descriptionLabel
"
).
empty
().
append
(
"
描 述
"
);
}
else
{
$
(
"
#searchDescLabel
"
).
empty
().
append
(
"
描 述:
"
);
$
(
"
#categoryNameLabel
"
).
empty
().
append
(
"
类型名称
"
);
$
(
"
#descriptionLabel
"
).
empty
().
append
(
"
描 述
"
);
}
}
//防止表单提交重复
function
initForm
()
{
$
(
'
#categoryFM
'
).
form
({
onSubmit
:
function
(){
return
false
;
}
});
}
//初始化表格数据
function
initTableData
()
{
$
(
'
#tableData
'
).
datagrid
({
//title:'供应商列表',
//iconCls:'icon-save',
//width:700,
height
:
heightInfo
,
nowrap
:
false
,
rownumbers
:
false
,
//动画效果
animate
:
false
,
//选中单行
singleSelect
:
true
,
collapsible
:
false
,
selectOnCheck
:
false
,
//fitColumns:true,
//单击行是否选中
checkOnSelect
:
false
,
url
:
'
<%=
path
%>
/category/findBy.action?pageSize=
'
+
initPageSize
,
pagination
:
true
,
//交替出现背景
striped
:
true
,
//loadFilter: pagerFilter,
pageSize
:
initPageSize
,
pageList
:
initPageNum
,
columns
:[[
{
field
:
'
id
'
,
width
:
35
,
align
:
"
center
"
,
checkbox
:
true
},
{
title
:
'
资产类型
'
,
field
:
'
categoryname
'
,
width
:
200
},
{
title
:
'
描述
'
,
field
:
'
description
'
,
width
:
400
},
{
title
:
'
操作
'
,
field
:
'
op
'
,
align
:
"
center
"
,
width
:
130
,
formatter
:
function
(
value
,
rec
)
{
var
str
=
''
;
var
rowInfo
=
rec
.
id
+
'
AaBb
'
+
rec
.
categoryname
+
'
AaBb
'
+
rec
.
isystem
+
'
AaBb
'
+
rec
.
description
;
if
(
1
==
value
)
{
str
+=
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/pencil.png" style="cursor: pointer;" onclick="editCategory(
\'
'
+
rowInfo
+
'
\'
);"/> <a onclick="editCategory(
\'
'
+
rowInfo
+
'
\'
);" style="text-decoration:none;color:black;" href="javascript:void(0)">编辑</a>
'
;
str
+=
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/edit_remove.png" style="cursor: pointer;" onclick="deleteCategory(
'
+
rec
.
id
+
'
);"/> <a onclick="deleteCategory(
'
+
rec
.
id
+
'
);" style="text-decoration:none;color:black;" href="javascript:void(0)">删除</a>
'
;
}
return
str
;
}
}
]],
toolbar
:[
{
id
:
'
addSupplier
'
,
text
:
'
增加
'
,
iconCls
:
'
icon-add
'
,
handler
:
function
()
{
addCategory
();
}
},
{
id
:
'
deleteSupplier
'
,
text
:
'
删除
'
,
iconCls
:
'
icon-remove
'
,
handler
:
function
()
{
batDeleteCategory
();
}
}
],
onLoadError
:
function
()
{
$
.
messager
.
alert
(
'
页面加载提示
'
,
'
页面加载异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
//初始化键盘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键盘事件 ---遗留问题 enter键效验 对话框会关闭问题
if
(
k
==
"
13
"
&&
(
obj
.
id
==
"
categoryName
"
||
obj
.
id
==
"
description
"
))
{
$
(
"
#saveCategory
"
).
click
();
}
//搜索按钮添加快捷键
if
(
k
==
"
13
"
&&
(
obj
.
id
==
"
searchCategory
"
||
obj
.
id
==
"
searchDesc
"
))
{
$
(
"
#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
});
showCategoryDetails
(
pageNum
,
pageSize
);
}
});
}
catch
(
e
)
{
$
.
messager
.
alert
(
'
异常处理提示
'
,
"
分页信息异常 :
"
+
e
.
name
+
"
:
"
+
e
.
message
,
'
error
'
);
}
}
//删除供应商信息
function
deleteCategory
(
categoryID
)
{
$
.
messager
.
confirm
(
'
删除确认
'
,
'
确定要删除此资产类型信息吗?
'
,
function
(
r
)
{
if
(
r
)
{
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/category/delete.action
"
,
dataType
:
"
json
"
,
data
:
({
categoryID
:
categoryID
,
clientIp
:
'
<%=
clientIp
%>
'
}),
success
:
function
(
tipInfo
)
{
var
msg
=
tipInfo
.
showModel
.
msgTip
;
if
(
msg
==
'
成功
'
)
{
//加载完以后重新初始化
$
(
"
#searchBtn
"
).
click
();
}
else
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除资产类别信息失败,请稍后再试!
'
,
'
error
'
);
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除资产类别信息异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
});
}
//批量删除供应商
function
batDeleteCategory
()
{
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
;
}
//alert(row[i].id);
ids
+=
row
[
i
].
id
+
"
,
"
;
}
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/category/batchDelete.action
"
,
dataType
:
"
json
"
,
async
:
false
,
data
:
({
categoryIDs
:
ids
,
clientIp
:
'
<%=
clientIp
%>
'
}),
success
:
function
(
tipInfo
)
{
var
msg
=
tipInfo
.
showModel
.
msgTip
;
if
(
msg
==
'
成功
'
)
{
//加载完以后重新初始化
$
(
"
#searchBtn
"
).
click
();
$
(
"
:checkbox
"
).
attr
(
"
checked
"
,
false
);
}
else
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除资产类别信息失败,请稍后再试!
'
,
'
error
'
);
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除资产类别信息异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
});
}
}
//增加
var
url
;
var
categoryID
=
0
;
//保存编辑前的名称
var
orgCategory
=
""
;
function
addCategory
()
{
$
(
"
#clientIp
"
).
val
(
'
<%=
clientIp
%>
'
);
$
(
"
#description
"
).
val
(
""
);
$
(
'
#categoryDlg
'
).
dialog
(
'
open
'
).
dialog
(
'
setTitle
'
,
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/edit_add.png"/> 增加资产类型信息
'
);
$
(
"
.window-mask
"
).
css
({
width
:
webW
,
height
:
webH
});
$
(
"
#categoryName
"
).
val
(
""
).
focus
();
//$('#categoryFM').form('clear');
orgCategory
=
""
;
categoryID
=
0
;
url
=
'
<%=
path
%>
/category/create.action
'
;
}
//保存信息
$
(
"
#saveCategory
"
).
unbind
().
bind
({
click
:
function
()
{
if
(
!
$
(
'
#categoryFM
'
).
form
(
'
validate
'
))
return
;
else
if
(
checkCategoryName
())
return
;
else
{
$
.
ajax
({
type
:
"
post
"
,
url
:
url
,
dataType
:
"
json
"
,
async
:
false
,
data
:
({
categoryName
:
$
.
trim
(
$
(
"
#categoryName
"
).
val
()),
description
:
$
.
trim
(
$
(
"
#description
"
).
val
()),
clientIp
:
'
<%=
clientIp
%>
'
}),
success
:
function
(
tipInfo
)
{
if
(
tipInfo
)
{
$
(
'
#categoryDlg
'
).
dialog
(
'
close
'
);
var
opts
=
$
(
"
#tableData
"
).
datagrid
(
'
options
'
);
showCategoryDetails
(
opts
.
pageNumber
,
opts
.
pageSize
);
}
else
{
$
.
messager
.
show
({
title
:
'
错误提示
'
,
msg
:
'
保存资产类别信息失败,请稍后重试!
'
});
}
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
提示
'
,
'
保存资产类型信息异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
}
});
//编辑信息
function
editCategory
(
categoryTotalInfo
)
{
var
categoryInfo
=
categoryTotalInfo
.
split
(
"
AaBb
"
);
$
(
"
#clientIp
"
).
val
(
'
<%=
clientIp
%>
'
);
$
(
"
#categoryName
"
).
focus
().
val
(
categoryInfo
[
1
]);
$
(
"
#description
"
).
val
(
categoryInfo
[
3
]);
orgCategory
=
categoryInfo
[
1
];
$
(
'
#categoryDlg
'
).
dialog
(
'
open
'
).
dialog
(
'
setTitle
'
,
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/pencil.png"/> 编辑资产类型信息
'
);
$
(
"
.window-mask
"
).
css
({
width
:
webW
,
height
:
webH
});
categoryID
=
categoryInfo
[
0
];
//焦点在名称输入框==定焦在输入文字后面
$
(
"
#categoryName
"
).
val
(
""
).
focus
().
val
(
categoryInfo
[
1
]);
url
=
'
<%=
path
%>
/category/update.action?categoryID=
'
+
categoryInfo
[
0
];
}
//检查名称是否存在 ++ 重名无法提示问题需要跟进
function
checkCategoryName
()
{
var
categoryName
=
$
.
trim
(
$
(
"
#categoryName
"
).
val
());
//表示是否存在 true == 存在 false = 不存在
var
flag
=
false
;
//开始ajax名称检验,不能重名
if
(
categoryName
.
length
>
0
&&
(
orgCategory
.
length
==
0
||
categoryName
!=
orgCategory
))
{
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/category/checkIsNameExist.action
"
,
dataType
:
"
json
"
,
async
:
false
,
data
:
({
categoryID
:
categoryID
,
categoryName
:
categoryName
}),
success
:
function
(
tipInfo
)
{
flag
=
tipInfo
;
if
(
tipInfo
)
{
$
.
messager
.
alert
(
'
提示
'
,
'
资产类型名称已经存在
'
,
'
info
'
);
//alert("供应商名称已经存在");
//$("#supplier").val("");
return
;
}
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
提示
'
,
'
检查资产类型名称是否存在异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
return
flag
;
}
//搜索处理
$
(
"
#searchBtn
"
).
unbind
().
bind
({
click
:
function
()
{
showCategoryDetails
(
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
showCategoryDetails
(
pageNo
,
pageSize
)
{
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/category/findBy.action
"
,
dataType
:
"
json
"
,
data
:
({
categoryName
:
$
.
trim
(
$
(
"
#searchCategory
"
).
val
()),
description
:
$
.
trim
(
$
(
"
#searchDesc
"
).
val
()),
pageNo
:
pageNo
,
pageSize
:
pageSize
}),
success
:
function
(
data
)
{
$
(
"
#tableData
"
).
datagrid
(
'
loadData
'
,
data
);
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
查询提示
'
,
'
查询数据后台异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
//重置按钮
$
(
"
#searchResetBtn
"
).
unbind
().
bind
({
click
:
function
(){
$
(
"
#searchCategory
"
).
val
(
""
);
$
(
"
#searchDesc
"
).
val
(
""
);
//加载完以后重新初始化
$
(
"
#searchBtn
"
).
click
();
}
});
</script>
</body>
</html>
\ No newline at end of file
WebRoot/pages/manage/depot.jsp
0 → 100644
View file @
01a044b7
<%@page
import=
"com.jsh.util.common.Tools"
%>
<%@ page
language=
"java"
import=
"java.util.*"
pageEncoding=
"utf-8"
%>
<%
String
path
=
request
.
getContextPath
();
String
basePath
=
request
.
getScheme
()+
"://"
+
request
.
getServerName
()+
":"
+
request
.
getServerPort
()+
path
+
"/"
;
String
clientIp
=
Tools
.
getCurrentUserIP
();
%>
<!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=
"
<%=
path
%>
/images/favicon.ico"
type=
"image/x-icon"
/>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"
<%=
path
%>
/js/easyui-1.3.5/themes/default/easyui.css"
/>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"
<%=
path
%>
/js/easyui-1.3.5/themes/icon.css"
/>
<link
type=
"text/css"
rel=
"stylesheet"
href=
"
<%=
path
%>
/css/common.css"
/>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/jquery-1.8.0.min.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/easyui-1.3.5/jquery.easyui.min.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/easyui-1.3.5/locale/easyui-lang-zh_CN.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/common/common.js"
></script>
</head>
<body>
<!-- 查询 -->
<div
id =
"searchPanel"
class=
"easyui-panel"
style=
"padding:10px;"
title=
"查询窗口"
iconCls=
"icon-search"
collapsible=
"true"
closable=
"false"
>
<table
id=
"searchTable"
>
<tr>
<td>
仓库名称:
</td>
<td>
<input
type=
"text"
name=
"searchName"
id=
"searchName"
style=
"width:150px;"
/>
</td>
<td>
</td>
<td>
</td>
<td
id=
"searchRemarkLabel"
>
描
述:
</td>
<td>
<input
type=
"text"
name=
"searchRemark"
id=
"searchRemark"
style=
"width:150px;"
/>
</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
href=
"javascript:void(0)"
class=
"easyui-linkbutton"
iconCls=
"icon-redo"
id=
"setBuilding"
>
查看单元
</a>
</td>
</tr>
</table>
</div>
<!-- 数据显示table -->
<div
id =
"tablePanel"
class=
"easyui-panel"
style=
"padding:1px;top:300px;"
title=
"仓库列表"
iconCls=
"icon-list"
collapsible=
"true"
closable=
"false"
>
<table
id=
"tableData"
style=
"top:300px;border-bottom-color:#FFFFFF"
></table>
</div>
<div
id=
"depotDlg"
class=
"easyui-dialog"
style=
"width:380px;padding:10px 20px"
closed=
"true"
buttons=
"#dlg-buttons"
modal=
"true"
cache=
"false"
collapsible=
"false"
closable=
"true"
>
<form
id=
"depotFM"
method=
"post"
novalidate
>
<table>
<tr>
<td><label
id=
"nameLabel"
>
仓库名称
</label></td>
<td
style=
"padding:5px"
><input
name=
"name"
id=
"name"
class=
"easyui-validatebox"
data-options=
"required:true,validType:'length[2,30]'"
style=
"width: 230px;height: 20px"
/></td>
</tr>
<tr>
<td><label
id=
"sortLabel"
>
排
序
</label></td>
<td
style=
"padding:5px"
><input
name=
"sort"
id=
"sort"
class=
"easyui-textbox"
style=
"width: 230px;height: 20px"
/></td>
</tr>
<tr>
<td><label
id=
"remarkLabel"
>
描
述
</label></td>
<td
style=
"padding:5px"
><textarea
name=
"remark"
id=
"remark"
rows=
"2"
cols=
"2"
style=
"width: 230px;"
></textarea></td>
</tr>
</table>
<input
type=
"hidden"
name=
"clientIp"
id=
"clientIp"
value=
"
<%=
clientIp
%>
"
/>
</form>
</div>
<div
id=
"dlg-buttons"
>
<a
href=
"javascript:void(0)"
id=
"saveDepot"
class=
"easyui-linkbutton"
iconCls=
"icon-ok"
>
保存
</a>
<a
href=
"javascript:void(0)"
id=
"cancelDepot"
class=
"easyui-linkbutton"
iconCls=
"icon-cancel"
onclick=
"javascript:$('#depotDlg').dialog('close')"
>
取消
</a>
</div>
<script
type=
"text/javascript"
>
//初始化界面
$
(
function
()
{
initTableData
();
ininPager
();
initForm
();
browserFit
();
});
//浏览器适配
function
browserFit
()
{
if
(
getOs
()
==
'
MSIE
'
)
{
$
(
"
#searchRemarkLabel
"
).
empty
().
append
(
"
描 述:
"
);
$
(
"
#nameLabel
"
).
empty
().
append
(
"
仓库名称
"
);
$
(
"
#sortLabel
"
).
empty
().
append
(
"
排 序
"
);
$
(
"
#remarkLabel
"
).
empty
().
append
(
"
描 述
"
);
}
else
{
$
(
"
#searchRemarkLabel
"
).
empty
().
append
(
"
描 述:
"
);
$
(
"
#nameLabel
"
).
empty
().
append
(
"
仓库名称
"
);
$
(
"
#sortLabel
"
).
empty
().
append
(
"
排 序
"
);
$
(
"
#remarkLabel
"
).
empty
().
append
(
"
描 述
"
);
}
}
//防止表单提交重复
function
initForm
()
{
$
(
'
#depotFM
'
).
form
({
onSubmit
:
function
(){
return
false
;
}
});
}
//初始化表格数据
function
initTableData
()
{
$
(
'
#tableData
'
).
datagrid
({
//title:'仓库列表',
//iconCls:'icon-save',
//width:700,
height
:
heightInfo
,
nowrap
:
false
,
rownumbers
:
false
,
//动画效果
animate
:
false
,
//选中单行
singleSelect
:
true
,
collapsible
:
false
,
selectOnCheck
:
false
,
//fitColumns:true,
//单击行是否选中
checkOnSelect
:
false
,
url
:
'
<%=
path
%>
/depot/findBy.action?pageSize=
'
+
initPageSize
,
pagination
:
true
,
//交替出现背景
striped
:
true
,
//loadFilter: pagerFilter,
pageSize
:
initPageSize
,
pageList
:
initPageNum
,
columns
:[[
{
field
:
'
id
'
,
width
:
35
,
align
:
"
center
"
,
checkbox
:
true
},
{
title
:
'
仓库名称
'
,
field
:
'
name
'
,
width
:
200
},
{
title
:
'
排序
'
,
field
:
'
sort
'
,
width
:
200
},
{
title
:
'
描述
'
,
field
:
'
remark
'
,
width
:
200
},
{
title
:
'
操作
'
,
field
:
'
op
'
,
align
:
"
center
"
,
width
:
130
,
formatter
:
function
(
value
,
rec
)
{
var
str
=
''
;
var
rowInfo
=
rec
.
id
+
'
AaBb
'
+
rec
.
name
+
'
AaBb
'
+
rec
.
sort
+
'
AaBb
'
+
rec
.
remark
;
if
(
1
==
value
)
{
str
+=
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/pencil.png" style="cursor: pointer;" onclick="editDepot(
\'
'
+
rowInfo
+
'
\'
);"/> <a onclick="editDepot(
\'
'
+
rowInfo
+
'
\'
);" style="text-decoration:none;color:black;" href="javascript:void(0)">编辑</a>
'
;
str
+=
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/edit_remove.png" style="cursor: pointer;" onclick="deleteDepot(
'
+
rec
.
id
+
'
);"/> <a onclick="deleteDepot(
'
+
rec
.
id
+
'
);" style="text-decoration:none;color:black;" href="javascript:void(0)">删除</a>
'
;
}
return
str
;
}
}
]],
toolbar
:[
{
id
:
'
addDepot
'
,
text
:
'
增加
'
,
iconCls
:
'
icon-add
'
,
handler
:
function
()
{
addDepot
();
}
},
{
id
:
'
deleteDepot
'
,
text
:
'
删除
'
,
iconCls
:
'
icon-remove
'
,
handler
:
function
()
{
batDeleteDepot
();
}
}
],
onLoadError
:
function
()
{
$
.
messager
.
alert
(
'
页面加载提示
'
,
'
页面加载异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
//初始化键盘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键盘事件 ---遗留问题 enter键效验 对话框会关闭问题
if
(
k
==
"
13
"
&&
(
obj
.
id
==
"
name
"
||
obj
.
id
==
"
sort
"
||
obj
.
id
==
"
remark
"
))
{
$
(
"
#saveDepot
"
).
click
();
}
//搜索按钮添加快捷键
if
(
k
==
"
13
"
&&
(
obj
.
id
==
"
searchName
"
||
obj
.
id
==
"
searchRemark
"
))
{
$
(
"
#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
});
showDepotDetails
(
pageNum
,
pageSize
);
}
});
}
catch
(
e
)
{
$
.
messager
.
alert
(
'
异常处理提示
'
,
"
分页信息异常 :
"
+
e
.
name
+
"
:
"
+
e
.
message
,
'
error
'
);
}
}
//删除供应商信息
function
deleteDepot
(
depotID
)
{
$
.
messager
.
confirm
(
'
删除确认
'
,
'
确定要删除此仓库信息吗?
'
,
function
(
r
)
{
if
(
r
)
{
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/depot/delete.action
"
,
dataType
:
"
json
"
,
data
:
({
depotID
:
depotID
,
clientIp
:
'
<%=
clientIp
%>
'
}),
success
:
function
(
tipInfo
)
{
var
msg
=
tipInfo
.
showModel
.
msgTip
;
if
(
msg
==
'
成功
'
)
{
//加载完以后重新初始化
$
(
"
#searchBtn
"
).
click
();
}
else
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除仓库信息失败,请稍后再试!
'
,
'
error
'
);
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除仓库信息异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
});
}
//批量删除供应商
function
batDeleteDepot
()
{
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
;
}
//alert(row[i].id);
ids
+=
row
[
i
].
id
+
"
,
"
;
}
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/depot/batchDelete.action
"
,
dataType
:
"
json
"
,
async
:
false
,
data
:
({
depotIDs
:
ids
,
clientIp
:
'
<%=
clientIp
%>
'
}),
success
:
function
(
tipInfo
)
{
var
msg
=
tipInfo
.
showModel
.
msgTip
;
if
(
msg
==
'
成功
'
)
{
//加载完以后重新初始化
$
(
"
#searchBtn
"
).
click
();
$
(
"
:checkbox
"
).
attr
(
"
checked
"
,
false
);
}
else
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除仓库信息失败,请稍后再试!
'
,
'
error
'
);
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除仓库信息异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
});
}
}
//增加
var
url
;
var
depotID
=
0
;
//保存编辑前的名称
var
orgDepot
=
""
;
function
addDepot
()
{
$
(
"
#clientIp
"
).
val
(
'
<%=
clientIp
%>
'
);
$
(
"
#sort
"
).
val
(
""
);
$
(
"
#remark
"
).
val
(
""
);
$
(
'
#depotDlg
'
).
dialog
(
'
open
'
).
dialog
(
'
setTitle
'
,
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/edit_add.png"/> 增加仓库信息
'
);
$
(
"
.window-mask
"
).
css
({
width
:
webW
,
height
:
webH
});
$
(
"
#name
"
).
val
(
""
).
focus
();
//$('#depotFM').form('clear');
orgDepot
=
""
;
depotID
=
0
;
url
=
'
<%=
path
%>
/depot/create.action
'
;
}
//保存信息
$
(
"
#saveDepot
"
).
unbind
().
bind
({
click
:
function
()
{
if
(
!
$
(
'
#depotFM
'
).
form
(
'
validate
'
))
return
;
else
if
(
checkDepotName
())
return
;
else
{
$
.
ajax
({
type
:
"
post
"
,
url
:
url
,
dataType
:
"
json
"
,
async
:
false
,
data
:
({
name
:
$
.
trim
(
$
(
"
#name
"
).
val
()),
sort
:
$
.
trim
(
$
(
"
#sort
"
).
val
()),
remark
:
$
.
trim
(
$
(
"
#remark
"
).
val
()),
clientIp
:
'
<%=
clientIp
%>
'
}),
success
:
function
(
tipInfo
)
{
if
(
tipInfo
)
{
$
(
'
#depotDlg
'
).
dialog
(
'
close
'
);
var
opts
=
$
(
"
#tableData
"
).
datagrid
(
'
options
'
);
showDepotDetails
(
opts
.
pageNumber
,
opts
.
pageSize
);
}
else
{
$
.
messager
.
show
({
title
:
'
错误提示
'
,
msg
:
'
保存仓库信息失败,请稍后重试!
'
});
}
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
提示
'
,
'
保存仓库信息异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
}
});
//编辑信息
function
editDepot
(
depotTotalInfo
)
{
var
depotInfo
=
depotTotalInfo
.
split
(
"
AaBb
"
);
$
(
"
#clientIp
"
).
val
(
'
<%=
clientIp
%>
'
);
$
(
"
#name
"
).
focus
().
val
(
depotInfo
[
1
]);
$
(
"
#sort
"
).
val
(
depotInfo
[
2
]);
$
(
"
#remark
"
).
val
(
depotInfo
[
3
]);
orgDepot
=
depotInfo
[
1
];
$
(
'
#depotDlg
'
).
dialog
(
'
open
'
).
dialog
(
'
setTitle
'
,
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/pencil.png"/> 编辑仓库信息
'
);
$
(
"
.window-mask
"
).
css
({
width
:
webW
,
height
:
webH
});
depotID
=
depotInfo
[
0
];
//焦点在名称输入框==定焦在输入文字后面
$
(
"
#name
"
).
val
(
""
).
focus
().
val
(
depotInfo
[
1
]);
url
=
'
<%=
path
%>
/depot/update.action?depotID=
'
+
depotInfo
[
0
];
}
//检查名称是否存在 ++ 重名无法提示问题需要跟进
function
checkDepotName
()
{
var
name
=
$
.
trim
(
$
(
"
#name
"
).
val
());
//表示是否存在 true == 存在 false = 不存在
var
flag
=
false
;
//开始ajax名称检验,不能重名
if
(
name
.
length
>
0
&&
(
orgDepot
.
length
==
0
||
name
!=
orgDepot
))
{
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/depot/checkIsNameExist.action
"
,
dataType
:
"
json
"
,
async
:
false
,
data
:
({
depotID
:
depotID
,
name
:
name
}),
success
:
function
(
tipInfo
)
{
flag
=
tipInfo
;
if
(
tipInfo
)
{
$
.
messager
.
alert
(
'
提示
'
,
'
仓库名称已经存在
'
,
'
info
'
);
//alert("仓库名称已经存在");
//$("#name").val("");
return
;
}
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
提示
'
,
'
检查仓库名称是否存在异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
return
flag
;
}
//搜索处理
$
(
"
#searchBtn
"
).
unbind
().
bind
({
click
:
function
()
{
showDepotDetails
(
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
showDepotDetails
(
pageNo
,
pageSize
)
{
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/depot/findBy.action
"
,
dataType
:
"
json
"
,
data
:
({
name
:
$
.
trim
(
$
(
"
#searchName
"
).
val
()),
remark
:
$
.
trim
(
$
(
"
#searchRemark
"
).
val
()),
pageNo
:
pageNo
,
pageSize
:
pageSize
}),
success
:
function
(
data
)
{
$
(
"
#tableData
"
).
datagrid
(
'
loadData
'
,
data
);
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
查询提示
'
,
'
查询数据后台异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
//重置按钮
$
(
"
#searchResetBtn
"
).
unbind
().
bind
({
click
:
function
(){
$
(
"
#searchName
"
).
val
(
""
);
$
(
"
#searchRemark
"
).
val
(
""
);
//加载完以后重新初始化
$
(
"
#searchBtn
"
).
click
();
}
});
//查看单元(设置)
$
(
'
#setBuilding
'
).
click
(
function
()
{
var
currentRow
=
$
(
"
#tableData
"
).
datagrid
(
"
getChecked
"
);
if
(
currentRow
.
length
==
0
)
{
alert
(
"
请选择一条数据再操作!
"
);
return
false
;
}
parent
.
addTab
(
currentRow
[
0
].
id
+
"
单元
"
,
"
<%=
path
%>
/pages/materials/building.jsp?ProjectId=
"
+
currentRow
[
0
].
id
,
""
);
});
</script>
</body>
</html>
\ No newline at end of file
WebRoot/pages/manage/functions.jsp
0 → 100644
View file @
01a044b7
<%@page
import=
"com.jsh.util.common.Tools"
%>
<%@ page
language=
"java"
import=
"java.util.*"
pageEncoding=
"utf-8"
%>
<%
String
path
=
request
.
getContextPath
();
String
basePath
=
request
.
getScheme
()+
"://"
+
request
.
getServerName
()+
":"
+
request
.
getServerPort
()+
path
+
"/"
;
String
clientIp
=
Tools
.
getCurrentUserIP
();
%>
<!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=
"
<%=
path
%>
/images/favicon.ico"
type=
"image/x-icon"
/>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"
<%=
path
%>
/js/easyui-1.3.5/themes/default/easyui.css"
/>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"
<%=
path
%>
/js/easyui-1.3.5/themes/icon.css"
/>
<link
type=
"text/css"
rel=
"stylesheet"
href=
"
<%=
path
%>
/css/common.css"
/>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/jquery-1.8.0.min.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/easyui-1.3.5/jquery.easyui.min.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/easyui-1.3.5/locale/easyui-lang-zh_CN.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/common/common.js"
></script>
</head>
<body>
<!-- 查询 -->
<div
id =
"searchPanel"
class=
"easyui-panel"
style=
"padding:10px;"
title=
"查询窗口"
iconCls=
"icon-search"
collapsible=
"true"
closable=
"false"
>
<table
id=
"searchTable"
>
<tr>
<td>
名称:
</td>
<td>
<input
type=
"text"
name=
"searchName"
id=
"searchName"
style=
"width:230px;"
/>
</td>
<td>
</td>
<td>
</td>
<td>
类型:
</td>
<td>
</td>
<td><select
name=
"searchType"
id=
"searchType"
style=
"width: 230px;height: 20px"
>
<option
value=
""
>
全部
</option>
<option
value=
"电脑版"
>
电脑版
</option>
<option
value=
"手机版"
>
手机版
</option></select></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>
</td>
</tr>
</table>
</div>
<!-- 数据显示table -->
<div
id =
"tablePanel"
class=
"easyui-panel"
style=
"padding:1px;top:300px;"
title=
"功能列表"
iconCls=
"icon-list"
collapsible=
"true"
closable=
"false"
>
<table
id=
"tableData"
style=
"top:300px;border-bottom-color:#FFFFFF"
></table>
</div>
<div
id=
"functionsDlg"
class=
"easyui-dialog"
style=
"width:380px;padding:10px 20px"
closed=
"true"
buttons=
"#dlg-buttons"
modal=
"true"
cache=
"false"
collapsible=
"false"
closable=
"true"
>
<form
id=
"functionsFM"
method=
"post"
novalidate
>
<table>
<tr>
<td>
编号
</td>
<td
style=
"padding:1px"
><input
name=
"Number"
id=
"Number"
class=
"easyui-textbox"
style=
"width: 230px;height: 20px"
/></td>
</tr>
<tr>
<td>
名称
</td>
<td
style=
"padding:1px"
><input
name=
"Name"
id=
"Name"
class=
"easyui-validatebox"
data-options=
"required:true,validType:'length[2,20]'"
style=
"width: 230px;height: 20px"
/></td>
</tr>
<tr>
<td>
上级编号
</td>
<td
style=
"padding:1px"
><input
name=
"PNumber"
id=
"PNumber"
class=
"easyui-textbox"
style=
"width: 230px;height: 20px"
/></td>
</tr>
<tr>
<td>
链接
</td>
<td
style=
"padding:1px"
><input
name=
"URL"
id=
"URL"
class=
"easyui-textbox"
style=
"width: 230px;height: 20px"
/></td>
</tr>
<tr>
<td>
收缩
</td>
<td
style=
"padding:1px"
><input
name=
"State"
id=
"State"
type=
"checkbox"
style=
"width: 230px;height: 20px"
/></td>
</tr>
<tr>
<td>
排序
</td>
<td
style=
"padding:1px"
><input
name=
"Sort"
id=
"Sort"
class=
"easyui-textbox"
style=
"width: 230px;height: 20px"
/></td>
</tr>
<tr>
<td>
启用
</td>
<td
style=
"padding:1px"
><input
name=
"Enabled"
id=
"Enabled"
type=
"checkbox"
style=
"width: 230px;height: 20px"
/></td>
</tr>
<tr>
<td>
类型
</td>
<td
style=
"padding:1px"
><select
name=
"Type"
id=
"Type"
style=
"width: 230px;height: 20px"
>
<option
value=
"电脑版"
>
电脑版
</option>
<option
value=
"手机版"
>
手机版
</option></select>
</td>
</tr>
</table>
<input
type=
"hidden"
name=
"clientIp"
id=
"clientIp"
value=
"
<%=
clientIp
%>
"
/>
</form>
</div>
<div
id=
"dlg-buttons"
>
<a
href=
"javascript:void(0)"
id=
"saveFunctions"
class=
"easyui-linkbutton"
iconCls=
"icon-ok"
>
保存
</a>
<a
href=
"javascript:void(0)"
id=
"cancelFunctions"
class=
"easyui-linkbutton"
iconCls=
"icon-cancel"
onclick=
"javascript:$('#functionsDlg').dialog('close')"
>
取消
</a>
</div>
<script
type=
"text/javascript"
>
//初始化界面
$
(
function
()
{
initTableData
();
ininPager
();
initForm
();
});
//防止表单提交重复
function
initForm
()
{
$
(
'
#functionsFM
'
).
form
({
onSubmit
:
function
(){
return
false
;
}
});
}
//初始化表格数据
function
initTableData
()
{
$
(
'
#tableData
'
).
datagrid
({
//title:'功能列表',
//iconCls:'icon-save',
//width:700,
height
:
heightInfo
,
nowrap
:
false
,
rownumbers
:
false
,
//动画效果
animate
:
false
,
//选中单行
singleSelect
:
true
,
collapsible
:
false
,
selectOnCheck
:
false
,
//fitColumns:true,
//单击行是否选中
checkOnSelect
:
false
,
url
:
'
<%=
path
%>
/functions/findBy.action?pageSize=
'
+
initPageSize
,
pagination
:
true
,
//交替出现背景
striped
:
true
,
//loadFilter: pagerFilter,
pageSize
:
initPageSize
,
pageList
:
initPageNum
,
columns
:[[
{
field
:
'
Id
'
,
width
:
35
,
align
:
"
center
"
,
checkbox
:
true
},
{
title
:
'
编号
'
,
field
:
'
Number
'
,
width
:
100
},
{
title
:
'
名称
'
,
field
:
'
Name
'
,
width
:
200
},
{
title
:
'
上级编号
'
,
field
:
'
PNumber
'
,
width
:
100
},
{
title
:
'
链接
'
,
field
:
'
URL
'
,
width
:
200
},
{
title
:
'
排序
'
,
field
:
'
Sort
'
,
width
:
50
},
{
title
:
'
收缩
'
,
field
:
'
State
'
,
width
:
50
},
{
title
:
'
启用
'
,
field
:
'
Enabled
'
,
width
:
50
},
{
title
:
'
类型
'
,
field
:
'
Type
'
,
width
:
100
},
{
title
:
'
操作
'
,
field
:
'
op
'
,
align
:
"
center
"
,
width
:
130
,
formatter
:
function
(
value
,
rec
)
{
var
str
=
''
;
var
rowInfo
=
rec
.
Id
+
'
AaBb
'
+
rec
.
Number
+
'
AaBb
'
+
rec
.
Name
+
'
AaBb
'
+
rec
.
PNumber
+
'
AaBb
'
+
rec
.
URL
+
'
AaBb
'
+
rec
.
State
+
'
AaBb
'
+
rec
.
Sort
+
'
AaBb
'
+
rec
.
Enabled
+
'
AaBb
'
+
rec
.
Type
;
if
(
1
==
value
)
{
str
+=
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/pencil.png" style="cursor: pointer;" onclick="editFunctions(
\'
'
+
rowInfo
+
'
\'
);"/> <a onclick="editFunctions(
\'
'
+
rowInfo
+
'
\'
);" style="text-decoration:none;color:black;" href="javascript:void(0)">编辑</a>
'
;
str
+=
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/edit_remove.png" style="cursor: pointer;" onclick="deleteFunctions(
'
+
rec
.
Id
+
'
);"/> <a onclick="deleteFunctions(
'
+
rec
.
Id
+
'
);" style="text-decoration:none;color:black;" href="javascript:void(0)">删除</a>
'
;
}
return
str
;
}
}
]],
toolbar
:[
{
id
:
'
addFunctions
'
,
text
:
'
增加
'
,
iconCls
:
'
icon-add
'
,
handler
:
function
()
{
addFunctions
();
}
},
{
id
:
'
deleteFunctions
'
,
text
:
'
删除
'
,
iconCls
:
'
icon-remove
'
,
handler
:
function
()
{
batDeleteFunctions
();
}
}
],
onLoadError
:
function
()
{
$
.
messager
.
alert
(
'
页面加载提示
'
,
'
页面加载异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
//初始化键盘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键盘事件 ---遗留问题 enter键效验 对话框会关闭问题
if
(
k
==
"
13
"
&&
(
obj
.
id
==
"
Name
"
||
obj
.
id
==
"
PNumber
"
||
obj
.
id
==
"
URL
"
))
{
$
(
"
#saveFunctions
"
).
click
();
}
//搜索按钮添加快捷键
if
(
k
==
"
13
"
&&
(
obj
.
id
==
"
searchName
"
||
obj
.
id
==
"
searchType
"
))
{
$
(
"
#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
});
showFunctionsDetails
(
pageNum
,
pageSize
);
}
});
}
catch
(
e
)
{
$
.
messager
.
alert
(
'
异常处理提示
'
,
"
分页信息异常 :
"
+
e
.
name
+
"
:
"
+
e
.
message
,
'
error
'
);
}
}
//删除供应商信息
function
deleteFunctions
(
functionsID
)
{
$
.
messager
.
confirm
(
'
删除确认
'
,
'
确定要删除此功能信息吗?
'
,
function
(
r
)
{
if
(
r
)
{
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/functions/delete.action
"
,
dataType
:
"
json
"
,
data
:
({
functionsID
:
functionsID
,
clientIp
:
'
<%=
clientIp
%>
'
}),
success
:
function
(
tipInfo
)
{
var
msg
=
tipInfo
.
showModel
.
msgTip
;
if
(
msg
==
'
成功
'
)
{
//加载完以后重新初始化
$
(
"
#searchBtn
"
).
click
();
}
else
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除功能信息失败,请稍后再试!
'
,
'
error
'
);
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除功能信息异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
});
}
//批量删除
function
batDeleteFunctions
()
{
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
;
}
//alert(row[i].id);
ids
+=
row
[
i
].
Id
+
"
,
"
;
}
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/functions/batchDelete.action
"
,
dataType
:
"
json
"
,
async
:
false
,
data
:
({
functionsIDs
:
ids
,
clientIp
:
'
<%=
clientIp
%>
'
}),
success
:
function
(
tipInfo
)
{
var
msg
=
tipInfo
.
showModel
.
msgTip
;
if
(
msg
==
'
成功
'
)
{
//加载完以后重新初始化
$
(
"
#searchBtn
"
).
click
();
$
(
"
:checkbox
"
).
attr
(
"
checked
"
,
false
);
}
else
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除功能信息失败,请稍后再试!
'
,
'
error
'
);
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除功能信息异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
});
}
}
//增加
var
url
;
var
functionsID
=
0
;
//保存编辑前的名称
var
orgFunctions
=
""
;
function
addFunctions
()
{
$
(
"
#clientIp
"
).
val
(
'
<%=
clientIp
%>
'
);
$
(
'
#functionsDlg
'
).
dialog
(
'
open
'
).
dialog
(
'
setTitle
'
,
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/edit_add.png"/> 增加功能信息
'
);
$
(
"
.window-mask
"
).
css
({
width
:
webW
,
height
:
webH
});
$
(
"
#Name
"
).
val
(
""
).
focus
();
$
(
'
#functionsFM
'
).
form
(
'
clear
'
);
orgFunctions
=
""
;
functionsID
=
0
;
url
=
'
<%=
path
%>
/functions/create.action
'
;
}
//保存信息
$
(
"
#saveFunctions
"
).
unbind
().
bind
({
click
:
function
()
{
if
(
!
$
(
'
#functionsFM
'
).
form
(
'
validate
'
))
return
;
else
if
(
checkFunctionsName
())
return
;
else
{
$
.
ajax
({
type
:
"
post
"
,
url
:
url
,
dataType
:
"
json
"
,
async
:
false
,
data
:
({
Number
:
$
.
trim
(
$
(
"
#Number
"
).
val
()),
Name
:
$
.
trim
(
$
(
"
#Name
"
).
val
()),
PNumber
:
$
.
trim
(
$
(
"
#PNumber
"
).
val
()),
URL
:
$
.
trim
(
$
(
"
#URL
"
).
val
()),
State
:
$
(
"
#State
"
).
is
(
'
:checked
'
),
Sort
:
$
.
trim
(
$
(
"
#Sort
"
).
val
()),
Enabled
:
$
(
"
#Enabled
"
).
is
(
'
:checked
'
),
Type
:
$
.
trim
(
$
(
"
#Type
"
).
val
()),
clientIp
:
'
<%=
clientIp
%>
'
}),
success
:
function
(
tipInfo
)
{
if
(
tipInfo
)
{
$
(
'
#functionsDlg
'
).
dialog
(
'
close
'
);
var
opts
=
$
(
"
#tableData
"
).
datagrid
(
'
options
'
);
showFunctionsDetails
(
opts
.
pageNumber
,
opts
.
pageSize
);
}
else
{
$
.
messager
.
show
({
title
:
'
错误提示
'
,
msg
:
'
保存功能信息失败,请稍后重试!
'
});
}
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
提示
'
,
'
保存功能信息异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
}
});
//编辑信息
function
editFunctions
(
functionsTotalInfo
)
{
var
functionsInfo
=
functionsTotalInfo
.
split
(
"
AaBb
"
);
$
(
"
#clientIp
"
).
val
(
'
<%=
clientIp
%>
'
);
$
(
"
#Number
"
).
focus
().
val
(
functionsInfo
[
1
]);
$
(
"
#Name
"
).
focus
().
val
(
functionsInfo
[
2
]);
$
(
"
#PNumber
"
).
focus
().
val
(
functionsInfo
[
3
]);
$
(
"
#URL
"
).
focus
().
val
(
functionsInfo
[
4
]);
$
(
"
#State
"
).
attr
(
"
checked
"
,
functionsInfo
[
5
]
==
'
true
'
?
true
:
false
);
$
(
"
#Sort
"
).
focus
().
val
(
functionsInfo
[
6
]);
$
(
"
#Enabled
"
).
attr
(
"
checked
"
,
functionsInfo
[
7
]
==
'
true
'
?
true
:
false
);
$
(
"
#Type
"
).
focus
().
val
(
functionsInfo
[
8
]);
orgFunctions
=
functionsInfo
[
2
];
$
(
'
#functionsDlg
'
).
dialog
(
'
open
'
).
dialog
(
'
setTitle
'
,
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/pencil.png"/> 编辑功能信息
'
);
$
(
"
.window-mask
"
).
css
({
width
:
webW
,
height
:
webH
});
functionsID
=
functionsInfo
[
0
];
//焦点在名称输入框==定焦在输入文字后面
$
(
"
#Name
"
).
val
(
""
).
focus
().
val
(
functionsInfo
[
2
]);
url
=
'
<%=
path
%>
/functions/update.action?functionsID=
'
+
functionsInfo
[
0
];
}
//检查名称是否存在 ++ 重名无法提示问题需要跟进
function
checkFunctionsName
()
{
var
Name
=
$
.
trim
(
$
(
"
#Name
"
).
val
());
//表示是否存在 true == 存在 false = 不存在
var
flag
=
false
;
//开始ajax名称检验,不能重名
if
(
name
.
length
>
0
&&
(
orgFunctions
.
length
==
0
||
name
!=
orgFunctions
))
{
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/functions/checkIsNameExist.action
"
,
dataType
:
"
json
"
,
async
:
false
,
data
:
({
functionsID
:
functionsID
,
Name
:
Name
}),
success
:
function
(
tipInfo
)
{
flag
=
tipInfo
;
if
(
tipInfo
)
{
$
.
messager
.
alert
(
'
提示
'
,
'
功能名称已经存在
'
,
'
info
'
);
//alert("功能名称已经存在");
//$("#name").val("");
return
;
}
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
提示
'
,
'
检查功能名称是否存在异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
return
flag
;
}
//搜索处理
$
(
"
#searchBtn
"
).
unbind
().
bind
({
click
:
function
()
{
showFunctionsDetails
(
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
showFunctionsDetails
(
pageNo
,
pageSize
)
{
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/functions/findBy.action
"
,
dataType
:
"
json
"
,
data
:
({
Name
:
$
.
trim
(
$
(
"
#searchName
"
).
val
()),
Type
:
$
.
trim
(
$
(
"
#searchType
"
).
val
()),
pageNo
:
pageNo
,
pageSize
:
pageSize
}),
success
:
function
(
data
)
{
$
(
"
#tableData
"
).
datagrid
(
'
loadData
'
,
data
);
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
查询提示
'
,
'
查询数据后台异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
//重置按钮
$
(
"
#searchResetBtn
"
).
unbind
().
bind
({
click
:
function
(){
$
(
"
#searchName
"
).
val
(
""
);
//加载完以后重新初始化
$
(
"
#searchBtn
"
).
click
();
}
});
</script>
</body>
</html>
\ No newline at end of file
WebRoot/pages/manage/home.jsp
0 → 100644
View file @
01a044b7
<%@page
language=
"java"
contentType=
"text/html; charset=utf-8"
pageEncoding=
"utf-8"
%>
<%
String
path
=
request
.
getContextPath
();
String
basePath
=
request
.
getScheme
()+
"://"
+
request
.
getServerName
()+
":"
+
request
.
getServerPort
()+
path
+
"/"
;
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta
http-equiv=
Content-Type
content=
"text/html; charset=utf-8"
>
<!-- 指定以IE8的方式来渲染 -->
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=EmulateIE8"
/>
<link
rel=
"shortcut icon"
href=
"
<%=
path
%>
/images/favicon.ico"
type=
"image/x-icon"
/>
<link
href=
"css/admin.css"
type=
"text/css"
rel=
"stylesheet"
>
<title>
首页说明
</title>
<style
type=
"text/css"
>
<!
--
body
{
margin-left
:
0px
;
margin-top
:
0px
;
margin-right
:
0px
;
margin-bottom
:
0px
;
background-color
:
#EAF2FD
;
}
.STYLE1
{
font-size
:
12px
}
.STYLE4
{
font-size
:
12px
;
color
:
#1F4A65
;
font-weight
:
bold
;
}
a
:link
{
font-size
:
12px
;
color
:
#06482a
;
text-decoration
:
none
;
}
a
:visited
{
font-size
:
12px
;
color
:
#06482a
;
text-decoration
:
none
;
}
a
:hover
{
font-size
:
12px
;
color
:
#FF0000
;
text-decoration
:
underline
;
}
a
:active
{
font-size
:
12px
;
color
:
#FF0000
;
text-decoration
:
none
;
}
.STYLE7
{
font-size
:
12
}
--
>
</style>
</head>
<body>
<table
cellSpacing=
0
cellPadding=
0
width=
"100%"
align=
center
border=
0
>
<tr
height=
28
>
<td
width=
"1101"
class=
"STYLE4"
>
<img
src=
"
<%=
path
%>
/images/preferences1.png"
width=
"16"
height=
"16"
/>
<span
>
系统管理
</span>
</td>
</tr>
<tr>
<td
bgColor=
#b1ceef
height=
1
></td>
</tr>
<tr
height=
"5px"
>
<td
background=
images/shadow_bg.jpg
></td>
</tr>
</table>
<p
style=
"font-size: 12px;color: #1F4A65;padding: 10px"
>
系统管理是管理系统中的基础数据设置信息,包括供应商、资产类型、资产名称、用户管理等,通过系统管理,可以为系统提供基础数据支持。日志管理主要包括供应商、资产类型、资产名称、用户管理等的增删改查等功能点。
</p>
</body>
</html>
\ No newline at end of file
WebRoot/pages/manage/role.jsp
0 → 100644
View file @
01a044b7
<%@page
import=
"com.jsh.util.common.Tools"
%>
<%@ page
language=
"java"
import=
"java.util.*"
pageEncoding=
"utf-8"
%>
<%
String
path
=
request
.
getContextPath
();
String
basePath
=
request
.
getScheme
()+
"://"
+
request
.
getServerName
()+
":"
+
request
.
getServerPort
()+
path
+
"/"
;
String
clientIp
=
Tools
.
getCurrentUserIP
();
%>
<!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=
"
<%=
path
%>
/images/favicon.ico"
type=
"image/x-icon"
/>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/jquery-1.8.0.min.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/colorbox/jquery.colorbox-min.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/colorbox/colorboxSet.js"
></script>
<link
href=
"
<%=
path
%>
/js/colorbox/colorbox.css"
rel=
"stylesheet"
type=
"text/css"
/>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"
<%=
path
%>
/js/easyui-1.3.5/themes/default/easyui.css"
/>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"
<%=
path
%>
/js/easyui-1.3.5/themes/icon.css"
/>
<link
type=
"text/css"
rel=
"stylesheet"
href=
"
<%=
path
%>
/css/common.css"
/>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/easyui-1.3.5/jquery.easyui.min.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/easyui-1.3.5/locale/easyui-lang-zh_CN.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/common/common.js"
></script>
</head>
<body>
<!-- 查询 -->
<div
id =
"searchPanel"
class=
"easyui-panel"
style=
"padding:10px;"
title=
"查询窗口"
iconCls=
"icon-search"
collapsible=
"true"
closable=
"false"
>
<table
id=
"searchTable"
>
<tr>
<td>
角色名称:
</td>
<td>
<input
type=
"text"
name=
"searchName"
id=
"searchName"
style=
"width:230px;"
/>
</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=
"btnSetApp"
class=
'easyui-linkbutton iframe iframe_LargeForm'
href=
'#'
title=
'分配应用'
>
分配应用
</a>
<a
id=
"btnSetFunctions"
class=
'easyui-linkbutton iframe iframe_LargeForm'
href=
'#'
title=
'分配功能'
>
分配功能
</a>
</td>
</tr>
</table>
</div>
<!-- 数据显示table -->
<div
id =
"tablePanel"
class=
"easyui-panel"
style=
"padding:1px;top:300px;"
title=
"角色列表"
iconCls=
"icon-list"
collapsible=
"true"
closable=
"false"
>
<table
id=
"tableData"
style=
"top:300px;border-bottom-color:#FFFFFF"
></table>
</div>
<div
id=
"roleDlg"
class=
"easyui-dialog"
style=
"width:380px;padding:10px 20px"
closed=
"true"
buttons=
"#dlg-buttons"
modal=
"true"
cache=
"false"
collapsible=
"false"
closable=
"true"
>
<form
id=
"roleFM"
method=
"post"
novalidate
>
<table>
<tr>
<td><label
id=
"nameLabel"
>
角色名称
</label></td>
<td
style=
"padding:5px"
><input
name=
"name"
id=
"name"
class=
"easyui-validatebox"
data-options=
"required:true,validType:'length[2,30]'"
style=
"width: 230px;height: 20px"
/></td>
</tr>
</table>
<input
type=
"hidden"
name=
"clientIp"
id=
"clientIp"
value=
"
<%=
clientIp
%>
"
/>
</form>
</div>
<div
id=
"dlg-buttons"
>
<a
href=
"javascript:void(0)"
id=
"saveRole"
class=
"easyui-linkbutton"
iconCls=
"icon-ok"
>
保存
</a>
<a
href=
"javascript:void(0)"
id=
"cancelRole"
class=
"easyui-linkbutton"
iconCls=
"icon-cancel"
onclick=
"javascript:$('#roleDlg').dialog('close')"
>
取消
</a>
</div>
<script
type=
"text/javascript"
>
//初始化界面
$
(
function
()
{
initTableData
();
ininPager
();
initForm
();
browserFit
();
});
//浏览器适配
function
browserFit
()
{
if
(
getOs
()
==
'
MSIE
'
)
{
$
(
"
#searchRemarkLabel
"
).
empty
().
append
(
"
描 述:
"
);
$
(
"
#nameLabel
"
).
empty
().
append
(
"
角色名称
"
);
}
else
{
$
(
"
#searchRemarkLabel
"
).
empty
().
append
(
"
描 述:
"
);
$
(
"
#nameLabel
"
).
empty
().
append
(
"
角色名称
"
);
}
}
//防止表单提交重复
function
initForm
()
{
$
(
'
#roleFM
'
).
form
({
onSubmit
:
function
(){
return
false
;
}
});
}
//初始化表格数据
function
initTableData
()
{
$
(
'
#tableData
'
).
datagrid
({
//title:'角色列表',
//iconCls:'icon-save',
//width:700,
height
:
heightInfo
,
nowrap
:
false
,
rownumbers
:
false
,
//动画效果
animate
:
false
,
//选中单行
singleSelect
:
true
,
collapsible
:
false
,
//selectOnCheck:false,
//fitColumns:true,
//单击行是否选中
//checkOnSelect : false,
url
:
'
<%=
path
%>
/role/findBy.action?pageSize=
'
+
initPageSize
,
pagination
:
true
,
//交替出现背景
striped
:
true
,
//loadFilter: pagerFilter,
pageSize
:
initPageSize
,
pageList
:
initPageNum
,
columns
:[[
{
field
:
'
Id
'
,
width
:
35
,
align
:
"
center
"
,
checkbox
:
true
},
{
title
:
'
角色名称
'
,
field
:
'
Name
'
,
width
:
200
},
{
title
:
'
操作
'
,
field
:
'
op
'
,
align
:
"
center
"
,
width
:
130
,
formatter
:
function
(
value
,
rec
)
{
var
str
=
''
;
var
rowInfo
=
rec
.
Id
+
'
AaBb
'
+
rec
.
Name
;
if
(
1
==
value
)
{
str
+=
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/pencil.png" style="cursor: pointer;" onclick="editRole(
\'
'
+
rowInfo
+
'
\'
);"/> <a onclick="editRole(
\'
'
+
rowInfo
+
'
\'
);" style="text-decoration:none;color:black;" href="javascript:void(0)">编辑</a>
'
;
str
+=
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/edit_remove.png" style="cursor: pointer;" onclick="deleteRole(
'
+
rec
.
Id
+
'
);"/> <a onclick="deleteRole(
'
+
rec
.
Id
+
'
);" style="text-decoration:none;color:black;" href="javascript:void(0)">删除</a>
'
;
}
return
str
;
}
}
]],
toolbar
:[
{
id
:
'
addRole
'
,
text
:
'
增加
'
,
iconCls
:
'
icon-add
'
,
handler
:
function
()
{
addRole
();
}
},
{
id
:
'
deleteRole
'
,
text
:
'
删除
'
,
iconCls
:
'
icon-remove
'
,
handler
:
function
()
{
batDeleteRole
();
}
}
],
onLoadError
:
function
()
{
$
.
messager
.
alert
(
'
页面加载提示
'
,
'
页面加载异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
//初始化键盘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键盘事件 ---遗留问题 enter键效验 对话框会关闭问题
if
(
k
==
"
13
"
&&
(
obj
.
id
==
"
name
"
||
obj
.
id
==
"
sort
"
||
obj
.
id
==
"
remark
"
))
{
$
(
"
#saveRole
"
).
click
();
}
//搜索按钮添加快捷键
if
(
k
==
"
13
"
&&
(
obj
.
id
==
"
searchName
"
||
obj
.
id
==
"
searchRemark
"
))
{
$
(
"
#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
});
showRoleDetails
(
pageNum
,
pageSize
);
}
});
}
catch
(
e
)
{
$
.
messager
.
alert
(
'
异常处理提示
'
,
"
分页信息异常 :
"
+
e
.
name
+
"
:
"
+
e
.
message
,
'
error
'
);
}
}
//删除供应商信息
function
deleteRole
(
roleID
)
{
$
.
messager
.
confirm
(
'
删除确认
'
,
'
确定要删除此角色信息吗?
'
,
function
(
r
)
{
if
(
r
)
{
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/role/delete.action
"
,
dataType
:
"
json
"
,
data
:
({
roleID
:
roleID
,
clientIp
:
'
<%=
clientIp
%>
'
}),
success
:
function
(
tipInfo
)
{
var
msg
=
tipInfo
.
showModel
.
msgTip
;
if
(
msg
==
'
成功
'
)
{
//加载完以后重新初始化
$
(
"
#searchBtn
"
).
click
();
}
else
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除角色信息失败,请稍后再试!
'
,
'
error
'
);
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除角色信息异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
});
}
//批量删除供应商
function
batDeleteRole
()
{
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
;
}
//alert(row[i].id);
ids
+=
row
[
i
].
Id
+
"
,
"
;
}
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/role/batchDelete.action
"
,
dataType
:
"
json
"
,
async
:
false
,
data
:
({
roleIDs
:
ids
,
clientIp
:
'
<%=
clientIp
%>
'
}),
success
:
function
(
tipInfo
)
{
var
msg
=
tipInfo
.
showModel
.
msgTip
;
if
(
msg
==
'
成功
'
)
{
//加载完以后重新初始化
$
(
"
#searchBtn
"
).
click
();
$
(
"
:checkbox
"
).
attr
(
"
checked
"
,
false
);
}
else
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除角色信息失败,请稍后再试!
'
,
'
error
'
);
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
删除提示
'
,
'
删除角色信息异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
});
}
}
//增加
var
url
;
var
roleID
=
0
;
//保存编辑前的名称
var
orgRole
=
""
;
function
addRole
()
{
$
(
"
#clientIp
"
).
val
(
'
<%=
clientIp
%>
'
);
$
(
"
#sort
"
).
val
(
""
);
$
(
"
#remark
"
).
val
(
""
);
$
(
'
#roleDlg
'
).
dialog
(
'
open
'
).
dialog
(
'
setTitle
'
,
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/edit_add.png"/> 增加角色信息
'
);
$
(
"
.window-mask
"
).
css
({
width
:
webW
,
height
:
webH
});
$
(
"
#name
"
).
val
(
""
).
focus
();
//$('#roleFM').form('clear');
orgRole
=
""
;
roleID
=
0
;
url
=
'
<%=
path
%>
/role/create.action
'
;
}
//保存信息
$
(
"
#saveRole
"
).
unbind
().
bind
({
click
:
function
()
{
if
(
!
$
(
'
#roleFM
'
).
form
(
'
validate
'
))
return
;
else
if
(
checkRoleName
())
return
;
else
{
$
.
ajax
({
type
:
"
post
"
,
url
:
url
,
dataType
:
"
json
"
,
async
:
false
,
data
:
({
name
:
$
.
trim
(
$
(
"
#name
"
).
val
()),
clientIp
:
'
<%=
clientIp
%>
'
}),
success
:
function
(
tipInfo
)
{
if
(
tipInfo
)
{
$
(
'
#roleDlg
'
).
dialog
(
'
close
'
);
var
opts
=
$
(
"
#tableData
"
).
datagrid
(
'
options
'
);
showRoleDetails
(
opts
.
pageNumber
,
opts
.
pageSize
);
}
else
{
$
.
messager
.
show
({
title
:
'
错误提示
'
,
msg
:
'
保存角色信息失败,请稍后重试!
'
});
}
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
提示
'
,
'
保存角色信息异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
}
});
//编辑信息
function
editRole
(
roleTotalInfo
)
{
var
roleInfo
=
roleTotalInfo
.
split
(
"
AaBb
"
);
$
(
"
#clientIp
"
).
val
(
'
<%=
clientIp
%>
'
);
$
(
"
#name
"
).
focus
().
val
(
roleInfo
[
1
]);
orgRole
=
roleInfo
[
1
];
$
(
'
#roleDlg
'
).
dialog
(
'
open
'
).
dialog
(
'
setTitle
'
,
'
<img src="
<%=
path
%>
/js/easyui-1.3.5/themes/icons/pencil.png"/> 编辑角色信息
'
);
$
(
"
.window-mask
"
).
css
({
width
:
webW
,
height
:
webH
});
roleID
=
roleInfo
[
0
];
//焦点在名称输入框==定焦在输入文字后面
$
(
"
#name
"
).
val
(
""
).
focus
().
val
(
roleInfo
[
1
]);
url
=
'
<%=
path
%>
/role/update.action?roleID=
'
+
roleInfo
[
0
];
}
//检查名称是否存在 ++ 重名无法提示问题需要跟进
function
checkRoleName
()
{
var
name
=
$
.
trim
(
$
(
"
#name
"
).
val
());
//表示是否存在 true == 存在 false = 不存在
var
flag
=
false
;
//开始ajax名称检验,不能重名
if
(
name
.
length
>
0
&&
(
orgRole
.
length
==
0
||
name
!=
orgRole
))
{
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/role/checkIsNameExist.action
"
,
dataType
:
"
json
"
,
async
:
false
,
data
:
({
roleID
:
roleID
,
name
:
name
}),
success
:
function
(
tipInfo
)
{
flag
=
tipInfo
;
if
(
tipInfo
)
{
$
.
messager
.
alert
(
'
提示
'
,
'
角色名称已经存在
'
,
'
info
'
);
//alert("角色名称已经存在");
//$("#name").val("");
return
;
}
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
提示
'
,
'
检查角色名称是否存在异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
return
flag
;
}
//搜索处理
$
(
"
#searchBtn
"
).
unbind
().
bind
({
click
:
function
()
{
showRoleDetails
(
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
showRoleDetails
(
pageNo
,
pageSize
)
{
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/role/findBy.action
"
,
dataType
:
"
json
"
,
data
:
({
name
:
$
.
trim
(
$
(
"
#searchName
"
).
val
()),
pageNo
:
pageNo
,
pageSize
:
pageSize
}),
success
:
function
(
data
)
{
$
(
"
#tableData
"
).
datagrid
(
'
loadData
'
,
data
);
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
查询提示
'
,
'
查询数据后台异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
//重置按钮
$
(
"
#searchResetBtn
"
).
unbind
().
bind
({
click
:
function
(){
$
(
"
#searchName
"
).
val
(
""
);
//加载完以后重新初始化
$
(
"
#searchBtn
"
).
click
();
}
});
//分配应用
$
(
'
#btnSetApp
'
).
click
(
function
()
{
var
currentRow
=
$
(
"
#tableData
"
).
datagrid
(
"
getSelected
"
);
if
(
currentRow
==
null
)
{
alert
(
"
请选择一条数据再操作!
"
);
return
false
;
}
this
.
href
=
"
<%=
path
%>
/pages/manage/roleApp.jsp?id=
"
+
currentRow
.
Id
;
});
//分配功能
$
(
'
#btnSetFunctions
'
).
click
(
function
()
{
var
currentRow
=
$
(
"
#tableData
"
).
datagrid
(
"
getSelected
"
);
if
(
currentRow
==
null
)
{
alert
(
"
请选择一条数据再操作!
"
);
return
false
;
}
this
.
href
=
"
<%=
path
%>
/pages/manage/roleFunctions.jsp?id=
"
+
currentRow
.
Id
;
});
</script>
</body>
</html>
\ No newline at end of file
WebRoot/pages/manage/roleApp.jsp
0 → 100644
View file @
01a044b7
<%@page
import=
"com.jsh.util.common.Tools"
%>
<%@ page
language=
"java"
import=
"java.util.*"
pageEncoding=
"utf-8"
%>
<%
String
path
=
request
.
getContextPath
();
String
basePath
=
request
.
getScheme
()+
"://"
+
request
.
getServerName
()+
":"
+
request
.
getServerPort
()+
path
+
"/"
;
String
clientIp
=
Tools
.
getCurrentUserIP
();
%>
<!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=
"
<%=
path
%>
/images/favicon.ico"
type=
"image/x-icon"
/>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/jquery-1.8.0.min.js"
></script>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"
<%=
path
%>
/js/easyui-1.3.5/themes/default/easyui.css"
/>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"
<%=
path
%>
/js/easyui-1.3.5/themes/icon.css"
/>
<link
type=
"text/css"
rel=
"stylesheet"
href=
"
<%=
path
%>
/css/common.css"
/>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/easyui-1.3.5/jquery.easyui.min.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/easyui-1.3.5/locale/easyui-lang-zh_CN.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/common/common.js"
></script>
</head>
<body>
<!-- 数据显示table -->
<div>
<a
id=
"btnOK"
class=
"easyui-linkbutton"
>
保存
</a>
</div>
<div>
<ul
id=
"tt"
></ul>
</div>
<script
type=
"text/javascript"
>
var
url_id
=
getUrlParam
(
'
id
'
);
//获取传值id(角色id)
var
type
=
"
RoleAPP
"
;
var
url
;
//定义链接地址
function
GetNode
(
ctype
)
{
var
node
=
$
(
'
#tt
'
).
tree
(
'
getChecked
'
);
var
cnodes
=
''
;
var
pnodes
=
''
;
var
prevNode
=
''
;
//保存上一步所选父节点
for
(
var
i
=
0
;
i
<
node
.
length
;
i
++
)
{
if
(
$
(
'
#tt
'
).
tree
(
'
isLeaf
'
,
node
[
i
].
target
))
{
cnodes
+=
'
[
'
+
node
[
i
].
id
+
'
]
'
;
var
pnode
=
$
(
'
#tt
'
).
tree
(
'
getParent
'
,
node
[
i
].
target
);
//获取当前节点的父节点
if
(
prevNode
!=
pnode
.
id
)
//保证当前父节点与上一次父节点不同
{
pnodes
+=
'
[
'
+
pnode
.
id
+
'
]
'
;
prevNode
=
pnode
.
id
;
//保存当前节点
}
}
}
//cnodes = cnodes.substring(0, cnodes.length - 1);
pnodes
=
pnodes
.
substring
(
0
,
pnodes
.
length
-
1
);
if
(
ctype
==
'
child
'
)
{
return
cnodes
;
}
else
{
return
pnodes
};
};
$
(
function
()
{
$
(
'
#tt
'
).
tree
({
url
:
'
<%=
path
%>
/app/findRoleAPP.action?UBType=
'
+
type
+
'
&UBKeyId=
'
+
url_id
,
animate
:
true
,
checkbox
:
true
});
$
(
"
#btnOK
"
).
click
(
function
()
{
if
(
!
checkRoleAPP
())
{
url
=
'
<%=
path
%>
/userBusiness/create.action
'
;
}
else
{
url
=
'
<%=
path
%>
/userBusiness/update.action
'
;
}
if
(
confirm
(
"
您确定要保存吗?
"
))
{
$
.
ajax
({
type
:
"
post
"
,
url
:
url
,
data
:
{
Type
:
type
,
KeyId
:
url_id
,
Value
:
GetNode
(
'
child
'
),
clientIp
:
'
<%=
clientIp
%>
'
},
dataType
:
"
json
"
,
async
:
false
,
success
:
function
(
tipInfo
)
{
if
(
tipInfo
)
{
self
.
parent
.
$
.
colorbox
.
close
();
alert
(
"
操作成功!
"
);
}
else
alert
(
tipInfo
);
}
});
}
}
);
});
//检查记录是否存在
function
checkRoleAPP
()
{
//表示是否存在 true == 存在 false = 不存在
var
flag
=
false
;
//开始ajax名称检验,是否存在
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/userBusiness/checkIsValueExist.action
"
,
dataType
:
"
json
"
,
async
:
false
,
data
:
({
Type
:
type
,
KeyId
:
url_id
}),
success
:
function
(
tipInfo
)
{
flag
=
tipInfo
;
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
提示
'
,
'
检查角色对应应用是否存在异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
return
flag
;
}
</script>
</body>
</html>
\ No newline at end of file
WebRoot/pages/manage/roleFunctions.jsp
0 → 100644
View file @
01a044b7
<%@page
import=
"com.jsh.util.common.Tools"
%>
<%@ page
language=
"java"
import=
"java.util.*"
pageEncoding=
"utf-8"
%>
<%
String
path
=
request
.
getContextPath
();
String
basePath
=
request
.
getScheme
()+
"://"
+
request
.
getServerName
()+
":"
+
request
.
getServerPort
()+
path
+
"/"
;
String
clientIp
=
Tools
.
getCurrentUserIP
();
%>
<!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=
"
<%=
path
%>
/images/favicon.ico"
type=
"image/x-icon"
/>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/jquery-1.8.0.min.js"
></script>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"
<%=
path
%>
/js/easyui-1.3.5/themes/default/easyui.css"
/>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"
<%=
path
%>
/js/easyui-1.3.5/themes/icon.css"
/>
<link
type=
"text/css"
rel=
"stylesheet"
href=
"
<%=
path
%>
/css/common.css"
/>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/easyui-1.3.5/jquery.easyui.min.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/easyui-1.3.5/locale/easyui-lang-zh_CN.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
path
%>
/js/common/common.js"
></script>
</head>
<body>
<!-- 数据显示table -->
<div>
<a
id=
"btnOK"
class=
"easyui-linkbutton"
>
保存
</a>
</div>
<div>
<ul
id=
"tt"
></ul>
</div>
<script
type=
"text/javascript"
>
var
url_id
=
getUrlParam
(
'
id
'
);
//获取传值id(角色id)
var
type
=
"
RoleFunctions
"
;
var
url
;
//定义链接地址
function
GetNode
(
ctype
)
{
var
node
=
$
(
'
#tt
'
).
tree
(
'
getChecked
'
);
var
cnodes
=
''
;
var
pnodes
=
''
;
var
prevNode
=
''
;
//保存上一步所选父节点
for
(
var
i
=
0
;
i
<
node
.
length
;
i
++
)
{
if
(
$
(
'
#tt
'
).
tree
(
'
isLeaf
'
,
node
[
i
].
target
))
{
cnodes
+=
'
[
'
+
node
[
i
].
id
+
'
]
'
;
var
pnode
=
$
(
'
#tt
'
).
tree
(
'
getParent
'
,
node
[
i
].
target
);
//获取当前节点的父节点
if
(
prevNode
!=
pnode
.
id
)
//保证当前父节点与上一次父节点不同
{
pnodes
+=
'
[
'
+
pnode
.
id
+
'
]
'
;
prevNode
=
pnode
.
id
;
//保存当前节点
}
}
}
//cnodes = cnodes.substring(0, cnodes.length - 1);
pnodes
=
pnodes
.
substring
(
0
,
pnodes
.
length
-
1
);
if
(
ctype
==
'
child
'
)
{
return
cnodes
;
}
else
{
return
pnodes
};
};
$
(
function
()
{
$
(
'
#tt
'
).
tree
({
url
:
'
<%=
path
%>
/functions/findRoleFunctions.action?UBType=
'
+
type
+
'
&UBKeyId=
'
+
url_id
,
animate
:
true
,
checkbox
:
true
});
$
(
"
#btnOK
"
).
click
(
function
()
{
if
(
!
checkRoleFunctions
())
{
url
=
'
<%=
path
%>
/userBusiness/create.action
'
;
}
else
{
url
=
'
<%=
path
%>
/userBusiness/update.action
'
;
}
if
(
confirm
(
"
您确定要保存吗?
"
))
{
$
.
ajax
({
type
:
"
post
"
,
url
:
url
,
data
:
{
Type
:
type
,
KeyId
:
url_id
,
Value
:
GetNode
(
'
child
'
),
clientIp
:
'
<%=
clientIp
%>
'
},
dataType
:
"
json
"
,
async
:
false
,
success
:
function
(
tipInfo
)
{
if
(
tipInfo
)
{
self
.
parent
.
$
.
colorbox
.
close
();
alert
(
"
操作成功!
"
);
}
else
alert
(
tipInfo
);
}
});
}
}
);
});
//检查记录是否存在
function
checkRoleFunctions
()
{
//表示是否存在 true == 存在 false = 不存在
var
flag
=
false
;
//开始ajax名称检验,是否存在
$
.
ajax
({
type
:
"
post
"
,
url
:
"
<%=
path
%>
/userBusiness/checkIsValueExist.action
"
,
dataType
:
"
json
"
,
async
:
false
,
data
:
({
Type
:
type
,
KeyId
:
url_id
}),
success
:
function
(
tipInfo
)
{
flag
=
tipInfo
;
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
提示
'
,
'
检查角色对应功能是否存在异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
return
flag
;
}
</script>
</body>
</html>
\ No newline at end of file
WebRoot/pages/manage/vendor.jsp
0 → 100644
View file @
01a044b7
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment