Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
管店云开源进销存
开源进销存系统
提交
abec08b0
开源进销存系统
项目概览
管店云开源进销存
/
开源进销存系统
通知
191
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
开源进销存系统
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
abec08b0
编写于
8月 31, 2023
作者:
L
lsh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完成登录页面与账户修改
上级
201b5eae
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
519 addition
and
0 deletion
+519
-0
psi-web/src/main/webapp/WEB-INF/views/account/activeIndex.html
...eb/src/main/webapp/WEB-INF/views/account/activeIndex.html
+182
-0
psi-web/src/main/webapp/WEB-INF/views/account/edit.html
psi-web/src/main/webapp/WEB-INF/views/account/edit.html
+82
-0
psi-web/src/main/webapp/WEB-INF/views/account/editPwd.html
psi-web/src/main/webapp/WEB-INF/views/account/editPwd.html
+98
-0
psi-web/src/main/webapp/WEB-INF/views/index.html
psi-web/src/main/webapp/WEB-INF/views/index.html
+157
-0
未找到文件。
psi-web/src/main/webapp/WEB-INF/views/account/activeIndex.html
0 → 100644
浏览文件 @
abec08b0
<!doctype html>
<html
lang=
"zh-CN"
>
<head>
<meta
charset=
"utf-8"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1"
>
<title>
#(currentTenant.name??"管店云_10分钟快速上手的进销存系统")
</title>
<link
href=
"#(resourceDomain)/libs/bootstrap/css/bootstrap.min.css"
rel=
"stylesheet"
>
<script
src=
"#(resourceDomain)/libs/jquery/jquery-3.6.0.min.js"
></script>
<script
src=
"#(resourceDomain)/libs/bootstrap/js/bootstrap.bundle.min.js"
></script>
<script
src=
"#(resourceDomain)/libs/layer/layer.js"
></script>
<script
src=
"#(resourceDomain)/js/bee.kit.js"
></script>
<script
src=
"#(resourceDomain)/js/form.validator.js"
></script>
<link
rel=
"stylesheet"
href=
"#(resourceDomain)/libs/bootstrap/font/bootstrap-icons.css"
>
#if(currentTenant.logo)
<link
rel=
"shortcut icon "
type=
"images/x-icon"
href=
"#(resourceUploadDomain)#(currentTenant.logo)"
>
#else
<link
rel=
"shortcut icon "
type=
"images/x-icon"
href=
"#(resourceDomain)/img/logo.png"
>
#end
<link
href=
"#(resourceDomain)/css/common.css"
rel=
"stylesheet"
>
<style
type=
"text/css"
>
body
{
font
:
14px
/
1.5
Microsoft
YaHei
,
Helvetica
,
Tahoma
;
align-items
:
center
;
padding-top
:
100px
;
padding-bottom
:
40px
;
background-color
:
#516788
;
overflow-x
:
hidden
;
background-size
:
100%
100%
;
background
:
url(#(resourceDomain)
/
img
/
login_bg
.
png
)
top
left
no-repeat
;
}
a
{
text-decoration
:
none
;
}
.login-form
{
max-width
:
500px
;
width
:
500px
;
height
:
430px
;
border-radius
:
10px
;
-webkit-border-radius
:
10px
;
-moz-border-radius
:
10px
;
background
:
#fff
;
padding
:
0
65px
;
}
</style>
</head>
<body>
<div
class=
" m-auto login-form mb-5 text-secondary"
>
<form
method=
"POST"
>
<div
class=
"row mb-3 pt-4"
>
<div
class=
"col"
>
<span
class=
"fs-6"
>
首次登录,进行激活帐户,重新设置密码
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col"
>
<div
class=
"input-group mb-3"
>
<span
class=
"input-group-text"
>
手机号
</span>
<input
type=
"text"
name=
"mobile"
class=
"form-control"
value=
"#(currentAdmin.mobile)"
disabled
>
</div>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col"
>
<div
class=
"input-group mb-3"
>
<span
class=
"input-group-text"
>
验证码
</span>
<input
type=
"text"
name=
"smsCode"
id=
"smsCode"
class=
"form-control"
placeholder=
"请输入收到的验证码"
>
<span
class=
"input-group-text"
><button
type=
"button"
class=
"btn btn-sm sm-more btn-outline-primary"
onclick=
"sendMobileCode(this);"
>
获取验证码
</button>
</span>
</div>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col"
>
<div
class=
"input-group mb-3"
>
<span
class=
"input-group-text"
>
新密码
</span>
<input
type=
"password"
class=
"form-control"
name=
"newPwd"
id=
"newPwd"
placeholder=
"请输入新密码"
>
</div>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col"
>
<div
class=
"input-group mb-3"
>
<span
class=
"input-group-text"
>
重复新密码
</span>
<input
type=
"password"
class=
"form-control"
name=
"reNewPwd"
id=
"reNewPwd"
placeholder=
"请再次输入新密码"
>
</div>
</div>
</div>
<button
class=
"w-100 btn btn-lg btn-primary fs-6"
type=
"button"
id=
"submit-btn"
>
确认激活
</button>
</form>
</div>
<script
type=
"application/javascript"
>
if
(
window
!=
top
){
top
.
location
.
reload
();
}
$
(
function
()
{
$
(
"
#smsCode
"
).
focus
().
keydown
(
function
(
event
)
{
if
(
event
.
keyCode
==
13
)
{
$
(
"
#password
"
).
focus
();
}
});
$
(
"
#password
"
).
keydown
(
function
(
event
)
{
if
(
event
.
keyCode
==
13
)
{
login
();
}
})
$
(
"
#submit-btn
"
).
on
(
"
click
"
,
activeAccount
);
});
function
activeAccount
()
{
if
(
$
.
trim
(
$
(
"
#smsCode
"
).
val
())
==
''
)
{
beekit
.
tips
(
'
短信验证码不能为空!
'
,
'
#smsCode
'
);
$
(
"
#smsCode
"
).
focus
();
return
false
;
}
if
(
$
.
trim
(
$
(
"
#newPwd
"
).
val
())
==
''
)
{
beekit
.
tips
(
'
新密码不能为空!
'
,
'
#newPwd
'
);
$
(
"
#newPwd
"
).
focus
();
return
false
;
}
if
(
$
.
trim
(
$
(
"
#newPwd
"
).
val
()).
length
<
6
)
{
beekit
.
tips
(
'
新密码过于简单!
'
,
'
#newPwd
'
);
$
(
"
#newPwd
"
).
focus
();
return
false
;
}
if
(
$
.
trim
(
$
(
"
#reNewPwd
"
).
val
())
==
''
)
{
beekit
.
tips
(
'
请再次输入新密码!
'
,
'
#reNewPwd
'
);
$
(
"
#reNewPwd
"
).
focus
();
return
false
;
}
if
(
$
.
trim
(
$
(
"
#reNewPwd
"
).
val
())
!=
$
.
trim
(
$
(
"
#newPwd
"
).
val
()))
{
beekit
.
tips
(
'
两次输入的密码不一致!
'
,
'
#reNewPwd
'
);
$
(
"
#reNewPwd
"
).
focus
();
return
false
;
}
beekit
.
ajaxPost
(
"
/account/active
"
,
$
(
"
form
"
).
serialize
(),
function
(
ret
)
{
beekit
.
msg
(
ret
);
if
(
ret
.
state
==
"
ok
"
)
{
setTimeout
(
function
()
{
beekit
.
redirect
(
"
/roadMap/
"
)
},
1000
);
}
});
}
function
sendMobileCode
(
_this
)
{
beekit
.
ajaxPost
(
"
/account/sendActiveCode
"
,
{},
function
(
ret
)
{
beekit
.
msg
(
ret
);
if
(
ret
.
state
==
"
ok
"
)
{
var
countTime
=
150
;
var
t
=
setInterval
(
function
()
{
countTime
=
countTime
-
1
;
$
(
_this
).
html
(
"
剩余
"
+
countTime
+
"
秒
"
);
$
(
_this
).
attr
(
"
disabled
"
,
true
);
if
(
countTime
<=
0
)
{
clearInterval
(
t
);
$
(
_this
).
html
(
"
重新获取
"
);
$
(
_this
).
removeAttr
(
"
disabled
"
);
}
},
1000
);
}
});
}
</script>
</body>
</html>
psi-web/src/main/webapp/WEB-INF/views/account/edit.html
0 → 100644
浏览文件 @
abec08b0
<div
class=
"modal-dialog modal-dialog-scrollable modal-dialog-centered"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<h6
class=
"modal-title"
>
账户信息
</h6>
<button
type=
"button"
class=
"btn-close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
></button>
</div>
<div
class=
"modal-body"
>
<form
id=
"account-edit-form"
onsubmit=
"account.update();return false;"
>
<div
class=
"row"
>
<div
class=
"col-1"
></div>
<div
class=
"col"
>
<div
class=
"input-group mb-3"
>
<span
class=
"input-group-text"
>
员工姓名
<span
class=
"text-danger"
>
*
</span></span>
<input
type=
"text"
maxlength=
"20"
class=
"form-control"
name=
"real_name"
id=
"account_real_name"
placeholder=
"请输入姓名"
value=
"#(account.real_name??)"
>
</div>
</div>
<div
class=
"col-1"
></div>
</div>
<div
class=
"row"
>
<div
class=
"col-1"
></div>
<div
class=
"col"
>
<div
class=
"input-group mb-3"
>
<span
class=
"input-group-text"
>
手
机
号
<span
class=
"text-danger"
>
*
</span></span>
<input
type=
"text"
class=
"form-control"
maxlength=
"11"
name=
"mobile"
id=
"account_mobile"
placeholder=
"请输入手机号"
value=
"#(account.mobile??)"
>
</div>
</div>
<div
class=
"col-1"
></div>
</div>
</form>
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-secondary"
data-bs-dismiss=
"modal"
aria-label=
"Close"
>
关闭
</button>
<button
type=
"button"
class=
"btn btn-primary"
onclick=
"account.update();"
>
修改
</button>
</div>
</div>
</div>
<script
type=
"application/javascript"
>
var
account
=
{};
$
(
function
()
{
// 初始化bootstrap相关组件
common
.
initBootstrap
();
var
formId
=
"
#account-edit-form
"
;
setTimeout
(
function
()
{
formInput
.
listenkeyUp
(
formId
);
},
500
);
});
account
.
update
=
function
()
{
var
realName
=
$
(
"
#account_real_name
"
);
if
(
$
.
trim
(
realName
.
val
())
==
''
)
{
beekit
.
tips
(
'
真实姓名不能为空!
'
,
'
#account_real_name
'
);
realName
.
focus
();
return
false
;
}
var
mobile
=
$
(
"
#account_mobile
"
);
if
(
$
.
trim
(
mobile
.
val
())
==
''
)
{
beekit
.
tips
(
'
手机号不能为空!
'
,
'
#account_mobile
'
);
mobile
.
focus
();
return
false
;
}
if
(
!
formValidator
.
checkMobile
(
$
(
"
#account_mobile
"
).
val
()))
{
beekit
.
tips
(
'
请输入正确的手机号!
'
,
'
#account_mobile
'
);
mobile
.
focus
();
return
false
;
}
beekit
.
ajaxPost
(
"
/account/update
"
,
$
(
"
#account-edit-form
"
).
serialize
(),
function
(
ret
)
{
beekit
.
msg
(
ret
);
if
(
ret
.
state
==
"
ok
"
)
{
beekit
.
modalClose
();
}
});
};
</script>
psi-web/src/main/webapp/WEB-INF/views/account/editPwd.html
0 → 100644
浏览文件 @
abec08b0
<div
class=
"modal-dialog modal-dialog-scrollable modal-dialog-centered"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<h6
class=
"modal-title"
>
修改密码
</h6>
<button
type=
"button"
class=
"btn-close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
></button>
</div>
<div
class=
"modal-body"
>
<form
id=
"account-editPwd-form"
onsubmit=
"account.updatePwd();return false;"
>
<div
class=
"row"
>
<div
class=
"col-1"
></div>
<div
class=
"col"
>
<div
class=
"input-group mb-3"
>
<span
class=
"input-group-text"
>
原密码
<span
class=
"text-danger"
>
*
</span></span>
<input
type=
"password"
class=
"form-control"
name=
"old_password"
id=
"account_old_password"
placeholder=
"请输入原密码"
>
</div>
</div>
<div
class=
"col-1"
></div>
</div>
<div
class=
"row"
>
<div
class=
"col-1"
></div>
<div
class=
"col"
>
<div
class=
"input-group mb-3"
>
<span
class=
"input-group-text"
>
新密码
<span
class=
"text-danger"
>
*
</span></span>
<input
type=
"password"
class=
"form-control"
name=
"new_password"
id=
"account_new_password"
placeholder=
"请输入新密码"
>
</div>
</div>
<div
class=
"col-1"
></div>
</div>
<div
class=
"row"
>
<div
class=
"col-1"
></div>
<div
class=
"col"
>
<div
class=
"input-group mb-3"
>
<span
class=
"input-group-text"
>
重复密码
<span
class=
"text-danger"
>
*
</span></span>
<input
type=
"password"
class=
"form-control"
name=
"repeat_password"
id=
"account_repeat_password"
placeholder=
"请再次输入新密码"
>
</div>
</div>
<div
class=
"col-1"
></div>
</div>
</form>
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-secondary"
data-bs-dismiss=
"modal"
aria-label=
"Close"
>
关闭
</button>
<button
type=
"button"
class=
"btn btn-primary"
onclick=
"account.updatePwd();"
>
修改
</button>
</div>
</div>
</div>
<script
type=
"application/javascript"
>
var
account
=
{};
$
(
function
()
{
// 初始化bootstrap相关组件
common
.
initBootstrap
();
var
formId
=
"
#account-editPwd-form
"
;
setTimeout
(
function
()
{
formInput
.
listenkeyUp
(
formId
);
},
500
);
});
account
.
updatePwd
=
function
()
{
var
oldPassword
=
$
(
"
#account_old_password
"
);
if
(
$
.
trim
(
oldPassword
.
val
())
==
''
)
{
beekit
.
tips
(
'
原密码不能为空!
'
,
'
#account_old_password
'
);
oldPassword
.
focus
();
return
false
;
}
var
newPassword
=
$
(
"
#account_new_password
"
);
if
(
$
.
trim
(
newPassword
.
val
())
==
''
)
{
beekit
.
tips
(
'
新密码不能为空!
'
,
'
#account_new_password
'
);
newPassword
.
focus
();
return
false
;
}
var
repeatPassword
=
$
(
"
#account_repeat_password
"
);
if
(
$
.
trim
(
repeatPassword
.
val
())
==
''
)
{
beekit
.
tips
(
'
请重复输入密码!
'
,
'
#account_repeat_password
'
);
repeatPassword
.
focus
();
return
false
;
}
if
(
$
.
trim
(
newPassword
.
val
())
!=
$
.
trim
(
repeatPassword
.
val
()))
{
beekit
.
tips
(
'
两次输入密码不一致!
'
,
'
#account_repeat_password
'
);
repeatPassword
.
focus
();
return
false
;
}
beekit
.
ajaxPost
(
"
/account/updatePwd
"
,
$
(
"
#account-editPwd-form
"
).
serialize
(),
function
(
ret
)
{
beekit
.
msg
(
ret
);
if
(
ret
.
state
==
"
ok
"
)
{
beekit
.
modalClose
();
}
});
};
</script>
psi-web/src/main/webapp/WEB-INF/views/index.html
0 → 100644
浏览文件 @
abec08b0
<!doctype html>
<html
lang=
"zh-CN"
>
<head>
<meta
charset=
"utf-8"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1"
>
<title>
#(currentTenant.name??"管店云_10分钟快速上手的进销存系统")
</title>
<link
href=
"#(resourceDomain)/libs/bootstrap/css/bootstrap.min.css"
rel=
"stylesheet"
>
<script
src=
"#(resourceDomain)/libs/jquery/jquery-3.6.0.min.js"
></script>
<script
src=
"#(resourceDomain)/libs/bootstrap/js/bootstrap.bundle.min.js"
></script>
<script
src=
"#(resourceDomain)/libs/layer/layer.js"
></script>
<script
src=
"#(resourceDomain)/js/bee.kit.js"
></script>
<script
src=
"#(resourceDomain)/js/form.validator.js"
></script>
<link
rel=
"stylesheet"
href=
"#(resourceDomain)/libs/bootstrap/font/bootstrap-icons.css"
>
#if(tenantOrg.logo)
<link
rel=
"shortcut icon "
type=
"images/x-icon"
href=
"#(resourceUploadDomain)#(tenantOrg.logo)"
>
#else
<link
rel=
"shortcut icon "
type=
"images/x-icon"
href=
"#(resourceDomain)/img/logo.png"
>
#end
<link
href=
"#(resourceDomain)/css/common.css"
rel=
"stylesheet"
>
<style
type=
"text/css"
>
body
{
font
:
14px
/
1.5
Microsoft
YaHei
,
Helvetica
,
Tahoma
;
align-items
:
center
;
padding-top
:
100px
;
padding-bottom
:
40px
;
background-color
:
#516788
;
overflow-x
:
hidden
;
background-size
:
100%
100%
;
background
:
url(#(resourceDomain)
/
img
/
login_bg
.
png
)
top
left
no-repeat
;
}
a
{
text-decoration
:
none
;
}
.login-form
{
max-width
:
500px
;
width
:
500px
;
height
:
430px
;
border-radius
:
10px
;
-webkit-border-radius
:
10px
;
-moz-border-radius
:
10px
;
background
:
#fff
;
padding
:
0
65px
;
}
</style>
</head>
<body>
<div
class=
" m-auto login-form mb-5 text-secondary"
>
<form
method=
"POST"
>
<input
type=
"hidden"
name=
"urlCode"
value=
"#(urlCode)"
>
<div
class=
"row"
>
<div
class=
"col text-center position-relative"
>
#if(tenantOrg.logo)
<img
class=
"mb-4 mt-3"
src=
"#(resourceUploadDomain)#(tenantOrg.logo)"
width=
"50"
>
#else
<img
class=
"mb-4 mt-3"
src=
"#(resourceDomain)/img/logo.png"
"
width=
"50"
>
#end
<span
class=
"fs-4 fw-bold"
style=
"margin-left: 12px;"
>
#(tenantOrg.name??"管店云")
</span>
<span
class=
"position-absolute translate-middle badge bg-danger"
style=
"font-size: 9px;top: 0; left: 115%;"
>
<var>
#(version)
</var>
</span>
</div>
</div>
<div
class=
"form-floating"
>
<input
type=
"text"
class=
"form-control"
id=
"mobile"
name=
"mobile"
placeholder=
"请输入手机号"
>
<label
for=
"mobile"
>
手机号
</label>
</div>
<div
class=
"form-floating mt-3"
>
<input
type=
"password"
class=
"form-control"
id=
"password"
name=
"password"
placeholder=
"请输入密码"
>
<label
for=
"password"
>
密码
</label>
</div>
<div
class=
"checkbox mb-3 text-end"
>
<label>
<a
href=
"javascript:void(0)"
id=
"forget-pwd"
>
忘记密码?
</a>
</label>
</div>
<button
class=
"w-100 btn btn-lg btn-primary fs-6"
type=
"button"
id=
"login-btn"
>
登录
</button>
<div
class=
"row mt-5 text-center "
style=
"color: #aaa;"
>
<div
class=
"col"
>
技术支持:
<a
href=
"https://www.guanxdian.com"
style=
"color: #aaa;"
target=
"_blank"
>
管店云
©
让生意人管账更轻松
</a>
</div>
</div>
</form>
</div>
<script
type=
"application/javascript"
>
if
(
window
!=
top
){
top
.
location
.
reload
();
}
$
(
function
()
{
$
(
"
#mobile
"
).
focus
().
keydown
(
function
(
event
)
{
if
(
event
.
keyCode
==
13
)
{
$
(
"
#password
"
).
focus
();
}
});
$
(
"
#password
"
).
keydown
(
function
(
event
)
{
if
(
event
.
keyCode
==
13
)
{
login
();
}
})
$
(
"
#login-btn
"
).
on
(
"
click
"
,
login
);
$
(
"
#forget-pwd
"
).
on
(
"
click
"
,
function
(
evt
)
{
beekit
.
modal
(
"
/forgetPwd
"
);
});
});
function
login
()
{
if
(
$
.
trim
(
$
(
"
#mobile
"
).
val
())
==
''
)
{
beekit
.
tips
(
'
手机号不能为空!
'
,
'
#mobile
'
);
$
(
"
#mobile
"
).
focus
();
return
false
;
}
if
(
formValidator
.
checkMobile
(
$
(
"
#mobile
"
).
val
())
==
''
)
{
beekit
.
tips
(
'
请输入正确的手机号!
'
,
'
#mobile
'
);
$
(
"
#mobile
"
).
focus
();
return
false
;
}
if
(
$
.
trim
(
$
(
"
#password
"
).
val
())
==
''
)
{
beekit
.
tips
(
'
密码不能为空!
'
,
'
#password
'
);
$
(
"
#password
"
).
focus
();
return
false
;
}
beekit
.
ajaxPost
(
"
/login
"
,
$
(
"
form
"
).
serialize
(),
function
(
ret
)
{
beekit
.
msg
(
ret
);
if
(
ret
.
state
==
"
ok
"
)
{
if
(
ret
.
status
==
#
(
UserActiveStatusEnum
.
waiting
.
value
))
{
setTimeout
(
function
()
{
beekit
.
redirect
(
"
/account/activeIndex
"
);
},
1000
);
}
else
{
setTimeout
(
function
()
{
beekit
.
redirect
(
"
/dashboard/
"
);
},
1000
);
}
}
});
}
</script>
</body>
</html>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录