修改页面
This commit is contained in:
parent
4689b4e569
commit
96891a145c
|
@ -0,0 +1,261 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title></title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<!--浏览器小图标-->
|
||||||
|
<link rel="icon" href="http://cdn.mingsoft.net/global/static/ms-admin/4.7.0//ms.ico" type="x-icon">
|
||||||
|
<script type="text/javascript" src="https://unpkg.com/vue@2.5.21/dist/vue.min.js"></script>
|
||||||
|
<!--小图标-->
|
||||||
|
<link rel="stylesheet" href="//at.alicdn.com/t/font_847907_mkdvd7gopsg.css">
|
||||||
|
<link rel="stylesheet" href="//at.alicdn.com/t/font_974973_42u7cwycwta.css">
|
||||||
|
<!-- 引入样式 -->
|
||||||
|
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
|
||||||
|
<!-- 引入组件库 -->
|
||||||
|
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
|
||||||
|
<!--网络请求框架-->
|
||||||
|
<script src="https://cdn.bootcss.com/axios/0.18.0/axios.min.js"></script>
|
||||||
|
<script src="https://cdn.bootcss.com/qs/6.5.2/qs.min.js"></script>
|
||||||
|
<!--铭飞-->
|
||||||
|
<script src="http://cdn.mingsoft.net/ms/1.0/ms.js"></script>
|
||||||
|
<script src="http://cdn.mingsoft.net/ms/1.0/ms.http.js"></script>
|
||||||
|
<script src="http://cdn.mingsoft.net/ms/1.0/ms.util.js"></script>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="${base}/static/ms-admin/4.7.0/less/ms.less" type="text/less">
|
||||||
|
<link rel="stylesheet" href="${base}/static/ms-admin/4.7.0/css/index.css" type="text/css">
|
||||||
|
<script>
|
||||||
|
ms.base = '${base}';
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app">
|
||||||
|
<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>管理员</span>
|
||||||
|
</span>
|
||||||
|
<el-dropdown-menu class="ms-admin-login-down" slot="dropdown">
|
||||||
|
<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"
|
||||||
|
>
|
||||||
|
{{item.content}}
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
</el-main>
|
||||||
|
</el-container>
|
||||||
|
</el-container>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
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,
|
||||||
|
},
|
||||||
|
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.base + "/ms/model/list.do")
|
||||||
|
.then((data)=>{
|
||||||
|
that.menuList = data.rows
|
||||||
|
}, (err) => {
|
||||||
|
that.$message.error(data.resultMsg);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 菜单打开页面
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted:function(){
|
||||||
|
// 菜单列表
|
||||||
|
this.list();
|
||||||
|
},
|
||||||
|
})
|
||||||
|
</script>
|
|
@ -0,0 +1,148 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title></title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<!--浏览器小图标-->
|
||||||
|
<link rel="icon" href="http://cdn.mingsoft.net/global/images/ms.ico" type="x-icon">
|
||||||
|
<script type="text/javascript" src="https://unpkg.com/vue@2.5.21/dist/vue.min.js"></script>
|
||||||
|
<!--小图标-->
|
||||||
|
<link rel="stylesheet" href="//at.alicdn.com/t/font_847907_mkdvd7gopsg.css">
|
||||||
|
<!-- 引入样式 -->
|
||||||
|
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
|
||||||
|
<!-- 引入组件库 -->
|
||||||
|
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
|
||||||
|
<!--网络请求框架-->
|
||||||
|
<script src="https://cdn.bootcss.com/axios/0.18.0/axios.min.js"></script>
|
||||||
|
<script src="https://cdn.bootcss.com/qs/6.5.2/qs.min.js"></script>
|
||||||
|
<!--铭飞-->
|
||||||
|
<script src="http://cdn.mingsoft.net/ms/1.0/ms.js"></script>
|
||||||
|
<script src="http://cdn.mingsoft.net/ms/1.0/ms.http.js"></script>
|
||||||
|
<script src="http://cdn.mingsoft.net/ms/1.0/ms.util.js"></script>
|
||||||
|
<link rel="stylesheet" href="${base}/static/ms-admin/4.7.0/less/ms.less">
|
||||||
|
<link rel="stylesheet" href="${base}/static/ms-admin/4.7.0/css/login.css">
|
||||||
|
<script>
|
||||||
|
ms.base = "${base}";
|
||||||
|
ms.manager = "${managerPath}";
|
||||||
|
</script>
|
||||||
|
</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="code" class="code-img" @click="code" />
|
||||||
|
<p><span>看不清?</span><span>换一张</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: '',
|
||||||
|
},
|
||||||
|
code: ms.base + "/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(form) {
|
||||||
|
var that = this;
|
||||||
|
ms.http.post(ms.base + "/ms/checkLogin.do", form).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() {
|
||||||
|
code: ms.base + "/code?t=" + new Date().getTime();
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
mounted: {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
Loading…
Reference in New Issue