diff options
Diffstat (limited to 'nz-admin/src/main/resources/templates')
27 files changed, 0 insertions, 4067 deletions
diff --git a/nz-admin/src/main/resources/templates/404.html b/nz-admin/src/main/resources/templates/404.html deleted file mode 100644 index ec465d5f..00000000 --- a/nz-admin/src/main/resources/templates/404.html +++ /dev/null @@ -1,11 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>404</title> -</head> -<body> -404 -</body> -</html> diff --git a/nz-admin/src/main/resources/templates/header.html b/nz-admin/src/main/resources/templates/header.html deleted file mode 100644 index e19eb41b..00000000 --- a/nz-admin/src/main/resources/templates/header.html +++ /dev/null @@ -1,56 +0,0 @@ -<meta charset="UTF-8"> -<meta http-equiv="X-UA-Compatible" content="IE=edge"> -<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> -<link rel="stylesheet" href="${request.contextPath}/statics/css/bootstrap.min.css"> -<link rel="stylesheet" href="${request.contextPath}/statics/css/font-awesome.min.css"> -<link rel="stylesheet" href="${request.contextPath}/statics/css/myfont.css"> -<link rel="stylesheet" href="${request.contextPath}/statics/plugins/ztree/css/metroStyle/metroStyle.css"> -<link rel="stylesheet" href="${request.contextPath}/statics/plugins/jqgrid/ui.jqgrid-bootstrap.css"> -<link rel="stylesheet" href="${request.contextPath}/statics/libs/vue-multiselect.min.css"> -<link rel="stylesheet" href="${request.contextPath}/statics/libs/vue-easytable.css"> -<link rel="stylesheet" href="${request.contextPath}/statics/plugins/perfect-scrollbar/perfect-scrollbar.css"> -<link rel="stylesheet" href="${request.contextPath}/statics/css/main.css"> -<link rel="stylesheet" href="${request.contextPath}/statics/plugins/daterangepicker/daterangepicker.css"> -<link rel="stylesheet" href="${request.contextPath}/statics/plugins/pagination/pagination.css"> -<link rel="stylesheet" href="${request.contextPath}/statics/plugins/jquery-gridster/jquery-gridster.css"> -<link rel="stylesheet" href="${request.contextPath}/statics/plugins/switch/bootstrap-switch.css"> -<link rel="stylesheet" href="${request.contextPath}/statics/plugins/minicolors/jquery.minicolors.css"> -<script src="${request.contextPath}/statics/libs/jquery.min.js"></script> -<script src="${request.contextPath}/statics/plugins/layer/layer.js"></script> -<script src="${request.contextPath}/statics/libs/bootstrap.min.js"></script> -<!--<script src="${request.contextPath}/statics/libs/vue.min.js"></script>--> -<script src="${request.contextPath}/statics/libs/vue.upper.js"></script> -<script src="${request.contextPath}/statics/libs/vue-multiselect.min.js"></script> -<script src="${request.contextPath}/statics/libs/vue-easytable.js"></script> -<script src="${request.contextPath}/statics/libs/vuelidate.min.js"></script> -<script src="${request.contextPath}/statics/libs/validators.min.js"></script> -<script src="${request.contextPath}/statics/plugins/jqgrid/i18n/grid.locale-en.js"></script> -<script src="${request.contextPath}/statics/plugins/jqgrid/jquery.jqGrid.min.js"></script> -<script src="${request.contextPath}/statics/plugins/ztree/jquery.ztree.all.min.js"></script> -<script src="${request.contextPath}/statics/js/common.js"></script> -<script src="${request.contextPath}/statics/plugins/perfect-scrollbar/perfect-scrollbar.js"></script> -<script src="${request.contextPath}/statics/plugins/My97DatePicker/WdatePicker.js"></script> -<script src="${request.contextPath}/statics/plugins/My97DatePicker/WdatePicker.js"></script> -<script src="${request.contextPath}/statics/plugins/daterangepicker/moment.min.js"></script> -<script src="${request.contextPath}/statics/plugins/daterangepicker/daterangepicker.js"></script> -<script src="${request.contextPath}/statics/plugins/pagination/pagination.js"></script> -<script src="${request.contextPath}/statics/plugins/jquery-gridster/jquery-gridster.js"></script> -<script src="${request.contextPath}/statics/plugins/switch/bootstrap-switch.js"></script> -<script src="${request.contextPath}/statics/plugins/minicolors/jquery.minicolors.js"></script> -<script src="${request.contextPath}/statics/plugins/echarts/echarts.min.js"></script> -<!--fileinput--> -<link href="${request.contextPath}/statics/plugins/fileinput/css/fileinput.css" media="all" rel="stylesheet" type="text/css" /> -<script type="text/javascript" src="${request.contextPath}/statics/plugins/fileinput/js/fileinput.js" ></script> -<script type="text/javascript" src="${request.contextPath}/statics/plugins/fileinput/js/locales/zh.js"></script> -<link rel="stylesheet" href="${request.contextPath}/statics/css/jobx.term.css" > - -<!--term--> -<link type="text/css" rel="stylesheet" href="${request.contextPath}/statics/plugins/xterm/xterm.css"> -<link type="text/css" rel="stylesheet" href="${request.contextPath}/statics/plugins/xterm/addons/fullscreen/fullscreen.css" /> - -<script src="${request.contextPath}/statics/plugins/xterm/xterm.js" type="text/javascript"></script> -<script src="${request.contextPath}/statics/plugins/xterm/addons/attach/attach.js" type="text/javascript"></script> -<script src="${request.contextPath}/statics/plugins/xterm/addons/fit/fit.js" type="text/javascript"></script> -<script src="${request.contextPath}/statics/plugins/xterm/addons/fullscreen/fullscreen.js" type="text/javascript"></script> -<script src="${request.contextPath}/statics/js/modules/romote/jobx.term.js" type="text/javascript" ></script> -<script type="text/javascript" src="${request.contextPath}/statics/js/modules/romote/jobx.js"></script>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/index.html b/nz-admin/src/main/resources/templates/index.html deleted file mode 100644 index cc57e8fe..00000000 --- a/nz-admin/src/main/resources/templates/index.html +++ /dev/null @@ -1,144 +0,0 @@ -<!DOCTYPE html> -<#import "/spring.ftl" as spring> -<html> -<head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>NEZHA</title> - <!-- Tell the browser to be responsive to screen width --> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <link rel="stylesheet" href="${request.contextPath}/statics/css/font-awesome.min.css"> - <link rel="stylesheet" href="${request.contextPath}/statics/css/AdminLTE.min.css"> - <link rel="stylesheet" href="${request.contextPath}/statics/css/bootstrap.min.css"> - <!-- AdminLTE Skins. Choose a skin from the css/skins - folder instead of downloading all of them to reduce the load. --> - <link rel="stylesheet" href="${request.contextPath}/statics/css/all-skins.min.css"> - <link rel="stylesheet" href="${request.contextPath}/statics/css/main.css"> - <link rel="stylesheet" href="${request.contextPath}/statics/css/index.css"> - <link rel="stylesheet" href="${request.contextPath}/statics/libs/vue-multiselect.min.css"> - <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> - <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> - <!--[if lt IE 9]> - <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script> - <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> - <![endif]--> -</head> -<!-- ADD THE CLASS layout-boxed TO GET A BOXED LAYOUT --> -<body class="hold-transition skin-blue sidebar-mini"> -<!-- Site wrapper --> -<div class="wrapper" id="rrapp" v-cloak> - <header class="main-header"> - <a href="javascript:void(0);" class="logo"> - <!-- mini logo for sidebar mini 50x50 pixels --> - <span class="logo-mini"><b>NZ</b></span> - <!-- logo for regular state and mobile devices --> - <span class="logo-lg"><b>NEZHA</b></span> - </a> - <!-- Header Navbar: style can be found in header.less --> - <nav class="navbar navbar-static-top" role="navigation"> - <!-- Sidebar toggle button--> - <a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button"> - <span class="sr-only">Toggle navigation</span> - </a> - <div style="float:left;color:#fff;padding:15px 10px;"><@spring.message "common.welcome"/> {{user.username}}</div> - <div class="navbar-custom-menu"> - <ul class="nav navbar-nav"> - <li><a href="javascript:;" @click="updatePassword"><i class="fa fa-lock"></i> <@spring.message "sys.updatePwd"/></a></li> - <li> - <a class="navbar-nav_lang" href="javascript:;" @click="toChangeLang"><i class="fa fa-globe"></i> {{currLang.name}}</a> - <!-- 选择语言 --> - <div class="banner-dropdown-items"> - <div class="banner-dropdown-item" @click="changeLang(lang.value)" v-show="changeLangShow" v-for="lang in langList">{{lang.name}}</div> - </div> - </li> - <li><a href="javascript:;" @click="logout"><i class="fa fa-sign-out"></i> <@spring.message "sys.logout"/></a></li> - </ul> - </div> - </nav> - </header> - - <!-- =============================================== --> - - <!-- Left side column. contains the sidebar --> - <aside class="main-sidebar"> - <!-- sidebar: style can be found in sidebar.less --> - <section class="sidebar"> - <!-- /.search form --> - <!-- sidebar menu: : style can be found in sidebar.less --> - <ul class="sidebar-menu"> - <li class="header">导航菜单</li> - - <!-- vue生成的菜单 --> - <menu-item :item="item" v-for="item in menuList"></menu-item> - </ul> - </section> - <!-- /.sidebar --> - </aside> - <!-- =============================================== --> - <!-- Content Wrapper. Contains page content --> - <div class="content-wrapper"> - <!-- Content Header (Page header) --> - <section class="content-header"> - <ol class="breadcrumb" id="nav_title" style="position:static;float:none;"> - <li class="active"><i class="fa fa-home" style="font-size:20px;position:relative;top:2px;left:-3px;"></i> <@spring.message "common.home"/></li> - <li class="active">{{navTitle}}</li> - </ol> - </section> - - <!-- Main content --> - <section class="content" style="background:#fff;"> - <iframe id="childIframe" scrolling="yes" frameborder="0" style="width:100%;min-height:200px;overflow:visible;background:#fff;" :src="main"></iframe> - </section> - <!-- /.content --> - </div> - <!-- /.content-wrapper --> -<!-- - <footer class="main-footer"> - <div class="pull-right hidden-xs"> - Version 4.0.0 - </div> - Copyright © 2019 <a href="https://www.nezha.io" target="_blank">nezha.io</a> All Rights Reserved - </footer> --> - - <!-- Add the sidebar's background. This div must be placed - immediately after the control sidebar --> - <div class="control-sidebar-bg"></div> - - <!-- 修改密码 --> - <div id="passwordLayer" style="display: none;"> - <form class="form-horizontal"> - <div class="form-group"> - <div class="form-group"> - <div class="col-sm-2 control-label">账号</div> - <span class="label label-success" style="vertical-align: bottom;">{{user.username}}</span> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label">原密码</div> - <div class="col-sm-10"> - <input type="password" class="form-control" v-model="password" placeholder="原密码"/> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label">新密码</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="newPassword" placeholder="新密码"/> - </div> - </div> - </div> - </form> - </div> -</div> -<!-- ./wrapper --> - - - -<script src="${request.contextPath}/statics/libs/jquery.min.js"></script> -<script src="${request.contextPath}/statics/libs/vue.min.js"></script> -<script src="${request.contextPath}/statics/libs/vue-multiselect.min.js"></script> -<script src="${request.contextPath}/statics/libs/router.js"></script> -<script src="${request.contextPath}/statics/libs/bootstrap.min.js"></script> -<script src="${request.contextPath}/statics/libs/app.js"></script> -<script src="${request.contextPath}/statics/plugins/layer/layer.js"></script> -<#include "/js/index.js"> -</body> -</html> diff --git a/nz-admin/src/main/resources/templates/index1.html b/nz-admin/src/main/resources/templates/index1.html deleted file mode 100644 index 0cbeef51..00000000 --- a/nz-admin/src/main/resources/templates/index1.html +++ /dev/null @@ -1,113 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="UTF-8"> - <title>人人权限系统</title> - <meta name="renderer" content="webkit"> - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> - <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> - <meta name="apple-mobile-web-app-status-bar-style" content="black"> - <meta name="apple-mobile-web-app-capable" content="yes"> - <meta name="format-detection" content="telephone=no"> - <link rel="stylesheet" type="text/css" href="${request.contextPath}/statics/plugins/layui/css/layui.css"> - <link rel="stylesheet" type="text/css" href="${request.contextPath}/statics/css/font-awesome.min.css"> - <link rel="stylesheet" type="text/css" href="${request.contextPath}/statics/css/index1.css"> -</head> -<body> -<div class="layui-layout layui-layout-admin" id="layui_layout"> - <!-- 顶部区域 --> - <div class="layui-header header header-demo"> - <div class="layui-main"> - <!-- logo区域 --> - <div class="admin-logo-box"> - <a class="logo" href="javascript:;">人人权限系统</a> - <div class="larry-side-menu"> - <i class="fa fa-bars" aria-hidden="true"></i> - </div> - </div> - <!-- 顶级菜单区域 --> - <!-- <div class="layui-larry-menu"> - <ul class="layui-nav clearfix"> - <li class="layui-nav-item layui-this"> - <a href="javascirpt:;"><i class="iconfont icon-wangzhanguanli"></i>内容管理</a> - </li> - <li class="layui-nav-item"> - <a href="javascirpt:;"><i class="iconfont icon-weixin3"></i>微信公众</a> - </li> - <li class="layui-nav-item"> - <a href="javascirpt:;"><i class="iconfont icon-ht_expand"></i>扩展模块</a> - </li> - </ul> - </div> --> - <!-- 右侧导航 --> - <ul class="layui-nav larry-header-item"> - <li class="layui-nav-item"><a href="javascript:;" @click="donate"><i class="fa fa-jpy"></i> 捐赠作者</a></li> - <li class="layui-nav-item"><a href="http://www.nezha.io" target="_blank"><i class="fa fa-home"></i> 人人开源</a></li> - <li class="layui-nav-item"><a href="javascript:;" @click="updatePassword"><i class="fa fa-lock"></i> 修改密码</a></li> - <li class="layui-nav-item"><a href="logout"><i class="fa fa-sign-out"></i> 退出系统</a></li> - </ul> - </div> - </div> - <!-- 左侧侧边导航开始 --> - <div class="layui-side layui-side-bg layui-larry-side" id="larry-side"> - <div class="layui-side-scroll" id="larry-nav-side" lay-filter="side"> - <!-- 左侧菜单 --> - <ul class="layui-nav layui-nav-tree"> - <menu-item :item="item" v-for="item in menuList"></menu-item> - </ul> - </div> - </div> - - <!-- 左侧侧边导航结束 --> - <!-- 右侧主体内容 --> - <div class="layui-body" id="larry-body" style="bottom: 0;border-left: solid 2px #1AA094;"> - <div class="layui-tab layui-tab-card larry-tab-box" id="larry-tab" lay-filter="main-tab" lay-allowclose="true"> - <ul class="layui-tab-title"> - <li class="layui-this" id="admin-home"><i class="fa fa-home"></i><em>控制台</em></li> - </ul> - <div class="layui-tab-content" style="min-height: 150px; overflow: hidden"> - <div class="layui-tab-item layui-show"> - <iframe class="larry-iframe" data-id='0' src="main.html"></iframe> - </div> - </div> - </div> - - - </div> - <!-- 底部区域 --> - <div class="layui-footer layui-larry-foot" id="larry-footer"> - <div class="layui-mian"> - Copyright © 2019 <a href="https://www.nezha.io" target="_blank">nezha.io</a> All Rights Reserved - </div> - </div> - - <!-- 修改密码 --> - <div id="passwordLayer" style="display: none;"> - - <form class="layui-form" action=""> - <div class="layui-form-item"> - <label class="layui-form-label">账号</label> - <label class="layui-form-label laber-account">{{user.username}}</label> - </div> - <div class="layui-form-item"> - <label class="layui-form-label">原密码</label> - <div class="layui-input-inline"> - <input type="password" v-model="password" placeholder="原密码" autocomplete="off" class="layui-input"> - </div> - </div> - <div class="layui-form-item"> - <label class="layui-form-label">新密码</label> - <div class="layui-input-inline"> - <input type="text" v-model="newPassword" placeholder="新密码" autocomplete="off" class="layui-input"> - </div> - </div> - </form> - </div> -</div> - -<script type="text/javascript" src="${request.contextPath}/statics/libs/jquery.min.js"></script> -<script type="text/javascript" src="${request.contextPath}/statics/plugins/layui/layui.js"></script> -<script type="text/javascript" src="${request.contextPath}/statics/libs/vue.min.js"></script> -<script type="text/javascript" src="${request.contextPath}/statics/js/index1.js"></script> -</body> -</html>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/js/index.js b/nz-admin/src/main/resources/templates/js/index.js deleted file mode 100644 index 3c433745..00000000 --- a/nz-admin/src/main/resources/templates/js/index.js +++ /dev/null @@ -1,171 +0,0 @@ -<script> -//生成菜单 -var menuItem = Vue.extend({ - name: 'menu-item', - props:{item:{}}, - template:[ - '<li>', - ' <a v-if="item.type === 0" href="javascript:;">', - ' <i v-if="item.icon != null" :class="item.icon"></i>', - ' <span>{{item.name}}</span>', - ' <i class="fa fa-angle-left pull-right"></i>', - ' </a>', - ' <ul v-if="item.type === 0" class="treeview-menu">', - ' <menu-item :item="item" v-for="item in item.list"></menu-item>', - ' </ul>', - - ' <a v-if="item.type === 1 && item.parentId === 0" :href="\'#\'+item.url">', - ' <i v-if="item.icon != null" :class="item.icon"></i>', - ' <span>{{item.name}}</span>', - ' </a>', - - ' <a v-if="item.type === 1 && item.parentId != 0" :href="\'#\'+item.url"><i v-if="item.icon != null && item.icon.length > 0" :class="item.icon"></i><i v-else class="fa fa-circle-o"></i> {{item.name}}</a>', - '</li>' - ].join('') -}); - -//iframe自适应 -$(window).on('resize', function() { - var $content = $('.content'); - $content.height($(this).height() - 154); - $content.find('iframe').each(function() { - $(this).height($content.height()); - $(this).contents().find('.ui-jqgrid-bdiv').height($content.height()-130); - }); -}).resize(); - -//注册菜单组件 -Vue.component('menuItem',menuItem); - -var vm = new Vue({ - el:'#rrapp', - data:{ - user:{}, - menuList:{}, - main:"main.html", - password:'', - newPassword:'', - navTitle:"控制台", - changeLangShow: false, //是否显示语言列表 - langList: [], - currLang: {} - }, - methods: { - getMenuList: function (event) { - $.getJSON("sys/menu/nav?_"+$.now(), function(r){ - vm.menuList = r.menuList; - }); - }, - getUser: function(){ - $.getJSON("sys/user/info?_"+$.now(), function(r){ - vm.user = r.user; - }); - }, - updatePassword: function(){ - layer.open({ - type: 1, - skin: 'layui-layer-molv', - title: "修改密码", - area: ['550px', '270px'], - shadeClose: false, - content: jQuery("#passwordLayer"), - btn: ['修改','取消'], - btn1: function (index) { - var data = "password="+vm.password+"&newPassword="+vm.newPassword; - $.ajax({ - type: "POST", - url: "sys/user/password", - data: data, - dataType: "json", - success: function(result){ - if(result.code == 200){ - layer.close(index); - layer.alert('修改成功', function(index){ - location.reload(); - }); - }else{ - layer.alert(result.msg); - } - } - }); - } - }); - }, - toChangeLang: function() { - vm.changeLangShow = !(vm.changeLangShow); - }, - getLangList: function(event) { //查字典获取语言种类 - $.getJSON("sys/i18n/getLangList2", function(r){ - vm.langList = r.data; - }); - }, - changeLang: function(lang) { - location.href = "?_lang=" + lang; - }, - getCurrLang: function() { - $.getJSON("sys/i18n/getCurrLang", function(r){ - if (r.code == '200') { - vm.currLang = r.data; - } - }); - }, - donate: function() { - layer.open({ - type: 2, - title: false, - area: ['806px', '467px'], - closeBtn: 1, - shadeClose: false, - content: ['http://cdn.nezha.io/donate.jpg', 'no'] - }); - }, - logout: function() { - $.get("${request.contextPath}/logout"); - location.reload(); - } - }, - created: function(){ - this.getMenuList(); - this.getUser(); - this.getLangList(); - this.getCurrLang(); - }, - updated: function(){ - //路由 - var router = new Router(); - routerList(router, vm.menuList); - router.start(); - } -}); - - - -function routerList(router, menuList){ - for(var key in menuList){ - var menu = menuList[key]; - if(menu.type == 0){ - routerList(router, menu.list); - }else if(menu.type == 1){ - router.add('#'+menu.url, function() { - var url = window.location.hash; - //替换iframe的url - //vm.main = url.replace('#', ''); - goNext(url.replace('#', '')); - - //导航菜单展开 - $(".treeview-menu li").removeClass("active"); - $("a[href='"+url+"']").parents("li").addClass("active"); - - vm.navTitle = $("a[href='"+url+"']").text(); - - window.location.hash = url + "?_" + new Date().getTime(); - }); - } - } -} - -function goNext(url) { - vm.main = url; - $("#childIframe")[0].contentWindow.location.reload(true); -} -</script>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/js/modules/romote/console.js b/nz-admin/src/main/resources/templates/js/modules/romote/console.js deleted file mode 100644 index 5be3dfe5..00000000 --- a/nz-admin/src/main/resources/templates/js/modules/romote/console.js +++ /dev/null @@ -1,242 +0,0 @@ -<script> - var terminal=Vue.extend({ - template:"#nzConsole", - components: { - - }, - props: { - accountId:{ - type:Number, - required:true - }, - token:{ - type:String, - required:true - }, - isNew:{ - type:Boolean, - required:true - }, - name:{ - type:String, - required:true - }, - index:{ - type:Number - }, - hideAlldom:{ - type:Function, - required:true - } - }, - data: function () { - return { - terminalWin:null, - domContainerSelector:"", - domheadSelector:"", - - } - }, - validations:{ - - }, - created:function(){ - - }, - methods: { - init:function(){ - var temp=this; - temp.domContainerSelector="#terminal-container-"+temp.accountId+"-"+temp.token; - temp.domheadSelector="#terminal-head-"+temp.accountId+"-"+temp.token; - temp.terminalWin=new JobXTerm(temp.token,null,temp.domContainerSelector); - $(temp.domContainerSelector).appendTo($("#terminal-context")); - $(temp.domheadSelector).unbind("click").bind("click",temp.activeSelf) - - if(typeof temp.isNew != "undefined"&&temp.isNew){ - // $(temp.domContainerSelector).get(0).style.display="none"; - temp.activeSelf(); - } - - - }, - activeSelf:function(){ - var temp=this; - $(".terminal-head").removeClass("active"); - temp.hideAlldom(); - $(temp.domheadSelector).addClass("active"); - $(temp.domContainerSelector).get(0).style.display="block"; - temp.$emit("sign-current-win",temp.token); - }, - hideSelf:function(){ - var temp=this; - try{ - $(temp.domheadSelector).removeClass("active"); - $(temp.domContainerSelector).get(0).style.display="none"; - }catch(e){ - console.log("errorID-->"+temp.domheadSelector) - } - - }, - closeSelf:function(event){ - event.stopPropagation(); - this.terminalWin.socket.onclose(); - // $(this.domContainerSelector).remove(); - // $(this.domheadSelector).remove(); - - this.$emit("close-win",this.index,this.token); - } - - }, - computed: { - - }, - watch: { - }, - mounted: function () { - this.init(); - } - }) - Vue.component("nz-terminal",terminal) - var vm=new Vue({ - el:"#terminalwin", - data:{ - terminals:[], - sendAllCmd:"", - curToken:'' - }, - created:function(){ - var temp=this; - window.addEventListener("storage", function (e) { - if(e.key == 'terminals'){ - temp.terminals=JSON.parse(e.newValue); - } - }); - window.onbeforeunload = function (e){ - localStorage.setItem("pageCreated",false); - for (var i in temp.terminals){ - var terminal=temp.terminals; - temp.closeWinWithToken(i,terminal.token); - } - temp.terminals=[]; //会导致刷新页面 控制台也丢失 - localStorage.setItem("terminals",JSON.stringify(temp.terminals)) - return true; - } - temp.terminals=JSON.parse(localStorage.getItem("terminals")); - - }, - methods:{ - init:function(){ - var temp=this; - $('#file').fileinput({ - language: 'zh', - showPreview : true, - browseOnZoneClick:false, - uploadUrl : baseURL+'/account/upload.do', - removeLabel : "删除", - showCaption: true, //是否显示标题, - dropZoneEnabled:true, - dropZoneTitle:"拖拽文件到这里来上传...", - resizeImage: false, - previewFileIcon: "<i class='glyphicon glyphicon-king'></i>", - initialCaption: "请选择要上传的文件", - maxFileSize:1024*1024*100,//文件最大100M - allowedFileExtensions : null, - elErrorContainer: '#errorBlock', - uploadExtraData: function() { - var obj = {}; - obj.token=temp.curToken; - obj.path = $("#path").val(); - return obj; - } - }).on("fileuploaded", function(event, data) { - if (!data.response) { - alert('文件格式类型不正确'); - }else if (data.response.success == "false") { - window.setTimeout(function () { - $("#upload_push").find(".progress-bar-success").addClass("progress-bar-danger").removeClass("progress-bar-success"); - $(".file-actions").find(".glyphicon-ok-sign").addClass("text-danger glyphicon-remove-sign").removeClass("glyphicon-ok-sign text-success"); - var uperrorhtml = - '<span class="close kv-error-close" onclick="colseUpError()">×</span>' + - '<ul>' + - '<li><b>上传失败: (可能有以下原因)</b></li>' + - '<li><b>1): </b>文件大小太大,上传失败</li>' + - '<li><b>2): </b>上传路径是当前路径,且控制台正在实时输出日志(无法获取当前路径)</li>' + - '</ul>'; - $(".file-error-message").css({"margin":"8px 0px"}); - $("#errorBlock").html(uperrorhtml).show(); - },300); - } - }); - }, - upload:function(){ - $("#upload_push").modal('show'); - $(".fileinput-remove-button").click(); - $("#path").val(''); - }, - hideAllDom:function(){ - var temp=this; - var componets=temp.$refs.nzTerminal; - for (var i in componets){ - var componet=componets[i]; - componet.hideSelf(); - } - }, - signCurrentWin:function(token){ - this.curToken=token; - }, - closeWinWithToken:function(index,token){ - var temp=this; - var len=temp.terminals.length; - if(len>1){ //避免弹两次询问窗口 - // confirm("确定关闭窗口吗?",function(){ - // temp.closeAjax(index,token); - // layer.closeAll("dialog"); - // }) - temp.terminals.splice(index,1); - localStorage.setItem("terminals",JSON.stringify(temp.terminals)); - }else{ - // temp.closeAjax(index,token); - window.close(); - } - - }, - reopen:function(){ - var temp=this; - $.ajax({ - url:baseURL+"/account/reopen.do", - type:"post", - data:{"token":temp.curToken}, - success:function(){ - - } - }) - }, - closeAjax:function(index,token){ - var temp=this; - $.ajax({ - url:baseURL+"/terminal/close.do", - type:"POST", - data:{"tokens":token}, - success:function(r){ - console.log("close result") - console.log(r); - if(r.code == "200"){ - var len=temp.terminals.length; - - temp.terminals.splice(index,1); - localStorage.setItem("terminals",JSON.stringify(temp.terminals)); - if(len<=1){ - window.close(); - } - }else{ - alert("关闭失败") - } - } - }) - } - }, - mounted:function(){ - this.init(); - } - }) -</script>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/js/modules/romote/main.js b/nz-admin/src/main/resources/templates/js/modules/romote/main.js deleted file mode 100644 index 98838b65..00000000 --- a/nz-admin/src/main/resources/templates/js/modules/romote/main.js +++ /dev/null @@ -1,10 +0,0 @@ -<script> -var orignalSetItem = localStorage.setItem; -localStorage.setItem = function(key,newValue){ - var setItemEvent = new Event("setItemEvent"); - setItemEvent.key=key; - setItemEvent.newValue = newValue; - window.dispatchEvent(setItemEvent); - orignalSetItem.apply(this,arguments); -} -</script> diff --git a/nz-admin/src/main/resources/templates/js/modules/romote/romote.js b/nz-admin/src/main/resources/templates/js/modules/romote/romote.js deleted file mode 100644 index b9d8b152..00000000 --- a/nz-admin/src/main/resources/templates/js/modules/romote/romote.js +++ /dev/null @@ -1,75 +0,0 @@ -<script> - var vm = new Vue({ - el:"#terminalWindow", - data:{ - terminals:[], - pageCreated:false - }, - created:function(){ - var temp=this; - window.addEventListener("setItemEvent", function(e) { - if(e.key == "pageCreated"){ - console.log("pageCreated1-->"+e.newValue) - temp.pageCreated=e.newValue; - } - }); - window.addEventListener("storage", function (e) { - if(e.key == 'pageCreated'){ - console.log("pageCreated2-->"+e.newValue) - temp.pageCreated=e.newValue; - } - if(e.key == 'terminals'){ - temp.terminals=JSON.parse(e.newValue) - } - // localStorage.clear(); - }); - }, - methods:{ - openTerminal:function(id){ - var temp=this; - $.ajax({ - url:baseURL+"/account/ssh.do", - type: "post", - data: {"id":id}, - success:function(json){ - - if(json&&json.toString().indexOf("login")>-1){ - window.location.href=baseURL; - } - console.log(json) - if ( json.data.status != "success" ) { - if (json.data.status == "authfail" || json.data.status == "keyauthfail") { - alert("用户名密码错误,登录失败"); - } else if (json.data.status == "hostfail") { - alert("DNS解析失败"); - } else if (json.data.status == "genericfail") { - alert("连接失败请重试"); - } - } else { - confirm("登录成功,确定打开终端吗?",function(index){ - // temp.showTerminal=true; - for (var i in temp.terminals){ - var terminal=temp.terminals[i]; - terminal.isNew=false; - } - temp.terminals.push({"token":json.data.token,"name":json.data.name,"accountId":id,"isNew":true}) - localStorage.clear(); - localStorage.setItem("terminals",JSON.stringify(temp.terminals)) - if(!temp.pageCreated||"false"==temp.pageCreated){ - console.log('open') - window.open("./console.html","_blank") - localStorage.setItem("pageCreated",true); - } - layer.closeAll("dialog"); - }) - } - } - }) - - }, - - } - - - }) -</script>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/js/modules/sys/i18n.js b/nz-admin/src/main/resources/templates/js/modules/sys/i18n.js deleted file mode 100644 index b8c2bb5a..00000000 --- a/nz-admin/src/main/resources/templates/js/modules/sys/i18n.js +++ /dev/null @@ -1,217 +0,0 @@ -<script> -$(function () { - $("#jqGrid").jqGrid({ - url: baseURL + 'sys/i18n/list', - datatype: "json", - colModel: [ - { label: 'ID', name: 'id', width: 30, key: true, hidden: true }, - { label: 'Code', name: 'code', width: 60 }, - { label: '<@spring.message "common.language"/>', name: 'lang', sortable: false, width: 60 }, - { label: 'Value', name: 'value', width: 100, sortable: false }, - { label: '<@spring.message "common.remark"/>', name: 'remark', width: 80, sortable: false } - ], - viewrecords: true, - height: top.$(".content").height()-130, - rowNum: 15, - rowList : [15,30,50], - rownumbers: true, - rownumWidth: 25, - autowidth:true, - multiselect: true, - pager: "#jqGridPager", - jsonReader : { - root: "data.list", - page: "data.currPage", - total: "data.totalPage", - records: "data.totalCount" - }, - prmNames : { - page:"page", - rows:"limit", - order: "order" - }, - gridComplete:function(){ - //隐藏grid底部滚动条 - $("#jqGrid").closest(".ui-jqgrid-bdiv").css({ "overflow-x" : "hidden" }); - }, - onSelectAll: function(rowids, status) { - if (status) { - toolsBtnHandle(); - } - }, - onSelectRow: function(rowid,status) { - toolsBtnHandle(); - } - }); -}); -//注册select组件 -Vue.component('multiselect', window.VueMultiselect.default); -//引用vuelidate组件 -Vue.use(window.vuelidate.default); -//引用校验规则 所有校验规则见 https://vuelidate.netlify.com/#sub-builtin-validators -var required = window.validators.required; -var helpers = window.validators.helpers;//引入自定义校验规则助手 helpers -//自定义规则,校验i18n的lang+code组合不能重复;第一个参数是当前字段值,第二个参数是当前校验的整个对象(此处是vm.data.i18n) -var checkI18n = function(value, i18n) { - if (helpers.req(i18n.lang) && helpers.req(value)) { - var params = "?lang=" + i18n.lang + "&code=" + value; - if (i18n.id) { - params = params + "&id=" + i18n.id; - } - var flag = true; - $.ajax({ - type: "get", - url: baseURL + "sys/i18n/check" + params, - async: false, //关闭异步,否则会在执行完ajax前就跳到下一段代码 - dataType: "json", - success: function(r){ - if (r.code != 200) { - flag = false; - } - } - }); - return flag; - } else { - return true; - } -} - -var vm = new Vue({ - el:'#rrapp', - data:{ - //single和multi分别控制工具栏的单选、多选按钮的可点击状态 - single: true, - multi: true, - - q:{ - code: null, - lang: null, - value: null - }, - showList: true, - title: null, - i18n: { - code: "", - lang: "", - value: "", - remark: "", - id: null - }, - langList: [] - }, - validations: { //定义校验规则 - i18n: { - code: { - required, - checkI18n - }, - lang: { - required - }, - value: { - required - } - } - }, - methods: { - query: function () { - vm.reload(); - }, - getLangList: function(event) { //查字典获取语言种类 - $.getJSON(baseURL + "sys/i18n/getLangList", function(r){ - var langList = []; - for (var i = 0; i < r.data.length; i++) { - langList.push(r.data[i]); - } - vm.langList = langList; - }); - }, - add: function(){ - vm.$v.i18n.$reset(); //进入新增页面时,将校验的触发状态清空($dirty=true -> false) - vm.showList = false; - vm.title = "<@spring.message 'common.add'/>"; - vm.i18n = {code:null,lang:null,value:null,remark:null,id:null}; - }, - update: function () { - vm.$v.i18n.$reset(); //进入新增页面时,将校验触发状态清空($dirty=true -> false) - var id = getSelectedRow(); - if(id == null){ - return ; - } - vm.showList = false; - vm.title = "<@spring.message 'common.edit'/>"; - vm.getInfo(id); - }, - getInfo: function(id){ - $.get(baseURL + "sys/i18n/detail?id="+id, function(r){ - vm.i18n = r.data; - }); - }, - del: function (event) { - var ids = getSelectedRows(); - if(ids == null){ - return ; - } - confirm("<@spring.message 'common.confirmDelete'/>", function(){ - $.ajax({ - type: "DELETE", - url: baseURL + "sys/i18n/delete", - contentType: "application/json", - data: JSON.stringify(ids), - success: function(r){ - if(r.code == 200){ - alert("<@spring.message 'common.success'/>", function(index){ - vm.reload(); - }); - }else{ - alert(r.msg); - } - } - }); - }); - }, - saveOrUpdate: function (event) { - if (!vm.validate()) { //在下方定义的validate方法 - return; - } - var url = vm.i18n.id == null ? "sys/i18n/save" : "sys/i18n/update"; - $.ajax({ - type: vm.i18n.id == null ? "POST" : "PUT", - url: baseURL + url, - contentType: "application/json", - data: JSON.stringify(vm.i18n), - success: function(r){ - if(r.code === 200){ - alert("<@spring.message 'common.success'/>", function(index){ - vm.reload(); - }); - }else{ - alert(r.msg); - } - } - }); - }, - reload: function (event) { - vm.single = vm.multi = true; - vm.showList = true; - var page = $("#jqGrid").jqGrid('getGridParam','page'); - $("#jqGrid").jqGrid('setGridParam',{ - postData:{'code': vm.q.code, 'lang': vm.q.lang, 'value': vm.q.value}, - page:1 - }).trigger("reloadGrid"); - }, - refresh: function () { - $.get(baseURL + "sys/i18n/clearCache", function(r){ - parent.location.reload(); - }); - }, - validate: function () {//提交时的校验 - vm.$v.i18n.$touch(); //提交时,不论是否已触发校验,都触发一下($dirty=false -> true) - return !vm.$v.i18n.$error; - } - }, - created: function(){ - this.getLangList(); - } -}); -</script>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/js/modules/sys/icon.js b/nz-admin/src/main/resources/templates/js/modules/sys/icon.js deleted file mode 100644 index 3b79db06..00000000 --- a/nz-admin/src/main/resources/templates/js/modules/sys/icon.js +++ /dev/null @@ -1,86 +0,0 @@ -<script> -var data = { - q: { - iconName: null // 搜索的名称 - }, - icons: [], // 全部的图标 - selectedIcon: null // 选中的图标 -}; - -var iconVm = new Vue({ - el: '#wrap', - data: this.data, - methods: { - searchIcons: function () { - // 搜索之前先展开所有 - $("section").css('display','block'); - $(".fontawesome-icon-list div").css('display','block'); - - // 如果没有搜索条件则展开所有后直接返回 - if (iconVm.q.iconName == null || iconVm.q.iconName == "") { - return; - } - - // 查到的集合 (要展示的集合) - var searchedIcons = []; - iconVm.icons.forEach(function (item) { - if (item.indexOf(iconVm.q.iconName) == 0) { - searchedIcons.push(item); - } - }) - - // 没有查到的集合 (要隐藏的集合) - var otherIcons = iconVm.icons.filter(function (item) { - if (searchedIcons.indexOf(item) == -1) { - $(".fa-"+item).parent().parent().hide(); - return item; - } - }); - - var allIconList = $(".fontawesome-icon-list"); - for (var i = 0; i < allIconList.length; i++) { - var count = 0; - var childrens = $(allIconList[i]).children(); - var allLenght = childrens.length; - for (var j = 0; j < allLenght ; j++) { - if ($(childrens[j]).is(":hidden")) { - count++; - } - } - // 如果下方都没有 则隐藏整体 - if (count == allLenght) { - $(allIconList[i]).parent().hide(); - } - } - }, - handleClick: function(event) { - var paths = event.path; - for (var i = 0; i < paths.length; i++) { - if ($(paths[i]).hasClass('fa-hover')) { - iconVm.selectedIcon = $(paths[i]).text().trim(); - var thatIcon = window.parent.document.getElementById("icon"); - thatIcon.setAttribute('class','fa fa-' + iconVm.selectedIcon + ''); - // window.localStorage.setItem("icon", 'fa fa-'+iconVm.selectedIcon); - break; - } - } - } - }, - created: function() { - var iconStr = $("#icons section div div a").text(); - data.icons = iconStr.split(" "); - - data.icons = data.icons.filter(function (item) { - if (item.length > 0 && item.indexOf("/r") == -1 && item.indexOf("/n") == -1) { - return item; - } - }); - }, - mounted () { - window.addEventListener('click',this.handleClick) - }, - destroyed () { - window.removeEventListener('click',this.handleClick) - } -}); -</script>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/js/modules/sys/menu.js b/nz-admin/src/main/resources/templates/js/modules/sys/menu.js deleted file mode 100644 index 8dcf8719..00000000 --- a/nz-admin/src/main/resources/templates/js/modules/sys/menu.js +++ /dev/null @@ -1,273 +0,0 @@ -<script> - -var setting = { - data: { - simpleData: { - enable: true, - idKey: "menuId", - pIdKey: "parentId", - rootPId: -1 - }, - key: { - url:"nourl" - } - } -}; -var ztree; - - -var data = { - showList: true, - title: null, - menu: { - parentName: null, - parentId: 0, - type: 1, - orderNum: 0, - icon: null, - name: null, - url: null - } -} - -Vue.use(window.vuelidate.default); -var required = window.validators.required; - -var urlRequired = function (value, menu) { - if (menu.type === 1) { - var flag = true; - if (isBlank(value)) { - flag = false; - } - return flag; - } else { - return true; - } -} - -var vm = new Vue({ - el:'#rrapp', - data: this.data, - validations: { - menu: { - name: { - required - }, - url: { - urlRequired - } - } - }, - methods: { - getMenu: function(menuId){ - //加载菜单树 - $.get(baseURL + "sys/menu/select", function(r){ - ztree = $.fn.zTree.init($("#menuTree"), setting, r.menuList); - var node = ztree.getNodeByParam("menuId", vm.menu.parentId); - ztree.selectNode(node); - - vm.menu.parentName = node.name; - }) - }, - add: function(){ - vm.$v.menu.$reset(); - vm.showList = false; - vm.title = "<@spring.message 'common.add'/>"; - vm.menu = { - parentName: null, - parentId: 0, - type: 1, - orderNum: 0, - icon: null, - name: null, - url: null - }; - vm.getMenu(); - }, - update: function () { - vm.$v.menu.$reset(); - var menuId = getMenuId(); - if(menuId == null){ - return ; - } - $.get(baseURL + "sys/menu/info/"+menuId, function(r){ - vm.showList = false; - vm.title = "<@spring.message 'common.edit'/>"; - vm.menu = r.menu; - - // 处理图标 - if (vm.menu.icon != null && vm.menu.icon != '') { - $("#icon").attr('class', vm.menu.icon); - } else { - $("#icon").attr('class', null); - } - - vm.getMenu(); - }); - }, - del: function () { - var menuId = getMenuId(); - if(menuId == null){ - return ; - } - - confirm("<@spring.message 'common.confirmDelete'/>", function(){ - $.ajax({ - type: "POST", - url: baseURL + "sys/menu/delete", - data: "menuId=" + menuId, - success: function(r){ - if(r.code === 200){ - alert("<@spring.message 'common.success'/>", function(){ - vm.reload(); - }); - }else{ - alert(r.msg); - } - } - }); - }); - }, - saveOrUpdate: function () { - if (!this.validator()) { - return; - } - - if ($("#icon").attr('class') != undefined) { - vm.menu.icon = $("#icon").attr('class').trim(); - } else { - vm.menu.icon = null; - } - - var url = vm.menu.menuId == null ? "sys/menu/save" : "sys/menu/update"; - $.ajax({ - type: "POST", - url: baseURL + url, - contentType: "application/json", - data: JSON.stringify(vm.menu), - success: function(r){ - if(r.code === 200){ - alert("<@spring.message 'common.success'/>", function(){ - vm.reload(); - }); - }else{ - alert(r.msg); - } - } - }); - }, - menuTree: function(){ - layer.open({ - type: 1, - offset: '50px', - skin: 'layui-layer-molv', - title: "<@spring.message 'common.pleaseSelect'/><@spring.message 'menu.menu'/>", - area: ['300px', '450px'], - shade: 0, - shadeClose: false, - content: jQuery("#menuLayer"), - btn: ["<@spring.message 'common.submit'/>", "<@spring.message 'common.back'/>"], - btn1: function (index) { - var node = ztree.getSelectedNodes(); - //选择上级菜单 - vm.menu.parentId = node[0].menuId; - vm.menu.parentName = node[0].name; - - layer.close(index); - } - }); - }, - reload: function () { - vm.showList = true; - Menu.table.refresh(); - $("#icon").attr('class', ''); - }, - validator: function () { - vm.$v.menu.$touch(); - return !vm.$v.menu.$error; - }, - getIcon: function() { // 获取图标 - var currentUrl = window.location.href; - var a = currentUrl.split('/'); - currentUrl = currentUrl.substring(0,currentUrl.indexOf(a[a.length-1])); - var index = layer.open({ - area: ['75%', '100%'], - shade: 0.01, - title: "<@spring.message 'menu.getIcon'/>", // 获取图标 - type: 2, - fixed: false, - maxmin: false, - scrollbar: false, - offset: 'r', - closeBtn: 1, - move: false, - content: currentUrl+"icons.html" - }); - }, - cancelIcon: function () { - vm.menu.icon = ''; - $("#icon").attr('class', ''); - } - } -}); - - -var Menu = { - id: "menuTable", - table: null, - layerIndex: -1 -}; - -/** - * 初始化表格的列 - */ -Menu.initColumn = function () { - var columns = [ - {field: 'selectItem', radio: true}, - {title: 'ID', field: 'menuId', visible: false, align: 'center', valign: 'middle', width: '80px'}, - {title: "<@spring.message 'common.name'/>", field: 'name', align: 'center', valign: 'middle', sortable: true, width: '180px'}, - {title: "<@spring.message 'menu.parent'/>", field: 'parentName', align: 'center', valign: 'middle', sortable: true, width: '100px'}, - {title: "<@spring.message 'menu.icon'/>", field: 'icon', align: 'center', valign: 'middle', sortable: true, width: '80px', formatter: function(item, index){ - return item.icon == null ? '' : '<i class="'+item.icon+' fa-lg"></i>'; - }}, - {title: "<@spring.message 'menu.type'/>", field: 'type', align: 'center', valign: 'middle', sortable: true, width: '100px', formatter: function(item, index){ - if(item.type === 0){ - return "<span class='label label-primary'><@spring.message 'menu.directory'/></span>"; - } - if(item.type === 1){ - return "<span class='label label-success'><@spring.message 'menu.menu'/></span>"; - } - if(item.type === 2){ - return "<span class='label label-warning'><@spring.message 'common.button'/></span>"; - } - }}, - {title: "<@spring.message 'menu.sortNumber'/>", field: 'orderNum', align: 'center', valign: 'middle', sortable: true, width: '100px'}, - {title: "URL", field: 'URL', align: 'center', valign: 'middle', sortable: true, width: '160px'}, - {title: "<@spring.message 'menu.authority.flag'/>", field: 'perms', align: 'center', valign: 'middle', sortable: true}] - return columns; -}; - - -function getMenuId () { - var selected = $('#menuTable').bootstrapTreeTable('getSelections'); - if (selected.length == 0) { - alert("<@spring.message 'common.selectOne'/>"); // 请选择一条记录 - return null; - } else { - return selected[0].id; - } -} - - -$(function () { - var colunms = Menu.initColumn(); - var table = new TreeTable(Menu.id, baseURL + "sys/menu/list", colunms); - table.setExpandColumn(2); - table.setIdField("menuId"); - table.setCodeField("menuId"); - table.setParentCodeField("parentId"); - table.setExpandAll(false); - table.init(); - Menu.table = table; -}); -</script> diff --git a/nz-admin/src/main/resources/templates/js/modules/sys/user.js b/nz-admin/src/main/resources/templates/js/modules/sys/user.js deleted file mode 100644 index 7ff82f70..00000000 --- a/nz-admin/src/main/resources/templates/js/modules/sys/user.js +++ /dev/null @@ -1,235 +0,0 @@ -<script> -$(function () { - $("#jqGrid").jqGrid({ - url: baseURL + 'sys/user/list', - datatype: "json", - colModel: [ - { label: 'ID', name: 'userId', index: "user_id", width: 45, key: true, hidden: true }, - { label: '<@spring.message "user.username"/>', name: 'username', width: 75 }, - { label: '<@spring.message "user.email"/>', name: 'email', width: 90 }, - { label: '<@spring.message "common.status"/>', name: 'status', width: 60, formatter: function(value, options, row){ - return value === 0 ? - '<span class="label label-danger"><@spring.message "common.disabled"/></span>' : - '<span class="label label-success"><@spring.message "common.normal"/></span>'; - }}, - { label: '<@spring.message "common.createTime"/>', name: 'createTime', index: "create_time", width: 85} - ], - viewrecords: true, - height: 385, - rowNum: 10, - rowList : [10,30,50], - rownumbers: true, - rownumWidth: 25, - autowidth:true, - multiselect: true, - pager: "#jqGridPager", - jsonReader : { - root: "page.list", - page: "page.currPage", - total: "page.totalPage", - records: "page.totalCount" - }, - prmNames : { - page:"page", - rows:"limit", - order: "order" - }, - gridComplete:function(){ - //隐藏grid底部滚动条 - $("#jqGrid").closest(".ui-jqgrid-bdiv").css({ "overflow-x" : "hidden" }); - } - }); -}); -var setting = { - data: { - simpleData: { - enable: true, - idKey: "deptId", - pIdKey: "parentId", - rootPId: -1 - }, - key: { - url:"nourl" - } - } -}; -var ztree; -//引用vuelidate组件 -Vue.use(window.vuelidate.default); -//引用校验规则 所有校验规则见 https://vuelidate.netlify.com/#sub-builtin-validators -var required = window.validators.required; -var email = window.validators.email; -var helpers = window.validators.helpers;//引入自定义校验规则助手 helpers -//自定义规则,校验业务系统名称不能重复; -var checkName = function(value, user) { - if (helpers.req(user.username) && helpers.req(value)) { - var params = "?name=" + user.username; - if (user.userId) { - params = params + "&id=" + user.userId; - } - var flag = true; - $.ajax({ - type: "get", - url: baseURL + "sys/user/nameCheck" + params, - async: false, //关闭异步,否则会在执行完ajax前就跳到下一段代码 - dataType: "json", - success: function(r){ - console.info(r) - if (r.code != 200) { - flag = false; - } - } - }); - return flag; - } else { - return true; - } -} -var vm = new Vue({ - el:'#rrapp', - data:{ - q:{ - username: null - }, - showList: true, - title:null, - roleList:{}, - user:{ - status:1, - deptId:null, - deptName:null, - roleIdList:[], - username: '', - userId: null, - password: '', - email: '' - } - }, - validations: function() { //定义校验规则 - var valid = { - user: { - username: { - required, - checkName - }, - email: { - required, - email - }, - password: {required} - } - }; - /*if (!this.user.userId) { - valid.user.password = {required}; - } - console.info(valid)*/ - return valid; - }, - methods: { - query: function () { - vm.reload(); - }, - add: function(){ - vm.showList = false; - vm.title = "<@spring.message 'common.add'/>"; - vm.roleList = {}; - vm.user = {deptName:null, deptId:null, status:1, roleIdList:[], usergroupIds: [], username: '', userId: null, password: '', email: ''}; - - //获取角色信息 - this.getRoleList(); - - //vm.getDept(); - }, - update: function () { - var userId = getSelectedRow(); - if(userId == null){ - return ; - } - - vm.showList = false; - vm.title = "<@spring.message 'common.edit'/>"; - - vm.getUser(userId); - //获取角色信息 - this.getRoleList(); - }, - permissions: function () { - var userId = getSelectedRow(); - if(userId == null){ - return ; - } - - window.location.href=baseURL+"sys/permissions/index/"+userId; - }, - del: function () { - var userIds = getSelectedRows(); - if(userIds == null){ - return ; - } - - confirm("<@spring.message 'common.confirmDelete'/>", function(){ - $.ajax({ - type: "POST", - url: baseURL + "sys/user/delete", - contentType: "application/json", - data: JSON.stringify(userIds), - success: function(r){ - if(r.code == 200){ - alert("<@spring.message 'common.success'/>", function(){ - vm.reload(); - }); - }else{ - alert(r.msg); - } - } - }); - }); - }, - saveOrUpdate: function () { - if (!vm.validate()) { //在下方定义的validate方法 - return; - } - var url = vm.user.userId == null ? "sys/user/save" : "sys/user/update"; - $.ajax({ - type: "POST", - url: baseURL + url, - contentType: "application/json", - data: JSON.stringify(vm.user), - success: function(r){ - if(r.code === 200){ - alert("<@spring.message 'common.success'/>", function(){ - vm.reload(); - }); - }else{ - alert(r.msg); - } - } - }); - }, - getUser: function(userId){ - $.get(baseURL + "sys/user/info/"+userId, function(r){ - vm.user = r.user; - - //vm.getDept(); - }); - }, - getRoleList: function(){ - $.get(baseURL + "sys/role/select", function(r){ - vm.roleList = r.list; - }); - }, - reload: function () { - vm.showList = true; - var page = $("#jqGrid").jqGrid('getGridParam','page'); - $("#jqGrid").jqGrid('setGridParam',{ - postData:{'username': vm.q.username}, - page:1 - }).trigger("reloadGrid"); - }, - validate: function () {//提交时的校验 - vm.$v.user.$touch(); //提交时,不论是否已触发校验,都触发一下($dirty=false -> true) - return !vm.$v.user.$error; - } - } -}); -</script>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/login.html b/nz-admin/src/main/resources/templates/login.html deleted file mode 100644 index a2f450bd..00000000 --- a/nz-admin/src/main/resources/templates/login.html +++ /dev/null @@ -1,173 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>NEZHA</title> - <!-- Tell the browser to be responsive to screen width --> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <link rel="stylesheet" href="${request.contextPath}/statics/css/bootstrap.min.css"> - <link rel="stylesheet" href="${request.contextPath}/statics/css/font-awesome.min.css"> - <link rel="stylesheet" href="${request.contextPath}/statics/css/AdminLTE.min.css"> - <link rel="stylesheet" href="${request.contextPath}/statics/libs/vue-multiselect.min.css"> - <!-- AdminLTE Skins. Choose a skin from the css/skins - folder instead of downloading all of them to reduce the load. --> - <link rel="stylesheet" href="${request.contextPath}/statics/css/all-skins.min.css"> - <link rel="stylesheet" href="${request.contextPath}/statics/css/main.css"> - <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> - <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> - <!--[if lt IE 9]> - <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script> - <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> - <![endif]--> - <style> - .select2-container--default .select2-selection--single .select2-selection__arrow { - top: 4px; - } - .select2-container--default .select2-selection--single .select2-selection__rendered { - line-height: 28px; - } - </style> -</head> -<body class="hold-transition login-page"> -<div class="login-box" id="rrapp" style="min-height: 500px;" v-cloak> - <div class="login-logo"> - <b>NEZHA</b> - </div> - <!-- /.login-logo --> - <div class="login-box-body" v-show="showLogin"> - <p class="login-box-msg">Login</p> - <div v-if="error" class="alert alert-danger alert-dismissible"> - <h4 style="margin-bottom: 0px;"><i class="fa fa-exclamation-triangle"></i> {{errorMsg}}</h4> - </div> - <div class="form-group has-feedback"> - <input type="text" class="form-control" v-model="username" placeholder="账号" @keyup.enter="login"> - <span class="glyphicon glyphicon-user form-control-feedback"></span> - </div> - <div class="form-group has-feedback"> - <input type="password" class="form-control" v-model="password" placeholder="密码" @keyup.enter="login"> - <span class="glyphicon glyphicon-lock form-control-feedback"></span> - </div> - <!-- <div class="form-group has-feedback"> - <input type="text" class="form-control" v-model="captcha" @keyup.enter="login" placeholder="验证码"> - <span class="glyphicon glyphicon-warning-sign form-control-feedback"></span> - </div> - <div class="form-group has-feedback"> - <img alt="如果看不清楚,请单击图片刷新!" class="pointer" :src="src" @click="refreshCode"> - <a href="javascript:;" @click="refreshCode">点击刷新</a> - </div> --> - - - <div class="row"> - <div class="col-xs-10"> - <div class="checkbox icheck"> - </div> - </div> - <!-- /.col --> - <div class="col-xs-2 btn-login"> - <button type="button" class="btn btn-primary btn-block btn-flat" @click="login"><i class="fa fa-sign-in"></i></button> - </div> - <!-- /.col --> - </div> - <!-- /.social-auth-links --> - - </div> - <!-- /.login-box-body --> - - -</div> -<!-- /.login-box --> - -<script src="${request.contextPath}/statics/libs/jquery.min.js"></script> -<script src="${request.contextPath}/statics/libs/vue.min.js"></script> -<script src="${request.contextPath}/statics/libs/vue-multiselect.min.js"></script> -<script src="${request.contextPath}/statics/libs/vuelidate.min.js"></script> -<script src="${request.contextPath}/statics/libs/validators.min.js"></script> -<script src="${request.contextPath}/statics/libs/bootstrap.min.js"></script> -<script src="${request.contextPath}/statics/libs/jquery.slimscroll.min.js"></script> -<script src="${request.contextPath}/statics/libs/fastclick.min.js"></script> -<script src="${request.contextPath}/statics/plugins/layer/layer.js"></script> -<script src="${request.contextPath}/statics/libs/app.js"></script> -<script type="text/javascript"> -//注册select组件 -Vue.component('multiselect', window.VueMultiselect.default); -//引用vuelidate组件 -Vue.use(window.vuelidate.default); -//引用校验规则 -var required = window.validators.required; - -var vm = new Vue({ - el:'#rrapp', - data:{ - username: '', - password: '', - captcha: '', - error: false, - errorMsg: '', - src: 'captcha.jpg', - showLogin: true - }, - validations: { - username: { - required - }, - password: { - required - }/* , - captcha: { - required - } */ - }, - beforeCreate: function(){ - if(self != top){ - top.location.href = self.location.href; - } - }, - methods: { - refreshCode: function(){ - this.src = "captcha.jpg?t=" + $.now(); - }, - login: function (event) { - var flag = true; - var errMsg = ""; - if (!vm.$v.username.required) { - errMsg = errMsg + "Username " - flag = false; - } - if (!vm.$v.password.required) { - errMsg = errMsg + "Password " - flag = false; - } - /* if (!vm.$v.captcha.required) { - errMsg = errMsg + "验证码 "; - flag = false; - } */ - if (!flag) { - errMsg = errMsg + "is/are required."; - vm.errorMsg = errMsg; - vm.error = true; - return; - } - var data = "username="+vm.username+"&password="+vm.password/* +"&captcha="+vm.captcha */; - $.ajax({ - type: "POST", - url: "sys/login", - data: data, - dataType: "json", - success: function(result){ - if(result.code == 200){//登录成功 - location.href = 'index.html'; - }else{ - vm.error = true; - vm.errorMsg = result.msg; - vm.captcha = ""; - //vm.refreshCode(); - } - } - }); - } - } -}); -</script> -</body> -</html> diff --git a/nz-admin/src/main/resources/templates/main.html b/nz-admin/src/main/resources/templates/main.html deleted file mode 100644 index 53d40516..00000000 --- a/nz-admin/src/main/resources/templates/main.html +++ /dev/null @@ -1,37 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>欢迎页</title> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <link rel="stylesheet" href="${request.contextPath}/statics/css/bootstrap.min.css"> -</head> -<body> -<div class="panel panel-default"> - <div class="panel-heading">基本信息</div> - <div style="padding: 10px 0 20px 10px;"> - <h3> 项目介绍</h3> - <ul> - <li>采用Spring、MyBatis、Shiro框架,开发的一套权限系统,极低门槛,拿来即用。</li> - <li>设计之初,就非常注重安全性,为企业系统保驾护航,让一切都变得如此简单。</li> - <li>提供了代码生成器,只需编写30%左右代码,其余的代码交给系统自动生成,可快速完成开发任务</li> - <li>推荐使用阿里云服务器部署项目,免费领取阿里云优惠券,请点击【<a href="https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=y93lfwbg&productCode=dmspre&utm_source=y93lfwbg" target="_blank">免费领取</a>】</li> - </ul> - - <h3> 获取帮助</h3> - <ul> - <li>Git地址:<a href="https://gitee.com/nezhaio/nezha-web" target="_blank">https://gitee.com/nezhaio/nezha-web</a></li> - <li>官方社区:<a href="https://www.nezha.io/community" target="_blank">https://www.nezha.io/community</a></li> - <li>如需关注项目最新动态,请Watch、Star项目,同时也是对项目最好的支持</li> - </ul> - - <h3> 官方QQ群</h3> - <ul> - <li>高级群:324780204(大牛云集,跟大牛学习新技能)</li> - <li>普通群:145799952(学习交流,互相解答各种疑问)</li> - </ul> - </div> -</div> -</body> -</html>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/modules/job/schedule.html b/nz-admin/src/main/resources/templates/modules/job/schedule.html deleted file mode 100644 index 8d88de11..00000000 --- a/nz-admin/src/main/resources/templates/modules/job/schedule.html +++ /dev/null @@ -1,80 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<title>定时任务</title> -<#include "/header.html"> -</head> -<body> -<div id="rrapp" v-cloak> - <div v-show="showList"> - <div class="grid-btn" style="height:34px;"> - <div class="form-group col-sm-2"> - <input type="text" class="form-control" v-model="q.beanName" @keyup.enter="query" placeholder="bean名称"> - </div> - <a class="btn btn-default" @click="query">查询</a> - - <#if shiro.hasPermission("sys:schedule:save")> - <a class="btn btn-primary" @click="add"><i class="fa fa-plus"></i> 新增</a> - </#if> - <#if shiro.hasPermission("sys:schedule:update")> - <a class="btn btn-primary" @click="update"><i class="fa fa-pencil-square-o"></i> 修改</a> - </#if> - <#if shiro.hasPermission("sys:schedule:delete")> - <a class="btn btn-primary" @click="del"><i class="fa fa-trash-o"></i> 删除</a> - </#if> - <#if shiro.hasPermission("sys:schedule:pause")> - <a class="btn btn-primary" @click="pause"><i class="fa fa-pause"></i> 暂停</a> - </#if> - <#if shiro.hasPermission("sys:schedule:resume")> - <a class="btn btn-primary" @click="resume"><i class="fa fa-play"></i> 恢复</a> - </#if> - <#if shiro.hasPermission("sys:schedule:run")> - <a class="btn btn-primary" @click="runOnce"><i class="fa fa-arrow-circle-right"></i> 立即执行</a> - </#if> - <#if shiro.hasPermission("sys:schedule:log")> - <a class="btn btn-danger" style="float:right;" href="schedule_log.html">日志列表</a> - </#if> - </div> - <table id="jqGrid"></table> - <div id="jqGridPager"></div> - </div> - - <div v-show="!showList" class="panel panel-default"> - <div class="panel-heading">{{title}}</div> - <form class="form-horizontal"> - <div class="form-group"> - <div class="col-sm-2 control-label">bean名称</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="schedule.beanName" placeholder="spring bean名称,如:testTask"/> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label">参数</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="schedule.params" placeholder="参数"/> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label">cron表达式</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="schedule.cronExpression" placeholder="如:0 0 12 * * ?"/> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label">备注</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="schedule.remark" placeholder="备注"/> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label"></div> - <input type="button" class="btn btn-primary" @click="saveOrUpdate" value="确定"/> - <input type="button" class="btn btn-warning" @click="reload" value="返回"/> - </div> - </form> - </div> -</div> - -<script src="${request.contextPath}/statics/js/modules/job/schedule.js?_${.now?long}"></script> -</body> -</html>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/modules/job/schedule_log.html b/nz-admin/src/main/resources/templates/modules/job/schedule_log.html deleted file mode 100644 index b1f12523..00000000 --- a/nz-admin/src/main/resources/templates/modules/job/schedule_log.html +++ /dev/null @@ -1,22 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<title>定时任务日志</title> -<#include "/header.html"> -</head> -<body> -<div id="rrapp"> - <div class="grid-btn"> - <div class="form-group col-sm-2"> - <input type="text" class="form-control" v-model="q.jobId" @keyup.enter="query" placeholder="任务ID"> - </div> - <a class="btn btn-default" @click="query">查询</a> - <input type="button" class="btn btn-warning" @click="back" value="返回"/> - </div> - <table id="jqGrid"></table> - <div id="jqGridPager"></div> -</div> - -<script src="${request.contextPath}/statics/js/modules/job/schedule_log.js?_${.now?long}"></script> -</body> -</html>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/modules/romote/console.html b/nz-admin/src/main/resources/templates/modules/romote/console.html deleted file mode 100644 index 084fa2b3..00000000 --- a/nz-admin/src/main/resources/templates/modules/romote/console.html +++ /dev/null @@ -1,107 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <title>Terminal</title> - <#include "/header.html"> - <style type="text/css"> - html { - /*overflow: hidden;*/ - } - .navbar { - position: unset; - margin-bottom: 0px; - border-radius: 0px; - float: unset; - width: 100%; - left: 0px; - min-height: 45px; - font-size: 15px; - } - </style> -</head> -<body style="background-color: #F8F8F8;" > -<div id="terminalwin"> - <div id="appbar" class="navbar navbar-default" role="navigation"> - <div class="container"> - <div> - <ul class="nav navbar-nav"> - - <li class="dropdown"> - <a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown" title="常用操作"><i aria-hidden="true" class="fa fa-server"></i> 操作<b class="caret"></b></a> - <ul class="dropdown-menu" > - <li><a href="" target="_blank" title="克隆会话"> 克隆会话</a></li> - <li><a href="javascript:void(0)" @click="upload" title="上传文件"> 上传文件</a></li> - </ul> - <input id="tokenSpace" type="hidden" v-model="curToken" value=""/> - </li> - - <li class="dropdown"> - <a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown" title="主题"><i aria-hidden="true" class="fa fa-gear"></i> 主题<b class="caret"></b></a> - <ul class="dropdown-menu theme" > - <li><a theme="default" href="javascript:void(0)"><span class="circle" style="background-color:#dddddd"></span> 默认</a></li> - <li><a theme="gray" href="javascript:void(0)"><span class="circle" style="background-color:gray"></span> 灰色</a></li> - <li><a theme="green" href="javascript:void(0)"><span class="circle" style="background-color:green"></span> 绿色</a></li> - <li><a theme="black" href="javascript:void(0)"><span class="circle" style="background-color:black"></span> 黑色</a></li> - </ul> - </li> - - <li><a href="" title="退出终端" data-toggle="tooltip"><i aria-hidden="true" class="fa fa-power-off"></i> 退出</a></li> - - <li id="sendNode" style="padding-top: 11px;margin-left: 18px;"> - <label style="color:#777;font-weight: normal; "><i aria-hidden="true" class="fa fa-send"></i> <span id="sendLabel">命令</span></label> <input id="sendInput" class="send-input" v-model="sendAllCmd" size="30" placeholder="发送到所有终端会话请在这里输入" type="text"> - <div class="btn btn-success btn-sm" id="sendBtn">发送</div> - </li> - </ul> - </div> - </div> - </div> - <div> - <ul class="nav nav-tabs" id="apphead"> - <template v-for="(terminal,index) in terminals" > - <nz-terminal - :token="terminal.token" - :account-id="terminal.accountId" - :name="terminal.name" - :is-new="terminal.isNew" - :index="index" - ref="nzTerminal" - :hide-alldom="hideAllDom" - @sign-current-win="signCurrentWin" - @close-win="closeWinWithToken" - ></nz-terminal> - </template> - </ul> - <div id="terminal-context"></div> - </div> - <div id="upload_push" class="modal fade" > - <div class="modal-dialog"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> - <h4 class="modal-title">文件上传</h4> - </div> - <div class="modal-body"> - <form enctype="multipart/form-data"> - <div class="input-group" style="padding-bottom:12px"> - <span class="input-group-addon">上传路径</span> - <input type="text" id="path" class="form-control col-lg-13" placeholder="请输入文件上传路径,默认在当前终端所在的路径下"> - </div> - <input id="file" name="file" type="file"> - <div id="errorBlock" class="help-block"></div> - </form> - </div> - </div> - </div> - </div> -</div> -<script type="text/x-template" id="nzConsole"> - <li role="presentation" class="terminal-head" :id="'terminal-head-'+accountId+'-'+token"> - <a href="#">{{name}}<i class="fa fa-remove tab-close" @click="closeSelf"></i></a> - - <div :id="'terminal-container-'+accountId+'-'+token"></div> - </li> -</script> -<#include "/js/modules/romote/main.js"> -<#include "/js/modules/romote/console.js"> -</body> -</html>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/modules/romote/romote.html b/nz-admin/src/main/resources/templates/modules/romote/romote.html deleted file mode 100644 index 747af124..00000000 --- a/nz-admin/src/main/resources/templates/modules/romote/romote.html +++ /dev/null @@ -1,17 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <title>Terminal</title> - <#include "/header.html"> - -</head> -<body style="background-color: #F8F8F8;"> -<div id="terminalWindow"> - <div ><input type="button" @click="openTerminal(1)" value="open"></div> - -</div> -<#include "/js/modules/romote/main.js"> -<#include "/js/modules/romote/romote.js"> -</body> - -</html>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/modules/sys/config.html b/nz-admin/src/main/resources/templates/modules/sys/config.html deleted file mode 100644 index d5c0fcbb..00000000 --- a/nz-admin/src/main/resources/templates/modules/sys/config.html +++ /dev/null @@ -1,56 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<title>参数管理</title> -<#include "/header.html"> -</head> -<body> -<div id="rrapp" v-cloak> - <div v-show="showList"> - <div class="grid-btn"> - <div class="form-group col-sm-2"> - <input type="text" class="form-control" v-model="q.paramKey" @keyup.enter="query" placeholder="参数名"> - </div> - <a class="btn btn-default" @click="query">查询</a> - - <a class="btn btn-primary" @click="add"><i class="fa fa-plus"></i> 新增</a> - <a class="btn btn-primary" @click="update"><i class="fa fa-pencil-square-o"></i> 修改</a> - <a class="btn btn-primary" @click="del"><i class="fa fa-trash-o"></i> 删除</a> - </div> - <table id="jqGrid"></table> - <div id="jqGridPager"></div> - </div> - - <div v-show="!showList" class="panel panel-default"> - <div class="panel-heading">{{title}}</div> - <form class="form-horizontal"> - <div class="form-group"> - <div class="col-sm-2 control-label">参数名</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="config.paramKey" placeholder="参数名"/> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label">参数值</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="config.paramValue" placeholder="参数值"/> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label">备注</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="config.remark" placeholder="备注"/> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label"></div> - <input type="button" class="btn btn-primary" @click="saveOrUpdate" value="确定"/> - <input type="button" class="btn btn-warning" @click="reload" value="返回"/> - </div> - </form> - </div> -</div> - -<script src="${request.contextPath}/statics/js/modules/sys/config.js?_${.now?long}"></script> -</body> -</html>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/modules/sys/dict.html b/nz-admin/src/main/resources/templates/modules/sys/dict.html deleted file mode 100644 index e5501657..00000000 --- a/nz-admin/src/main/resources/templates/modules/sys/dict.html +++ /dev/null @@ -1,79 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <title>字典管理</title> - <#include "/header.html"> -</head> -<body> -<div id="rrapp" v-cloak> - <div v-show="showList"> - <div class="grid-btn"> - <div class="form-group col-sm-2"> - <input type="text" class="form-control" v-model="q.name" @keyup.enter="query" placeholder="字典名称"> - </div> - <a class="btn btn-default" @click="query">查询</a> - <#if shiro.hasPermission("sys:dict:save")> - <a class="btn btn-primary" @click="add"><i class="fa fa-plus"></i> 新增</a> - </#if> - <#if shiro.hasPermission("sys:dict:update")> - <a class="btn btn-primary" @click="update"><i class="fa fa-pencil-square-o"></i> 修改</a> - </#if> - <#if shiro.hasPermission("sys:dict:delete")> - <a class="btn btn-primary" @click="del"><i class="fa fa-trash-o"></i> 删除</a> - </#if> - </div> - <table id="jqGrid"></table> - <div id="jqGridPager"></div> - </div> - - <div v-show="!showList" class="panel panel-default"> - <div class="panel-heading">{{title}}</div> - <form class="form-horizontal"> - <div class="form-group"> - <div class="col-sm-2 control-label">字典名称</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="dict.name" placeholder="字典名称"/> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label">字典类型</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="dict.type" placeholder="字典类型"/> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label">字典码</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="dict.code" placeholder="字典码"/> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label">字典值</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="dict.value" placeholder="字典值"/> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label">排序</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="dict.orderNum" placeholder="排序"/> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label">备注</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="dict.remark" placeholder="备注"/> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label"></div> - <input type="button" class="btn btn-primary" @click="saveOrUpdate" value="确定"/> - <input type="button" class="btn btn-warning" @click="reload" value="返回"/> - </div> - </form> - </div> -</div> - -<script src="${request.contextPath}/statics/js/modules/sys/dict.js?_${.now?long}"></script> -</body> -</html>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/modules/sys/i18n.html b/nz-admin/src/main/resources/templates/modules/sys/i18n.html deleted file mode 100644 index 2341e7a3..00000000 --- a/nz-admin/src/main/resources/templates/modules/sys/i18n.html +++ /dev/null @@ -1,77 +0,0 @@ -<!DOCTYPE html> -<#import "/spring.ftl" as spring> -<html> -<head> -<title>国际化管理</title> -<#include "/header.html"> -</head> -<body> -<div id="rrapp" v-cloak> - <div v-show="showList"> - <div class="tools"> - <div class="form-group"> - <input type="text" class="form-control input-medium" v-model="q.code" @keyup.enter="query" placeholder="Code"> - </div> - <div class="form-group"> - <input type="text" class="form-control input-medium" v-model="q.value" @keyup.enter="query" placeholder="Value"> - </div> - <div class="form-group"> - <multiselect class="input-medium" v-model="q.lang" :options="langList" placeholder="<@spring.message 'common.language'/>" :show-labels="false"></multiselect> - </div> - <a class="btn btn-default btn-search" @click="query" title="<@spring.message 'common.search'/>"><i class="fa fa-search"></i></a> - <a class="btn btn-primary" @click="add" title="<@spring.message 'common.add'/>"><i class="fa fa-plus"></i></a> - <a :disabled="single" class="btn btn-primary" @click="update" title="<@spring.message 'common.edit'/>"><i class="fa fa-pencil"></i></a> - <a :disabled="multi" class="btn btn-primary" @click="del" title="<@spring.message 'common.delete'/>"><i class="fa fa-trash-o"></i></a> - <a class="btn btn-success" @click="refresh" title="<@spring.message 'sys.i18n.refresh'/>"><i class="fa fa-refresh"></i></a> - </div> - <table id="jqGrid"></table> - <div id="jqGridPager"></div> - </div> - - <div v-show="!showList" class="panel panel-default"> - <div class="panel-heading">{{title}}</div> - <form class="form-horizontal"> - <div class="form-group"> - <div class="col-sm-2 control-label">Code</div> - <div class="col-sm-9"> - <input type="text" class="form-control" :class="{'form-control--error': $v.i18n.code.$dirty && $v.i18n.code.$error}" v-model.trim="$v.i18n.code.$model"/> - <span class="required-symbol">*</span> - <div class="form-control_error-msg" v-if="$v.i18n.code.$dirty && !$v.i18n.code.required"><@spring.message 'validate.common.required'/></div> - <div class="form-control_error-msg" v-if="$v.i18n.code.$dirty && !$v.i18n.code.checkI18n"><@spring.message 'validate.common.duplicate'/></div> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label"><@spring.message "common.language"/></div> - <div class="col-sm-9"> - <multiselect v-model="$v.i18n.lang.$model" :options="langList" placeholder="<@spring.message 'common.pleaseSelect'/>" :class="{'form-control--error': $v.i18n.lang.$dirty && $v.i18n.lang.$error}" :show-labels="false"></multiselect> - <span class="required-symbol">*</span> - <div class="form-control_error-msg" v-if="$v.i18n.lang.$dirty && !$v.i18n.lang.required"><@spring.message 'validate.common.required'/></div> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label">Value</div> - <div class="col-sm-9"> - <input type="text" class="form-control" :class="{'form-control--error': $v.i18n.value.$dirty && $v.i18n.value.$error}" v-model.trim="$v.i18n.value.$model"/> - <span class="required-symbol">*</span> - <div class="form-control_error-msg" v-if="$v.i18n.value.$dirty && !$v.i18n.value.required"><@spring.message 'validate.common.required'/></div> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label"><@spring.message "common.remark"/></div> - <div class="col-sm-9"> - <input type="text" class="form-control" v-model="i18n.remark"/> - </div> - </div> - <div class="form-group form-group_opbox"> - <div> - <button title="<@spring.message 'common.submit'/>" type="button" class="btn btn-primary" style="width: 55px" @click="saveOrUpdate"><i class="fa fa-check"></i></button> - <div style="display:inline-block;width:10px;"></div> - <button title="<@spring.message 'common.back'/>" type="button" class="btn btn-warning" style="width: 55px" @click="reload"><i class="fa fa-reply"></i></button> - </div> - </div> - </form> - </div> -</div> -<#include "/js/modules/sys/i18n.js"> -</body> -</html>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/modules/sys/icons.html b/nz-admin/src/main/resources/templates/modules/sys/icons.html deleted file mode 100644 index 5047f75f..00000000 --- a/nz-admin/src/main/resources/templates/modules/sys/icons.html +++ /dev/null @@ -1,1037 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <title>Font Awesome</title> - - <style> - .row { - border: 0 !important; - } - - h3 { - border-bottom: 2px solid #ddd !important; - } - - .fancybox-margin { - margin-right: 17px; - } - - .fontawesome-icon-list .fa-hover a { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - display: block; - color: #222; - line-height: 32px; - height: 32px; - padding-left: 10px; - border-radius: 4px; - } - - .fontawesome-icon-list .fa-hover a .fa { - width: 32px; - font-size: 14px; - display: inline-block; - text-align: right; - margin-right: 10px; - } - </style> - - <#include "/header.html"> -</head> -<body class="font-awesome"> -<div id="wrap"> - <div class="container" data-view="search"> - <div class="row"> - <div class="col-md-10 col-sm-9"> - <section id="search"> - <input id="search-input" class="form-control input-lg" placeholder="Search icons" autocomplete="off" - spellcheck="false" autocorrect="off" tabindex="1" v-model="q.iconName" @keyup="searchIcons"> - </section> - </div> - </div> - <div id="icons"> - <section id="web-application"> - <h3 class="page-header">Web Application Icons</h3> - <div class="row fontawesome-icon-list"> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"> - <i class="fa fa-address-book" aria-hidden="true"></i> address-book</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i class="fa fa-address-book-o" aria-hidden="true"></i> address-book-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i class="fa fa-address-card" aria-hidden="true"></i> address-card</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i class="fa fa-address-card-o" aria-hidden="true"></i> address-card-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i class="fa fa-archive" aria-hidden="true"></i> archive</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i class="fa fa-area-chart" aria-hidden="true"></i> area-chart</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i class="fa fa-arrows" aria-hidden="true"></i> arrows</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i class="fa fa-arrows-h" aria-hidden="true"></i> arrows-h</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i class="fa fa-arrows-v" aria-hidden="true"></i> arrows-v</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i class="fa fa-at" aria-hidden="true"></i> at</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i class="fa fa-ban" aria-hidden="true"></i> ban</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i class="fa fa-bar-chart" aria-hidden="true"></i> bar-chart</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i class="fa fa-bar-chart-o" aria-hidden="true"></i> bar-chart-o - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-bars" aria-hidden="true"></i> bars</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-bell" aria-hidden="true"></i> bell</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-bell-o" aria-hidden="true"></i> bell-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-bell-slash" aria-hidden="true"></i> bell-slash</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-bell-slash-o" aria-hidden="true"></i> bell-slash-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-bluetooth-b" aria-hidden="true"></i> bluetooth-b</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-bolt" aria-hidden="true"></i> bolt</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-book" aria-hidden="true"></i> book</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-bookmark" aria-hidden="true"></i> bookmark</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-bookmark-o" aria-hidden="true"></i> bookmark-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-briefcase" aria-hidden="true"></i> briefcase</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-bug" aria-hidden="true"></i> bug</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-bullhorn" aria-hidden="true"></i> bullhorn</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-calculator" aria-hidden="true"></i> calculator</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-calendar" aria-hidden="true"></i> calendar</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-calendar-check-o" - aria-hidden="true"></i> calendar-check-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-calendar-minus-o" - aria-hidden="true"></i> calendar-minus-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-calendar-o" aria-hidden="true"></i> calendar-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-calendar-plus-o" - aria-hidden="true"></i> calendar-plus-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-calendar-times-o" - aria-hidden="true"></i> calendar-times-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-cc" aria-hidden="true"></i> cc</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-certificate" aria-hidden="true"></i> certificate</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-check" aria-hidden="true"></i> check</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-check-circle" aria-hidden="true"></i> check-circle</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-check-circle-o" aria-hidden="true"></i> check-circle-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-circle" aria-hidden="true"></i> circle</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-circle-o" aria-hidden="true"></i> circle-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-circle-o-notch" aria-hidden="true"></i> circle-o-notch</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-circle-thin" aria-hidden="true"></i> circle-thin</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-clock-o" aria-hidden="true"></i> clock-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-clone" aria-hidden="true"></i> clone</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-close" aria-hidden="true"></i> close - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-cloud" aria-hidden="true"></i> cloud</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-cloud-download" aria-hidden="true"></i> cloud-download</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-cloud-upload" aria-hidden="true"></i> cloud-upload</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-code" aria-hidden="true"></i> code</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-cube" aria-hidden="true"></i> cube</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-cubes" aria-hidden="true"></i> cubes</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-database" aria-hidden="true"></i> database</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-desktop" aria-hidden="true"></i> desktop</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-dot-circle-o" aria-hidden="true"></i> dot-circle-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-download" aria-hidden="true"></i> download</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-edit" - aria-hidden="true"></i> edit</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-envelope" aria-hidden="true"></i> envelope</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-envelope-o" aria-hidden="true"></i> envelope-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-envelope-open" - aria-hidden="true"></i> envelope-open</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-envelope-open-o" - aria-hidden="true"></i> envelope-open-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-envelope-square" - aria-hidden="true"></i> envelope-square</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-eraser" aria-hidden="true"></i> eraser</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-exchange" aria-hidden="true"></i> exchange</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-exclamation" aria-hidden="true"></i> exclamation</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i - class="fa fa-exclamation-circle" aria-hidden="true"></i> exclamation-circle</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i - class="fa fa-exclamation-triangle" aria-hidden="true"></i> exclamation-triangle</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-external-link" - aria-hidden="true"></i> external-link</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i - class="fa fa-external-link-square" aria-hidden="true"></i> external-link-square</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-eye" aria-hidden="true"></i> eye</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-eye-slash" aria-hidden="true"></i> eye-slash</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-eyedropper" aria-hidden="true"></i> eyedropper</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-film" aria-hidden="true"></i> film</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-flag" aria-hidden="true"></i> flag</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-flash" aria-hidden="true"></i> flash - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-gear" aria-hidden="true"></i> gear - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-gears" aria-hidden="true"></i> gears - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-globe" aria-hidden="true"></i> globe</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-group" aria-hidden="true"></i> group - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-hashtag" aria-hidden="true"></i> hashtag</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-hdd-o" aria-hidden="true"></i> hdd-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-history" aria-hidden="true"></i> history</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-home" aria-hidden="true"></i> home</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-i-cursor" aria-hidden="true"></i> i-cursor</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-id-badge" aria-hidden="true"></i> id-badge</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-id-card" aria-hidden="true"></i> id-card</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-id-card-o" aria-hidden="true"></i> id-card-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-image" aria-hidden="true"></i> image - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-inbox" aria-hidden="true"></i> inbox</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-industry" aria-hidden="true"></i> industry</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-info" aria-hidden="true"></i> info</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-info-circle" aria-hidden="true"></i> info-circle</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-key" aria-hidden="true"></i> key</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-keyboard-o" aria-hidden="true"></i> keyboard-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-language" aria-hidden="true"></i> language</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-laptop" aria-hidden="true"></i> laptop</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-leaf" aria-hidden="true"></i> leaf</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-life-bouy" aria-hidden="true"></i> life-bouy - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-life-buoy" aria-hidden="true"></i> life-buoy - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-life-ring" aria-hidden="true"></i> life-ring</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-life-saver" aria-hidden="true"></i> life-saver - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-lightbulb-o" aria-hidden="true"></i> lightbulb-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-location-arrow" aria-hidden="true"></i> location-arrow</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-lock" aria-hidden="true"></i> lock</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-low-vision" aria-hidden="true"></i> low-vision</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-mail-forward" aria-hidden="true"></i> mail-forward - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-mail-reply" aria-hidden="true"></i> mail-reply - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-mail-reply-all" aria-hidden="true"></i> mail-reply-all</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-male" aria-hidden="true"></i> male</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-map" aria-hidden="true"></i> map</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-map-marker" aria-hidden="true"></i> map-marker</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-map-o" aria-hidden="true"></i> map-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-map-pin" aria-hidden="true"></i> map-pin</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-microchip" aria-hidden="true"></i> microchip</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-microphone" aria-hidden="true"></i> microphone</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-microphone-slash" - aria-hidden="true"></i> microphone-slash</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-minus" aria-hidden="true"></i> minus</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-minus-circle" aria-hidden="true"></i> minus-circle</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-minus-square" aria-hidden="true"></i> minus-square</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-minus-square-o" aria-hidden="true"></i> minus-square-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-mouse-pointer" - aria-hidden="true"></i> mouse-pointer</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-navicon" aria-hidden="true"></i> navicon - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-newspaper-o" aria-hidden="true"></i> newspaper-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-object-group" aria-hidden="true"></i> object-group</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-object-ungroup" aria-hidden="true"></i> object-ungroup</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-paper-plane-o" - aria-hidden="true"></i> paper-plane-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-pencil" aria-hidden="true"></i> pencil</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-pencil-square" - aria-hidden="true"></i> pencil-square</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-pencil-square-o" - aria-hidden="true"></i> pencil-square-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-phone-square" aria-hidden="true"></i> phone-square</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-photo" aria-hidden="true"></i> photo - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-picture-o" aria-hidden="true"></i> picture-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-plus" aria-hidden="true"></i> plus</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-plus-circle" aria-hidden="true"></i> plus-circle</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-podcast" aria-hidden="true"></i> podcast</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-power-off" aria-hidden="true"></i> power-off</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-print" aria-hidden="true"></i> print</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-qrcode" aria-hidden="true"></i> qrcode</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-question" aria-hidden="true"></i> question</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-question-circle" - aria-hidden="true"></i> question-circle</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i - class="fa fa-question-circle-o" aria-hidden="true"></i> question-circle-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-random" aria-hidden="true"></i> random</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-recycle" aria-hidden="true"></i> recycle</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-registered" aria-hidden="true"></i> registered</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-remove" aria-hidden="true"></i> remove - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-reorder" aria-hidden="true"></i> reorder - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-reply" aria-hidden="true"></i> reply</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-reply-all" aria-hidden="true"></i> reply-all</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-retweet" aria-hidden="true"></i> retweet</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-road" aria-hidden="true"></i> road</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-rocket" aria-hidden="true"></i> rocket</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-rss" aria-hidden="true"></i> rss</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-rss-square" aria-hidden="true"></i> rss-square</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-search" aria-hidden="true"></i> search</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-search-minus" aria-hidden="true"></i> search-minus</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-search-plus" aria-hidden="true"></i> search-plus</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-send" aria-hidden="true"></i> send - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-send-o" - aria-hidden="true"></i> send-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-server" aria-hidden="true"></i> server</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-share" aria-hidden="true"></i> share</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-share-alt" aria-hidden="true"></i> share-alt</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-share-alt-square" - aria-hidden="true"></i> share-alt-square</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-share-square" aria-hidden="true"></i> share-square</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-share-square-o" aria-hidden="true"></i> share-square-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-sign-in" aria-hidden="true"></i> sign-in</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-sign-out" aria-hidden="true"></i> sign-out</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-signing" - aria-hidden="true"></i> signing</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-sitemap" aria-hidden="true"></i> sitemap</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-sliders" aria-hidden="true"></i> sliders</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-smile-o" aria-hidden="true"></i> smile-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-soccer-ball-o" aria-hidden="true"></i> soccer-ball-o - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-sort" aria-hidden="true"></i> sort</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-sort-alpha-asc" aria-hidden="true"></i> sort-alpha-asc</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-sort-alpha-desc" - aria-hidden="true"></i> sort-alpha-desc</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-sort-amount-asc" - aria-hidden="true"></i> sort-amount-asc</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-sort-amount-desc" - aria-hidden="true"></i> sort-amount-desc</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-sort-asc" aria-hidden="true"></i> sort-asc</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-sort-desc" aria-hidden="true"></i> sort-desc</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-sort-down" aria-hidden="true"></i> sort-down - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-sort-numeric-asc" - aria-hidden="true"></i> sort-numeric-asc</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i - class="fa fa-sort-numeric-desc" aria-hidden="true"></i> sort-numeric-desc</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-sort-up" aria-hidden="true"></i> sort-up - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-sticky-note" aria-hidden="true"></i> sticky-note</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-sticky-note-o" - aria-hidden="true"></i> sticky-note-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-sun-o" aria-hidden="true"></i> sun-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-support" aria-hidden="true"></i> support - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-tablet" aria-hidden="true"></i> tablet</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-tachometer" aria-hidden="true"></i> tachometer</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-tag" aria-hidden="true"></i> tag</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-tags" aria-hidden="true"></i> tags</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-tasks" aria-hidden="true"></i> tasks</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-times" aria-hidden="true"></i> times</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-times-circle" aria-hidden="true"></i> times-circle</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-times-circle-o" aria-hidden="true"></i> times-circle-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-times-rectangle" aria-hidden="true"></i> times-rectangle</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-times-rectangle-o" aria-hidden="true"></i> times-rectangle-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-trash-o" aria-hidden="true"></i> trash-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-unlock" aria-hidden="true"></i> unlock</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-unlock-alt" aria-hidden="true"></i> unlock-alt</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-unsorted" aria-hidden="true"></i> unsorted - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-upload" aria-hidden="true"></i> upload</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-user" aria-hidden="true"></i> user</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-user-circle" aria-hidden="true"></i> user-circle</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-user-circle-o" - aria-hidden="true"></i> user-circle-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-user-o" aria-hidden="true"></i> user-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-vcard" aria-hidden="true"></i> vcard - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-vcard-o" aria-hidden="true"></i> vcard-o - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-warning" - aria-hidden="true"></i> - warning</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-wrench" aria-hidden="true"></i> wrench</a> - </div> - </div> - </section> - <section id="file-type"> - <h3 class="page-header">File Type Icons</h3> - <div class="row fontawesome-icon-list"> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-file" aria-hidden="true"></i> file</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-file-excel-o" aria-hidden="true"></i> file-excel-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-file-o" aria-hidden="true"></i> file-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i - class="fa fa-file-powerpoint-o" aria-hidden="true"></i> file-powerpoint-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-file-sound-o" aria-hidden="true"></i> file-sound-o - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-cut" aria-hidden="true"></i> cut</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-files-o" aria-hidden="true"></i> files-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-file-text" aria-hidden="true"></i> file-text</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-file-text-o" aria-hidden="true"></i> file-text-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-file-video-o" aria-hidden="true"></i> file-video-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-file-word-o" aria-hidden="true"></i> file-word-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-file-zip-o" aria-hidden="true"></i> file-zip-o - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-folder" aria-hidden="true"></i> folder</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-folder-o" aria-hidden="true"></i> folder-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-folder-open" aria-hidden="true"></i> folder-open</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-folder-open-o" - aria-hidden="true"></i> folder-open-o</a></div> - </div> - </section> - <section id="spinner"> - <h3 class="page-header">Spinner Icons</h3> - <div class="row fontawesome-icon-list"> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-circle-o-notch" aria-hidden="true"></i> circle-o-notch</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-spinner" aria-hidden="true"></i> spinner</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-cog" aria-hidden="true"></i> cog</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-cogs" aria-hidden="true"></i> cogs</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-refresh" aria-hidden="true"></i> refresh</a> - </div> - </div> - </section> - <section id="form-control"> - <h3 class="page-header">Form Control Icons</h3> - <div class="row fontawesome-icon-list"> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-check-square" aria-hidden="true"></i> check-square</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-check-square-o" aria-hidden="true"></i> check-square-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-circle" aria-hidden="true"></i> circle</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-circle-o" aria-hidden="true"></i> circle-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-dot-circle-o" aria-hidden="true"></i> dot-circle-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-minus-square" aria-hidden="true"></i> minus-square</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-minus-square-o" aria-hidden="true"></i> minus-square-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-plus-square" aria-hidden="true"></i> plus-square</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-plus-square-o" - aria-hidden="true"></i> plus-square-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-square" aria-hidden="true"></i> square</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-square-o" aria-hidden="true"></i> square-o</a> - </div> - </div> - </section> - <section id="chart"> - <h3 class="page-header">Chart Icons</h3> - <div class="row fontawesome-icon-list"> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-dashboard" aria-hidden="true"></i> dashboard - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-area-chart" aria-hidden="true"></i> area-chart</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-bar-chart" aria-hidden="true"></i> bar-chart</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-bar-chart-o" aria-hidden="true"></i> bar-chart-o - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-line-chart" aria-hidden="true"></i> line-chart</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-pie-chart" aria-hidden="true"></i> pie-chart</a> - </div> - </div> - </section> - <section id="text-editor"> - <h3 class="page-header">Text Editor Icons</h3> - <div class="row fontawesome-icon-list"> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-dedent" aria-hidden="true"></i> dedent - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-eraser" aria-hidden="true"></i> eraser</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-floppy-o" aria-hidden="true"></i> floppy-o</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-font" aria-hidden="true"></i> font</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-header" aria-hidden="true"></i> header</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-indent" aria-hidden="true"></i> indent</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-link" aria-hidden="true"></i> link</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-list" aria-hidden="true"></i> list</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-list-alt" aria-hidden="true"></i> list-alt</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-list-ol" aria-hidden="true"></i> list-ol</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-list-ul" aria-hidden="true"></i> list-ul</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-paste" aria-hidden="true"></i> paste - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-repeat" aria-hidden="true"></i> repeat</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-rotate-left" aria-hidden="true"></i> rotate-left - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-rotate-right" aria-hidden="true"></i> rotate-right - </a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-text-width" aria-hidden="true"></i> text-width</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-th" aria-hidden="true"></i> th</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-th-large" aria-hidden="true"></i> th-large</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-th-list" aria-hidden="true"></i> th-list</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-underline" aria-hidden="true"></i> underline</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-undo" aria-hidden="true"></i> undo</a> - </div> - </div> - </section> - <section id="directional"> - <h3 class="page-header">Directional Icons</h3> - <div class="row fontawesome-icon-list"> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i - class="fa fa-angle-double-down" aria-hidden="true"></i> angle-double-down</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i - class="fa fa-angle-double-left" aria-hidden="true"></i> angle-double-left</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i - class="fa fa-angle-double-right" aria-hidden="true"></i> angle-double-right</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-angle-double-up" - aria-hidden="true"></i> angle-double-up</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-angle-down" aria-hidden="true"></i> angle-down</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-angle-left" aria-hidden="true"></i> angle-left</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-angle-right" aria-hidden="true"></i> angle-right</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-angle-up" aria-hidden="true"></i> angle-up</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-arrow-down" aria-hidden="true"></i> arrow-down</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-arrow-left" aria-hidden="true"></i> arrow-left</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-arrow-right" aria-hidden="true"></i> arrow-right</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-arrow-up" aria-hidden="true"></i> arrow-up</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-arrows" aria-hidden="true"></i> arrows</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-arrows-h" aria-hidden="true"></i> arrows-h</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-arrows-v" aria-hidden="true"></i> arrows-v</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-caret-down" aria-hidden="true"></i> caret-down</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-caret-left" aria-hidden="true"></i> caret-left</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-caret-right" aria-hidden="true"></i> caret-right</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-caret-up" aria-hidden="true"></i> caret-up</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i - class="fa fa-chevron-circle-down" aria-hidden="true"></i> chevron-circle-down</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i - class="fa fa-chevron-circle-left" aria-hidden="true"></i> chevron-circle-left</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i - class="fa fa-chevron-circle-right" aria-hidden="true"></i> chevron-circle-right</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i - class="fa fa-chevron-circle-up" aria-hidden="true"></i> chevron-circle-up</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-chevron-down" aria-hidden="true"></i> chevron-down</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-chevron-left" aria-hidden="true"></i> chevron-left</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-chevron-right" - aria-hidden="true"></i> chevron-right</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-chevron-up" aria-hidden="true"></i> chevron-up</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-exchange" aria-hidden="true"></i> exchange</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-hand-o-down" aria-hidden="true"></i> hand-o-down</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-hand-o-left" aria-hidden="true"></i> hand-o-left</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-hand-o-right" aria-hidden="true"></i> hand-o-right</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-hand-o-up" aria-hidden="true"></i> hand-o-up</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-long-arrow-down" - aria-hidden="true"></i> long-arrow-down</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-long-arrow-left" - aria-hidden="true"></i> long-arrow-left</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-long-arrow-right" - aria-hidden="true"></i> long-arrow-right</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-long-arrow-up" - aria-hidden="true"></i> long-arrow-up</a></div> - </div> - </section> - <section id="video-player"> - <h3 class="page-header">Video Player Icons</h3> - <div class="row fontawesome-icon-list"> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"> - <i class="fa fa-arrows-alt" aria-hidden="true"></i> arrows-alt</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-backward" aria-hidden="true"></i> backward</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-compress" aria-hidden="true"></i> compress</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-expand" aria-hidden="true"></i> expand</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-fast-backward" - aria-hidden="true"></i> fast-backward</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-fast-forward" aria-hidden="true"></i> fast-forward</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-forward" aria-hidden="true"></i> forward</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-pause" aria-hidden="true"></i> pause</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-pause-circle" aria-hidden="true"></i> pause-circle</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-pause-circle-o" aria-hidden="true"></i> pause-circle-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-play" aria-hidden="true"></i> play</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-play-circle" aria-hidden="true"></i> play-circle</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-play-circle-o" - aria-hidden="true"></i> play-circle-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-random" aria-hidden="true"></i> random</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-step-backward" - aria-hidden="true"></i> step-backward</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-step-forward" aria-hidden="true"></i> step-forward</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-stop" aria-hidden="true"></i> stop</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-stop-circle" aria-hidden="true"></i> stop-circle</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a - href="javascript:;"><i class="fa fa-stop-circle-o" - aria-hidden="true"></i> stop-circle-o</a></div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-youtube-play" aria-hidden="true"></i> youtube-play</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-video-camera" aria-hidden="true"></i> video-camera</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-volume-down" aria-hidden="true"></i> volume-down</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-volume-off" aria-hidden="true"></i> volume-off</a> - </div> - <div class="fa-hover col-md-3 col-sm-4"><a href="javascript:;"><i - class="fa fa-volume-up" aria-hidden="true"></i> volume-up</a> - </div> - </div> - </section> - </div> - </div> -</div> -<#include "/js/modules/sys/icon.js"> -</body> -</html>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/modules/sys/log.html b/nz-admin/src/main/resources/templates/modules/sys/log.html deleted file mode 100644 index 9d27d824..00000000 --- a/nz-admin/src/main/resources/templates/modules/sys/log.html +++ /dev/null @@ -1,24 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<title>系统日志</title> -<#include "/header.html"> -</head> -<body> -<div id="rrapp" v-cloak> - <div> - <div class="grid-btn"> - <div class="form-group col-sm-2"> - <input type="text" class="form-control" v-model="q.key" @keyup.enter="query" placeholder="用户名、用户操作"> - </div> - <a class="btn btn-default" @click="query">查询</a> - </div> - <table id="jqGrid"></table> - <div id="jqGridPager"></div> - </div> - -</div> - -<script src="${request.contextPath}/statics/js/modules/sys/log.js?_${.now?long}"></script> -</body> -</html>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/modules/sys/menu.html b/nz-admin/src/main/resources/templates/modules/sys/menu.html deleted file mode 100644 index dbe8c416..00000000 --- a/nz-admin/src/main/resources/templates/modules/sys/menu.html +++ /dev/null @@ -1,158 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<title>菜单管理</title> - <#include "/header.html"> - <#import "/spring.ftl" as spring> -<link rel="stylesheet" href="${request.contextPath}/statics/css/bootstrap-table.min.css"> -<link rel="stylesheet" href="${request.contextPath}/statics/plugins/treegrid/jquery.treegrid.css"> -<script src="${request.contextPath}/statics/libs/bootstrap-table.min.js"></script> -<script src="${request.contextPath}/statics/plugins/treegrid/jquery.treegrid.min.js"></script> -<script src="${request.contextPath}/statics/plugins/treegrid/jquery.treegrid.bootstrap3.js"></script> -<script src="${request.contextPath}/statics/plugins/treegrid/jquery.treegrid.extension.js"></script> -<script src="${request.contextPath}/statics/plugins/treegrid/tree.table.js"></script> -</head> -<body> -<div id="rrapp" v-cloak> - - <!-- 列表 查询 --> - <div v-show="showList"> - - <div class="tools"> - <#if shiro.hasPermission("sys:menu:save")> - <a class="btn btn-primary" @click="add" title="<@spring.message 'common.add'/>"> - <i class="fa fa-plus"></i></a> - </#if> - <#if shiro.hasPermission("sys:menu:update")> - <a class="btn btn-primary" @click="update" title="<@spring.message 'common.edit'/>"> - <i class="fa fa-pencil"></i></a> - </#if> - <#if shiro.hasPermission("sys:menu:delete")> - <a class="btn btn-primary" @click="del" title="<@spring.message 'common.delete'/>"> - <i class="fa fa-trash-o"></i></a> - </#if> - </div> - - <!-- 列表数据 --> - <table id="menuTable" data-mobile-responsive="true" data-click-to-select="true"> - <thead> - <tr> - <th data-field="selectItem" data-checkbox="true"></th> - </tr> - </thead> - </table> - </div> - - - <!--表单--> - <div v-show="!showList" class="panel panel-default"> - <div class="panel-heading">{{title}}</div> - <form class="form-horizontal"> - - <!--类型--> - <div class="form-group"> - <div class="col-sm-2 control-label"><@spring.message 'menu.type'/></div> - <div class="col-sm-9"> - <label class="radio-inline"><!--目录--> - <input type="radio" name="type" value="0" v-model="menu.type"/> <@spring.message 'menu.directory'/> - </label> - <label class="radio-inline"><!--菜单--> - <input type="radio" name="type" value="1" v-model="menu.type"/> <@spring.message 'menu.menu'/> - </label> - <label class="radio-inline"><!--按钮--> - <input type="radio" name="type" value="2" v-model="menu.type"/> <@spring.message 'common.button'/> - </label> - </div> - </div> - - <!--菜单名称--> - <div class="form-group"> - <div class="col-sm-2 control-label"><@spring.message 'common.name'/></div> - <div class="col-sm-9"> - <input type="text" class="form-control" - :class="{'form-control--error': $v.menu.name.$dirty && !$v.menu.name.required }" - v-model="$v.menu.name.$model" - placeholder="<@spring.message 'common.name'/>"/> - <span class="required-symbol">*</span> - <div class="form-control_error-msg" v-if="$v.menu.name.$dirty && !$v.menu.name.required"> - <@spring.message 'validate.common.required'/> - </div> - </div> - </div> - - <!--上级菜单--> - <div class="form-group"> - <div class="col-sm-2 control-label"><@spring.message 'menu.parent'/></div> - <div class="col-sm-9"> - <input type="text" class="form-control" style="cursor:pointer;" v-model="menu.parentName" @click="menuTree" readonly="readonly" placeholder="<@spring.message 'menu.firstOrder'/>"/> - </div> - </div> - - <!--菜单URL--> - <div v-if="menu.type == 1" class="form-group"> - <div class="col-sm-2 control-label">URL</div> - <div class="col-sm-9"> - <input type="text" class="form-control" - :class="{'form-control--error': $v.menu.url.$dirty && !$v.menu.url.urlRequired }" - v-model="$v.menu.url.$model" - placeholder="URL"/> - <span class="required-symbol" v-show="menu.type == 1">*</span> - <div class="form-control_error-msg" v-if="$v.menu.url.$dirty && !$v.menu.url.urlRequired"> - <@spring.message 'validate.common.required'/> - </div> - </div> - </div> - - <!--授权标识--> - <div v-if="menu.type == 1 || menu.type == 2" class="form-group"> - <div class="col-sm-2 control-label"><@spring.message 'menu.authority.flag'/></div> - <div class="col-sm-9"> - <input type="text" class="form-control" v-model="menu.perms" placeholder="多个用逗号分隔,如:user:list,user:create"/> - </div> - </div> - - <!--排序号--> - <div v-if="menu.type != 2" class="form-group"> - <div class="col-sm-2 control-label"><@spring.message 'menu.sortNumber'/></div> - <div class="col-sm-9"> - <input type="number" class="form-control" v-model="menu.orderNum" placeholder="<@spring.message 'menu.sortNumber'/>"/> - </div> - </div> - - <div v-if="menu.type != 2" class="form-group"> - <div class="col-sm-2 control-label"><@spring.message 'menu.icon'/></div> - <div class="col-sm-9"> - <!--<input type="text" class="form-control" v-model="menu.icon" placeholder="菜单图标"/>--> - <template> - <i id="icon" aria-hidden="true"></i> - <button type="button" class="btn btn-default" style="margin-left: 20px" @click="getIcon">获取图标</button> - <button type="button" class="btn btn-default" @click="cancelIcon">取消图标</button> - </template> - </div> - </div> - - - - <!-- 保存 / 返回 --> - <div class="form-group form-group_opbox"> - <div> - <button title="<@spring.message 'common.submit'/>" type="button" class="btn btn-primary" - style="width: 55px" @click="saveOrUpdate"><i class="fa fa-check"></i></button> - <div style="display:inline-block;width:10px;"></div> - <button title="<@spring.message 'common.back'/>" type="button" class="btn btn-warning" - style="width: 55px" @click="reload"><i class="fa fa-reply"></i></button> - </div> - </div> - </form> - </div> -</div> - -<!-- 选择菜单 --> -<div id="menuLayer" style="display: none;padding:10px;"> - <ul id="menuTree" class="ztree"></ul> -</div> - -<!--<script src="${request.contextPath}/statics/js/modules/sys/menu.js?_${.now?long}"></script>--> -<#include "/js/modules/sys/menu.js"> -</body> -</html>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/modules/sys/role.html b/nz-admin/src/main/resources/templates/modules/sys/role.html deleted file mode 100644 index 4a16944a..00000000 --- a/nz-admin/src/main/resources/templates/modules/sys/role.html +++ /dev/null @@ -1,81 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<title>角色管理</title> -<#include "/header.html"> -</head> -<body> -<div id="rrapp" v-cloak> - <div v-show="showList"> - <div class="grid-btn"> - <div class="form-group col-sm-2"> - <input type="text" class="form-control" v-model="q.roleName" @keyup.enter="query" placeholder="角色名称"> - </div> - <a class="btn btn-default" @click="query">查询</a> - - <#if shiro.hasPermission("sys:role:save")> - <a class="btn btn-primary" @click="add"><i class="fa fa-plus"></i> 新增</a> - </#if> - <#if shiro.hasPermission("sys:role:update")> - <a class="btn btn-primary" @click="update"><i class="fa fa-pencil-square-o"></i> 修改</a> - </#if> - <#if shiro.hasPermission("sys:role:delete")> - <a class="btn btn-primary" @click="del"><i class="fa fa-trash-o"></i> 删除</a> - </#if> - </div> - <table id="jqGrid"></table> - <div id="jqGridPager"></div> - </div> - - <div v-show="!showList" class="panel panel-default"> - <div class="panel-heading">{{title}}</div> - <form class="form-horizontal"> - <div class="form-group"> - <div class="col-sm-2 control-label">角色名称</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="role.roleName" placeholder="角色名称"/> - </div> - </div> - <!--<div class="form-group"> - <div class="col-sm-2 control-label">所属部门</div> - <div class="col-sm-10"> - <input type="text" class="form-control" style="cursor:pointer;" v-model="role.deptName" @click="deptTree" readonly="readonly" placeholder="所属部门"/> - </div> - </div>--> - <div class="form-group"> - <div class="col-sm-2 control-label">备注</div> - <div class="col-sm-10"> - <input type="text" class="form-control" v-model="role.remark" placeholder="备注"/> - </div> - </div> - <div class="form-inline clearfix" style="margin-top:30px;margin-left:26px;"> - <div class="form-group col-md-6"> - <strong class="col-sm-5 control-label">功能权限</strong> - <div class="col-sm-10"> - <ul id="menuTree" class="ztree"></ul> - </div> - </div> - <!-- <div class="form-group col-md-6"> - <strong class="col-sm-5 control-label">数据权限</strong> - <div class="col-sm-10"> - <ul id="dataTree" class="ztree"></ul> - </div> - </div> --> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label"></div> - <input type="button" class="btn btn-primary" @click="saveOrUpdate" value="确定"/> - <input type="button" class="btn btn-warning" @click="reload" value="返回"/> - </div> - </form> - </div> -</div> - -<!-- 选择部门 --> -<!--<div id="deptLayer" style="display: none;padding:10px;"> - <ul id="deptTree" class="ztree"></ul> -</div>--> - -<script src="${request.contextPath}/statics/js/modules/sys/role.js?_${.now?long}"></script> -</body> -</html>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/modules/sys/user.html b/nz-admin/src/main/resources/templates/modules/sys/user.html deleted file mode 100644 index 4909ac6d..00000000 --- a/nz-admin/src/main/resources/templates/modules/sys/user.html +++ /dev/null @@ -1,102 +0,0 @@ -<!DOCTYPE html> -<#import "/spring.ftl" as spring> -<html> -<head> -<title>管理员列表</title> -<#include "/header.html"> -</head> -<body> -<div id="rrapp" v-cloak> - <div v-show="showList"> - <div class="grid-btn"> - <div class="form-group col-sm-2"> - <input type="text" class="form-control" v-model="q.username" @keyup.enter="query" placeholder="<@spring.message 'user.username'/>"> - </div> - <a class="btn btn-default" @click="query" title="<@spring.message 'common.search'/>"><i class="fa fa-search"></i></a> - <#if shiro.hasPermission("sys:user:save")> - <a class="btn btn-primary" @click="add" title="<@spring.message 'common.add'/>"><i class="fa fa-plus"></i></a> - </#if> - <#if shiro.hasPermission("sys:user:update")> - <a class="btn btn-primary" @click="update" title="<@spring.message 'common.edit'/>"><i class="fa fa-pencil-square-o"></i></a> - </#if> - <#if shiro.hasPermission("sys:user:delete")> - <a class="btn btn-primary" @click="del" title="<@spring.message 'common.delete'/>"><i class="fa fa-trash-o"></i></a> - </#if> - </div> - <table id="jqGrid"></table> - <div id="jqGridPager"></div> - </div> - - <div v-show="!showList" class="panel panel-default"> - <div class="panel-heading">{{title}}</div> - <form class="form-horizontal"> - <div class="form-group"> - <div class="col-sm-2 control-label"><@spring.message 'user.username'/></div> - <div class="col-sm-9"> - <input type="text" class="form-control" :class="{'form-control--error': $v.user.username.$dirty && $v.user.username.$error}" v-model.trim="$v.user.username.$model"/> - <span class="required-symbol">*</span> - <div class="form-control_error-msg" v-if="$v.user.username.$dirty && !$v.user.username.required"><@spring.message 'validate.common.required'/></div> - <div class="form-control_error-msg" v-if="$v.user.username.$dirty && !$v.user.username.checkName"><@spring.message 'validate.common.duplicate'/></div> - </div> - </div> - <!--<div class="form-group"> - <div class="col-sm-2 control-label">所属部门</div> - <div class="col-sm-10"> - <input type="text" class="form-control" style="cursor:pointer;" v-model="user.deptName" @click="deptTree" readonly="readonly" placeholder="所属部门"/> - </div> - </div>--> - <div class="form-group"> - <div class="col-sm-2 control-label"><@spring.message 'user.password'/></div> - <div class="col-sm-9"> - <input type="text" class="form-control" :class="{'form-control--error': user.userId == null && $v.user.password.$dirty && $v.user.password.$error}" v-model="$v.user.password.$model"/> - <span v-if="user.userId == null" class="required-symbol">*</span> - <div class="form-control_error-msg" v-if="user.userId == null && $v.user.password.$dirty && !$v.user.password.required"><@spring.message 'validate.common.required'/></div> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label"><@spring.message 'user.email'/></div> - <div class="col-sm-9"> - <input type="text" class="form-control" v-model="user.email"/> - <span class="required-symbol">*</span> - <div class="form-control_error-msg" v-if="$v.user.email.$dirty && !$v.user.email.required"><@spring.message 'validate.common.required'/></div> - <div class="form-control_error-msg" v-if="$v.user.email.$dirty && !$v.user.email.email"><@spring.message 'validate.common.formaterror'/></div> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label"><@spring.message 'user.role'/></div> - <div class="col-sm-9"> - <template v-for="role in roleList"> - <span class="form-cbx"> - <input v-model="user.roleIdList" type="checkbox" :value="role.roleId"/> - <span :title="role.roleName">{{role.roleName}}</span> - </span> - </template> - </div> - </div> - <div class="form-group"> - <div class="col-sm-2 control-label"><@spring.message 'common.status'/></div> - <label class="radio-inline"> - <input type="radio" name="status" value="0" v-model="user.status"/><@spring.message 'common.disabled'/> - </label> - <label class="radio-inline"> - <input type="radio" name="status" value="1" v-model="user.status"/><@spring.message 'common.normal'/> - </label> - </div> - <div class="form-group form-group_opbox"> - <div> - <button title="<@spring.message 'common.submit'/>" type="button" class="btn btn-primary" style="width: 55px" @click="saveOrUpdate"><i class="fa fa-check"></i></button> - <div style="display:inline-block;width:10px;"></div> - <button title="<@spring.message 'common.back'/>" type="button" class="btn btn-warning" style="width: 55px" @click="reload"><i class="fa fa-reply"></i></button> - </div> - </div> - </form> - </div> -</div> - -<!-- 选择部门 --> -<!--<div id="deptLayer" style="display: none;padding:10px;"> - <ul id="deptTree" class="ztree"></ul> -</div>--> -<#include "/js/modules/sys/user.js"> -</body> -</html>
\ No newline at end of file diff --git a/nz-admin/src/main/resources/templates/spring.ftl b/nz-admin/src/main/resources/templates/spring.ftl deleted file mode 100644 index ec93e722..00000000 --- a/nz-admin/src/main/resources/templates/spring.ftl +++ /dev/null @@ -1,384 +0,0 @@ -<#ftl output_format="HTML" strip_whitespace=true> -<#-- - * spring.ftl - * - * This file consists of a collection of FreeMarker macros aimed at easing - * some of the common requirements of web applications - in particular - * handling of forms. - * - * Spring's FreeMarker support will automatically make this file and therefore - * all macros within it available to any application using Spring's - * FreeMarkerConfigurer. - * - * To take advantage of these macros, the "exposeSpringMacroHelpers" property - * of the FreeMarker class needs to be set to "true". This will expose a - * RequestContext under the name "springMacroRequestContext", as needed by - * the macros in this library. - * - * @author Darren Davison - * @author Juergen Hoeller - * @since 1.1 - --> - -<#-- - * message - * - * Macro to translate a message code into a message. - --> -<#macro message code>${springMacroRequestContext.getMessage(code)?no_esc}</#macro> - -<#-- - * messageText - * - * Macro to translate a message code into a message, - * using the given default text if no message found. - --> -<#macro messageText code, text>${springMacroRequestContext.getMessage(code, text)?no_esc}</#macro> - -<#-- - * messageArgs - * - * Macro to translate a message code with arguments into a message. - --> -<#macro messageArgs code, args>${springMacroRequestContext.getMessage(code, args)?no_esc}</#macro> - -<#-- - * messageArgsText - * - * Macro to translate a message code with arguments into a message, - * using the given default text if no message found. - --> -<#macro messageArgsText code, args, text>${springMacroRequestContext.getMessage(code, args, text)?no_esc}</#macro> - -<#-- - * theme - * - * Macro to translate a theme message code into a message. - --> -<#macro theme code>${springMacroRequestContext.getThemeMessage(code)?no_esc}</#macro> - -<#-- - * themeText - * - * Macro to translate a theme message code into a message, - * using the given default text if no message found. - --> -<#macro themeText code, text>${springMacroRequestContext.getThemeMessage(code, text)?no_esc}</#macro> - -<#-- - * themeArgs - * - * Macro to translate a theme message code with arguments into a message. - --> -<#macro themeArgs code, args>${springMacroRequestContext.getThemeMessage(code, args)?no_esc}</#macro> - -<#-- - * themeArgsText - * - * Macro to translate a theme message code with arguments into a message, - * using the given default text if no message found. - --> -<#macro themeArgsText code, args, text>${springMacroRequestContext.getThemeMessage(code, args, text)?no_esc}</#macro> - -<#-- - * url - * - * Takes a relative URL and makes it absolute from the server root by - * adding the context root for the web application. - --> -<#macro url relativeUrl extra...><#if extra?? && extra?size!=0>${springMacroRequestContext.getContextUrl(relativeUrl,extra)?no_esc}<#else>${springMacroRequestContext.getContextUrl(relativeUrl)?no_esc}</#if></#macro> - -<#-- - * bind - * - * Exposes a BindStatus object for the given bind path, which can be - * a bean (e.g. "person") to get global errors, or a bean property - * (e.g. "person.name") to get field errors. Can be called multiple times - * within a form to bind to multiple command objects and/or field names. - * - * This macro will participate in the default HTML escape setting for the given - * RequestContext. This can be customized by calling "setDefaultHtmlEscape" - * on the "springMacroRequestContext" context variable, or via the - * "defaultHtmlEscape" context-param in web.xml (same as for the JSP bind tag). - * Also regards a "htmlEscape" variable in the namespace of this library. - * - * Producing no output, the following context variable will be available - * each time this macro is referenced (assuming you import this library in - * your templates with the namespace 'spring'): - * - * spring.status : a BindStatus instance holding the command object name, - * expression, value, and error messages and codes for the path supplied - * - * @param path the path (string value) of the value required to bind to. - * Spring defaults to a command name of "command" but this can be - * overridden by user configuration. - --> -<#macro bind path> - <#if htmlEscape?exists> - <#assign status = springMacroRequestContext.getBindStatus(path, htmlEscape)> - <#else> - <#assign status = springMacroRequestContext.getBindStatus(path)> - </#if> - <#-- assign a temporary value, forcing a string representation for any - kind of variable. This temp value is only used in this macro lib --> - <#if status.value?exists && status.value?is_boolean> - <#assign stringStatusValue=status.value?string> - <#else> - <#assign stringStatusValue=status.value?default("")> - </#if> -</#macro> - -<#-- - * bindEscaped - * - * Similar to spring:bind, but takes an explicit HTML escape flag rather - * than relying on the default HTML escape setting. - --> -<#macro bindEscaped path, htmlEscape> - <#assign status = springMacroRequestContext.getBindStatus(path, htmlEscape)> - <#-- assign a temporary value, forcing a string representation for any - kind of variable. This temp value is only used in this macro lib --> - <#if status.value?exists && status.value?is_boolean> - <#assign stringStatusValue=status.value?string> - <#else> - <#assign stringStatusValue=status.value?default("")> - </#if> -</#macro> - -<#-- - * formInput - * - * Display a form input field of type 'text' and bind it to an attribute - * of a command or bean. - * - * @param path the name of the field to bind to - * @param attributes any additional attributes for the element - * (such as class or CSS styles or size) - --> -<#macro formInput path attributes="" fieldType="text"> - <@bind path/> - <input type="${fieldType}" id="${status.expression?replace('[','')?replace(']','')}" name="${status.expression}" value="<#if fieldType!="password">${stringStatusValue}</#if>" ${attributes?no_esc}<@closeTag/> -</#macro> - -<#-- - * formPasswordInput - * - * Display a form input field of type 'password' and bind it to an attribute - * of a command or bean. No value will ever be displayed. This functionality - * can also be obtained by calling the formInput macro with a 'type' parameter - * of 'password'. - * - * @param path the name of the field to bind to - * @param attributes any additional attributes for the element - * (such as class or CSS styles or size) - --> -<#macro formPasswordInput path attributes=""> - <@formInput path, attributes, "password"/> -</#macro> - -<#-- - * formHiddenInput - * - * Generate a form input field of type 'hidden' and bind it to an attribute - * of a command or bean. This functionality can also be obtained by calling - * the formInput macro with a 'type' parameter of 'hidden'. - * - * @param path the name of the field to bind to - * @param attributes any additional attributes for the element - * (such as class or CSS styles or size) - --> -<#macro formHiddenInput path attributes=""> - <@formInput path, attributes, "hidden"/> -</#macro> - -<#-- - * formTextarea - * - * Display a text area and bind it to an attribute of a command or bean. - * - * @param path the name of the field to bind to - * @param attributes any additional attributes for the element - * (such as class or CSS styles or size) - --> -<#macro formTextarea path attributes=""> - <@bind path/> - <textarea id="${status.expression?replace('[','')?replace(']','')}" name="${status.expression}" ${attributes?no_esc}> -${stringStatusValue}</textarea> -</#macro> - -<#-- - * formSingleSelect - * - * Show a selectbox (dropdown) input element allowing a single value to be chosen - * from a list of options. - * - * @param path the name of the field to bind to - * @param options a map (value=label) of all the available options - * @param attributes any additional attributes for the element - * (such as class or CSS styles or size) ---> -<#macro formSingleSelect path options attributes=""> - <@bind path/> - <select id="${status.expression?replace('[','')?replace(']','')}" name="${status.expression}" ${attributes?no_esc}> - <#if options?is_hash> - <#list options?keys as value> - <option value="${value}"<@checkSelected value/>>${options[value]}</option> - </#list> - <#else> - <#list options as value> - <option value="${value}"<@checkSelected value/>>${value}</option> - </#list> - </#if> - </select> -</#macro> - -<#-- - * formMultiSelect - * - * Show a listbox of options allowing the user to make 0 or more choices from - * the list of options. - * - * @param path the name of the field to bind to - * @param options a map (value=label) of all the available options - * @param attributes any additional attributes for the element - * (such as class or CSS styles or size) ---> -<#macro formMultiSelect path options attributes=""> - <@bind path/> - <select multiple="multiple" id="${status.expression?replace('[','')?replace(']','')}" name="${status.expression}" ${attributes?no_esc}> - <#list options?keys as value> - <#assign isSelected = contains(status.actualValue?default([""]), value)> - <option value="${value}"<#if isSelected> selected="selected"</#if>>${options[value]}</option> - </#list> - </select> -</#macro> - -<#-- - * formRadioButtons - * - * Show radio buttons. - * - * @param path the name of the field to bind to - * @param options a map (value=label) of all the available options - * @param separator the HTML tag or other character list that should be used to - * separate each option (typically ' ' or '<br>') - * @param attributes any additional attributes for the element - * (such as class or CSS styles or size) ---> -<#macro formRadioButtons path options separator attributes=""> - <@bind path/> - <#list options?keys as value> - <#assign id="${status.expression?replace('[','')?replace(']','')}${value_index}"> - <input type="radio" id="${id}" name="${status.expression}" value="${value}"<#if stringStatusValue == value> checked="checked"</#if> ${attributes?no_esc}<@closeTag/> - <label for="${id}">${options[value]}</label>${separator?no_esc} - </#list> -</#macro> - -<#-- - * formCheckboxes - * - * Show checkboxes. - * - * @param path the name of the field to bind to - * @param options a map (value=label) of all the available options - * @param separator the HTML tag or other character list that should be used to - * separate each option (typically ' ' or '<br>') - * @param attributes any additional attributes for the element - * (such as class or CSS styles or size) ---> -<#macro formCheckboxes path options separator attributes=""> - <@bind path/> - <#list options?keys as value> - <#assign id="${status.expression?replace('[','')?replace(']','')}${value_index}"> - <#assign isSelected = contains(status.actualValue?default([""]), value)> - <input type="checkbox" id="${id}" name="${status.expression}" value="${value}"<#if isSelected> checked="checked"</#if> ${attributes?no_esc}<@closeTag/> - <label for="${id}">${options[value]}</label>${separator?no_esc} - </#list> - <input type="hidden" name="_${status.expression}" value="on"/> -</#macro> - -<#-- - * formCheckbox - * - * Show a single checkbox. - * - * @param path the name of the field to bind to - * @param attributes any additional attributes for the element - * (such as class or CSS styles or size) ---> -<#macro formCheckbox path attributes=""> - <@bind path /> - <#assign id="${status.expression?replace('[','')?replace(']','')}"> - <#assign isSelected = status.value?? && status.value?string=="true"> - <input type="hidden" name="_${status.expression}" value="on"/> - <input type="checkbox" id="${id}" name="${status.expression}"<#if isSelected> checked="checked"</#if> ${attributes?no_esc}/> -</#macro> - -<#-- - * showErrors - * - * Show validation errors for the currently bound field, with - * optional style attributes. - * - * @param separator the HTML tag or other character list that should be used to - * separate each option (typically ' ' or '<br>') - * @param classOrStyle either the name of a CSS class element (which is defined in - * the template or an external CSS file) or an inline style. If the value passed - * in here contains a colon (:) then a 'style=' attribute will be used, - * otherwise a 'class=' attribute will be used. ---> -<#macro showErrors separator classOrStyle=""> - <#list status.errorMessages as error> - <#if classOrStyle == ""> - <b>${error}</b> - <#else> - <#if classOrStyle?index_of(":") == -1><#assign attr="class"><#else><#assign attr="style"></#if> - <span ${attr}="${classOrStyle}">${error}</span> - </#if> - <#if error_has_next>${separator?no_esc}</#if> - </#list> -</#macro> - -<#-- - * checkSelected - * - * Check a value in a list to see if it is the currently selected value. - * If so, add the 'selected="selected"' text to the output. - * Handles values of numeric and string types. - * This function is used internally but can be accessed by user code if required. - * - * @param value the current value in a list iteration ---> -<#macro checkSelected value> - <#if stringStatusValue?is_number && stringStatusValue == value?number>selected="selected"</#if> - <#if stringStatusValue?is_string && stringStatusValue == value>selected="selected"</#if> -</#macro> - -<#-- - * contains - * - * Macro to return true if the list contains the scalar, false if not. - * Surprisingly not a FreeMarker builtin. - * This function is used internally but can be accessed by user code if required. - * - * @param list the list to search for the item - * @param item the item to search for in the list - * @return true if item is found in the list, false otherwise ---> -<#function contains list item> - <#list list as nextInList> - <#if nextInList == item><#return true></#if> - </#list> - <#return false> -</#function> - -<#-- - * closeTag - * - * Simple macro to close an HTML tag that has no body with '>' or '/>', - * depending on the value of a 'xhtmlCompliant' variable in the namespace - * of this library. ---> -<#macro closeTag> - <#if xhtmlCompliant?exists && xhtmlCompliant>/><#else>></#if> -</#macro> |
