Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
C
cms_sys
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
西魏
cms_sys
Commits
14b4eefd
Commit
14b4eefd
authored
Jan 29, 2019
by
ms-dev
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '4.7.0' of
https://gitee.com/tianbinjie/MCMS
into 4.7.0
# Conflicts: # src/main/webapp/WEB-INF/manager/login.ftl
parents
42fb675a
fa9020e2
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
448 additions
and
432 deletions
+448
-432
index.ftl
src/main/webapp/WEB-INF/manager/index.ftl
+266
-262
login.ftl
src/main/webapp/WEB-INF/manager/login.ftl
+134
-131
reset-password.ftl
src/main/webapp/WEB-INF/manager/reset-password.ftl
+48
-39
No files found.
src/main/webapp/WEB-INF/manager/index.ftl
View file @
14b4eefd
<!DOCTYPE html>
<html>
<head>
<title></title>
<!-- <#include "/include/head-file.ftl"/> -->
<!-- <link rel="stylesheet" href="${base}/static/ms-admin/4.7.0/css/index.css"> -->
<!--#include virtual="include/head-file.ftl" -->
<!--#include virtual="./reset-password.ftl" -->
<!--#include virtual="./exit-system.ftl" -->
<link
rel=
"stylesheet"
href=
"../../../static/ms-admin/4.7.0/css/index.css"
>
</head>
<body>
<div
id=
"app"
class=
"index"
>
<el-container>
<!--头部-->
<el-header
class=
"ms-admin-header"
>
<el-aside
width=
"200px"
class=
"ms-admin-logo"
>
<img
:src=
"ms.base+'/static/ms-admin/4.7.0/images/logo.png'"
/>
<div>
<img
:src=
"ms.base+'/static/ms-admin/4.7.0/images/version.png'"
/>
<span>
v4.6.3
</span>
</div>
</el-aside>
<!--头部menu-->
<el-menu
class=
"ms-admin-header-menu"
:default-active=
"0+''"
mode=
"horizontal"
>
<el-menu-item
class=
"ms-admin-menu-item"
:index=
"i+''"
v-for=
"(menu,i) in mainParentMenuList"
:key=
'i'
@
click=
"openMenu(menu,i)"
v-text=
"menu.modelTitle"
></el-menu-item>
<el-menu-item
class=
"ms-admin-menu-item"
:index=
"menuList.length+''"
@
click=
''
>
<i
class=
"iconfont icon-gengduo"
@
click
.
stop
.
self=
'shortcutMenu = !shortcutMenu'
></i>
</el-menu-item>
<!-- 快捷菜单 -->
<ul
class=
"ms-admin-shortcut-menu"
v-show=
'shortcutMenu'
>
<li
v-for=
"(item,index) of parentMenuList"
:key=
'index'
v-text=
'item.modelTitle'
@
click=
'openMenu(item,index)'
></li>
<i
class=
"iconfont icon-gengduo"
@
click
.
stop
.
self=
'shortcutMenu = !shortcutMenu'
></i>
</ul>
</el-menu>
<!--头部右侧-->
<el-main
class=
"ms-admin-mstore"
>
<!--登录-->
<el-dropdown
trigger=
"click"
class=
"ms-admin-login"
placement=
"top-start"
@
visible-change=
"loginDown = !loginDown"
>
<span
class=
"el-dropdown-link"
:class=
"{'active':loginDown}"
>
<img
src=
"http://cdn.mingsoft.net/global/static/ms-admin/4.7.0//msheader.png"
/>
<span
v-text=
'peopleInfo.managerName'
></span>
</span>
<el-dropdown-menu
class=
"ms-admin-login-down"
slot=
"dropdown"
@
click
.
native=
'openModal'
>
<el-dropdown-item>
修改密码
</el-dropdown-item>
<el-dropdown-item>
退出
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<!--mstore按钮-->
<div
class=
"ms-admin-mstore-icon"
>
<i
class=
"iconfont icon-gengduo1"
></i>
</div>
</el-main>
</el-header>
<el-container
class=
"ms-admin-container"
>
<!--菜单-->
<el-aside
:class=
"['ms-admin-menu-aside',{'ms-admin-menu-aside-active':collapseMenu}]"
>
<el-menu
:class=
"['ms-admin-menu',{'ms-admin-menu-active':collapseMenu}]"
:default-active=
"menuActive"
:collapse=
"collapseMenu"
mode=
'vertical'
:collapse-transition=
'true'
:unique-opened=
'true'
ref=
'menu'
>
<el-submenu
:index=
"i+''"
v-for=
"(menu,i) in parentMenuList"
:key=
'i'
>
<template
slot=
"title"
>
<i
class=
"iconfont"
:class=
"iconType(menu.modelTitle)"
></i>
<span
v-text=
"menu.modelTitle"
></span>
</template>
<!-- 子菜单 -->
<el-menu-item
:index=
"i+'-'+index"
v-for=
"(sub,index) in getSubMenu(menu.modelId)"
:key=
'sub.modelModelId'
v-text=
"sub.modelTitle"
@
click
.
self=
'open(sub.modelTitle,sub.modelUrl)'
></el-menu-item>
</el-submenu>
<!-- 收缩按钮 -->
<div
:class=
"['ms-menu-expand',{'ms-menu-expand-active':collapseMenu}]"
@
click=
'collapseMenu = !collapseMenu'
>
<i
class=
"iconfont icon-shousuo"
></i>
</div>
</el-menu>
</el-aside>
<!--内容-->
<el-main
class=
"ms-admin-main"
>
<!--选项卡-->
<el-tabs
class=
"ms-admin-tabs"
v-model=
"currentTab"
type=
"card"
closable
@
tab-remove=
"closeTab"
>
<el-tab-pane
v-for=
"(item, index) in editableTabs"
:key=
"index"
:label=
"item.title"
:name=
"item.title"
>
<iframe
:src=
'ms.manager+"/"+item.url'
></iframe>
</el-tab-pane>
</el-tabs>
</el-main>
</el-container>
</el-container>
</div>
</body>
</html>
<script>
var
indexVue
=
new
Vue
({
el
:
"#app"
,
data
:
{
// 预置菜单图标
icon
:{
'消息管理'
:
'icon-xiaoxiguanli'
,
'评论管理'
:
'icon-pinglunguanli'
,
'内容管理'
:
'icon-bianji1'
,
'会员中心'
:
'icon-huiyuan'
,
'自定义管理'
:
'icon-gengduo-2'
,
'权限管理'
:
'icon-UPMSquanxianicon-'
,
'系统管理'
:
'icon-xitong'
,
},
menuList
:[],
//菜单接口数据
parentMenuList
:[],
//一级菜单
subMenuList
:[],
//二级菜单 所有
mainParentMenuList
:[],
//头部菜单显示主要的选项
loginDown
:
false
,
//登录下拉
menuActive
:
""
,
//选中菜单
editableTabsValue
:
''
,
editableTabs
:
[],
//当前打开的tab页面
shortcutMenu
:
false
,
//快捷菜单显示状态
collapseMenu
:
false
,
//菜单折叠,false不折叠
currentTab
:
''
,
//当前激活tab的name
tabIndex
:
2
,
//登录用户信息
peopleInfo
:{
managerName
:
''
//账号
},
},
watch
:{
menuList
:
function
(
n
,
o
){
var
that
=
this
;
n
&&
n
.
forEach
(
function
(
item
,
index
){
item
.
modelModelId
==
0
?
that
.
parentMenuList
.
push
(
item
)
:
that
.
subMenuList
.
push
(
item
)
})
},
parentMenuList
:
function
(
n
,
o
){
this
.
mainParentMenuList
=
n
.
slice
(
0
,
5
);
},
},
methods
:
{
// 菜单列表
list
:
function
(){
var
that
=
this
;
ms
.
http
.
get
(
ms
.
manager
+
"/model/list.do"
)
.
then
((
data
)
=>
{
that
.
menuList
=
data
.
rows
},
(
err
)
=>
{
that
.
$message
.
error
(
err
);
})
},
// 菜单打开页面
open
:
function
(
title
,
url
){
var
result
=
''
;
result
=
this
.
editableTabs
.
some
(
function
(
item
,
index
)
{
return
item
.
title
==
title
})
!
result
?
this
.
editableTabs
.
push
({
title
:
title
,
url
:
url
})
:
""
this
.
currentTab
=
title
;
// 处理其他逻辑
},
// 获取当前菜单的子菜单
getSubMenu
:
function
(
modelId
)
{
var
result
=
[];
var
that
=
this
;
that
.
subMenuList
&&
that
.
subMenuList
.
forEach
(
function
(
item
)
{
item
.
modelModelId
==
modelId
?
result
.
push
(
item
)
:
''
})
return
result
;
},
// 匹配图标
iconType
:
function
(
title
)
{
return
this
.
icon
[
title
]
||
'icon-xitongpeizhi'
},
//关闭tab标签页
closeTab
(
targetName
)
{
var
that
=
this
;
// 关闭的面板是当前激活面板
if
(
that
.
currentTab
==
targetName
){
that
.
editableTabs
.
forEach
(
function
(
tab
,
index
,
arr
)
{
if
(
tab
.
title
==
targetName
){
var
nextTab
=
arr
[
index
+
1
]
||
arr
[
index
-
1
];
if
(
nextTab
){
that
.
currentTab
=
nextTab
.
title
}
}
})
}
// 关闭的不是当前面板
that
.
editableTabs
=
that
.
editableTabs
.
filter
(
function
(
tab
)
{
return
tab
.
title
!==
targetName
})
},
// 头部导航打开菜单
openMenu
:
function
(
menu
,
index
){
this
.
$refs
.
menu
.
open
(
index
);
var
children
=
[];
this
.
menuList
.
forEach
(
function
(
tab
)
{
if
(
tab
.
modelModelId
==
menu
.
modelId
){
children
.
push
(
tab
)
}
})
this
.
currentTab
=
children
[
0
]
&&
children
[
0
].
modelTitle
;
this
.
open
(
children
[
0
].
modelTitle
,
children
[
0
].
modelUrl
);
var
that
=
this
;
setTimeout
(
function
(){
that
.
shortcutMenu
=
false
},
50
)
},
managerGet
:
function
(){
var
that
=
this
;
ms
.
http
.
get
(
ms
.
manager
+
"/basic/manager/get.do"
)
.
then
((
data
)
=>
{
that
.
peopleInfo
=
data
},
(
err
)
=>
{
that
.
$message
.
error
(
err
);
})
},
// 打开修改密码,退出的模态框
openModal
:
function
(){
console
.
log
(
'event.target'
,
event
.
target
.
innerText
);
event
.
target
.
innerText
.
indexOf
(
'修改密码'
)
>-
1
?
resetPasswordVue
.
isShow
=
true
:
exitSystemVue
.
isShow
=
true
}
},
mounted
:
function
(){
// 菜单列表
this
.
list
();
//获取登录用户信息
this
.
managerGet
();
},
})
<!DOCTYPE html>
<html>
<head>
<title></title>
<
#
include
"/
include
/
head-file
.
ftl
"
/>
<
#
include
"/
reset-password
.
ftl
"
/>
<
#
include
"/
exit-system
.
ftl
"
/>
<link
rel=
"stylesheet"
href=
"${base}/static/ms-admin/4.7.0/css/index.css"
>
<!--#include virtual="include/head-file.ftl" -->
<!--#include virtual="./reset-password.ftl" -->
<!--#include virtual="./exit-system.ftl" -->
<!--<link rel="stylesheet" href="../../../static/ms-admin/4.7.0/css/index.css">-->
</head>
<body>
<div
id=
"app"
class=
"index"
>
<el-container>
<!--头部-->
<el-header
class=
"ms-admin-header"
>
<el-aside
width=
"200px"
class=
"ms-admin-logo"
>
<img
:src=
"ms.base+'/static/ms-admin/4.7.0/images/logo.png'"
/>
<div>
<img
:src=
"ms.base+'/static/ms-admin/4.7.0/images/version.png'"
/>
<span>
v4.6.3
</span>
</div>
</el-aside>
<!--头部menu-->
<el-menu
class=
"ms-admin-header-menu"
:default-active=
"0+''"
mode=
"horizontal"
>
<el-menu-item
class=
"ms-admin-menu-item"
:index=
"i+''"
v-for=
"(menu,i) in mainParentMenuList"
:key=
'i'
@
click=
"openMenu(menu,i)"
v-text=
"menu.modelTitle"
></el-menu-item>
<el-menu-item
class=
"ms-admin-menu-item"
:index=
"menuList.length+''"
@
click=
''
>
<i
class=
"iconfont icon-gengduo"
@
click
.
stop
.
self=
'shortcutMenu = !shortcutMenu'
></i>
</el-menu-item>
<!-- 快捷菜单 -->
<ul
class=
"ms-admin-shortcut-menu"
v-show=
'shortcutMenu'
>
<li
v-for=
"(item,index) of parentMenuList"
:key=
'index'
v-text=
'item.modelTitle'
@
click=
'openMenu(item,index)'
></li>
<i
class=
"iconfont icon-gengduo"
@
click
.
stop
.
self=
'shortcutMenu = !shortcutMenu'
></i>
</ul>
</el-menu>
<!--头部右侧-->
<el-main
class=
"ms-admin-mstore"
>
<!--登录-->
<el-dropdown
trigger=
"click"
class=
"ms-admin-login"
placement=
"top-start"
@
visible-change=
"loginDown = !loginDown"
>
<span
class=
"el-dropdown-link"
:class=
"{'active':loginDown}"
>
<img
src=
"http://cdn.mingsoft.net/global/static/ms-admin/4.7.0//msheader.png"
/>
<span
v-text=
'peopleInfo.managerName'
></span>
</span>
<el-dropdown-menu
class=
"ms-admin-login-down"
slot=
"dropdown"
@
click
.
native=
'openModal'
>
<el-dropdown-item>
修改密码
</el-dropdown-item>
<el-dropdown-item>
退出
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<!--mstore按钮-->
<div
class=
"ms-admin-mstore-icon"
>
<i
class=
"iconfont icon-gengduo1"
></i>
</div>
</el-main>
</el-header>
<el-container
class=
"ms-admin-container"
>
<!--菜单-->
<el-aside
:class=
"['ms-admin-menu-aside',{'ms-admin-menu-aside-active':collapseMenu}]"
>
<el-menu
:class=
"['ms-admin-menu',{'ms-admin-menu-active':collapseMenu}]"
:default-active=
"menuActive"
:collapse=
"collapseMenu"
mode=
'vertical'
:collapse-transition=
'true'
:unique-opened=
'true'
ref=
'menu'
>
<el-submenu
:index=
"i+''"
v-for=
"(menu,i) in parentMenuList"
:key=
'i'
>
<template
slot=
"title"
>
<i
class=
"iconfont"
:class=
"iconType(menu.modelTitle)"
></i>
<span
v-text=
"menu.modelTitle"
></span>
</template>
<!-- 子菜单 -->
<el-menu-item
:index=
"i+'-'+index"
v-for=
"(sub,index) in getSubMenu(menu.modelId)"
:key=
'sub.modelModelId'
v-text=
"sub.modelTitle"
@
click
.
self=
'open(sub.modelTitle,sub.modelUrl)'
></el-menu-item>
</el-submenu>
<!-- 收缩按钮 -->
<div
:class=
"['ms-menu-expand',{'ms-menu-expand-active':collapseMenu}]"
@
click=
'collapseMenu = !collapseMenu'
>
<i
class=
"iconfont icon-shousuo"
></i>
</div>
</el-menu>
</el-aside>
<!--内容-->
<el-main
class=
"ms-admin-main"
>
<!--选项卡-->
<el-tabs
class=
"ms-admin-tabs"
v-model=
"currentTab"
type=
"card"
closable
@
tab-remove=
"closeTab"
>
<el-tab-pane
v-for=
"(item, index) in editableTabs"
:key=
"index"
:label=
"item.title"
:name=
"item.title"
>
<iframe
:src=
'ms.manager+"/"+item.url'
></iframe>
</el-tab-pane>
</el-tabs>
</el-main>
</el-container>
</el-container>
</div>
</body>
</html>
<script>
var
indexVue
=
new
Vue
({
el
:
"#app"
,
data
:
{
// 预置菜单图标
icon
:{
'消息管理'
:
'icon-xiaoxiguanli'
,
'评论管理'
:
'icon-pinglunguanli'
,
'内容管理'
:
'icon-bianji1'
,
'会员中心'
:
'icon-huiyuan'
,
'自定义管理'
:
'icon-gengduo-2'
,
'权限管理'
:
'icon-UPMSquanxianicon-'
,
'系统管理'
:
'icon-xitong'
,
},
menuList
:[],
//菜单接口数据
parentMenuList
:[],
//一级菜单
subMenuList
:[],
//二级菜单 所有
mainParentMenuList
:[],
//头部菜单显示主要的选项
loginDown
:
false
,
//登录下拉
menuActive
:
""
,
//选中菜单
editableTabsValue
:
''
,
editableTabs
:
[],
//当前打开的tab页面
shortcutMenu
:
false
,
//快捷菜单显示状态
collapseMenu
:
false
,
//菜单折叠,false不折叠
currentTab
:
''
,
//当前激活tab的name
tabIndex
:
2
,
//登录用户信息
peopleInfo
:{
managerName
:
''
//账号
},
},
watch
:{
menuList
:
function
(
n
,
o
){
var
that
=
this
;
n
&&
n
.
forEach
(
function
(
item
,
index
){
item
.
modelModelId
==
0
?
that
.
parentMenuList
.
push
(
item
)
:
that
.
subMenuList
.
push
(
item
)
})
},
parentMenuList
:
function
(
n
,
o
){
this
.
mainParentMenuList
=
n
.
slice
(
0
,
5
);
},
},
methods
:
{
// 菜单列表
list
:
function
(){
var
that
=
this
;
ms
.
http
.
post
(
ms
.
manager
+
"/model/list.do"
)
.
then
((
data
)
=>
{
that
.
menuList
=
data
.
rows
},
(
err
)
=>
{
that
.
$message
.
error
(
err
);
})
},
// 菜单打开页面
open
:
function
(
title
,
url
){
var
result
=
''
;
result
=
this
.
editableTabs
.
some
(
function
(
item
,
index
)
{
return
item
.
title
==
title
})
!
result
?
this
.
editableTabs
.
push
({
title
:
title
,
url
:
url
})
:
""
this
.
currentTab
=
title
;
// 处理其他逻辑
},
// 获取当前菜单的子菜单
getSubMenu
:
function
(
modelId
)
{
var
result
=
[];
var
that
=
this
;
that
.
subMenuList
&&
that
.
subMenuList
.
forEach
(
function
(
item
)
{
item
.
modelModelId
==
modelId
?
result
.
push
(
item
)
:
''
})
return
result
;
},
// 匹配图标
iconType
:
function
(
title
)
{
return
this
.
icon
[
title
]
||
'icon-xitongpeizhi'
},
//关闭tab标签页
closeTab
(
targetName
)
{
var
that
=
this
;
// 关闭的面板是当前激活面板
if
(
that
.
currentTab
==
targetName
){
that
.
editableTabs
.
forEach
(
function
(
tab
,
index
,
arr
)
{
if
(
tab
.
title
==
targetName
){
var
nextTab
=
arr
[
index
+
1
]
||
arr
[
index
-
1
];
if
(
nextTab
){
that
.
currentTab
=
nextTab
.
title
}
}
})
}
// 关闭的不是当前面板
that
.
editableTabs
=
that
.
editableTabs
.
filter
(
function
(
tab
)
{
return
tab
.
title
!==
targetName
})
},
// 头部导航打开菜单
openMenu
:
function
(
menu
,
index
){
this
.
$refs
.
menu
.
open
(
index
);
var
children
=
[];
this
.
menuList
.
forEach
(
function
(
tab
)
{
if
(
tab
.
modelModelId
==
menu
.
modelId
){
children
.
push
(
tab
)
}
})
this
.
currentTab
=
children
[
0
]
&&
children
[
0
].
modelTitle
;
this
.
open
(
children
[
0
].
modelTitle
,
children
[
0
].
modelUrl
);
var
that
=
this
;
setTimeout
(
function
(){
that
.
shortcutMenu
=
false
},
50
)
},
managerGet
:
function
(){
var
that
=
this
;
ms
.
http
.
get
(
ms
.
manager
+
"/basic/manager/get.do"
)
.
then
((
data
)
=>
{
that
.
peopleInfo
=
data
resetPasswordVue
.
resetPasswordForm
.
managerName
=
that
.
peopleInfo
.
managerName
},
(
err
)
=>
{
that
.
$message
.
error
(
err
);
})
},
// 打开修改密码,退出的模态框
openModal
:
function
(){
console
.
log
(
'event.target'
,
event
.
target
.
innerText
);
event
.
target
.
innerText
.
indexOf
(
'修改密码'
)
>-
1
?
resetPasswordVue
.
isShow
=
true
:
exitSystemVue
.
isShow
=
true
}
},
mounted
:
function
(){
// 菜单列表
this
.
list
();
//获取登录用户信息
this
.
managerGet
();
},
})
</script>
\ No newline at end of file
src/main/webapp/WEB-INF/manager/login.ftl
View file @
14b4eefd
<!DOCTYPE html>
<html
lang=
""
>
<head>
<title></title>
<!-- <#include "/include/head-file.ftl"/> -->
<!-- <link rel="stylesheet" href="${base}/static/ms-admin/4.7.0/css/login.css"> -->
<!--#include virtual="include/head-file.ftl" -->
<link
rel=
"stylesheet"
href=
"../../../static/ms-admin/4.7.0/css/login.css"
>
</head>
<body>
<div
id=
"login"
class=
"login"
>
<el-container
class=
"ms-admin-login-container"
>
<el-main
class=
"ms-admin-login-main"
>
<div
class=
"ms-admin-login-warp"
>
<img
:src=
"ms.base+'/static/ms-admin/4.7.0/images/login-slogn.png'"
>
<el-form
:model=
"loginForm"
status-icon
:rules=
"loginFormRule"
ref=
"loginForm"
label-width=
"100px"
class=
"ms-admin-login-form"
>
<h1>
<span>
账户登录 /
</span>
User login
</h1>
<el-form-item
prop=
"name"
class=
"ms-admin-form-item"
>
<el-input
type=
"text"
placeholder=
'用户名'
v-model=
"loginForm.managerName"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
prop=
"pass"
class=
"ms-admin-form-item"
>
<el-input
type=
"password"
placeholder=
'密码'
v-model=
"loginForm.managerPassword"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
prop=
"code"
class=
"ms-admin-form-item ms-admin-form-item-code"
>
<el-input
type=
"text"
placeholder=
'验证码'
v-model=
"loginForm.rand_code"
autocomplete=
"off"
></el-input>
<img
:src=
"verifCode"
class=
"code-img"
@
click=
"code"
/>
<p>
<span>
看不清?
</span>
<span
@
click=
"code"
>
换一张
</span>
</p>
</el-form-item>
<el-form-item
class=
"ms-admin-form-item ms-admin-form-item-checkout"
>
<el-checkbox
v-model=
"rememberPass"
>
记住密码
</el-checkbox>
</el-form-item>
<el-form-item
class=
"ms-admin-form-item"
>
<el-button
type=
"primary"
@
click=
"checkLogin"
class=
"ms-admin-login-btn"
>
登录
</el-button>
</el-form-item>
</el-form>
</div>
</el-main>
</el-container>
</div>
</body>
</html>
<script>
var
loginVue
=
new
Vue
({
el
:
'#login'
,
data
:
{
loginForm
:
{
managerName
:
''
,
managerPassword
:
""
,
rand_code
:
''
,
},
verifCode
:
ms
.
manager
+
"/code?t="
+
new
Date
().
getTime
(),
rememberPass
:
''
,
loginFormRule
:
{
managerName
:
[{
required
:
true
,
message
:
'请输入用户名'
,
trigger
:
'blur'
},
{
min
:
3
,
max
:
6
,
message
:
'长度在 3 到 5 个字符'
,
trigger
:
'blur'
}
],
managerPassword
:
[{
required
:
true
,
message
:
'请输入密码'
,
trigger
:
'blur'
},
{
min
:
6
,
max
:
20
,
message
:
'长度在 6 到 20 个字符'
,
trigger
:
'blur'
}
],
rand_code
:
[{
required
:
true
,
message
:
'请填写验证码'
,
trigger
:
'blur'
},
{
min
:
1
,
max
:
4
,
message
:
'长度在1 到 4 个字符'
,
trigger
:
'blur'
}
],
}
},
methods
:
{
// 登录
checkLogin
:
function
()
{
var
that
=
this
;
ms
.
http
.
post
(
ms
.
manager
+
"/checkLogin.do"
,
that
.
loginForm
).
then
(
function
(
data
)
{
if
(
data
.
result
)
{
that
.
$notify
({
title
:
'成功'
,
message
:
'登录成功'
,
type
:
'success'
});
location
.
href
=
ms
.
manager
+
"/index.do"
;
}
else
{
that
.
$notify
({
title
:
'失败'
,
message
:
data
.
resultMsg
,
type
:
'warning'
});
}
},
(
err
)
=>
{
that
.
$message
.
error
(
data
.
resultMsg
);
})
},
code
:
function
()
{
this
.
verifCode
=
ms
.
manager
+
"/code?t="
+
new
Date
().
getTime
();
},
},
mounted
:
function
()
{
this
.
verifCode
=
ms
.
manager
+
"/code?t="
+
new
Date
().
getTime
()
}
})
<!DOCTYPE html>
<html
lang=
""
>
<head>
<title></title>
<!-- <#include "/include/head-file.ftl"/> -->
<!-- <link rel="stylesheet" href="${base}/static/ms-admin/4.7.0/css/login.css"> -->
<!--#include virtual="include/head-file.ftl" -->
<link
rel=
"stylesheet"
href=
"../../../static/ms-admin/4.7.0/css/login.css"
>
</head>
<body>
<div
id=
"login"
class=
"login"
>
<el-container
class=
"ms-admin-login-container"
>
<el-main
class=
"ms-admin-login-main"
>
<div
class=
"ms-admin-login-warp"
>
<img
:src=
"ms.base+'/static/ms-admin/4.7.0/images/login-slogn.png'"
>
<el-form
:model=
"loginForm"
status-icon
:rules=
"loginFormRule"
ref=
"loginForm"
label-width=
"100px"
class=
"ms-admin-login-form"
>
<h1>
<span>
账户登录 /
</span>
User login
</h1>
<el-form-item
prop=
"name"
class=
"ms-admin-form-item"
>
<el-input
type=
"text"
placeholder=
'用户名'
v-model=
"loginForm.managerName"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
prop=
"pass"
class=
"ms-admin-form-item"
>
<el-input
type=
"password"
placeholder=
'密码'
v-model=
"loginForm.managerPassword"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
prop=
"code"
class=
"ms-admin-form-item ms-admin-form-item-code"
>
<el-input
type=
"text"
placeholder=
'验证码'
v-model=
"loginForm.rand_code"
autocomplete=
"off"
></el-input>
<img
:src=
"verifCode"
class=
"code-img"
@
click=
"code"
/>
<p>
<span>
看不清?
</span>
<span
@
click=
"code"
>
换一张
</span>
</p>
</el-form-item>
<el-form-item
class=
"ms-admin-form-item ms-admin-form-item-checkout"
>
<el-checkbox
v-model=
"rememberPass"
>
记住密码
</el-checkbox>
</el-form-item>
<el-form-item
class=
"ms-admin-form-item"
>
<el-button
type=
"primary"
@
click=
"checkLogin"
class=
"ms-admin-login-btn"
>
登录
</el-button>
</el-form-item>
</el-form>
</div>
</el-main>
</el-container>
</div>
</body>
</html>
<script>
var
loginVue
=
new
Vue
({
el
:
'#login'
,
data
:
{
loginForm
:
{
managerName
:
''
,
managerPassword
:
""
,
rand_code
:
''
},
verifCode
:
ms
.
manager
+
"/code?t="
+
new
Date
().
getTime
(),
rememberPass
:
''
,
loginFormRule
:
{
managerName
:
[{
required
:
true
,
message
:
'请输入用户名'
,
trigger
:
'blur'
},
{
min
:
3
,
max
:
6
,
message
:
'长度在 3 到 5 个字符'
,
trigger
:
'blur'
}
],
managerPassword
:
[{
required
:
true
,
message
:
'请输入密码'
,
trigger
:
'blur'
},
{
min
:
6
,
max
:
20
,
message
:
'长度在 6 到 20 个字符'
,
trigger
:
'blur'
}
],
rand_code
:
[{
required
:
true
,
message
:
'请填写验证码'
,
trigger
:
'blur'
},
{
min
:
1
,
max
:
4
,
message
:
'长度在1 到 4 个字符'
,
trigger
:
'blur'
}
],
}
},
methods
:
{
// 登录
checkLogin
:
function
()
{
var
that
=
this
;
ms
.
http
.
post
(
ms
.
manager
+
"/checkLogin.do"
,
that
.
loginForm
).
then
(
function
(
data
)
{
if
(
data
.
result
)
{
that
.
$notify
({
title
:
'成功'
,
message
:
'登录成功'
,
type
:
'success'
});
location
.
href
=
ms
.
manager
+
"/index.do"
;
}
else
{
that
.
$notify
({
title
:
'失败'
,
message
:
data
.
resultMsg
,
type
:
'warning'
});
}
},
(
err
)
=>
{
that
.
$message
.
error
(
data
.
resultMsg
);
})
},
code
:
function
()
{
this
.
verifCode
=
ms
.
manager
+
"/code?t="
+
new
Date
().
getTime
();
},
},
mounted
:
function
()
{
this
.
verifCode
=
ms
.
manager
+
"/code?t="
+
new
Date
().
getTime
()
}
})
</script>
\ No newline at end of file
src/main/webapp/WEB-INF/manager/reset-password.ftl
View file @
14b4eefd
<!-- 修改密码 -->
<div id="reset-password" class="reset-password">
<el-dialog title="修改密码" :visible.sync="isShow">
<el-form :model="resetPasswordForm" label-width='80px'>
<el-form-item label="账号">
<el-input v-model="resetPasswordForm.managerName" autocomplete="off" readonly disabled></el-input>
</el-form-item>
<el-form-item label="旧密码">
<el-input v-model="resetPasswordForm.oldManagerPassword" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="新密码">
<el-input v-model="resetPasswordForm.newManagerPassword" autocomplete="off"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="isShow = false">取 消</el-button>
<el-button type="primary" @click="update">更新密码</el-button>
</div>
</el-dialog>
</div>
<script>
var resetPasswordVue = new Vue({
el: '#reset-password',
data: {
// 模态框的显示
isShow: false,
resetPasswordForm: {
managerName: '',
oldManagerPassword: '',
newManagerPassword: "",
}
},
methods: {
// 更新密码
update: function () {
isShow = false
}
}
})
<!-- 修改密码 -->
<div id="reset-password" class="reset-password">
<el-dialog title="修改密码" :visible.sync="isShow">
<el-form :model="resetPasswordForm" label-width='80px'>
<el-form-item label="账号">
<el-input v-model="resetPasswordForm.managerName" autocomplete="off" readonly disabled></el-input>
</el-form-item>
<el-form-item label="旧密码">
<el-input v-model="resetPasswordForm.oldManagerPassword" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="新密码">
<el-input v-model="resetPasswordForm.newManagerPassword" autocomplete="off"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="isShow = false">取 消</el-button>
<el-button type="primary" @click="updatePassword">更新密码</el-button>
</div>
</el-dialog>
</div>
<script>
var resetPasswordVue = new Vue({
el: '#reset-password',
data: {
// 模态框的显示
isShow: false,
resetPasswordForm: {
managerName: '',
oldManagerPassword: '',
newManagerPassword: '',
}
},
methods: {
// 更新密码
updatePassword: function () {
var that = this;
ms.http.post(ms.manager + "/updatePassword.do",that.resetPasswordForm)
.then((data)=>{
that.resetPasswordForm.oldManagerPassword = '';
that.resetPasswordForm.newManagerPassword = '';
that.isShow = false;
}, (err) => {
that.$message.error(err);
})
}
}
})
</script>
\ No newline at end of file
Write
Preview
Markdown
is supported
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