Browse Source

优化结构

ms-dev 6 years ago
parent
commit
a480376dac
60 changed files with 76 additions and 6432 deletions
  1. 45 45
      src/main/java/net/mingsoft/config/ShiroConfiguration.java
  2. 31 28
      src/main/resources/application.yml
  3. 0 44
      src/main/webapp/WEB-INF/manager/app/app.ftl
  4. 0 24
      src/main/webapp/WEB-INF/manager/basic/basic.ftl
  5. 0 46
      src/main/webapp/WEB-INF/manager/basic/basic_list.ftl
  6. 0 45
      src/main/webapp/WEB-INF/manager/basic/city/form.ftl
  7. 0 118
      src/main/webapp/WEB-INF/manager/basic/city/index.ftl
  8. 0 63
      src/main/webapp/WEB-INF/manager/basic/file/form.ftl
  9. 0 235
      src/main/webapp/WEB-INF/manager/basic/file/index.ftl
  10. 0 120
      src/main/webapp/WEB-INF/manager/basic/index.ftl
  11. 0 217
      src/main/webapp/WEB-INF/manager/basic/manager/index.ftl
  12. 0 48
      src/main/webapp/WEB-INF/manager/basic/people/form.ftl
  13. 0 131
      src/main/webapp/WEB-INF/manager/basic/people/index.ftl
  14. 0 110
      src/main/webapp/WEB-INF/manager/basic/role/form.ftl
  15. 0 118
      src/main/webapp/WEB-INF/manager/basic/role/index.ftl
  16. 0 51
      src/main/webapp/WEB-INF/manager/category/form.ftl
  17. 0 114
      src/main/webapp/WEB-INF/manager/category/index.ftl
  18. 0 2
      src/main/webapp/WEB-INF/manager/category/shiro-button.ftl
  19. 0 2
      src/main/webapp/WEB-INF/manager/category/shiro-update.ftl
  20. 0 188
      src/main/webapp/WEB-INF/manager/column/form.ftl
  21. 0 166
      src/main/webapp/WEB-INF/manager/column/index.ftl
  22. 0 2
      src/main/webapp/WEB-INF/manager/column/shiro-button.ftl
  23. 0 2
      src/main/webapp/WEB-INF/manager/column/shiro-update.ftl
  24. 0 21
      src/main/webapp/WEB-INF/manager/include/head-file.ftl
  25. 0 88
      src/main/webapp/WEB-INF/manager/include/macro.ftl
  26. 0 173
      src/main/webapp/WEB-INF/manager/include/manager.ftl
  27. 0 98
      src/main/webapp/WEB-INF/manager/include/meta.ftl
  28. 0 6
      src/main/webapp/WEB-INF/manager/include/ui/attributes.ftl
  29. 0 333
      src/main/webapp/WEB-INF/manager/include/ui/button.ftl
  30. 0 5
      src/main/webapp/WEB-INF/manager/include/ui/checkboxlist-item.ftl
  31. 0 46
      src/main/webapp/WEB-INF/manager/include/ui/checkboxlist.ftl
  32. 0 16
      src/main/webapp/WEB-INF/manager/include/ui/common-attributes.ftl
  33. 0 15
      src/main/webapp/WEB-INF/manager/include/ui/control.ftl
  34. 0 81
      src/main/webapp/WEB-INF/manager/include/ui/date.ftl
  35. 0 98
      src/main/webapp/WEB-INF/manager/include/ui/editor.ftl
  36. 0 19
      src/main/webapp/WEB-INF/manager/include/ui/file.ftl
  37. 0 139
      src/main/webapp/WEB-INF/manager/include/ui/form.ftl
  38. 0 15
      src/main/webapp/WEB-INF/manager/include/ui/index.ftl
  39. 0 167
      src/main/webapp/WEB-INF/manager/include/ui/input-tree.ftl
  40. 0 232
      src/main/webapp/WEB-INF/manager/include/ui/input.ftl
  41. 0 175
      src/main/webapp/WEB-INF/manager/include/ui/modal.ftl
  42. 0 51
      src/main/webapp/WEB-INF/manager/include/ui/page.ftl
  43. 0 7
      src/main/webapp/WEB-INF/manager/include/ui/radio-item.ftl
  44. 0 76
      src/main/webapp/WEB-INF/manager/include/ui/select.ftl
  45. 0 82
      src/main/webapp/WEB-INF/manager/include/ui/table.ftl
  46. 0 41
      src/main/webapp/WEB-INF/manager/include/ui/textarea.ftl
  47. 0 43
      src/main/webapp/WEB-INF/manager/include/ui/time.ftl
  48. 0 480
      src/main/webapp/WEB-INF/manager/include/ui/tree.ftl
  49. 0 344
      src/main/webapp/WEB-INF/manager/include/ui/upload.ftl
  50. 0 198
      src/main/webapp/WEB-INF/manager/index.ftl
  51. 0 247
      src/main/webapp/WEB-INF/manager/login.ftl
  52. 0 15
      src/main/webapp/WEB-INF/manager/main.ftl
  53. 0 360
      src/main/webapp/WEB-INF/manager/manager/manager.ftl
  54. 0 248
      src/main/webapp/WEB-INF/manager/model/index.ftl
  55. 0 9
      src/main/webapp/WEB-INF/manager/rf.html
  56. 0 122
      src/main/webapp/WEB-INF/manager/role/role.ftl
  57. 0 177
      src/main/webapp/WEB-INF/manager/role/role_list.ftl
  58. 0 41
      src/main/webapp/WEB-INF/manager/template/template_edit_file.ftl
  59. 0 152
      src/main/webapp/WEB-INF/manager/template/template_file_list.ftl
  60. 0 93
      src/main/webapp/WEB-INF/manager/template/template_list.ftl

+ 45 - 45
src/main/java/net/mingsoft/config/ShiroConfiguration.java

@@ -5,6 +5,7 @@ import java.util.Map;
 
 import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
 import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
@@ -14,54 +15,53 @@ import org.apache.shiro.mgt.SecurityManager;
 
 @Configuration
 public class ShiroConfiguration {
+	@Value("${ms.manager.path}")
+	private String managerPath;
+
 	@Bean
-    public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
-        ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
-        // 必须设置 SecurityManager
-        shiroFilterFactoryBean.setSecurityManager(securityManager);
-        // setLoginUrl 如果不设置值,默认会自动寻找Web工程根目录下的"/login.jsp"页面 或 "/login" 映射
-        shiroFilterFactoryBean.setLoginUrl("/notLogin");
-        // 设置无权限时跳转的 url;
-        shiroFilterFactoryBean.setUnauthorizedUrl("/notRole");
+	public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
+		ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
+		// 必须设置 SecurityManager
+		shiroFilterFactoryBean.setSecurityManager(securityManager);
+		// setLoginUrl 如果不设置值,默认会自动寻找Web工程根目录下的"/login.jsp"页面 或 "/login" 映射
+		shiroFilterFactoryBean.setLoginUrl(managerPath+"/login.do");
+		// 设置无权限时跳转的 url;
+		shiroFilterFactoryBean.setUnauthorizedUrl(managerPath+"/404.do");
 
-        // 设置拦截器
-        Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>();
-        //游客,开发权限
-        filterChainDefinitionMap.put("/guest/**", "anon");
-        //用户,需要角色权限 “user”
-        filterChainDefinitionMap.put("/user/**", "roles[user]");
-        //管理员,需要角色权限 “admin”
-        filterChainDefinitionMap.put("/admin/**", "roles[admin]");
-        //开放登陆接口
-        filterChainDefinitionMap.put("/ms/login.do", "anon");
-        filterChainDefinitionMap.put("/ms/checkLogin.do", "anon");
-        //其余接口一律拦截
-        //主要这行代码必须放在所有权限设置的最后,不然会导致所有 url 都被拦截
-        filterChainDefinitionMap.put("/**", "anon");
+		// 设置拦截器
+		Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>();
+		// 游客,开发权限
+		filterChainDefinitionMap.put("/static/**", "anon");
+		filterChainDefinitionMap.put("/html/**", "anon");
+		// 开放登陆接口
+		filterChainDefinitionMap.put(managerPath+"/login.do", "anon");
+		filterChainDefinitionMap.put(managerPath+"/checkLogin.do", "anon");
+		// 其余接口一律拦截
+		// 主要这行代码必须放在所有权限设置的最后,不然会导致所有 url 都被拦截
+		filterChainDefinitionMap.put(managerPath+"/**", "authc");
 
-        shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
-        return shiroFilterFactoryBean;
-    }
+		shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
+		return shiroFilterFactoryBean;
+	}
 
-    /**
-     * 注入 securityManager
-     */
-    @Bean
-    public SecurityManager securityManager() {
-        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
-        // 设置realm.
-        securityManager.setRealm(customRealm());
-        return securityManager;
-    }
+	/**
+	 * 注入 securityManager
+	 */
+	@Bean
+	public SecurityManager securityManager() {
+		DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
+		// 设置realm.
+		securityManager.setRealm(customRealm());
+		return securityManager;
+	}
 
-    /**
-     * 自定义身份认证 realm;
-     * <p>
-     * 必须写这个类,并加上 @Bean 注解,目的是注入 CustomRealm,
-     * 否则会影响 CustomRealm类 中其他类的依赖注入
-     */
-    @Bean
-    public BaseAuthRealm customRealm() {
-        return new BaseAuthRealm();
-    }
+	/**
+	 * 自定义身份认证 realm;
+	 * <p>
+	 * 必须写这个类,并加上 @Bean 注解,目的是注入 CustomRealm, 否则会影响 CustomRealm类 中其他类的依赖注入
+	 */
+	@Bean
+	public BaseAuthRealm customRealm() {
+		return new BaseAuthRealm();
+	}
 }

+ 31 - 28
src/main/resources/application.yml

@@ -1,7 +1,35 @@
+#服务配置
 server:
+  #端口
   port: 8081
-  tomcat:
-    max-http-header-size: 10240     #单位:字节
+  #项目名称
+  servlet.context-path: /ms-mcms
+  
+# slf4j日志配置
+logging:
+ # 配置级别
+ level:
+  #分包配置级别,即不同的目录下可以使用不同的级别
+  net.mingsoft: trace
+#铭飞配置      
+ms:
+ manager: 
+  path: /ms
+  view-path: /WEB-INF/manager
+ #session配置 
+ session: 
+  timeout: 1800000 #会话超时, 单位:毫秒, 20m=1200000ms, 30m=1800000ms, 60m=3600000ms
+  validation-interval: 120000 #会话清理间隔时间, 单位:毫秒,2m=120000ms
+  
+ #上传配置
+ upload: 
+   path: /upload 
+   denied: exe
+   allowed: jpg
+   max-size: 1
+   memory-size: 4096
+      
+#spring配置
 spring:
   profiles:
     active: dev
@@ -39,29 +67,4 @@ spring:
 mybatis:
   mapper-locations: classpath*:**/dao/*.xml
   configuration: 
-   database-id: mysql
-
-# slf4j日志配置
-logging:
- # 配置级别
- level:
-  #分包配置级别,即不同的目录下可以使用不同的级别
-  net.mingsoft: trace
-  com.mingsoft: trace
-      
-ms:
- manager: 
-  path: /ms
-  view:  #已过期
-   path:  /WEB-INF/manager
- session: 
-  timeout: 1800000 #会话超时, 单位:毫秒, 20m=1200000ms, 30m=1800000ms, 60m=3600000ms
-  validation.interval: 120000 #会话清理间隔时间, 单位:毫秒,2m=120000ms
- upload: 
-   path: /upload 
-   denied: exe
-   allowed: jpg
-   max:
-    size: 1
-   memory:
-    size: 4096
+   database-id: mysql

+ 0 - 44
src/main/webapp/WEB-INF/manager/app/app.ftl

@@ -1,44 +0,0 @@
-<@ms.html5>
-	<@ms.nav title="应用设置">
-		<@shiro.hasPermission name="app:update"><@ms.saveButton title="" postForm="appForm"/></@shiro.hasPermission> 
-	</@ms.nav>
-	<@ms.panel>
-		<@ms.form isvalidation=true name="appForm"  action="${managerPath}/app/update.do">
-			<@ms.hidden name="appId" value="${app.appId?default(0)}" />
-			<@ms.text name="appName" width="500" label="网站标题" value="${app.appName?default('')}"  title="网站标题" placeholder="请输入网站标题" validation={"maxlength":"50","required":"true", "data-bv-notempty-message":"必填项目","data-bv-stringlength-message":"网站标题在50个字符以内!"}/>
-  			<!--网站Logo,暂时不兼容-->
-  			<@ms.formRow label="网站Logo" help="提示:文章缩略图,支持jpg,png格式">
-  			  	<@ms.uploadImg path="app" inputName="appLogo" size="1"  maxSize="1" imgs="${app.appLogo!('')}"/>
-  			</@ms.formRow>
-  			<@ms.checkbox name="appMobileStyle" width="200"  list=[{"id":"m","value":"启用"}] listKey="id" listValue="value" valueList=["${app.appMobileStyle!('')}"] label="启用移动端" 
-  				help="启用后手机用户访问网站会显示手机版网页,前提是网站必需提供移动端皮肤,相关教程:<a href='http://ms.ming-soft.com/mbbs/13086/detail.do' target='_blank'>铭飞移动端开发教程</a>"/>
-			<@ms.select name="appStyle" width="300" id="appStyle" label="模板风格"  />
-			<@ms.textarea name="appKeyword"  label="关键字" value="${app.appKeyword?default('')}" rows="4"  placeholder="请输入关键字"/>
-			<@ms.textarea name="appDescription"  label="描述"  value="${app.appDescription?default('')}" rows="4"  placeholder="请输入站点描述"/>
-			<@ms.textarea name="appCopyright"  label="版权信息" value="${app.appCopyright?default('')}" rows="4"  placeholder="请输入版权信息"/>
-		</@ms.form>	
-	</@ms.panel>
-</@ms.html5>	  
-<script>
-	$(function(){
-		<#if app.appId != 0>
-				ms.get("${managerPath}/template/queryAppTemplateSkin.do",null,function(msg){
-						if(msg.fileName != null && msg.fileName.length != 0){
-							//清空默认信息
-							$("#appStyle").html("");
-				   			for(var i=0; i<msg.fileName.length; i++){
-				   				if ("${app.appStyle?default('')}"==msg.fileName[i]) {
-				   					$("#appStyle").append("<option value="+msg.fileName[i]+" selected>"+msg.fileName[i]+"</option>")
-				   				} else {
-					   				$("#appStyle").append("<option value="+msg.fileName[i]+">"+msg.fileName[i]+"</option>")
-					   			}
-					   		}
-				   		}else{
-				   			$(".appStyle").append("<option>暂无模版</option>");
-				   		}
-				});				
-		</#if>
-	});
-</script>
-
-	

+ 0 - 24
src/main/webapp/WEB-INF/manager/basic/basic.ftl

@@ -1,24 +0,0 @@
-<@ms.html5>
-    <@ms.nav title="基础内容更新">
-    	<@ms.saveButton postForm="basicForm"/>
-    </@ms.nav>
-    <@ms.panel>
-
-						<#assign basicTitle="">
-						<#assign basicId="0">
-						<#assign basicDescription="">
-						<#assign action="${managerPath}/basic/save.do">
-						<#if basic?has_content>
-							<#assign basicTitle="${basic.basicTitle?default('')}">
-							<#assign basicDescription="${basic.basicDescription?default('')}">
-							<#assign basicId="${basic.basicId}">
-							<#assign action="${managerPath}/basic/update.do">
-						</#if>    
- 						<@ms.form action="${action}" name="basicForm" redirect="${managerPath}/basic/${categoryId?default('0')}/list.do">
-								<@ms.hidden  name="basicId" value="${basicId?default('')}"/>
-								<@ms.hidden  name="basicCategoryId" value="${categoryId?default('0')}"/>
-								<@ms.text label="标题" name="basicTitle" value="${basicTitle?default('')}" size="33" style="width:40%" maxlength="120" />
-								<@ms.textarea label="描述" name="basicDescription" value="${basicDescription?default('')}" cols="110" rows="5" maxlength="1000" />
-						</@ms.form>
-    </@ms.panel>
-</@ms.html5>

+ 0 - 46
src/main/webapp/WEB-INF/manager/basic/basic_list.ftl

@@ -1,46 +0,0 @@
-<@ms.html5>
-    <@ms.nav title="基础内容管理"></@ms.nav>
-    
-    <@ms.panel>
-		<@ms.searchForm name="basicForm" action="${managerPath}/basic/${categoryId?default(0)}/list.do">
-			<@ms.text label="关键字" name="keyword" placeholder="输入关键字" value="${keyword?default('')}"/>
-			<@ms.searchFormButton>
-				<@ms.queryButton form="basicForm"/>								
-			</@ms.searchFormButton>
-		</@ms.searchForm>
-		    
-		<@ms.panelNav>
-		    <@ms.addButton  url="${managerPath}/basic/add.do?categoryId=${categoryId?default(0)}&categoryTitle=${categoryTitle?default(0)}"/>
-		    <@ms.delButton fieldName="basicId" onclick="remove"/>
-		</@ms.panelNav>
-<@ms.table head=['编号,100',"标题"] 
-           filed=["basicId","basicTitle"] 
-           listItem="basicList" 
-           id="basicId" 
-           checkbox="basicId" 
-           editField=["basicTitle"]
-           editJs="edit"
-           
-/>
-					
-						<#if page?has_content>
-							<@ms.showPage page=page/>
-						</#if>						  
-    </@ms.panel>
-</@ms.html5>
-
-	
-<script>
-		
-		function edit(id) {
-				location.href = base+"${baseManager}/basic/"+id+"/edit.do";
-		}
-		
-		function remove(ids) {
-			ms.post("${managerPath}/basic/allDelete.do","basicIds="+ids,function(msg){
-				if(msg.result){
-					location.reload();
-				}
-			});
-		}
-</script>

+ 0 - 45
src/main/webapp/WEB-INF/manager/basic/city/form.ftl

@@ -1,45 +0,0 @@
-<@ms.html5>
-	 <@ms.nav title="省市县镇村数据编辑" back=true>
-    	<@ms.saveButton  onclick="save()"/>
-    </@ms.nav>
-    <@ms.panel>
-    	<@ms.form name="cityForm" isvalidation=true>
-    		<@ms.hidden name="id" value="${cityEntity.id?default('')}"/>
-    	</@ms.form>
-    </@ms.panel>
-</@ms.html5>
-<script>
-	var url = "${managerPath}/basic/city/save.do";
-	if($("input[name = 'id']").val() > 0){
-		url = "${managerPath}/basic/city/update.do";
-		$(".btn-success").text("更新");
-	}
-	//编辑按钮onclick
-	function save() {
-		$("#cityForm").data("bootstrapValidator").validate();
-			var isValid = $("#cityForm").data("bootstrapValidator").isValid();
-			if(!isValid) {
-				<@ms.notify msg= "数据提交失败,请检查数据格式!" type= "warning" />
-				return;
-		}
-		var btnWord =$(".btn-success").text();
-		$(".btn-success").text(btnWord+"中...");
-		$(".btn-success").prop("disabled",true);
-		$.ajax({
-			type:"post",
-			dataType:"json",
-			data:$("form[name = 'cityForm']").serialize(),
-			url:url,
-			success: function(status) {
-				if(status.result == true) { 
-					<@ms.notify msg="保存或更新成功" type= "success" />
-					location.href = "${managerPath}/basic/city/index.do";
-				}
-				else{
-					<@ms.notify msg= "保存或更新失败!" type= "danger" />
-					location.href= "${managerPath}/basic/city/index.do";
-				}
-			}
-		})
-	}	
-</script>

+ 0 - 118
src/main/webapp/WEB-INF/manager/basic/city/index.ftl

@@ -1,118 +0,0 @@
-<@ms.html5>
-	<@ms.nav title="省市县镇村数据管理"></@ms.nav>
-	<@ms.searchForm name="searchForm" isvalidation=true>
-		<@ms.text label="省" name="provinceName" value=""  width="240px;" placeholder="请输入省/直辖市/自治区级名称" />
-		<@ms.text label="市" name="cityName" value=""  width="240px;" placeholder="请输入市级名称" />
-		<@ms.text label="县" name="countyName" value=""  width="240px;" placeholder="请输入县/区级名称" />
-		<@ms.text label="镇" name="townName" value=""  width="240px;" placeholder="请输入街道/镇级名称" />
-		<@ms.text label="村" name="villageName" value=""  width="240px;" placeholder="请输入村委会名称" />
-		<@ms.searchFormButton>
-			 <@ms.queryButton onclick="search()"/> 
-		</@ms.searchFormButton>			
-	</@ms.searchForm>
-	<@ms.panel>
-		<div id="toolbar">
-			<@ms.panelNav>
-				<@ms.buttonGroup>
-				</@ms.buttonGroup>
-			</@ms.panelNav>
-		</div>
-		<table id="cityList" 
-			data-show-refresh="true"
-			data-show-columns="true"
-			data-show-export="true"
-			data-method="post" 
-			data-pagination="true"
-			data-page-size="10"
-			data-side-pagination="server">
-		</table>
-	</@ms.panel>
-	
-	<@ms.modal  modalName="delCity" title="授权数据删除" >
-		<@ms.modalBody>删除此授权
-			<@ms.modalButton>
-				<!--模态框按钮组-->
-				<@ms.button  value="确认删除?"  id="deleteCityBtn"  />
-			</@ms.modalButton>
-		</@ms.modalBody>
-	</@ms.modal>
-</@ms.html5>
-
-<script>
-	$(function(){
-		$("#cityList").bootstrapTable({
-			url:"${managerPath}/basic/city/list.do",
-			contentType : "application/x-www-form-urlencoded",
-			queryParamsType : "undefined",
-			toolbar: "#toolbar",
-	    	columns: [{ checkbox: true},
-				    	{
-				        	field: 'provinceName',
-				        	title: '省/直辖市/自治区级名称',
-				        	align: 'center'
-				    	},{
-				        	field: 'cityName',
-				        	title: '市级名称',
-				        	align: 'center'
-				    	},{
-				        	field: 'countyName',
-				        	title: '县/区级名称',
-				        	align: 'center'
-				    	},{
-				        	field: 'townName',
-				        	title: '街道/镇级名称',
-				        	align: 'center'
-				    	},{
-				        	field: 'villageName',
-				        	title: '村委会名称',
-				        	align: 'center'
-				    	}]
-	    })
-	})
-	//增加按钮
-	$("#addCityBtn").click(function(){
-		location.href ="${managerPath}/basic/city/form.do"; 
-	})
-	//删除按钮
-	$("#delCityBtn").click(function(){
-		//获取checkbox选中的数据
-		var rows = $("#cityList").bootstrapTable("getSelections");
-		//没有选中checkbox
-		if(rows.length <= 0){
-			<@ms.notify msg="请选择需要删除的记录" type="warning"/>
-		}else{
-			$(".delCity").modal();
-		}
-	})
-	
-	$("#deleteCityBtn").click(function(){
-		var rows = $("#cityList").bootstrapTable("getSelections");
-		$(this).text("正在删除...");
-		$(this).attr("disabled","true");
-		$.ajax({
-			type: "post",
-			url: "${managerPath}/basic/city/delete.do",
-			data: JSON.stringify(rows),
-			dataType: "json",
-			contentType: "application/json",
-			success:function(msg) {
-				if(msg.result == true) {
-					<@ms.notify msg= "删除成功" type= "success" />
-				}else {
-					<@ms.notify msg= "删除失败" type= "danger" />
-				}
-				location.reload();
-			}
-		})
-	});
-	//查询功能
-	function search(){
-		var search = $("form[name='searchForm']").serializeJSON();
-        var params = $('#cityList').bootstrapTable('getOptions');
-        params.queryParams = function(params) {  
-        	$.extend(params,search);
-	        return params;  
-       	}  
-   	 	$("#cityList").bootstrapTable('refresh', {query:$("form[name='searchForm']").serializeJSON()});
-	}
-</script>

+ 0 - 63
src/main/webapp/WEB-INF/manager/basic/file/form.ftl

@@ -1,63 +0,0 @@
-<@ms.html5>
-	 <@ms.nav title="基础文件表编辑" back=true>
-	 	<#if fileEntity.id??>
-	 		<@ms.updateButton  onclick="saveOrUpdate()"/>
-	 	<#else>
-	 		<@ms.saveButton  onclick="saveOrUpdate()"/>
-	 	</#if>
-    </@ms.nav>
-    <@ms.panel>
-    	<@ms.form name="fileForm" isvalidation=true>
-    		<@ms.hidden name="id" value="${(fileEntity.id)?default('')}"/>
-			<@ms.text label="文件分类编号" name="categoryId"  value="${(fileEntity.categoryId)?default('')}" width="240px;" placeholder="请输入文件分类编号" validation={"data-bv-between":"true","required":"true", "data-bv-between-message":"文件分类编号必须大于0小于9999999999","data-bv-between-min":"0", "data-bv-between-max":"9999999999","data-bv-notempty-message":"必填项目"}/>
-			<@ms.text label="文件名称" name="fileName" value="${(fileEntity.fileName)?default('')}"  width="240px;" placeholder="请输入文件名称" validation={"required":"true","maxlength":"50","data-bv-stringlength-message":"文件名称长度不能超过五十个字符长度!", "data-bv-notempty-message":"必填项目"}/>
-			<@ms.text label="文件链接" name="fileUrl" value="${(fileEntity.fileUrl)?default('')}"  width="240px;" placeholder="请输入文件链接" validation={"required":"true","maxlength":"50","data-bv-stringlength-message":"文件链接长度不能超过五十个字符长度!", "data-bv-notempty-message":"必填项目"}/>
-			<@ms.text label="文件大小" name="fileSize"  value="${(fileEntity.fileSize)?default('')}" width="240px;" placeholder="请输入文件大小" validation={"data-bv-between":"true","required":"true", "data-bv-between-message":"文件大小必须大于0小于9999999999","data-bv-between-min":"0", "data-bv-between-max":"9999999999","data-bv-notempty-message":"必填项目"}/>
-			<@ms.text label="文件详情Json数据" name="fileJson" value="${(fileEntity.fileJson)?default('')}"  width="240px;" placeholder="请输入文件详情Json数据" validation={"required":"true","maxlength":"50","data-bv-stringlength-message":"文件详情Json数据长度不能超过五十个字符长度!", "data-bv-notempty-message":"必填项目"}/>
-			<@ms.text label="文件类型:图片、音频、视频等" name="fileType" value="${(fileEntity.fileType)?default('')}"  width="240px;" placeholder="请输入文件类型:图片、音频、视频等" validation={"required":"true","maxlength":"50","data-bv-stringlength-message":"文件类型:图片、音频、视频等长度不能超过五十个字符长度!", "data-bv-notempty-message":"必填项目"}/>
-			<@ms.text label="子业务" name="isChild" value="${(fileEntity.isChild)?default('')}"  width="240px;" placeholder="请输入子业务" validation={"required":"true","maxlength":"50","data-bv-stringlength-message":"子业务长度不能超过五十个字符长度!", "data-bv-notempty-message":"必填项目"}/>
-    	</@ms.form>
-    </@ms.panel>
-</@ms.html5>
-<script>
-
-   	var logoClass = "glyphicon-floppy-saved";
-	var url = "${managerPath}/basic/file/save.do";
-	if($("input[name = 'id']").val() > 0){
-		logoClass = "glyphicon-open";
-		url = "${managerPath}/basic/file/update.do";
-	}
-	//编辑按钮onclick
-	function saveOrUpdate() {
-		$("#fileForm").data("bootstrapValidator").validate();
-			var isValid = $("#fileForm").data("bootstrapValidator").isValid();
-			if(!isValid) {
-				<@ms.notify msg= "数据提交失败,请检查数据格式!" type= "warning" />
-				return;
-		}
-		var btnWord =$(".btn-success").text();
-		$(".btn-success").text(btnWord+"中...");
-		$(".btn-success").prop("disabled",true);
-		$.ajax({
-			type:"post",
-			dataType:"json",
-			data:$("form[name = 'fileForm']").serialize(),
-			url:url,
-			success: function(data) {
-				if(data.id > 0) { 
-					<@ms.notify msg="保存或更新成功" type= "success" />
-					location.href = "${managerPath}/basic/file/index.do";
-				}
-				else{
-					$(".btn-success").html(btnWord+"<span class='glyphicon " + logoClass + "' style='margin-right:5px'></span>");
-					$(".btn-success").text(btnWord);
-					$(".btn-success").removeAttr("disabled");
-					$('.ms-notifications').offset({top:43}).notify({
-					   type:'danger',
-					   message: { text:data.resultMsg }
-					}).show();
-				}
-			}
-		})
-	}	
-</script>

+ 0 - 235
src/main/webapp/WEB-INF/manager/basic/file/index.ftl

@@ -1,235 +0,0 @@
-<@ms.html5>
-	<@ms.nav title="基础文件表管理"></@ms.nav>
-	<@ms.searchForm name="searchForm" isvalidation=true>
-			<@ms.searchFormButton>
-				 <@ms.queryButton onclick="search()"/> 
-			</@ms.searchFormButton>			
-	</@ms.searchForm>
-	<@ms.panel>
-		<div id="toolbar">
-			<@ms.panelNavBtnGroup>
-				<@shiro.hasPermission name="file:save"><@ms.panelNavBtnAdd id="addFileBtn" title=""/></@shiro.hasPermission> 
-				<@shiro.hasPermission name="file:del"><@ms.panelNavBtnDel id="delFileBtn" title=""/></@shiro.hasPermission> 
-			</@ms.panelNavBtnGroup>
-		</div>
-		<table id="fileList" 
-			data-show-refresh="true"
-			data-show-columns="true"
-			data-show-export="true"
-			data-method="post" 
-			data-pagination="true"
-			data-page-size="10"
-			data-side-pagination="server">
-		</table>
-	</@ms.panel>
-	
-	<@ms.modal  modalName="delFile" title="基础文件表数据删除" >
-		<@ms.modalBody>删除此基础文件表
-			<@ms.modalButton>
-				<!--模态框按钮组-->
-				<@ms.button  value="确认" class="btn btn-danger rightDelete"  id="deleteFileBtn"  />
-			</@ms.modalButton>
-		</@ms.modalBody>
-	</@ms.modal>
-</@ms.html5>
-
-<script>
-
-
-	$(function(){
-		$("#fileList").bootstrapTable({
-			url:"${managerPath}/basic/file/list.do",
-			contentType : "application/x-www-form-urlencoded",
-			queryParamsType : "undefined",
-			toolbar: "#toolbar",
-	    	columns: [{ checkbox: true},
-				    	{
-				        	field: 'id',
-				        	title: '文件编号',
-				        	width:'11',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/file/form.do?id="+row.id;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},
-							    	{
-				        	field: 'categoryId',
-				        	title: '文件分类编号',
-				        	width:'11',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/file/form.do?id="+row.id;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},
-							    	{
-				        	field: 'appId',
-				        	title: 'APP编号',
-				        	width:'11',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/file/form.do?id="+row.id;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},
-							    	{
-				        	field: 'fileName',
-				        	title: '文件名称',
-				        	width:'200',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/file/form.do?id="+row.id;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},
-							    	{
-				        	field: 'fileUrl',
-				        	title: '文件链接',
-				        	width:'500',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/file/form.do?id="+row.id;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},
-							    	{
-				        	field: 'fileSize',
-				        	title: '文件大小',
-				        	width:'11',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/file/form.do?id="+row.id;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},
-							    	{
-				        	field: 'fileJson',
-				        	title: '文件详情Json数据',
-				        	width:'500',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/file/form.do?id="+row.id;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},
-							    	{
-				        	field: 'fileType',
-				        	title: '文件类型:图片、音频、视频等',
-				        	width:'50',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/file/form.do?id="+row.id;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},
-							    	{
-				        	field: 'isChild',
-				        	title: '子业务',
-				        	width:'50',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/file/form.do?id="+row.id;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},
-							    	{
-				        	field: 'updateDate',
-				        	title: '更新时间',
-				        	width:'0',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/file/form.do?id="+row.id;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},
-							    	{
-				        	field: 'updateBy',
-				        	title: '更新者',
-				        	width:'11',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/file/form.do?id="+row.id;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},
-							    	{
-				        	field: 'createBy',
-				        	title: '创建者',
-				        	width:'11',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/file/form.do?id="+row.id;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},
-							    	{
-				        	field: 'createDate',
-				        	title: '创建时间',
-				        	width:'0',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/file/form.do?id="+row.id;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},
-							    	{
-				        	field: 'del',
-				        	title: '删除标记',
-				        	width:'1',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/file/form.do?id="+row.id;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	}
-			]
-	    })
-	})
-	//增加按钮
-	$("#addFileBtn").click(function(){
-		location.href ="${managerPath}/basic/file/form.do"; 
-	})
-	//删除按钮
-	$("#delFileBtn").click(function(){
-		//获取checkbox选中的数据
-		var rows = $("#fileList").bootstrapTable("getSelections");
-		//没有选中checkbox
-		if(rows.length <= 0){
-			<@ms.notify msg="请选择需要删除的记录" type="warning"/>
-		}else{
-			$(".delFile").modal();
-		}
-	})
-	
-	$("#deleteFileBtn").click(function(){
-		var rows = $("#fileList").bootstrapTable("getSelections");
-		$(this).text("正在删除...");
-		$(this).attr("disabled","true");
-		$.ajax({
-			type: "post",
-			url: "${managerPath}/basic/file/delete.do",
-			data: JSON.stringify(rows),
-			dataType: "json",
-			contentType: "application/json",
-			success:function(msg) {
-				if(msg.result == true) {
-					<@ms.notify msg= "删除成功" type= "success" />
-				}else {
-					<@ms.notify msg= "删除失败" type= "danger" />
-				}
-				location.reload();
-			}
-		})
-	});
-	//查询功能
-	function search(){
-		var search = $("form[name='searchForm']").serializeJSON();
-        var params = $('#fileList').bootstrapTable('getOptions');
-        params.queryParams = function(params) {  
-        	$.extend(params,search);
-	        return params;  
-       	}  
-   	 	$("#fileList").bootstrapTable('refresh', {query:$("form[name='searchForm']").serializeJSON()});
-	}
-</script>

+ 0 - 120
src/main/webapp/WEB-INF/manager/basic/index.ftl

@@ -1,120 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<#include "/include/meta.ftl"/> <!--调用head内样式信息-->
-<script type="text/javascript" src="${base}/jquery/zTree_v3/jquery.ztree.all-3.5.min.js"></script>
-<link rel="stylesheet" href="${base}/jquery/zTree_v3/zTreeStyle.css" type="text/css">
-</head>
-<style>
-	.container{margin:0;padding:0;width:auto}
-	hr{margin-top:9px;margin-bottom:9px;padding:0;}
-	.rowpadding3{padding-bottom: 3px;}
-	.ms-button-group{padding:0px 0px 8px 0px}
-	.row {margin-left:0;margin-right:0}
-	.form-horizontal .form-group{margin-left:0;margin-right:0}
-	.form-group{overflow: hidden;}
-	.bs-example>.dropdown>.dropdown-menu {position: static;margin-bottom: 5px;clear: left;}
-	.bs-example>.dropdown>.dropdown-toggle {float: left;}
-	.padding-zero{padding:0;}
-	.link-style a:hover{color:#000;}
-	.link-style a:visited{color:#000;}
-	.form-inline .form-group {display: inline-block;margin-bottom: 0;vertical-align: middle;}
-	#tableArticle .updateArticle {cursor: pointer;}
-	#menuBtn{margin:0}
-	#menuContent {
-		overflow: auto;
-		max-height: 240px;
-		display: none;
-		z-index: 999;
-		position: absolute;
-		float: left;
-		padding: 5px 0;
-		margin: 2px 0 0;
-		background-color: #ffffff;
-		border: 1px solid rgba(0, 0, 0, 0.15);
-		border-radius: 4px;
-		-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
-		box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
-		background-clip: padding-box;
-	}
-	select, option,#menuBtn{
-		cursor: pointer;
-		background: white;
-	}
-	.selColumn{min-width:173px; height:34px;}
-	.categoryTree{border-right:1px solid #eeeeee;padding:0;}
-</style>
-<script>
-	
-</script>
-<body>
-	<!----------------------------------- bootstarp 布局容器 开始-------------------------------->	
-	<div class="container-fluid link-style">
-		<div class="row">
-			<div class="col-md-2 categoryTree">
-					<ul id="categoryTree" class="ztree" style="margin-top:0; width:100%;margin-left:-9px">
-			</div>
-			<!--右侧内容编辑区域开始-->
-			<div class="col-md-10" style="margin-top:0;padding:0;margin:0">
-				<!--------内容 部分  开始-------->
-				<div class="row" style="margin-top:0; width:100%;;padding:0 0 0 10px;margin:0">
-					<iframe src="${managerPath}/basic/0/list.do" style="width:100%;maring:0;padding:0;border:none;height:100%" id="listFrame" target="listFrame" ></iframe>
-				</div>
-				<!--内容部分结束-->
-			
-			</div>
-			<!--右侧内容编辑区域结束-->
-		
-		</div>
-	
-	</div>
-
-	
-	<!--引用弹出框插件-->
-	<@warnModal modalName="Model"/>
-	<!--JQ特效部分-->
-	<script>
-		$(function(){	
-			$(".categoryTree").height($(document).height());
-			
-			$("#listFrame").height($(document).height());
-			//zTree框架	
-			var setting = {
-				callback: {
-					onClick: function(event, treeId, treeNode) {
-							if(treeNode.id>0) {
-								$("#listFrame").attr("src","${managerPath}/basic/"+treeNode.id+"/list.do?categoryTitle="+encodeURIComponent(treeNode.name));
-							}
-					}
-				},
-				view: {
-					dblClickExpand: dblClickExpand 
-				},
-				data: {
-					simpleData: {
-						enable: true
-					}
-				}
-			};
-	
-			function dblClickExpand(treeId, treeNode) {
-				return treeNode.level > 0;
-			}
-	
-			$(document).ready(function(){
-				$.fn.zTree.init($("#categoryTree"), setting, zNodes);
-			});
-			
-			//获取栏目节点列表
-			var listColumn=${listCategory};
-			var zNodes = new Array();
-			
-			//遍历节点,添加到数字中
-			for( var i = 0 ; i < listColumn.length; i++){
-				zNodes[i] = { id:listColumn[i].categoryId, pId:listColumn[i].categoryCategoryId,name:listColumn[i].categoryTitle, open:false};
-			}
-		});
-		
-	</script>
-</body>
-</html>

+ 0 - 217
src/main/webapp/WEB-INF/manager/basic/manager/index.ftl

@@ -1,217 +0,0 @@
-<@ms.html5>
-	<@ms.nav title="管理员管理"></@ms.nav>
-	<style>
-		.select2-container .select2-container--default {  
-		 	height: 34px;  
-		} 
-		.select2-container .select2-selection--single{
-			font: inherit;
-			border: 1px solid #ccc;
-		    display: block;
-		    height: 34px;
-		    padding: 0px 3px;
-    		font-size: 14px;
-    		color: rgb(85, 85, 85);
-		}
-	</style>
-	<@ms.panel>
-		<div id="toolbar">
-			<@ms.panelNav>
-				<@ms.buttonGroup>
-					<@shiro.hasPermission name="manager:save"><@ms.panelNavBtnAdd title="" id="addManagerBtn"/></@shiro.hasPermission> 
-					<@shiro.hasPermission name="manager:del"><@ms.panelNavBtnDel title="" id="delManagerBtn"/></@shiro.hasPermission> 
-				</@ms.buttonGroup>
-			</@ms.panelNav>
-		</div>
-		<table id="managerList" 
-			data-show-refresh="true"
-			data-show-columns="true"
-			data-show-export="true"
-			data-method="post" 
-			data-pagination="true"
-			data-page-size="10"
-			data-side-pagination="server">
-		</table>
-	</@ms.panel>
-	
-	<@ms.modal  modalName="delManager" title="管理员删除" >
-		<@ms.modalBody>删除此管理员
-			<@ms.modalButton>
-				<!--模态框按钮组-->
-				<@ms.button  value="删除" class="btn btn-danger rightDelete" id="deleteManagerBtn"  />
-			</@ms.modalButton>
-		</@ms.modalBody>
-	</@ms.modal>
-	
-	<@ms.modal id="addManager" title="管理员编辑"  resetFrom=true>
-    <@ms.modalBody>
-		<@ms.form name="managerForm" isvalidation=true action="${managerPath}/basic/manager/save.do" redirect="${managerPath}/basic/manager/index.do">
-			<@ms.hidden name="managerId" value="0"/>
-			<@ms.text label="管理员名" name="managerName" value=""  width="240px;" placeholder="请输入管理员名" validation={"required":"true","minlength":"3","maxlength":"12","data-bv-stringlength-message":"管理员用户名长度为3~12个字符!", "data-bv-notempty-message":"必填项目"}/>
-			<@ms.text label="管理员昵称" name="managerNickName" value=""  width="240px;" placeholder="请输入管理员昵称" validation={"required":"true","maxlength":"15","data-bv-stringlength-message":"管理员昵称长度不能超过十五个字符长度!", "data-bv-notempty-message":"必填项目"}/>
-			<@ms.text label="管理员密码" name="managerPassword" value=""  width="240px;" placeholder="请输入管理员密码" validation={"minlength":"6","maxlength":"20","data-bv-stringlength-message":"管理员密码长度为6~20个字符!"}/>
-			<@ms.select id="managerRoleID"  name="managerRoleID" label="角色编号"/>	
-    	</@ms.form>
-    </@ms.modalBody>
-    <@ms.modalButton>
-         <@ms.saveButton id= "saveOrUpdate"/>
-    </@ms.modalButton>
-</@ms.modal>
-	
-</@ms.html5>
-
-<script>
-	$(function(){
-		//加载选择角色列表
-		$("#managerRoleID").request({url:"${managerPath}/basic/role/list.do",type:"json",method:"post",func:function(msg) {
-			var managerArr = msg.rows;
-			$("#managerRoleID").val(null).trigger("change");
-			if(managerArr.length != 0 && ($("#managerRoleID").val() == null)){
-	   			for(var i=0; i<managerArr.length; i++){
-		   			$("#managerRoleID").append($("<option>").val(managerArr[i].roleId).text(managerArr[i].roleName));
-		   			$("#managerRoleID").select2({width: "210px"}).val(managerArr[i].roleId).trigger("change");
-		   		}
-	   		} else if($("#managerRoleID").val()<0) {
-	   			$("#managerRoleID").append("<option>暂无角色</option>");
-	   		}
-	   		//使用select2插件
-	 		$("#managerRoleID").select2({width: "210px"});
-		}});
-		$("#managerList").bootstrapTable({
-			url:"${managerPath}/basic/manager/query.do",
-			contentType : "application/x-www-form-urlencoded",
-			queryParamsType : "undefined",
-			toolbar: "#toolbar",
-	    	columns: [{ checkbox: true,
-		    			formatter: function (value, row, index){
-		    				//不能删除自己
-		    				if("${Session.manager_session.managerName}" == row.managerName){
-		    					return {disabled : true};
-		    				}
-		    			}
-	    				},{
-				        	field: 'managerName',
-				        	title: '账号',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		if(row.managerId == 0){
-				        			return value;
-				        		}else{
-				        			<@shiro.hasPermission name="manager:update">	        
-						        	return "<a onclick='updateSearch("+row.managerId+")' style='cursor:pointer;text-decoration:none;' >" + value + "</a>";
-						    		</@shiro.hasPermission> 
-						    		<@shiro.lacksPermission name="manager:update">
-						    			return value;
-						    		</@shiro.lacksPermission>
-				        			
-				        		}
-				        	}
-				    	},							    	{
-				        	field: 'managerNickName',
-				        	title: '昵称'
-				    	},							    	{
-				        	field: 'managerPassword',
-				        	title: '密码'
-				    	},							    	{
-				        	field: 'roleName',
-				        	title: '角色名称'
-				    	},							    	{
-				        	field: 'managerTime',
-				        	title: '创建时间',
-				        	align: 'center'
-				    	}		]
-	    })
-	})
-	//增加按钮
-	$("#addManagerBtn").click(function(){
-		$('#managerForm').attr("${managerPath}/basic/manager/save.do");
-		$(".addManager").modal();
-	})
-	
-	var url = "${managerPath}/basic/manager/save.do";
-	if($("input[name = 'managerId']").val() > 0){
-		url = "${managerPath}/basic/manager/update.do";
-		$(".btn-success").text("更新");
-	}
-	
-	//保存按钮
-	$("#saveOrUpdate").click(function(){
-		$("#managerForm").data("bootstrapValidator").validate();
-		var isValid = $("#managerForm").data("bootstrapValidator").isValid();
-		if(!isValid) {
-			<@ms.notify msg= "数据提交失败,请检查数据格式!" type= "warning" />
-			return;
-		}
-		$(this).text("正在保存...");
-		$(this).attr("disabled","true");
-		var managerEntity = $('#managerForm').serialize();
-		var url = $('#managerForm').attr("action");
-		$.ajax({
-			type: "post",
-			url:url,
-			data: managerEntity,
-			dataType:"json",
-			success:function(data){
-				if(data.managerId > 0){
-					<@ms.notify msg= "保存或更新成功" type= "success" />
-					location.reload();
-				}else {
-					 $('.ms-notifications').offset({top:43}).notify({
-			    		    type:'warning',
-						    message: { text:data.resultMsg }
-						 }).show();	
-					$("#saveOrUpdate").removeAttr("disabled");
-					$("#saveOrUpdate").text("保存");
-					}
-			}
-		});
-	})
-	
-	//删除按钮
-	$("#delManagerBtn").click(function(){
-		//获取checkbox选中的数据
-		var rows = $("#managerList").bootstrapTable("getSelections");
-		//没有选中checkbox
-		if(rows.length <= 0){
-			<@ms.notify msg="请选择需要删除的记录" type="warning"/>
-		}else{
-			$(".delManager").modal();
-		}
-	})
-	
-	$("#deleteManagerBtn").click(function(){
-		var rows = $("#managerList").bootstrapTable("getSelections");
-		$(this).text("正在删除...");
-		$(this).attr("disabled","true");
-		$.ajax({
-			type: "post",
-			url: "${managerPath}/basic/manager/delete.do",
-			data: JSON.stringify(rows),
-			dataType: "json",
-			contentType: "application/json",
-			success:function(msg) {
-				if(msg.result == true) {
-					<@ms.notify msg= "删除成功" type= "success" />
-				}else {
-					<@ms.notify msg= "删除失败" type= "danger" />
-				}
-				location.reload();
-			}
-		})
-	});
-	
-	//表单赋值
-	function updateSearch(managerId){
-		$(this).request({url:"${managerPath}/basic/manager/get.do?managerId="+managerId,func:function(manager) {
-			if (manager.managerId > 0) {
-				$("#managerForm").attr("action","${managerPath}/basic/manager/update.do");
-				$("#managerForm input[name='managerName']").val(manager.managerName);
-				$("#managerForm input[name='managerId']").val(manager.managerId);
-				$("#managerForm input[name='managerNickName']").val(manager.managerNickName);
-				$("#managerRoleID").select2({width: "210px"}).val(manager.managerRoleID).trigger("change");
-				$("#managerForm select[name='managerRoleID']").val(manager.managerRoleID);
-				$("#addManager").modal();
-			}					
-		}});
-	}
-</script>

+ 0 - 48
src/main/webapp/WEB-INF/manager/basic/people/form.ftl

@@ -1,48 +0,0 @@
-<@ms.html5>
-	 <@ms.nav title="通用用户与信息一对多表编辑" back=true>
-    	<@ms.saveButton  onclick="save()"/>
-    </@ms.nav>
-    <@ms.panel>
-    	<@ms.form name="peopleForm" isvalidation=true>
-    		<@ms.hidden name="bpId" value="${peopleEntity.bpId?default('')}"/>
-    			<@ms.number label="信息编号" name="bpBasicId" value="${peopleEntity.bpBasicId?default('')}" width="240px;" placeholder="请输入信息编号" validation={"required":"false","maxlength":"50","data-bv-stringlength-message":"信息编号长度不能超过五十个字符长度!", "data-bv-notempty-message":"必填项目"}/>
-    			<@ms.number label="用户编号" name="bpPeopleId" value="${peopleEntity.bpPeopleId?default('')}" width="240px;" placeholder="请输入用户编号" validation={"required":"false","maxlength":"50","data-bv-stringlength-message":"用户编号长度不能超过五十个字符长度!", "data-bv-notempty-message":"必填项目"}/>
-    			<@ms.text label="创建时间" name="bpDatetime" value="${peopleEntity.bpDatetime?string('yyyy-MM-dd')}"  width="240px;"/>
-    	</@ms.form>
-    </@ms.panel>
-</@ms.html5>
-<script>
-	var url = "${managerPath}/basic/people/save.do";
-	if($("input[name = 'bpId']").val() > 0){
-		url = "${managerPath}/basic/people/update.do";
-		$(".btn-success").text("更新");
-	}
-	//编辑按钮onclick
-	function save() {
-		$("#peopleForm").data("bootstrapValidator").validate();
-			var isValid = $("#peopleForm").data("bootstrapValidator").isValid();
-			if(!isValid) {
-				<@ms.notify msg= "数据提交失败,请检查数据格式!" type= "warning" />
-				return;
-		}
-		var btnWord =$(".btn-success").text();
-		$(".btn-success").text(btnWord+"中...");
-		$(".btn-success").prop("disabled",true);
-		$.ajax({
-			type:"post",
-			dataType:"json",
-			data:$("form[name = 'peopleForm']").serialize(),
-			url:url,
-			success: function(status) {
-				if(status.result == true) { 
-					<@ms.notify msg="保存或更新成功" type= "success" />
-					location.href = "${managerPath}/basic/people/index.do";
-				}
-				else{
-					<@ms.notify msg= "保存或更新失败!" type= "danger" />
-					location.href= "${managerPath}/basic/people/index.do";
-				}
-			}
-		})
-	}	
-</script>

+ 0 - 131
src/main/webapp/WEB-INF/manager/basic/people/index.ftl

@@ -1,131 +0,0 @@
-<@ms.html5>
-	<@ms.nav title="通用用户与信息一对多表管理"></@ms.nav>
-	<@ms.searchForm name="searchForm" isvalidation=true>
-			<@ms.searchFormButton>
-				 <@ms.queryButton onclick="search()"/> 
-			</@ms.searchFormButton>			
-	</@ms.searchForm>
-	<@ms.panel>
-		<div id="toolbar">
-			<@ms.panelNav>
-				<@ms.buttonGroup>
-					<@ms.addButton id="addPeopleBtn"/>
-					<@ms.delButton id="delPeopleBtn"/>
-				</@ms.buttonGroup>
-			</@ms.panelNav>
-		</div>
-		<table id="peopleList" 
-			data-show-refresh="true"
-			data-show-columns="true"
-			data-show-export="true"
-			data-method="post" 
-			data-pagination="true"
-			data-page-size="10"
-			data-side-pagination="server">
-		</table>
-	</@ms.panel>
-	
-	<@ms.modal  modalName="delPeople" title="授权数据删除" >
-		<@ms.modalBody>删除此授权
-			<@ms.modalButton>
-				<!--模态框按钮组-->
-				<@ms.button  value="确认删除?"  id="deletePeopleBtn"  />
-			</@ms.modalButton>
-		</@ms.modalBody>
-	</@ms.modal>
-</@ms.html5>
-
-<script>
-	$(function(){
-		$("#peopleList").bootstrapTable({
-			url:"${managerPath}/basic/people/list.do",
-			contentType : "application/x-www-form-urlencoded",
-			queryParamsType : "undefined",
-			toolbar: "#toolbar",
-	    	columns: [{ checkbox: true},
-				    	{
-				        	field: 'bpId',
-				        	title: '',
-				        	width:'10',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/people/form.do?bpId="+row.bpId;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},							    	{
-				        	field: 'bpBasicId',
-				        	title: '信息编号',
-				        	width:'10',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/people/form.do?bpBasicId="+row.bpBasicId;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},							    	{
-				        	field: 'bpPeopleId',
-				        	title: '用户编号',
-				        	width:'10',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/people/form.do?bpPeopleId="+row.bpPeopleId;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	},							    	{
-				        	field: 'bpDatetime',
-				        	title: '创建时间',
-				        	width:'19',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		var url = "${managerPath}/basic/people/form.do?bpDatetime="+row.bpDatetime;
-				        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-				        	}
-				    	}			]
-	    })
-	})
-	//增加按钮
-	$("#addPeopleBtn").click(function(){
-		location.href ="${managerPath}/basic/people/form.do"; 
-	})
-	//删除按钮
-	$("#delPeopleBtn").click(function(){
-		//获取checkbox选中的数据
-		var rows = $("#peopleList").bootstrapTable("getSelections");
-		//没有选中checkbox
-		if(rows.length <= 0){
-			<@ms.notify msg="请选择需要删除的记录" type="warning"/>
-		}else{
-			$(".delPeople").modal();
-		}
-	})
-	
-	$("#deletePeopleBtn").click(function(){
-		var rows = $("#peopleList").bootstrapTable("getSelections");
-		$(this).text("正在删除...");
-		$(this).attr("disabled","true");
-		$.ajax({
-			type: "post",
-			url: "${managerPath}/basic/people/delete.do",
-			data: JSON.stringify(rows),
-			dataType: "json",
-			contentType: "application/json",
-			success:function(msg) {
-				if(msg.result == true) {
-					<@ms.notify msg= "删除成功" type= "success" />
-				}else {
-					<@ms.notify msg= "删除失败" type= "danger" />
-				}
-				location.reload();
-			}
-		})
-	});
-	//查询功能
-	function search(){
-		var search = $("form[name='searchForm']").serializeJSON();
-        var params = $('#peopleList').bootstrapTable('getOptions');
-        params.queryParams = function(params) {  
-        	$.extend(params,search);
-	        return params;  
-       	}  
-   	 	$("#peopleList").bootstrapTable('refresh', {query:$("form[name='searchForm']").serializeJSON()});
-	}
-</script>

+ 0 - 110
src/main/webapp/WEB-INF/manager/basic/role/form.ftl

@@ -1,110 +0,0 @@
-<@ms.html5>
-	<@ms.nav title="角色设置" back=true>
-		<@ms.saveButton id="save"/>
-	</@ms.nav>
-	<@ms.panel>
-		<@ms.form name="columnForm" isvalidation=true  >                                                   
-			<@ms.text name="roleName" label="角色名称:" title="角色名称" value="${roleEntity.roleName?default('')}" width="300" validation={"required":"true","maxlength":"30","data-bv-notempty-message":"请填写角色名称"}/>
-			<@ms.formRow label="权限管理:">
-				<div>
-					<table id="modelList" 
-						data-show-export="true"
-						data-method="post" 
-						data-side-pagination="server">
-					</table>
-				</div>
-			</@ms.formRow>
-		</@ms.form>
-	</@ms.panel>
-</@ms.html5>
-
-<script>
-	$(function(){
-		//数据初始化
-		$("#modelList").bootstrapTable({
-			url:"${managerPath}/model/modelList.do?roleId=${roleEntity.roleId?default('')}",
-			contentType : "application/x-www-form-urlencoded",
-			queryParamsType : "undefined",
-			idField: 'modelId',
-            treeShowField: 'modelTitle',
-            parentIdField: 'modelModelId',
-	    	columns: [
-				    	{
-				        	field: 'modelTitle',
-				        	title: '模块标题',
-				        	width: '200'
-				    	},{
-				        	field: 'attribute',
-				        	title: '功能权限',
-				        	formatter:function(value,row,index) {
-				        		var attribute = "";
-				        		for(var i=0;i<row.modelChildList.length;i++){
-				        			var modelId = row.modelChildList[i].modelId;
-				        			var str = "<label style=' margin-top: 3px;  margin-right: 20px;' class='ms-check'><input type='checkbox'	data-ids='"+row.modelChildList[i].modelParentIds+"' value='"+modelId+"' name='attribute'/> "+row.modelChildList[i].modelTitle+"</label>"
-				        			if(row.modelChildList[i].chick == 1){
-				        				str = "<label style=' margin-top: 3px;  margin-right: 20px;' class='ms-check'><input type='checkbox' checked='checked' data-ids='"+row.modelChildList[i].modelParentIds+"' value='"+modelId+"' name='attribute'/> "+ row.modelChildList[i].modelTitle+"</label>";
-				        			}
-				        			if(attribute == ""){
-				        				attribute = str;
-				        			}else{
-				        				attribute = attribute+str;
-				        			}
-				        		}
-				        		return attribute;
-				        	}
-				    	}]
-	    })
-	})
-	//保存操作
-	$("#save").click(function(){
-		$("#columnForm").data("bootstrapValidator").validate();
-		var isValid = $("#columnForm").data("bootstrapValidator").isValid();
-		if(!isValid) {
-			<@ms.notify msg= "数据提交失败,请检查数据格式!" type= "warning" />
-			return;
-		}
-		var roleName = $("input[name=roleName]").val();
-		var roleId = "${roleEntity.roleId?default('')}";
-		var oldRoleName = "${roleEntity.roleName?default('')}";
-		var ids=[];
-		$("input[name=attribute]").each(function () {
-			if($(this).is(':checked')){
-				var modelId = $(this).val();
-			    var modelModelIds = $(this).attr("data-ids");
-			    ids.push(modelId);
-			    if(modelModelIds!="") {
-				    var parentIds = modelModelIds.split(",");
-				    for(var i=0;i<parentIds.length;i++){
-				    	if(parentIds[i]!="") {
-					    	if($.inArray(parentIds[i], ids) == -1){
-						    	ids.push(parentIds[i]);
-						    }				    	
-				    	}
-				    }			    
-			    }
-			}
-		});
-		if(roleName == "" || roleName == null){
-			<@ms.notify msg= '角色名不能为空' type= "warning" />
-		}else{
-			$.ajax({
-		 	type:"post",
-		 	url:"${managerPath}/basic/role/saveOrUpdateRole.do",
-		 	dataType: "json",
-		 	data:{ids:ids,roleName:roleName,roleId:roleId,oldRoleName:oldRoleName},
-		 	success:function(data){
-		 		if(data.result == false) {
-					$('.ms-notifications').offset({top:43}).notify({
-					    type:'warning',
-					    message: { text:data.resultMsg }
-					 }).show();	
-				}else {
-					<@ms.notify msg= "操作成功" type= "success" />
-					location.href= "${managerPath}/basic/role/index.do";
-				}
-		 	}
-		});
-		}
-		
-	})
-</script>

+ 0 - 118
src/main/webapp/WEB-INF/manager/basic/role/index.ftl

@@ -1,118 +0,0 @@
-<@ms.html5>
-	<@ms.nav title="角色管理"></@ms.nav>
-	<@ms.searchForm name="searchForm" isvalidation=true>
-		<@ms.text label="角色名" name="roleName" value=""  width="240px;" placeholder="请输入角色名" />
-		<@ms.searchFormButton>
-			 <@ms.queryButton onclick="search()"/> 
-		</@ms.searchFormButton>			
-	</@ms.searchForm>
-	<@ms.panel>
-		<div id="toolbar">
-			<@ms.panelNav>
-				<@ms.buttonGroup>
-					<@shiro.hasPermission name="role:save"><@ms.panelNavBtnAdd title="" id="addRoleBtn"/></@shiro.hasPermission> 
-					<@shiro.hasPermission name="role:del"><@ms.panelNavBtnDel title="" id="delRoleBtn"/></@shiro.hasPermission> 
-				</@ms.buttonGroup>
-			</@ms.panelNav>
-		</div>
-		<table id="roleList" 
-			data-show-refresh="true"
-			data-show-columns="true"
-			data-show-export="true"
-			data-method="post" 
-			data-pagination="true"
-			data-page-size="10"
-			data-side-pagination="server">
-		</table>
-	</@ms.panel>
-	
-	<@ms.modal  modalName="delRole" title="角色删除" >
-		<@ms.modalBody>删除此角色
-			<@ms.modalButton>
-				<!--模态框按钮组-->
-				<@ms.button  value="删除" class="btn btn-danger rightDelete" id="deleteRoleBtn"  />
-			</@ms.modalButton>
-		</@ms.modalBody>
-	</@ms.modal>
-</@ms.html5>
-
-<script>
-	$(function(){
-		$("#roleList").bootstrapTable({
-			url:"${managerPath}/basic/role/list.do",
-			contentType : "application/x-www-form-urlencoded",
-			queryParamsType : "undefined",
-			toolbar: "#toolbar",
-	    	columns: [{ checkbox: true,
-			    			formatter: function (value, row, index){
-			    				//不能删除自己
-			    				if("${Session.manager_session.managerRoleID}" == row.roleId){
-			    					return {disabled : true};
-			    				}
-			    			}
-	    				},{
-				        	field: 'roleId',
-				        	title: '编号',
-				        	align: 'center',
-				        	width: '80',
-				    	},{
-				        	field: 'roleName',
-				        	title: '角色名',
-				        	formatter:function(value,row,index) {
-				        		if("${Session.manager_session.managerRoleID}" == row.roleId){
-					        		return  value ;
-					        	}else{
-					        		var url = "${managerPath}/basic/role/form.do?roleId="+row.roleId;
-					        		return "<a href=" +url+ " target='_self'>" + value + "</a>";
-					        	}
-				        	}
-				    	}]
-	    })
-	})
-	//增加按钮
-	$("#addRoleBtn").click(function(){
-		location.href ="${managerPath}/basic/role/form.do"; 
-	})
-	//删除按钮
-	$("#delRoleBtn").click(function(){
-		//获取checkbox选中的数据
-		var rows = $("#roleList").bootstrapTable("getSelections");
-		//没有选中checkbox
-		if(rows.length <= 0){
-			<@ms.notify msg="请选择需要删除的记录" type="warning"/>
-		}else{
-			$(".delRole").modal();
-		}
-	})
-	
-	$("#deleteRoleBtn").click(function(){
-		var rows = $("#roleList").bootstrapTable("getSelections");
-		$(this).text("正在删除...");
-		$(this).attr("disabled","true");
-		$.ajax({
-			type: "post",
-			url: "${managerPath}/basic/role/delete.do",
-			data: JSON.stringify(rows),
-			dataType: "json",
-			contentType: "application/json",
-			success:function(msg) {
-				if(msg.result == true) {
-					<@ms.notify msg= "删除成功" type= "success" />
-				}else {
-					<@ms.notify msg= "删除失败" type= "danger" />
-				}
-				location.reload();
-			}
-		})
-	});
-	//查询功能
-	function search(){
-		var search = $("form[name='searchForm']").serializeJSON();
-        var params = $('#roleList').bootstrapTable('getOptions');
-        params.queryParams = function(params) {  
-        	$.extend(params,search);
-	        return params;  
-       	}  
-   	 	$("#roleList").bootstrapTable('refresh', {query:$("form[name='searchForm']").serializeJSON()});
-	}
-</script>

+ 0 - 51
src/main/webapp/WEB-INF/manager/category/form.ftl

@@ -1,51 +0,0 @@
-<@ms.html5>
-	 <@ms.nav title="${modelTitle}编辑" back=true>
-    	<@ms.saveButton  onclick="save()"/>
-    </@ms.nav>
-    <@ms.panel>
-    	<@ms.form name="categoryForm" isvalidation=true>
-    		<@ms.hidden name="categoryId" value="${categoryEntity.categoryId?default('')}"/>
-			<@ms.hidden name="categoryModelId" value="${modelId?default('0')}"/>
-			<@ms.text label="${modelTitle}标题" name="categoryTitle" value="${categoryEntity.categoryTitle?default('')}"  width="240px;" placeholder="请输入类别标题" validation={"required":"true","maxlength":"50","data-bv-stringlength-message":"类别标题长度不能超过五十个字符长度!", "data-bv-notempty-message":"必填项目"}/>
-    		<@ms.textarea colSm="2" name="categoryDescription" label="${modelTitle}描述" wrap="Soft" rows="3"  size="" width="642px;" value="${categoryEntity.categoryDescription?default('')}" placeholder="${modelTitle}描述" validation={"maxlength":"50","data-bv-stringlength-message":"栏目描述长度不能超过五十个字符长度!"}/>
-    		<@ms.formRow label="缩略图">
-				<@ms.uploadImg path="category" inputName="categorySmallImg" size="15" filetype="" msg=""  maxSize="1" imgs="${(category.categorySmallImg)?default('')}" />
-    		</@ms.formRow>
-    	</@ms.form>
-    </@ms.panel>
-</@ms.html5>
-<script>
-	var url = "${managerPath}/category/save.do";
-	if($("input[name = 'categoryId']").val() > 0){
-		url = "${managerPath}/category/update.do";
-		$(".btn-success").text("更新");
-	}
-	//编辑按钮onclick
-	function save() {
-		$("#categoryForm").data("bootstrapValidator").validate();
-			var isValid = $("#categoryForm").data("bootstrapValidator").isValid();
-			if(!isValid) {
-				<@ms.notify msg= "数据提交失败,请检查数据格式!" type= "warning" />
-				return;
-		}
-		var btnWord =$(".btn-success").text();
-		$(".btn-success").text(btnWord+"中...");
-		$(".btn-success").prop("disabled",true);
-		$.ajax({
-			type:"post",
-			dataType:"json",
-			data:$("form[name = 'categoryForm']").serialize(),
-			url:url,
-			success: function(status) {
-				if(status.categoryId != null) { 
-					<@ms.notify msg="保存或更新成功" type= "success" />
-					history.go(-1); 
-					location.reload();
-				}
-				else{
-					<@ms.notify msg= "保存或更新失败!" type= "danger" />
-				}
-			}
-		})
-	}	
-</script>

+ 0 - 114
src/main/webapp/WEB-INF/manager/category/index.ftl

@@ -1,114 +0,0 @@
-<@ms.html5>
-	<@ms.nav title="${modelTitle}"></@ms.nav>
-	<@ms.searchForm name="searchForm" isvalidation=true>
-			<@ms.text label="${modelTitle}标题" name="categoryTitle" value=""  width="240px;" placeholder="请输入类别标题" validation={"maxlength":"50","data-bv-stringlength-message":"${modelTitle}标题长度不能超过五十个字符长度!"}/>
-			<@ms.searchFormButton>
-				<@ms.queryButton onclick="search()"/> 
-			</@ms.searchFormButton>			
-	</@ms.searchForm>
-	<@ms.panel>
-		<div id="toolbar">
-			<@ms.panelNav>
-				<@ms.buttonGroup>
-					<#include "/${model?default('')}/category/shiro-button.ftl"/>					
-				</@ms.buttonGroup>
-			</@ms.panelNav>
-		</div>
-		<table id="categoryList" 
-			data-show-refresh="true"
-			data-show-columns="true"
-			data-show-export="true"
-			data-method="post" 
-			data-pagination="true"
-			data-page-size="10"
-			data-side-pagination="server">
-		</table>
-	</@ms.panel>
-	
-	<@ms.modal  modalName="delCategory" title="${modelTitle}数据删除" >
-		<@ms.modalBody>删除此数据
-			<@ms.modalButton>
-				<!--模态框按钮组-->
-				<@ms.button class="btn btn-danger rightDelete" id="deleteCategoryBtn" value="确定"/>
-			</@ms.modalButton>
-		</@ms.modalBody>
-	</@ms.modal>
-</@ms.html5>
-
-<script>
-	$(function(){
-		var category = {modelId:${modelId?default('0')},modelTitle:"${modelTitle?default('0')}"};
-		$("#categoryList").bootstrapTable({
-			url:"${managerPath}/category/list.do",
-			contentType : "application/x-www-form-urlencoded",
-			queryParamsType : "undefined",
-			queryParams:function(params) {
-				return $.extend(params,category);
-			},
-			toolbar: "#toolbar",
-	    	columns: [{ checkbox: true},
-				    	{
-				        	field: 'categoryId',
-				        	title: '${modelTitle}编号',
-				        	align: 'center',
-				        	width:'120'
-				    	},{
-				        	field: 'categoryTitle',
-				        	title: '${modelTitle}标题',
-				        	formatter:function(value,row,index) {
-				        		<#include "/${model?default('')}/category/shiro-update.ftl"/>
-				        	}
-				    	},							    	{
-				        	field: 'categoryDescription',
-				        	title: '${modelTitle}描述'
-				    	}	]
-	    })
-	})
-	//增加按钮
-	$("#addCategoryBtn").click(function(){
-		location.href ="${managerPath}/category/form.do?modelId=${modelId?default('0')}&modelTitle=${modelTitle?default('0')}"; 
-	})
-	//删除按钮
-	$("#delCategoryBtn").click(function(){
-		//获取checkbox选中的数据
-		var rows = $("#categoryList").bootstrapTable("getSelections");
-		//没有选中checkbox
-		if(rows.length <= 0){
-			<@ms.notify msg="请选择需要删除的记录" type="warning"/>
-		}else{
-			$(".delCategory").modal();
-		}
-	})
-	
-	$("#deleteCategoryBtn").click(function(){
-		var rows = $("#categoryList").bootstrapTable("getSelections");
-		$(this).text("正在删除...");
-		$(this).attr("disabled","true");
-		$.ajax({
-			type: "post",
-			url: "${managerPath}/category/delete.do",
-			data: JSON.stringify(rows),
-			dataType: "json",
-			contentType: "application/json",
-			success:function(msg) {
-				if(msg.result == true) {
-					<@ms.notify msg= "删除成功" type= "success" />
-				}else {
-					<@ms.notify msg= "删除失败" type= "danger" />
-				}
-				location.reload();
-			}
-		})
-	});
-	//查询功能
-	function search(){
-		var modelId = {modelId:${modelId}};
-		var search = $("form[name='searchForm']").serializeJSON();
-        var params = $('#categoryList').bootstrapTable('getOptions');
-        params.queryParams = function(params) {  
-        	$.extend(params,search,modelId);
-	        return params;  
-       	}  
-   	 	$("#categoryList").bootstrapTable('refresh', {query:$("form[name='searchForm']").serializeJSON()});
-	}
-</script>

+ 0 - 2
src/main/webapp/WEB-INF/manager/category/shiro-button.ftl

@@ -1,2 +0,0 @@
-<@ms.addButton id="addCategoryBtn"/>
-<@ms.delButton id="delCategoryBtn"/>

+ 0 - 2
src/main/webapp/WEB-INF/manager/category/shiro-update.ftl

@@ -1,2 +0,0 @@
-var url = "${managerPath}/${model?default("")}/category/form.do?categoryId="+row.categoryId+"&modelId=${modelId?default('0')}&modelTitle=${modelTitle?default('0')}" ;
-return "<a href=" +url+ " target='_self'>" + value + "</a>";

+ 0 - 188
src/main/webapp/WEB-INF/manager/column/form.ftl

@@ -1,188 +0,0 @@
-<@ms.html5>
-	<@ms.nav title="栏目管理" back=true>
-		<#if column.categoryId == 0>
-	 		<@ms.saveButton id="saveUpdate" value="保存"/>
-	 	<#else>
-	 		<@ms.updateButton id="saveUpdate" value="更新"/>
-	 	</#if>
-		</@ms.nav>
-	<@ms.panel>
-		<@ms.form name="columnForm" isvalidation=true  action="" method="post" >
-				<#if column.categoryId!=0>
-					<@ms.hidden name="categoryId" value="${column.categoryId?c?default(0)}" />
-				</#if>
-				<@ms.text name="categoryTitle" width="200" label="${Session.model_title_session?default('栏目')}名称" title="${Session.model_title_session?default('栏目')}名称" placeholder="${Session.model_title_session?default('栏目')}名称" value="${column.categoryTitle?default('')}" id="" validation={"data-bv-stringlength":"true","required":"true", "data-bv-notempty-message":"必填项目", "data-bv-regexp":"true","data-bv-regexp-regexp":'^[^[!@#$%^&*()_+-/~?!@#¥%…&*()——+—?》《:“‘’]+$',"data-bv-stringlength-max":"50","data-bv-regexp-message":"${Session.model_title_session?default('栏目')}名称不能包含特殊字符","data-bv-stringLength-message":"长度不能超过50个字符"} />
-		        <@ms.formRow label="所属栏目" width="300">
-					<@ms.treeInput treeId="inputTree"  json="${listColumn?default('')}"  jsonId="categoryId" jsonPid="categoryCategoryId" jsonName="categoryTitle" inputName="categoryCategoryId" inputValue="${column.categoryCategoryId?c?default(0)}" addNodesName="顶级栏目管理"  buttonText="${columnSuper.categoryTitle?default('顶级栏目管理')}" clickZtreeId="clickZtreeId(event,treeId,treeNode);"  expandAll="true" showIcon="true"/>
-				</@ms.formRow>
-          		<@ms.text name="categorySort"  width="200"  label="自定义顺序" title="自定义顺序" size="5"  placeholder="请输入文章顺序" value="${column.categorySort?c?default(0)}"  validation={"data-bv-between":"true","data-bv-between-message":"自定义顺序必须大于0","data-bv-between-min":"0", "data-bv-between-max":"99999999","data-bv-notempty-message":"自定义顺序不能为空","data-bv-between-message":"请输入0-99999999之间的数","required":"true", "data-bv-notempty-message":"必填项目"}/>
-          		<@ms.textarea name="columnKeyword" width="600" label="${Session.model_title_session?default('栏目')}关键字" wrap="Soft" rows="4" placeholder="${Session.model_title_session?default('栏目')}关键字,有助于搜索"   value="${column.columnKeyword?default('')}"  validation={"data-bv-stringlength":"true", "data-bv-stringlength-max":"200","data-bv-stringLength-message":"长度不能超过200个字符"} /> 
-          		<@ms.textarea name="columnDescrip" width="600" label="${Session.model_title_session?default('栏目')}描述" wrap="Soft" rows="4" placeholder="${Session.model_title_session?default('栏目')}描述,对${Session.model_title_session?default('栏目')}关键字的扩展"   value="${column.columnDescrip?default('')}" validation={"data-bv-stringlength":"true", "data-bv-stringlength-max":"200","data-bv-stringLength-message":"长度不能超过200个字符"} />
-				<@ms.formRow label="缩略图" width="400">
-					<@ms.uploadImg path="column" imgs="${(column.categorySmallImg)?default('')}" inputName="categorySmallImg" size="1" msg="提示:栏目缩略图,最多可上传1张"  maxSize="2"   />
-				</@ms.formRow>
-				<#assign columnTypes=[{"id":"1","name":"列表"},{"id":"2","name":"封面"}]>
-				<@ms.radio name="columnType" label="${Session.model_title_session?default('栏目')}属性"  list=columnTypes listKey="id" listValue="name" value="${column.columnType?c?default(1)}" />
-				<@ms.select name="columnContentModelId" width="200"  list=[]  listKey="cmId" listValue="cmTipsName"  label="${Session.model_title_session?default('栏目')}内容模型"  default="请选择" value="0"/>
-				<#assign columnModelUrls=[{"id":"0","name":"暂无文件"}]>
-				<@ms.select name="columnListUrl" width="300" id="columnListUrlModel"  list=columnModelUrls  listKey="id" listValue="name" label="列表模版"  value="${column.columnListUrl?default('')}"  select2=true/>
-				<@ms.select name="columnUrl" width="300" id="columnUrlModel" default="暂无文件"  list=columnModelUrls  listKey="id" listValue="name" label="内容模版"  value="${column.columnUrl?default('')}"  select2=true/>
-				<@ms.hidden name="modelId"  value="${Session.model_id_session?default('0')}" />
-			</@ms.form>
-	</@ms.panel>
-</@ms.html5>	
-<script>
-$(function(){
-
-	var columnContentModelId= "${column.columnContentModelId?default('')}"
-	$("select[name=columnContentModelId]").find("option[value="+columnContentModelId+"]").attr("selected","selected");
-	<#if column.columnType == 0> 
-		  $("input:radio[name='columnType']:first").attr("checked",true);
-	</#if>
-	var columnListUrlSes = "${column.columnListUrl?default('')}";
-	var columnUrlSes = "${column.columnUrl?default('')}";
-	//页面加载列表模板和内容模板
-	$.ajax({
-	   type: "post",
-	   dataType: "json",
-	   url:  "${managerPath}/template/queryTemplateFileForColumn.do",
-	   success: function(msg){
-	   		$("#columnListUrlModel").html("");
-	     	$("#columnUrlModel").html("");
-	     	if(msg.length != 0){
-	   			for(var i=0; i<msg.length; i++){
-	   				if(msg[i] == columnListUrlSes) {
-	   					$("#columnListUrlModel").append("<option selected>"+msg[i]+"</option>")
-	   				}else{
-	   					$("#columnListUrlModel").append("<option>"+msg[i]+"</option>")
-	   				}
-		   			if( msg[i] == columnUrlSes){
-		   				$("#columnUrlModel").append("<option selected>"+msg[i]+"</option>")
-		   			}else{
-		   				$("#columnUrlModel").append("<option>"+msg[i]+"</option>")
-		   			}
-		   		}
-	   		}else{
-	   			$("#columnListUrlModel").append("<option>暂无文件</option>");
-			   	$("#columnUrlModel").append("<option>暂无文件</option>");
-	   		}
-	   		<#if column.columnType ==2 >
-				$("#columnListUrlModel").parents(".form-group").hide();
-				$("#columnListUrlModel").css("disabled",true);
-				$("#columnUrlModel").parent().prev().text("封面模板:");
-			</#if>
-	   }
-	});	
-	
-	//切换栏目属性
-	$("input[name='columnType']").click(function(){
-		if($(this).val()== 2){
-			$("#columnListUrlModel").parents(".form-group").hide();
-			$("#columnListUrlModel").css("disabled",true);
-			$("#columnUrlModel").parent().prev().text("封面模板:");
-		}else if($(this).val()== 1){
-			$("#columnListUrlModel").parents(".form-group").show();
-			$("#columnListUrlModel").css("disabled",false);
-			$("#columnUrlModel").parent().prev().text("内容模板:");
-		}
-	});
-	
-	//栏目保存提交事件
-	$("#saveUpdate").click(function(){
-		$("#columnForm").data("bootstrapValidator").validate();
-		var isValid = $("#columnForm").data("bootstrapValidator").isValid();
-		if(!isValid) {
-			<@ms.notify msg= "数据提交失败,请检查数据格式!" type= "warning" />
-			return;
-		}
-		if($("#columnListUrlModel").find("option:selected").text()=="暂无文件"){
-			$("#columnListUrlModel").find("option:selected").text("");
-		}
-		if($("#columnUrlModel").find("option:selected").text()=="暂无文件"){
-			$("#columnUrlModel").find("option:selected").text("");
-		}
-		//如果选择的是普通文章,则
-		if($("select[name=columnContentModelId]").find("option:selected").val()==""){
-			$("select[name=columnContentModelId]").find("option:selected").val(0)
-		}
-		var formdata = $("#columnForm").serialize();
-		var URL = "";
-		<#if column.categoryId==0>
-		URL ="${managerPath}/${model?default("")}/column/save.do?modelId=${Session.model_id_session?default(0)}&modelTitle=${Session.model_title_session?default('')}";
-		<#else>
-		URL = "${managerPath}/${model?default("")}/column/update.do?modelId=${Session.model_id_session?default(0)}&modelTitle=${Session.model_title_session?default('')}";
-		</#if>
-		if(isNaN($("input[name=categorySort]").val())){
-			<@ms.notify msg= "自定义排序必须是数字" type= "warning" />
-			$("input[name=categorySort]").val(0);
-			return;
-		}
-		$.ajax({
-		   	type: "post",
-		   	url: URL,
-		   	data: formdata,
-		   	dataType:"json",
-		   	beforeSend:function(){
-		   		//获取按钮值
-				var bottonText = $("#saveUpdate").text().trim();
-				//设置按钮加载状态值
-				$("#saveUpdate").attr("data-loading-text",bottonText+"中");
-				//执行加载状态
-				$("#saveUpdate").button('loading');
-		   	},
-		   	success: function(msg){
-		    	if (msg.result) {
-	     			<#if column.categoryId==0>
-	     				<@ms.notify msg= "保存成功" type= "success" />
-	     			<#else>
-	     				<@ms.notify msg= "更新成功" type= "success" />	
-	     			</#if>
-	     			var modelId = ${Session.model_id_session?default(0)};
-	     			location.href="${managerPath}/${model?default("")}/column/index.do?modelId=${Session.model_id_session?default(0)}&modelTitle=${Session.model_title_session?default('')}";
-	    		}else{
-	    			<#if column.categoryId==0>
-	     				<@ms.notify msg= "保存失败" type= "warning" />
-	     			<#else>
-	     				<@ms.notify msg= "更新失败" type= "warning" />
-	     			</#if>
-	    		}
-	    		$("#saveUpdate").button('reset')
-		   	}
-		});
-	});
-	//获取内容模型列表
-	$.ajax({
-		type: "post",
-		url: "${managerPath}/mdiy/contentModel/list.do?pageSize=100",
-		dataType: "json",
-		contentType: "application/json",
-		success:function(data) {
-			for( var i=0 ; i<data.rows.length ; i++){
-				var value = data.rows[i];
-				var columnContentModelId = ${column.columnContentModelId?c?default(0)};
-				if(columnContentModelId == value.cmId){
-					$("select[name=columnContentModelId]").append("<option value = "+value.cmId+" selected='selected'>"+value.cmTipsName+"</option>");		//添加<option>元素
-				}else{
-					$("select[name=columnContentModelId]").append("<option value = "+value.cmId+">"+value.cmTipsName+"</option>");		//添加<option>元素
-				}
-				
-			}
-		}
-	})
-});
-
-//选择栏目后查询自定义模型
-function clickZtreeId(event,treeId,treeNode){
-	//栏目不能选择自己及其子栏目为父栏目的事件
-	<#if column.categoryId gt 0 >
-		var booleanClick=true;
-		var nodeParam = zTreeObjinputTree.getNodesByParam("categoryId", "${column.categoryId?c?default(0)}", null);
-		var nodes = zTreeObjinputTree.getNodesByParam("categoryId", treeNode.categoryId, nodeParam[0]);
-		if(nodes.length>0 || treeNode.categoryId == nodeParam[0].categoryId){
-			booleanClick=false;
-			<@ms.notify msg= "不能选择该栏目作为父栏目" type= "warning" />
-		}
-		return booleanClick;
-	</#if>
-} 
-</script>

+ 0 - 166
src/main/webapp/WEB-INF/manager/column/index.ftl

@@ -1,166 +0,0 @@
-<@ms.html5>
-	<@ms.nav title="栏目表管理"></@ms.nav>
-	<!--@ms.searchForm name="searchForm" isvalidation=true>
-		<@ms.searchFormButton>
-			 <@ms.queryButton onclick="search()"/> 
-		</@ms.searchFormButton>			
-	</@ms.searchForm-->
-	<@ms.panel>
-		<div id="toolbar">
-			<@ms.panelNav>
-				<@ms.buttonGroup>
-					<#include "/${model?default('')}/column/shiro-button.ftl"/>
-				</@ms.buttonGroup>
-			</@ms.panelNav>
-		</div>
-		<table id="columnList" 
-			data-show-refresh="true"
-			data-show-columns="true"
-			data-show-export="true"
-			data-method="post" 
-			data-side-pagination="server">
-		</table>
-	</@ms.panel>
-	
-	<@ms.modal  modalName="delColumn" title="删除栏目" >	
-		<@ms.modalBody>删除选中栏目,如果有子栏目也会一并删除
-			<@ms.modalButton>
-				<!--模态框按钮组-->
-				<@ms.button  value="确认删除?"  id="deleteColumnBtn"  />
-			</@ms.modalButton>
-		</@ms.modalBody>
-	</@ms.modal>
-</@ms.html5>
-<script>
-	$(function(){
-		$("#columnList").bootstrapTable({
-			url:"${managerPath}/${model?default('')}/column/list.do",
-			contentType : "application/x-www-form-urlencoded",
-			queryParamsType : "undefined",
-			toolbar: "#toolbar",
-			idField: 'categoryId',
-            treeShowField: 'categoryTitle',
-            parentIdField: 'categoryCategoryId',
-	    	columns: [
-	    		{ 
-	    			checkbox: true
-	    		},{
-		        	field: 'categoryId',
-		        	title: '编号',
-		        	align: 'center'
-		    	},{
-		        	field: 'categoryTitle',
-		        	title: '标题',
-		        	align: 'left',
-		        	formatter:function(value,row,index) {
-						<#include "/${model?default('')}/column/shiro-update.ftl"/>
-		        	}
-		    	},{
-		        	field: 'columnType',
-		        	title: '属性',
-		        	align: 'center',
-		        	formatter:function(value,row,index) {
-		        		if(value == 1){
-		        			return "列表";
-		        		}else if(value == 2){
-		        			return "单页";
-		        		}else if(value == 3){
-		        			return "外部链接";
-		        		}
-		        	}
-		    	},{
-		        	field: 'columnPath',
-		        	title: '链接地址',
-		        	align: 'left',
-		        	formatter:function(value,row,index) {
-		        		return "{ms:global.url/}"+value+"/index.html";
-		        	}
-		    	},{
-		        	field: 'columnListUrl',
-		        	title: '列表地址',
-		        	align: 'left',
-		        	formatter:function(value,row,index) {
-		        		if(value != null){
-		        			return value;
-		        		}else{
-		        			return "";
-		        		}
-		        	}
-		    	},{
-		        	field: 'columnUrl',
-		        	title: '内容地址',
-		        	align: 'left',
-		        	formatter:function(value,row,index) {
-		        		if(row.columnType == 1){
-		        			return value;
-		        		}else{
-		        			return "";
-		        		}
-		        	}
-		    	},{
-		        	field: 'columnUrl',
-		        	title: '封面地址',
-		        	align: 'left',
-		        	formatter:function(value,row,index) {
-		        		if(row.columnType == 2){
-		        			return value;
-		        		}else{
-		        			return "";
-		        		}
-		        	}
-		    	}]
-	    })
-	})
- 
-	
-	//增加按钮
-	$("#addColumnBtn").click(function(){
-		location.href ="${managerPath}/${model?default('')}/column/add.do?modelId=${Session.model_id_session?default(0)}&modelTitle=${Session.model_title_session?default('')}"; 
-	})
-	//删除按钮
-	$("#delColumnBtn").click(function(){
-		//获取checkbox选中的数据
-		var rows = $("#columnList").bootstrapTable("getSelections");
-		//没有选中checkbox
-		if(rows.length <= 0){
-			<@ms.notify msg="请选择需要删除的记录" type="warning"/>
-		}else{
-			$(".delColumn").modal();
-		}
-	})
-	
-	$("#deleteColumnBtn").click(function(){
-		var rows = $("#columnList").bootstrapTable("getSelections");
-		$(this).text("正在删除...");
-		$(this).attr("disabled","true");
-		var ids = [];
-		for(var i=0;i<rows.length;i++){
-			ids[i] = rows[i].categoryId;
-		}
-		ids.reverse();
-		$.ajax({
-			type: "post",
-			url: "${managerPath}/${model?default('')}/column/delete.do?ids="+ids,
-			dataType: "json",
-			contentType: "application/json",
-			success:function(msg) {
-				if(msg.result == true) {
-					<@ms.notify msg= "删除成功" type= "success" />
-				}else {
-					<@ms.notify msg= "删除失败" type= "warning" />
-				}
-				location.reload();
-			}
-		})
-	});
-	//查询功能
-	function search(){
-		var search = $("form[name='searchForm']").serializeJSON();
-        var params = $('#columnList').bootstrapTable('getOptions');
-        params.queryParams = function(params) {  
-        	$.extend(params,search);
-	        return params;  
-       	}  
-   	 	$("#columnList").bootstrapTable('refresh', {query:$("form[name='searchForm']").serializeJSON()});
-	}
-</script>

+ 0 - 2
src/main/webapp/WEB-INF/manager/column/shiro-button.ftl

@@ -1,2 +0,0 @@
-<@ms.addButton id="addColumnBtn"/>
-<@ms.delButton id="delColumnBtn"/>

+ 0 - 2
src/main/webapp/WEB-INF/manager/column/shiro-update.ftl

@@ -1,2 +0,0 @@
-var url = "${managerPath}/${model?default("")}/column/"+row.categoryId+"/edit.do?modelId=${Session.model_id_session?default(0)}&modelTitle=${Session.model_title_session?default('')}";
-return "<a href=" +url+ " target='_self'>" + value + "</a>";

+ 0 - 21
src/main/webapp/WEB-INF/manager/include/head-file.ftl

@@ -1,21 +0,0 @@
-<meta charset="utf-8">
-<!--浏览器小图标-->
-<link rel="icon" href="http://cdn.mingsoft.net/global/images/ms.ico" type="x-icon">
-<script type="text/javascript" src="https://unpkg.com/vue@2.5.21/dist/vue.js"></script>
-<!-- 引入样式 -->
-<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
-<!-- 引入组件库 -->
-<script src="https://unpkg.com/element-ui/lib/index.js"></script>
-<!--网络请求框架-->
-<script src="https://cdn.bootcss.com/axios/0.18.0/axios.min.js"></script>
-<script src="https://cdn.bootcss.com/qs/6.5.2/qs.min.js"></script>
-<!--铭飞-->
-<script src="http://cdn.mingsoft.net/ms/1.0/ms.js"></script>
-<script src="http://cdn.mingsoft.net/ms/1.0/ms.http.js"></script>
-<script src="http://cdn.mingsoft.net/ms/1.0/ms.util.js"></script>
-<link rel="stylesheet" href="http://cdn.mingsoft.net/ms-admin-ui/4.7.0/css/ms.css">
-<script>
-	ms.manager = {
-		path: "${managerPath}"
-	}
-</script>

+ 0 - 88
src/main/webapp/WEB-INF/manager/include/macro.ftl

@@ -1,88 +0,0 @@
-<#include "/include/ui/index.ftl"/>
-<#include "/include/manager.ftl"/>
-<#global autoCURD=""/>
-<#macro autoCURD>
-	<#local url=baseUrl?split("?")?first?split("/")?last/>
-	<#if  url == "add.do">
-		<#global autoCURD="save">
-	<#elseif url =="edit.do">
-		<#global autoCURD="update">
-	</#if>
-</#macro>
-<@ms.autoCURD/>
-
-<#--权限控制-->
-<#--link:必须 type:add/del/edit/query class:样式 id,value:显示文字-->
-<#macro auth link type="" value="" class="" id="">
-	<@shiro.hasPermission name="${link}">
-		<#if type=="add">
-			<@ms.panelNavBtnAdd id="${id}" value="${value}" class="${class}"/>
-		<#elseif type=="del">
-			<@ms.panelNavBtnDel id="${id}" value="${value}" class="${class}"/>
-		<!--
-		<#elseif type=="edit">
-			<@ms.panelNavBtnDel id="${id}" value="${value}" class="${class}"/>
-			-->
-		<#else>
-			<a href="${link}" class="${class}">${value}</a>
-		</#if>
-	</@shiro.hasPermission>
-</#macro>
-
-<#--分页-->
-<#macro pagehelper page displayedPages="5" edges="3" url="">
-<#if page?exists && page.pages gt 1>
-	<nav class="pageNav">
-	<ul class="pagination pull-right" id="pagination">
-			<#--格式 <(上一页) 1 2 3 4 >(下一页) -->
-			<li class="prev <#if (page.pageNum)==1> disabled" ><a<#else> "><a href="${url}&pageNo=${page.pageNum-1}" </#if> target="_self"><i class="fa fa-angle-left">上一页</i></a></li>
-				<#list 1..page.pages as i>
-					<li <#if page.pageNum==i>class="active" ><a<#else> ><a href='${url}&pageNo=${i}'</#if>  target="_self">${i}</a></li>
-				</#list>
-			<li class="next <#if page.pageNum == page.pages>disabled" ><a<#else> "><a href="${url}&pageNo=${page.pageNum+1}"</#if>  target="_self"><i class="fa fa-angle-right">下一页</i></a></li>
-	</ul>
-	</nav>
-	
-</#if>
-</#macro>
-
-
-<#--分页-->
-<#macro showPage page displayedPages="5" edges="3">
-<#if page?exists && page.pageCount gt 1>
-	<nav class="pageNav">
-	<ul class="pagination pull-right" id="pagination">
-		<#if displayedPages?has_content && edges?has_content>
-		
-					<script>
-				$(function(){
-					$('#pagination').pagination({
-						pages: ${page.pageCount},
-						cssStyle: 'pagination pull-right',
-						displayedPages: ${displayedPages?default(1)},
-						hrefTextPrefix:"${page.linkUrl}pageNo=",
-						currentPage:${page.pageNo+1},
-						edges:<#if edges?has_content>${edges?default(3)}<#else>3</#if>
-					});
-				})
-			</script>
-			
-		<#else>
-			<#--格式 <(上一页) 1 2 3 4 >(下一页) -->
-			<li class="prev <#if (page.pageNo+1)==1> disabled" ><a<#else> "><a href="${page.previousUrl}" </#if> target="_self"><i class="fa fa-angle-left">上一页</i></a></li>
-				<#list 1..page.pageCount as i>
-					<li <#if page.pageNo+1==i>class="active" ><a<#else> ><a href='${page.linkUrl}pageNo=${i}'</#if>  target="_self">${i}</a></li>
-				</#list>
-			<li class="next <#if page.pageNo+1 == page.pageCount>disabled" ><a<#else> "><a href="${page.nextUrl}"</#if>  target="_self"><i class="fa fa-angle-right">下一页</i></a></li>
-		</#if>
-	</ul>
-	</nav>
-	
-</#if>
-</#macro>
-<#macro method>
-	${baseUrl}
-</#macro>
-
-
-

+ 0 - 173
src/main/webapp/WEB-INF/manager/include/manager.ftl

@@ -1,173 +0,0 @@
-<#--4.5.5版本该文件废弃->
-<#--后台的UI界面通用区域定义 -->
-<#macro html5 width="100%" style="">
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<#include "/include/macro.ftl"/>
-		<#include "/include/meta.ftl"/>
-	</head>
-	<body>
-		<div class="ms-content">
-				<div class="ms-content-body" style="width:${width};${style}">
-		   			<#nested/>
-		   		</div>
-		</div>
-	</body>
-</html>
-</#macro>
-
-<#macro panel style="">
-	    <div class="ms-content-body-panel" style="${style}"> 
-	   		<#nested/>
-	    </div>
-</#macro>
-
-<#--主体结构-->
-<#macro content>
-	<div class="ms-content">
-		<#nested/>
-	</div>
-</#macro>
-
-<#--左侧菜单-->
-<#macro contentMenu style="">
-   <div class="ms-content-menu" style="${style}">
-   		<#nested/>
-    </div>
-</#macro>
-<#--废弃-->
-<#macro left>
-   <div class="ms-content-menu">
-   		<#nested/>
-    </div>
-</#macro>
-
-<#--内容-->
-<#macro contentBody width="100%" style="">
-   <div class="ms-content-body" style="width:${width};${style}">
-   		<#nested/>
-    </div>
-</#macro>
-<#--内容导航-->
-<#--button:格式为map 例如:button={"text":标题,"link":默认返回}-->
-<#macro contentNav title="板块名称">
-    <div class="ms-content-body-title">
-        <strong>${title}</strong>
-        <#nested/>
-    </div>
-</#macro>
-
-<#--搜索按钮组-->
-<#macro searchBtnGroup size="1">
-    <@ms.col size="${size}" style="text-align:right;border-top: 1px #EAEAEA solid;padding-top: 10px;">
-        <#nested/>
-    </@ms.col>
-</#macro>
-
-<#-- 分割线-->
-<#macro panelNav empty=false>
-    <div class="ms-content-body-panel-nav"  <#if empty>style="  padding: 0;"</#if>>
-        <#nested/>
-    </div>
-</#macro>
-<#--列表上面导航条右侧的过滤按钮区域 右浮动  -->
-<#macro panelNavFilter>
-      <div style="float:right;">
-        <#nested/>
-    </div>
-</#macro>
-<#--列表按钮组  如下拉菜单-->
-<#macro panelNavBtnGroup role="group" btn="" >
-	<div class="btn-group" role="${role}">
-		 <#nested/> 
-	</div>
-</#macro>
-<#-- 判断按钮的传入参数是否为空值 -->
-<#macro isPanelNavBtn class _class id _id>
-	<#assign _id="${_id}"/>
-	<#if id?has_content>
-		<#assign _id="${id}" />
-	</#if>
-	
-	<#assign _class="${_class}">
-	<#if class?has_content>
-		<#assign _class="${class}">
-	</#if>
-</#macro>
-
-
-<#macro panelNavBtnAdd value="" icon="plus" class="default" id="addButton" onclick="" title="">
-	<@ms.isPanelNavBtn id="${id}" _id="addButton" class="${class}" _class="default"/>
-	<@ms.button icon="${icon}" id="${_id}" value="${value} " icon="${icon}"  class="btn btn-${_class}" onclick="${onclick}" title="${title}"/>
-</#macro>
-<#macro panelNavBtnDel value="" icon="trash" class="danger" id="delButton" onclick="" title="">
-	<@ms.isPanelNavBtn id="${id}" _id="delButton" class="${class}" _class="danger"/>
-	<@ms.button icon="${icon}" value="${value} " icon="${icon}" id="${id}" class="btn btn-${_class}"  onclick="${onclick}" title="${title}"/>
-</#macro>
-<#macro contentNavBack value="返回" icon="share-alt" class="default"  onclick="javascript:history.go(-1)" title="返回">
-	<@ms.button  value="${value}" icon="${icon}"  onclick="${onclick}"  class="btn btn-${class}"   title="${title}"/>
-</#macro>
-<#macro panelNavBtnSave value="保存" icon="disk" class="default" id="saveButton" onclick="" title="保存" >
-	<@ms.button class="btn btn-success" value="${value} " icon="${icon}" id="${id}"   onclick="${onclick}" title="${title}"/>
-</#macro>
-<#---->
-<#macro contentPanel style="">
-    <div class="ms-content-body-panel" style="${style}"> 
-   		<#nested/>
-    </div>
-</#macro>
-
-
-<#--整行-->
-<#macro row>
-	<div class="row">
-	<#nested/>
-	</div>
-</#macro>
-
-<#--整列-->
-<#macro col size="1" style="">
-	<div class="col-md-${size} col-sm-${size}" style="${style}">
-		<#nested/>
-	</div>
-</#macro>
-
-<#--提示没有数据-->
-<#macro nodata content="暂无数据" style="text-align:center">
-	<p class="alert alert-info" role="alert" style="${style}">
-		${content}
-	</p>
-</#macro>
-
-
-<#--表格列表-->
-<#macro table head="" list="" id="">
- <table class="table table-hover">
-	<!--表格栏目属性 开始-->
-    <thead>
-        <tr>
-        	<#if head?has_content>
-				<#list head as h>
-						<#if h?html?length gt 5 &&  h?html?substring(0,6)=="&lt;th">
-							${h}
-						<#else>
-							<th>
-							 	${h}
-		        	        </th>
-	        	        </#if>
-	        	</#list>        	
-        	</#if>
-        </tr>
-    </thead>
-    <!--表格栏目属性 结束-->
-     <tbody id=${id}>
-    	<#nested/>
-     </tbody>
- </table>
-</#macro>
-
-
-
-
-

+ 0 - 98
src/main/webapp/WEB-INF/manager/include/meta.ftl

@@ -1,98 +0,0 @@
-  <base target="mainFrame" />
-  <#assign static="${basePath}/static">
-  <#setting url_escaping_charset='utf-8'> 
-  <#assign bootstrap="3.3.5">
-  <#assign manager_ui="4.6.4">
-  <#assign easyui="1.5">
-  <meta content="IE=edge" http-equiv="X-UA-Compatible" /> 
-  <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
-  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 
-  <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
-  <link rel="stylesheet" type="text/css" href="${static}/plugins/animate/1.0.0/animate.css" media="all" /> 
-  <link rel="stylesheet" type="text/css" href="${static}/plugins/iconfont/1.0.0/iconfont.css"/>
-    
-  <script type="text/javascript" src="${static}/plugins/jquery/1.9.1/jquery-1.9.1.js"></script> 
-  <script type="text/javascript" src="${static}/plugins/jquery.serializeJSON/2.8.1/jquery.serializejson.min.js"></script> 
-  
-  <link rel="stylesheet" type="text/css" href="${static}/plugins/ztree/3.5/zTreeStyle.css" media="all" /> 
-  <script type="text/javascript" src="${static}/plugins/ztree/3.5/jquery.ztree.all-3.5.min.js"></script> 
-  
-  <link rel="stylesheet" type="text/css" href="${static}/plugins/bootstrap/${bootstrap}/css/bootstrap.min.css" media="all" /> 
-  <link rel="stylesheet" type="text/css" href="${static}/plugins/bootstrap/${bootstrap}/css/bootstrap-switch.css" media="all" /> 
-  <link rel="stylesheet" type="text/css" href="${static}/plugins/bootstrap/${bootstrap}/css/bootstrapValidator.css" media="all" /> 
-  <link rel="stylesheet" type="text/css" href="${static}/plugins/bootstrap/${bootstrap}/css/bootstrap-notify.css" media="all" />
-  
-  <script type="text/javascript" src="${static}/plugins/bootstrap/${bootstrap}/js/bootstrap.min.js"></script> 
-  <script type="text/javascript" src="${static}/plugins/bootstrap/${bootstrap}/js/bootstrap-switch.min.js"></script>   
-  <script type="text/javascript" src="${static}/plugins/bootstrap/${bootstrap}/js/bootstrapValidator.js"></script> 
-  <script type="text/javascript" src="${static}/plugins/bootstrap/${bootstrap}/js/bootstrap-notify.js"></script>
-  
-  <link rel="stylesheet" type="text/css" href="${static}/plugins/select2/4.0.3/css/select2.min.css" media="all" />
-  <script type="text/javascript" src="${static}/plugins/select2/4.0.3/js/select2.min.js"></script>
-  
-	<!--时间插件-->
-  <script type="text/javascript" src="${static}/plugins/jquery.validation/1.15.0/jquery.validate.min.js"></script>
-  <script type="text/javascript" src="${static}/plugins/jquery.tmpl/1.4.2/jquery.tmpl.min.js"></script>
-  <!--时间插件-->
-  <link href="${static}/plugins/bootstrap.daterangepicker/1.3.4/daterangepicker.css" rel="stylesheet">
-  <script type="text/javascript" src="${static}/plugins/bootstrap.daterangepicker/1.3.4/moment.js"></script>
-  <script type="text/javascript" src="${static}/plugins/bootstrap.daterangepicker/1.3.4/daterangepicker.js"></script>
-  <script type="text/javascript" src="${static}/plugins/jquery.cookie/2.2.0/jquery.cookie.js"></script>
-    
-  <!----上传图片--->
-  <script type="text/javascript" src="${static}/plugins/jquery.swfupload/1.0.0/swfupload.js"></script>
-  <script type="text/javascript" src="${static}/plugins/jquery.swfupload/1.0.0/jquery.swfupload.js"></script>
-  <script type="text/javascript" src="${static}/plugins/jquery.swfupload/1.0.0/fileprogress.js"></script>
-  <!--script type="text/javascript" src="${static}/plugins/plupload/2.2.1/plupload.full.min.js"></script-->
-  
-  <!--后台UI--> 
-  <script type="text/javascript" src="${static}/skin/manager/${manager_ui}/js/ms.manager.js"></script>
-  <script type="text/javascript" src="${static}/skin/manager/${manager_ui}/js/ms.web.js"></script>
-  
-  <!--easyUI-->
-  <link rel="stylesheet" type="text/css" href="${static}/plugins/jquery.easyui/${easyui}/themes/default/easyui.css">
-  <link rel="stylesheet" type="text/css" href="${static}/plugins/jquery.easyui/${easyui}/themes/icon.css">
-  <script type="text/javascript" src="${static}/plugins/jquery.easyui/${easyui}/jquery.easyui.min.js"></script>
-
-  <!--bootstrap=table-->
-  <link rel="stylesheet" href="${static}/plugins/bootstrap-table/1.11.1/bootstrap-table.css">
-  <link rel="stylesheet" href="${static}/plugins/bootstrap-table/1.11.1/extensions/tree-column/bootstrap-table-tree-column.css">
-  <script src="${static}/plugins/bootstrap-table/1.11.1/bootstrap-table.js"></script>
-  <script src="${static}/plugins/bootstrap-table/1.11.1/extensions/tree-column/bootstrap-table-tree-column.min.js"></script>
-  <script src="${static}/plugins//bootstrap-table/1.11.0/locale/bootstrap-table-zh-CN.min.js"></script>
-  
-  <!-- vue框架所需要的资源 -->
-  <script src="${static}/plugins/hammerjs/2.0.8/hammer.min.js"></script>
-  <script src="${static}/plugins/vue/2.3.3/vue.min.js"></script>
-	
-  <link rel="stylesheet" type="text/css" href="${static}/skin/manager/${manager_ui}/css/ms.manager.min.css" media="all" />
-  <#assign skin_manager_logo="${static}/skin/manager/${manager_ui}/images/logo.png"/>  
-  <#assign skin_manager_loadding="${static}/skin/manager/${manager_ui}/images/loading.gif"/>  
-  
-
-       
-  <#include "/include/macro.ftl"/>
-  <script>
-    var basePath = "${basePath}";
-    var base = "${base}";
-    var managerPath = "${managerPath}";
-    var static = "${static}";
-    $(function() {
-    			//启用工具提示
-		   //	$("[data-toggle='tooltip']").tooltip();
-		   //	$("[data-toggle='popover']").popover({html:true});
-    })
-	<#if manager_session?exists>
-		var websiteId= "${manager_session.basicId?default('0')}" ;
-	</#if>
-  </script>	 
-		<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
-		<!--[if lt IE 9]>
-		  <script src="${base}/https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
-		  <script src="${base}/https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
-		<![endif]-->
-	
-	<script type="text/javascript" charset="utf-8" src="${base}/static/plugins/ueditor/1.4.3.1/ueditor.parse.js"></script>
-	<script type="text/javascript" charset="utf-8" src="${base}/static/plugins/ueditor/1.4.3.1/ueditor.config.js"></script>
-	<script type="text/javascript" charset="utf-8" src="${base}/static/plugins/ueditor/1.4.3.1/ueditor.all.js"></script>
-	<script type="text/javascript" charset="utf-8" src="${base}/static/plugins/ueditor/1.4.3.1/lang/zh-cn/zh-cn.js"></script>

+ 0 - 6
src/main/webapp/WEB-INF/manager/include/ui/attributes.ftl

@@ -1,6 +0,0 @@
-<#if id?? && id!=""> id="${id}"</#if><#rt/>
-<#if ajaxUrl?? && ajaxUrl!=""> data-ajax-url="${ajaxUrl}"</#if><#rt/>
-<#if class?? && class!=""> class="${class}"</#if><#rt/>
-<#if style?? && style!=""> style="${style}"</#if><#rt/>
-<#if  onclick?? && onclick!=""> onclick="${onclick}"</#if><#rt/>
-<#rt/>

+ 0 - 333
src/main/webapp/WEB-INF/manager/include/ui/button.ftl

@@ -1,333 +0,0 @@
-<#--
-表单相关按钮存放区域
--->
-<#macro buttonarea id="" label="" class="form-group" style="clear: both;" size="">
-<div class="${class} ms-form-group" 
-	<#if id!=""> id="${id}"</#if><#rt/>
-	<#if style?? && style?string!=""> style="${style}"</#if><#rt/>
-	>
-	<#if label!="">
-		<label class=" control-label text-right ms-form-label">${label}</label>
-	</#if>
-	 <div  class="ms-form-control">
-		<#nested/><#rt/>
-	 </div>
-</div>
-</#macro>
-
-<#--
-保存按钮
--->
-<#macro savebutton value="" id="" name="" class="" style=""   disabled=false
-onclick="" click=""
->
-	<button type="button"  class="btn btn-success"
-	<#include "/include/ui/common-attributes.ftl"/><#rt/>
-	<#if id!=""> id="${id}"</#if><#rt/>
-	>
-	<#if value!="">${value}<#else>保存</#if>
-	</button><#rt/>
-		<#if click?? && click!="" && id?? && id!="">
-		<script>
-			$(function() {
-				$("#${id}").click(function() {
-					eval(${click});
-				});
-			})
-		</script>
-	</#if>
-</#macro>
-
-<#--
-重置按钮
--->
-<#macro resetbutton value="" id="" name="" class="" style="" size="" title="" disabled=false>
-	<button type="reset"  class="btn reset"
-	<#include "/include/ui/common-attributes.ftl"/><#rt/>
-	>
-	<#if id!=""> id="${id}"</#if><#rt/>
-	<#if value!="">${value}<#else>重置</#if>
-	</button><#rt/>
-</#macro>
-
-<#macro button value="" id="" name="" class="btn btn-primary" style=""   disabled=false
-onclick="" click="" url="" toggle="tooltip" target="bottom" icon="" title="" placement="bottom"
->
-	<button type="button"
-	<#include "/include/ui/common-attributes.ftl"/><#rt/>
-	<#if toggle!=""> data-toggle="${toggle}"</#if><#rt/>
-	<#if onclick!=""> onclick="${onclick}"</#if><#rt/>
-	<#if target!=""> data-target="${target}"</#if><#rt/>
-	<#if id!=""> id="${id}"</#if><#rt/>
-	<#if url!=""> data-ajax-url="${url}"</#if><#rt/>
-	<#if placement!=""> data-placement="${placement}"</#if><#rt/>
-	
-	>
-	<#if value!="">${value}<#else>按钮</#if>
-	<#if icon!=""> <span class="glyphicon glyphicon-${icon}" <#if value?trim !="" >style="margin-right:5px"</#if>></span></#if>
-	
-	</button><#rt/>
-	<#if click?? && click!="" && id?? && id!="">
-		<script>
-			$(function() {
-				$("#${id}").click(function() {
-					eval(${click});
-				});
-			})
-		</script>
-	</#if>
-</#macro>
-
-
-
-
-<#--按钮组-->
-<#macro btnGroup value="" id="" name="" class="default" style="" size="" title="" disabled=false >
-  <button type="button" class="btn btn-${class}">${value}</button>
-  <button type="button" class="btn btn-${class} dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
-    <span class="caret"></span>
-    <span class="sr-only">Toggle Dropdown</span>
-  </button>
-  <ul class="dropdown-menu" role="menu">
-    	<#nested/>
-  </ul>
-</#macro>
-<#--按钮组-子菜单,配合btnGroup使用-->
-<#macro btnGroupLi value="" href="" class="" id="" ajaxUrl="">
-    <li <#include "/include/ui/attributes.ftl"/><#rt/>><#if href !="" ><a href="${href}">${value}</a><#else>${value}</#if></li>
-</#macro>
-
-
-
-<#--添-->
-<#macro addButton value="" icon="plus" class="default" id="addButton${.now?date?string('yyyyMMddhhmmss')}" onclick="" title="添加" url="" openModal="" openModalBefor="">
-	<@ms.isPanelNavBtn id="${id}" _id="addButton" class="${class}" _class="default"/>
-	<#if url!="">
-			<@ms.button icon="${icon}" id="${id}" value="${value} " icon="${icon}"  class="btn btn-${_class}" onclick="location.href='${url}'" title="${title}"/>
-	<#else>
-		<@ms.button icon="${icon}" id="${id}" value="${value} " icon="${icon}"  class="btn btn-${_class}" onclick="${onclick}" title="${title}"/>
-	</#if>
-	<#if openModal!="">
-		<script>
-			$(function() {
-					$("#${id}").click(function() {
-						<#if openModalBefor!="">
-							eval("${openModalBefor}()");
-						</#if>
-						$("#${openModal}").modal();
-					});
-			})
-		</script>
-	</#if>
-</#macro>
-<#--删-->
-<#macro delButton value="" icon="trash" class="danger" id="delButton${.now?date?string('yyyyMMddhhmmss')}" onclick="" title="删除" fieldName="" url="">
-	<#if fieldName!="">
-		<script>
-			$(function() {
-				$("#${id}").on("click",function() {
-					var ids = "";    
-					var params = ""; 
-					var count = 0;
-					$('input[name="${fieldName}"]:checked').each(function(){    
-					   ids += $(this).val() + ",";
-					   params += "${fieldName}=" + $(this).val() + "&";
-					   count ++;
-					});   
-					if (count == 0) {
-						 <@ms.notify msg="请选择要删除的数据!"/>			
-					} else {
-						$('.deleteModal${id}').modal();
-						$("#deleteModal${id}Num").text(count);
-						
-						$('.deleteBtn${id}').on("click",function() { 
-							<#if onclick?has_content>	
-								eval(${onclick}(ids));
-							<#elseif url?has_content>
-							$(this).request({url:"${url}",type:"json",data:params,method:"post",func:function(msg) {
-								if (msg.result) {
-									<@ms.notify msg="删除成功!"/>
-									location.reload();
-								} else {
-									<@ms.notify msg="删除失败!"/>
-								}
-							}});
-							</#if>
-						});
-						
-					}
-				});				
-			})
-		</script>
-	</#if>	
-	<@ms.isPanelNavBtn id="${id}" _id="delButton" class="${class}" _class="danger"/>
-	
-	<!--删除提示-->    
-	<@ms.modal modalName="deleteModal${id}" title="删除提示!">
-		  <@ms.modalBody>
-		  		确认删除<span style="color: red; font-size: 20px;" id="deleteModal${id}Num"></span>条记录?
-	     </@ms.modalBody>
-		 <@ms.modalButton>
-	 		<@ms.button class="btn btn-danger deleteBtn${id}" value="确定删除"/>
-	 	</@ms.modalButton>
-	</@ms.modal>	
-	
-	<@ms.button icon="${icon}" value="${value} " icon="${icon}" id="${id}" class="btn btn-${_class}"  onclick="${onclick}" title="${title}"/>
-</#macro>
-
-<#macro editButton value="" icon="edit" class="warning" id="editButton${.now?date?string('yyyyMMddhhmmss')}" onclick="" title="编辑">
-	<@ms.isPanelNavBtn id="${id}" _id="editButton" class="${class}" _class="danger"/>
-	<@ms.button icon="${icon}" value="${value} " icon="${icon}" id="${id}" class="btn btn-${_class}"  onclick="${onclick}" title="${title}"/>
-</#macro>
-
-<#macro queryButton value="查询" icon="search" class="default" id="queryButton${.now?date?string('yyyyMMddhhmmss')}" onclick="" title="查询" form="" >
-	<@ms.button class="btn btn-info" value="${value} " icon="${icon}" id="${id}"   onclick="${onclick}" title="${title}"/>
-	<#if onclick=="" && form!="">
-	<script>
-		$(function() {
-			$("#${id}").click(function() {
-					$("#${form}")[0].submit();
-			})
-		})
-	</script>
-	</#if>
-</#macro>
-<#--返回-->
-<#macro backButton value="返回" icon="share-alt" class="default" id="backButton${.now?date?string('yyyyMMddhhmmss')}"  onclick="javascript:history.go(-1)" title="返回">
-	<@ms.button  value="${value}" icon="${icon}"  onclick="${onclick}"  class="btn btn-${class}"   title="${title}" id="${id}"/>
-</#macro>
-<#--保存-->
-<#macro saveButton value="保存" icon="floppy-saved" class="default" id="saveButton${.now?date?string('yyyyMMddhhmmss')}" onclick="" title="保存" postForm="" postBefor="" postAfter="">
-	<@ms.button icon="${icon}" class="btn btn-success" value="${value} " icon="${icon}" id="${id}"   onclick="${onclick}" title="${title}" />
-	<@ms.event postForm="${postForm}"  postBefor="${postBefor}" postAfter="${postBefor}" id="${id}"/>
-</#macro>
-<#macro updateButton value="更新" icon="open" class="default" id="updateButton" onclick="" title="更新"  postForm="" postBefor="" postAfter="" postForm="" postBefor="" postAfter="">
-	<@ms.button icon="${icon}" class="btn btn-success" value="${value} " icon="${icon}" id="${id}"   onclick="${onclick}" title="${title}"/>
-	<@ms.event postForm="${postForm}"  postBefor="${postBefor}" postAfter="${postBefor}" id="${id}"/>
-</#macro>
-<#macro resetButton value="重置" icon="retweet" class="warning" id="resetButton${.now?long}" onclick="" title="重置" form="" >
-	<@ms.button icon="${icon}" class="btn btn-warning" value="${value} " icon="${icon}" id="${id}"   onclick="${onclick}" title="${title}"/>
-	<script>
-	    <#--优先click事件-->
-		<#if onclick=="">
-		$(function() {
-			$("#${id}").click(function() {
-				<#if form!="">
-					$("#${form}")[0].reset();
-				<#else>
-					$("#${id}").parents("form:first")[0].reset();
-				</#if>
-			})
-		})
-		</#if>
-	</script>
-</#macro>
-<#macro exportButton value="导出" icon="export" class="default" id="exportButton" onclick="" title="导出" >
-	<@ms.button icon="${icon}" class="btn btn-default" value="${value} " icon="${icon}" id="${id}"   onclick="${onclick}" title="${title}"/>
-</#macro>
-<#macro importButton value="导入" icon="import" class="warning" id="importButton" onclick="" title="导入" >
-	<@ms.button icon="${icon}" class="btn btn-default" value="${value} " icon="${icon}" id="${id}"   onclick="${onclick}" title="${title}"/>
-</#macro>
-<#macro setingButton value="设置" icon="cog" class="warning" id="importButton" onclick="" title="设置" >
-	<@ms.button icon="${icon}" class="btn btn-primary" value="${value} " icon="${icon}" id="${id}"   onclick="${onclick}" title="${title}"/>
-</#macro>
-
-<#macro event postForm=""  postBefor="" postAfter="" id="">
-	<#if postForm!="">
-		<script>
-			$(function() {
-				$("#${id}").click(function() {
-					var vobj = true;
-					try {
-						vobj = $("#${postForm}").data('bootstrapValidator').validate().isValid();
-					} catch (e){}
-					
-					var postBefor = true;
-						<#if postBefor!="">
-							postBefor = eval(${postBefor}()); 
-						</#if>
-						if(vobj && postBefor) {
-						
-							$(this).postForm("#${postForm}",{func:function(msg) {
-								if (msg.result) {
-						     		//history.back();
-									 <@ms.notify msg="保存成功!" type="success"/>			
-									 var redirect = $("#${postForm} input[name='redirect']").val();
-									 if (redirect!="") {
-									 	location.href=redirect;
-									 }
-									 <#if postAfter!="">
-									 	eval(${postAfter}(msg));
-									 </#if>
-									 
-						    	}else{
-						    		 var message = msg.resultMsg; 
-						    		 if (message=="" || message==undefined) {
-						    		 	message="后台验证失败";
-						    		 }
-						    		 $('.ms-notifications').notify({
-						    		    type:'warning',
-									    message: { text:message }
-									 }).show();
-						    	}
-							}});
-					    } else {
-							<@ms.notify msg="验证失败,请重新输入!" />
-									 
-					    }			
-				});
-			})	
-		</script>
-	</#if>
-</#macro>
-
-<#--按钮组-->
-<#macro buttonGroup role="group">
-	<div class="btn-group" role="${role}">
-		 <#nested/> 
-	</div>
-</#macro>
-
-<#macro menuButton links name="菜单名称" class="default">
-<div class="btn-group dropdown"> 
-  <button type="button" class="btn btn-${class}">${name}</button>
-  <button type="button" class="btn btn-${class} dropdown-toggle" data-toggle="dropdown"  aria-expanded="false">
-    <span class="caret"></span>
-    <span class="sr-only"></span>
-  </button>
-  <ul class="dropdown-menu">
-      <#list links as b>
-      	<li><a href="javascript:${b.click?default("void")}()">${b.name?default("菜单")}</a></li>
-      </#list>
-  </ul>
-</div>
-</#macro>
- 
-<#macro switchButton name on off size="small" value="" class="" color="default" onclass="danger" offclass="primary">
-	<input type="checkbox" class="ms-button-switch-${name}" data-on="${onclass}" data-off="${offclass}" data-size="${size}" data-on-text="${on.text}"  data-off-text="${off.text}" data-off-color="${color}"/>
-	<script>
-		$(function() {
-			<#if value!="">
-				<#if value==on.value?string>
-					$(".ms-button-switch-${name}").bootstrapSwitch('state', true);
-				<#else>
-					$(".ms-button-switch-${name}").bootstrapSwitch('state', false);
-				</#if>
-			<#else>
-				$(".ms-button-switch-${name}").bootstrapSwitch('state', true);
-			</#if>
-			
-			$('.ms-button-switch-${name}').on('switchChange.bootstrapSwitch', function(event, state) {
-				if (state) {
-					$("input[name='${name}']").val('${on.value}');
-				} else {
-					$("input[name='${name}']").val('${off.value}');
-				}
-			});
-			
-		})
-	</script>
-	<input type="hidden" name="${name}" value="${value}"/>
-</#macro>
-
-

+ 0 - 5
src/main/webapp/WEB-INF/manager/include/ui/checkboxlist-item.ftl

@@ -1,5 +0,0 @@
-	<label class="ms-check"><input type="checkbox"<#rt/>
-	 value="${rkey}"<#rt/>
-	<#if valueList?seq_contains(rkey)> checked="checked"</#if><#rt/>
-	<#include "/include/ui/common-attributes.ftl"/><#rt/>
-	/> ${rvalue}</label><#if hasNext> </#if>

+ 0 - 46
src/main/webapp/WEB-INF/manager/include/ui/checkboxlist.ftl

@@ -1,46 +0,0 @@
-<#--
-4.5.5开始废弃
-<input type="checkbox"/>
--->
-<#macro checkboxlist
-	list listKey="" listValue="" valueList=[]
-	label=""     colon=":" hasColon="true"
-	id="" name="" class="" style="" size="" title="" disabled=false
-	validation="" direction=true
-	width=""
-	labelStyle=""
-	help=""
-	>
-<div class="form-group ms-form-group">	
-	<#include "/include/ui/control.ftl"/><#rt/>
-	<div class="col-sm-10" <#if width!=""> style="${width}px"</#if><#rt/>>
-		<#if list?is_sequence>
-			<#if listKey!="" && listValue!="">
-				<#list list as item>
-					<#local rkey=item[listKey]>
-					<#local rvalue=item[listValue]>
-					<#local index=item_index>
-					<#local hasNext=item_has_next>
-					<#include "/include/ui/checkboxlist-item.ftl"><#t/>
-				</#list>
-			<#else>
-				<#list list as item>
-					<#local rkey=item>
-					<#local rvalue=item>
-					<#local index=item_index>
-					<#local hasNext=item_has_next>
-					<#include "/include/ui/checkboxlist-item.ftl"><#t/>
-				</#list>
-			</#if>
-		<#else>
-			<#list list?keys as key>
-				<#local rkey=key/>
-				<#local rvalue=list[key]/>
-				<#local index=key_index>
-				<#local hasNext=key_has_next>
-				<#include "/include/ui/checkboxlist-item.ftl"><#t/>
-			</#list>
-		</#if>
-	</div>
-</div>	
-</#macro>

+ 0 - 16
src/main/webapp/WEB-INF/manager/include/ui/common-attributes.ftl

@@ -1,16 +0,0 @@
-<#if name!=""> name="${name}"</#if><#rt/>
-<#if class!=""> class="${class}"</#if><#rt/>
-<#if style!=""> style="${style}"</#if><#rt/>
-<#if title?? && title!=""> title="${title}"</#if><#rt/>
-<#if disabled?? && disabled> disabled="disabled"</#if><#rt/>
-<#if maxlength?? && maxlength!=""> maxlength="${maxlength}"</#if><#rt/>
-<#if minlength?? && minlength!=""> minlength="${minlength}"</#if><#rt/>
-<#if name!=""> name="${name}"</#if><#rt/>
-<#if placeholder?? && placeholder!=""> placeholder="${placeholder}"</#if><#rt/>
-<#if  validation?? && validation?has_content><#--验证框架,需要bootstrapValidator框架-->
-	<#list validation?keys as key>
-		${key}="${validation[key]}"<#rt/>
-	</#list>
-</#if>
-<#if  onclick?? && onclick!=""> onclick="${onclick}"</#if><#rt/>
-<#rt/>

+ 0 - 15
src/main/webapp/WEB-INF/manager/include/ui/control.ftl

@@ -1,15 +0,0 @@
-<#if label!="">
-	<#assign tmp="2">
-	<label <#if name?? && name!="">for="${name}"</#if> <#if labelStyle?? && labelStyle!="">style="${labelStyle?default('')}"</#if> <#if colSm?? && colSm!=""><#assign tmp="${colSm}"></#if> class="col-sm-${tmp} control-label ">
-	<#if help!="">
-		<script>
-			$(function () {
-			  $('[data-toggle="popover"]').popover()
-			})
-		</script>
-		<span tabindex="0" class="glyphicon glyphicon-question-sign" data-toggle="popover"  role="button" data-trigger="focus" data-container="body" data-placement="${helpDirection?default('rigth')}" title="提示" data-content="${help}"></span>
-	</#if>	
-	${label}
-	</label>
-	
-</#if>

+ 0 - 81
src/main/webapp/WEB-INF/manager/include/ui/date.ftl

@@ -1,81 +0,0 @@
-<#--
-<input type="text"/>
--->
-<#macro date    id=""    name=""    value="" begin="" end="" limit="30"  
-	time=false single=false label=""	title=""	size=""	width=""
-	class="form-control"	 style=""	readonly=""	validation=""   disabled=false	 maxlength=""	minlength=""	 placeholder="" ranges=true
-	labelStyle=""
-	help=""
-	helpDirection=""
-	>
-<div class="form-group ms-form-group">	
-	<#include "/include/ui/control.ftl"/><#rt/>
-			<div class="control-group col-sm-9 ms-from-group-input has-feedback" style="min-width:200px;<#if width!=""> width:${width}px"</#if>"<#rt/>>
-		            <div class="controls">
-			             <div class="input-prepend input-group">
-			               <span class="add-on input-group-addon"><i class="glyphicon glyphicon-calendar fa fa-calendar"></i></span>
-							<input type="text"<#rt/>
-							<#if id!=""> id="${id}"<#elseif name!="">id="${name}"</#if><#rt/>
-							<#if maxlength!=""> maxlength="${maxlength}"</#if><#rt/>
-							<#if readonly!=""> readonly="${readonly}"</#if><#rt/>
-							<#if value?? && value?string!=""> value="${value?html}"</#if><#rt/>
-							<#include "/include/ui/common-attributes.ftl"/><#rt/>
-							/><#rt/> 
-			             </div>
-		            </div>
-	          </div>	 
-</div>
-<script>
-  var ${name}Set = {
-    startDate: moment().subtract(29, 'days'),
-    endDate: moment(),
-    <#if begin?has_content>minDate: '${begin?string('yyyy-MM-dd')}',</#if>
-     <#if end?has_content>maxDate: '${end?string('yyyy-MM-dd')}',</#if>
-    dateLimit: { days: ${limit} },
-    showDropdowns: true,
-    showWeekNumbers: true,
-    <#if time>
-    timePicker: true,
-    timePickerIncrement: 1,
-    </#if>
-    <#if single>singleDatePicker: true,</#if>
-    timePicker12Hour: true,
-    <#if ranges>
-    ranges: {
-       '今天': [moment(), moment()],
-       '昨天': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
-       '最近7天': [moment().subtract(6, 'days'), moment()],
-       '最近30天': [moment().subtract(29, 'days'), moment()],
-       '当月': [moment().startOf('month'), moment().endOf('month')],
-       '上个月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
-    },
-    </#if>
-    opens: 'left',
-    buttonClasses: ['btn btn-default'],
-    applyClass: 'btn-small btn-primary',
-    cancelClass: 'btn-small',
-    format: 'YYYY-MM-DD<#if time> HH:mm:ss</#if>',
-    separator: '至',
-    locale: {
-        applyLabel: '确认',
-        cancelLabel: '取消',
-        //fromLabel: '开始时间',
-        //toLabel: '结束时间',
-        customRangeLabel: '自定义',
-        daysOfWeek: ['日', '一', '二', '三', '四', '五','六'],
-        monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
-        firstDay: 1
-    }
-  };
-                  
-   var ${name}Func = function(start, end, label) {
-    //alert("Callback has fired: [" + start.format('MMMM D, YYYY') + " to " + end.format('MMMM D, YYYY') + ", label = " + label + "]");
-    //$('#subscribeReplyForm').formValidation('revalidateField', "${name}");
-  }
-	$('#${name}').daterangepicker(${name}Set, ${name}Func);
-	      $('#${name}').on('apply.daterangepicker', function(ev, picker) {
-	           // $('#${name}').parents("form:first").data('bootstrapValidator').revalidateField('<#if id!="">${id}<#elseif name!="">${name}</#if>');
-	 });
-</script>
-
-</#macro>

+ 0 - 98
src/main/webapp/WEB-INF/manager/include/ui/editor.ftl

@@ -1,98 +0,0 @@
-<#--简易编辑器-->
-<#--name:输入框名称-->
-<#--width\height:编辑器的宽度高度-->
-<#--content:初始化内容-->
-<#macro editor name label=""  content="" validation="" width="100%" height="480" labelStyle="" appId="" help="" helpDirection="" colSm=""> 
-<div class="form-group ms-form-group">	
-	<#include "/include/ui/control.ftl"/><#rt/>	
-	<div class="ms-form-control ms-from-group-input col-sm-9 has-feedback">
-	<script type="text/plain" id="editor_${name}" name="${name}" style="width:${width}px;height:${height}px">${content?default('')}</script>
-	<script type="text/javascript">
-	 
-		//实例化编辑器
-		//建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
-		//  var ue = UE.getEditor('editor_${name}');
-       var URL = window.UEDITOR_HOME_URL || "${base}/static/plugins/ueditor/1.4.3.1/";
-	   var ue = UE.getEditor('editor_${name}', {
-       		imageScaleEnabled :true,
-       		// 服务器统一请求接口路径
-       		serverUrl: URL + "jsp/msController.jsp?jsonConfig=%7BvideoUrlPrefix:'${base}',fileUrlPrefix:'${base}',imageUrlPrefix:'${base}',imagePathFormat:'/upload/${appId?default(0)}/editor/%7Btime%7D',filePathFormat:'/upload/${appId?default(0)}/editor/%7Btime%7D',videoPathFormat:'/upload/${appId?default(0)}/editor/%7Btime%7D'%7D", 
-			autoHeightEnabled: true,
-			autoFloatEnabled: false,
-			scaleEnabled: true,
-        	compressSide:0,
-        	maxImageSideLength:2000,
-			maximumWords: 80000,
-		});
-		//重新设置编辑器的style
-		ue.ready(function () {
-        	$(".edui-editor-bottomContainer").height(30);
-   	    });   
-   	                                                       
-	</script>
-	</div>
-</div>
-</#macro>
-
-
-
-<#--简易编辑器-->
-<#--inputName:输入框名称-->
-<#--width\height:编辑器的宽度高度-->
-<#--content:初始化内容-->
-<#macro smallUedit inputName width height content>
-
-	    <script type="text/plain" id="editor_${inputName}" name="${inputName}">${content?default('')}</script>
-	    
-		  <div class="editor-bottom-bar">
-		    当前已输入
-		    <span class="char_count">
-		      0
-		    </span>
-		    个字符, 您还可以输入
-		    <span class="char_remain">
-		      80000
-		    </span>
-		    个字符。
-		  </div>    
-	    <style>
-		.editor-bottom-bar {
-			white-space: nowrap;
-			border: 1px solid #ccc;
-			line-height: 20px;
-			font-size: 12px;
-			text-align: right;
-			margin-right: 5px;
-			color: #aaa;
-			border-top: 0;
-			width:  ${width}px;
-		}
-		</style>
-	
-		<script type="text/javascript">
-				var charLimit = 80000;
-		    	window.editor_${inputName} = new UE.ui.Editor({
-					initialFrameWidth : ${width},
-					initialFrameHeight : ${height}
-				});
-				window.editor_${inputName}.render("editor_${inputName}");
-		    	function computeChar() {
-		    	
-					var len = editor_${inputName}.getContent().length;
-					if (len > charLimit) {
-						$(".editor-bottom-bar").html("<span style='color:red;'>你输入的字符个数("
-								+ len + ")已经超出最大允许值!</span>")
-					} else {
-						$(".editor-bottom-bar").html("当前已输入<span class='char_count'>" + len
-								+ "</span>个字符, 您还可以输入<span class='char_remain'>"
-								+ (charLimit - len) + "</span>个字符。")
-					}
-				}
-				
-				window.editor_${inputName}.addListener("keyup", function(type, evt) {
-					computeChar()
-				})
-				
-				
-		</script>
-</#macro>

+ 0 - 19
src/main/webapp/WEB-INF/manager/include/ui/file.ftl

@@ -1,19 +0,0 @@
-<#--
-<input type="file"/>
--->
-<#macro file
-	accept="" value=""
-	label="" noHeight="false" required="false" colspan="" width="100" help="" helpPosition="2" colon=":" hasColon="true"
-	id="" name="" class="" style="" size="" title="" disabled="" tabindex="" accesskey="" labelStyle=""
-	onclick="" ondblclick="" onmousedown="" onmouseup="" onmouseover="" onmousemove="" onmouseout="" onfocus="" onblur="" onkeypress="" onkeydown="" onkeyup="" onselect="" onchange=""
-	>
-<#include "/include/ui/control.ftl"/><#rt/>
-<input type="file"<#rt/>
-<#if id!=""> id="${id}"</#if><#rt/>
-<#if accept!=""> accept="${accept}"</#if><#rt/>
-<#if value!=""> value="${value}"</#if><#rt/>
-<#include "/include/ui/common-attributes.ftl"/><#rt/>
-<#include "/include/ui/scripting-events.ftl"/><#rt/>
-/>
-<#include "/include/ui/control-close.ftl"/><#rt/>
-</#macro>

+ 0 - 139
src/main/webapp/WEB-INF/manager/include/ui/form.ftl

@@ -1,139 +0,0 @@
-<#--
-<form></form>
-name:表单名称
-id:表单id
-action:提交地址
-method:提交方式
--->
-<#macro form  name id="" target=""
-	 action="" method="post"  enctype=""  
-	 class="form-horizontal"  style="display:none; width:100%; background-color: white;" isvalidation=false tooltip=false
-	 redirect=""
-	 >
-<form<#rt/>
- role="form"<#rt/>
- method="${method}"<#rt/>
- action="${action}"<#rt/>
-<#if target!="">target="${target}" <#else> target="_self"</#if><#rt/>
-
-<#if id!=""> id="${id}"<#else> id="${name}"</#if><#rt/>
-<#if enctype!=""> enctype="${enctype}"</#if><#rt/>
-<#include "/include/ui/common-attributes.ftl"/><#rt/>
->
-<@ms.hidden name="redirect" value="${redirect}"/>
-<#nested/><#rt/>
-<script>
-	$(function() {
-				var id = "${name}";
-				<#if id?? && id!="">id="${id}"</#if>
-				$('#'+id).fadeIn("slow");
-				<#if isvalidation>
-				$('#'+id).bootstrapValidator({
-						<#if tooltip>
-				        container: 'tooltip',
-				        </#if>
-				        feedbackIcons: {
-				            valid: 'glyphicon glyphicon-ok',
-				            invalid: 'glyphicon glyphicon-remove',
-				            validating: 'glyphicon glyphicon-refresh'
-				        }
-						
-				});	
-				
-				</#if>
-				//$("#${name} .form-group>div.radio").siblings("i.form-control-feedback").clone().prependTo($("#${name} .form-group>div.radio"));
-				//$("#${name} .form-group>div.radio").siblings("i.form-control-feedback").remove();
-				<#if !class?has_content>
-					
-					$("#${name} .form-group>label").removeClass("col-sm-2");
-					$("#${name} .form-group>div").removeClass("col-sm-9");
-					var width = $("#${name} .form-group>div.ms-from-group-input").width();
-					//$("#${name} .form-group>div.ms-from-group-input>:input").unwrap().parent().width(width);
-					$("#${name} .form-group>div.ms-from-group-input").addClass("has-feedback").parent().width(width);
-					
-					//$("#${name} .form-group label").removeClass("checkbox-inline").removeClass("radio-inline");
-					//$("#${name} .has-feedback .form-control-feedback").css({top:"25px"});
-				<#elseif class?index_of("searchForm") gt -1>
-					$("#${name} .form-group>label").removeClass("col-sm-3");
-					$("#${name} .form-group>div").removeClass("col-sm-9");
-					
-					$("#${name} .form-group>label").addClass("col-sm-4");
-					$("#${name} .form-group>div").addClass("col-sm-8");		
-					
-					$("#${name} .ms-form-group").addClass("col-sm-4");	
-					$("#${name}").show(); 
-				</#if>
-	})
-</script>
-</form>
-</#macro>
-
-<#macro searchForm  name id="" target=""
-	 action="" method="post"  enctype=""  
-	 class="searchForm form-inline"  style="display:none;  background-color: white;" isvalidation=false tooltip=true >
-	<@ms.form name="${name}" id="${id}" action="${action}" style="display:none;background-color: white;" isvalidation=true class="${class}" tooltip=true>
-		<#nested/><#rt/>
-	</@ms.form>
-	<div class="search-form-div"></div>
-	
-	<script type="text/javascript">
-    $(function(){
-        //收缩筛选
-        var clickTimes = 1;
-        var searchFormheight = $("#searchForm").height();
-        
-        //初始化顶住筛选部分的空白div
-        $(".search-form-div").height(searchFormheight + 15);
-        var _height = parseInt(searchFormheight)-26;
-        
-        $("#searchForm").find(".close").click(function(){
-            var obj = $(this);
-            if (clickTimes % 2 == 1) {
-                //空白div与筛选同时往上缩
-                $(".search-form-div").animate({height:"0px"},"slow");
-                $("#searchForm").animate({top:"-"+_height+"px"},"slow");
-                obj.find("span").removeClass("glyphicon-chevron-up").addClass("glyphicon-chevron-down");
-            } else {
-            
-                //空白div与筛选同时展开
-                $(".search-form-div").animate({height:searchFormheight+15+"px"},"slow");
-                $("#searchForm").animate({top:"46px"},"slow");
-                obj.find("span").removeClass("glyphicon-chevron-down").addClass("glyphicon-chevron-up");
-            }
-            clickTimes++
-        })
-    })
-</script>
-	
-</#macro>
-
-<#macro searchFormButton close="">
-		<div class="bottom" style="clear:both">
-			<div class="close"><span class="glyphicon glyphicon-chevron-up"></span></div>
-			<@ms.resetButton/>
-			<#nested/><#rt/>
-		</div>
-</#macro>
-
-<#--自定义行-->
-<#macro formRow label=" " class="form-control" colSm="" groupClass="form-group" width="" labelStyle="" help="" style="" >
-	<div class="${groupClass}">	
-		<#include "/include/ui/control.ftl"/><#rt/>
-		<div class="col-sm-9 ms-from-group-input" style="line-height:30px;<#if width!=""> width:${width}px;</#if>${style}"<#rt/>>
-			<#nested/>
-		</div>
-	</div>
-</#macro>
-
-<#--
-<input type="text"/>
--->
-<#macro fromgroup   id="" size="" label="" style="">
-<div class="form-group ms-form-group" style="${style}" help="">	
-	<#include "/include/ui/control.ftl"/><#rt/>
-	<div class="ms-form-control">
-		<#nested/><#rt/>
-	 </div>
-</div>
-</#macro>
-

+ 0 - 15
src/main/webapp/WEB-INF/manager/include/ui/index.ftl

@@ -1,15 +0,0 @@
-<#include "/include/ui/input.ftl"/>
-<#include "/include/ui/input-tree.ftl"/>
-<#include "/include/ui/select.ftl"/>
-<#include "/include/ui/textarea.ftl"/>
-<#include "/include/ui/file.ftl"/>
-<#include "/include/ui/button.ftl"/>
-<#include "/include/ui/form.ftl"/>
-<#include "/include/ui/date.ftl"/>
-<#include "/include/ui/editor.ftl"/>
-<#include "/include/ui/time.ftl"/>
-<#include "/include/ui/tree.ftl"/>
-<#include "/include/ui/page.ftl"/>
-<#include "/include/ui/table.ftl"/>
-<#include "/include/ui/modal.ftl"/>
-<#include "/include/ui/upload.ftl"/>

+ 0 - 167
src/main/webapp/WEB-INF/manager/include/ui/input-tree.ftl

@@ -1,167 +0,0 @@
-<#-- 树形控件,以input下拉框的形式显示(官网:http://www.ztree.me/v3/main.php#_zTreeInfo) -->
-<#-- treeId(必须):树形加载和控制区域的ID,一张页面同时加载多个树形时必须用该值进行区分 -->
-<#-- json(必须):需要加载成树形的数据,数据结构为:[{categoryId:1,categoryCategoryId:0,categoryTitle:""},{categoryId:2,categoryCategoryId:1,categoryTitle:""}] -->
-<#-- jsonId(必须):json数据中ID名称,如:categoryId -->
-<#-- jsonPid(必须):json数据中关联的父ID,如:categoryCategoryId -->
-<#-- jsonName(必须):json数据中需要显示的数据名称,如:categoryTitle -->
-<#-- rootName:顶级根节点,直接传入根节点名称即可。如:顶级分类 -->
-<#-- name(必须):隐藏input框的name与id值,用于保存选中数据的ID -->
-<#-- value:隐藏input框的val默认值,适用用于加载初始化数据 -->
-<#-- text:选择框加载的默认提示信息 -->
-<#-- parent:是否可以选择父节点,false默认不允许,true允许 --> 
-<#-- expandAll:控制节点数据显示的时候是全部展开还是全部折叠(true[默认]:全部展开,false:全部折叠)。 -->
-<#-- showIcon:是否显示文件夹图标,true(默认):显示;false:不显示 -->
-<#-- required:是否是必选项,true(默认)必选 false -->
-<#-- onclick: 选择节点后触发的事件,会注入event,treeId,treeNode三个参数,参考ztree官方文档-->
-
-<#macro inputTree treeId  json jsonId jsonPid jsonName name text
-		rootName="" value=""  parent=false onclick="" expandAll="true" showIcon="true" 
-		required=true >
-	<!-- css样式开始 -->
-	<style type="text/css">
-		.ztree${treeId}{width:100%;max-height: 240px;overflow:auto;}
-		.ztree${treeId} li a{padding:0}
-		#${treeId} i{right:0}
-	</style>	
-	<!-- css样式结束 -->
-
-	<!-- 初始化样式开始 -->
-	<div class="dropdown" id="${treeId}">
-		<button id="treeLabel${treeId}" class="form-control dropdown-toggle" data-toggle="dropdown" aria-expanded="true" style="text-align:left">
-			${text?default('请选择')}
-		</button>
-		<input type="text" style="position: absolute;height:0;border: none;" <#if name?has_content>name="${name}" id="${name}"</#if> value="${value?default(0)}"
-		<#if  required && validation?? && validation?has_content><#--验证框架,需要bootstrapValidator框架-->
-			<#list validation?keys as key>
-			${key}="${validation[key]}"<#rt/>
-			</#list>
-		<#elseif required>
-			data-bv-between="true" data-bv-between-message="请选择!" data-bv-between-min="1" data-bv-between-max="99998" required  data-bv-notempty-message="请选择分类"
-		</#if>
-		/>
-		<ul class="ztree ztree${treeId} dropdown-menu" role="menu" id="tree${treeId}" aria-labelledby="treeLabel${treeId}">
-		</ul>
-	</div>
-	<!-- 初始化样式结束 -->
-	
-	<!-- js操作方法开始 input -->	
-	<script>
-		//初始化树形数据
-		var zNodes${treeId} = <#if json?has_content>${json}<#else>[]</#if>;
-		
-		//初始化树形结构
-		var setting${treeId} = {
-			view:{//控制视图
-				fontCss:{"white-space":"normal","display":"initial","word-break":"break-all"},
-				showIcon:${showIcon},//是否显示节点文件夹图标
-				showLine:true,//是否显示借点连接线
-				expandSpeed:"",//折叠时的动画速度,参考jquery中动画效果的speed参数,三种预定速度之一的字符串("slow", "normal", or "fast")
-			},
-			data: {//控制显示数据
-				simpleData: {
-					enable: true,//是否采用简单数据模式 (Array)
-					idKey:"${jsonId}",//节点ID名称
-					pIdKey:"${jsonPid}",//父节点ID名称
-				},
-				key:{
-					name:"${jsonName}",//节点数据保存节点名称的属性名称。
-				}
-			},
-			callback: {//控制获取选择的节点数据
-				beforeClick:<#if !parent>beforeClick${treeId}<#else>null</#if>,//用于捕获单击节点之前的事件回调函数,并且根据返回值确定是否允许单击操作
-				onClick:getZtreeId${treeId},//用于捕获节点被点击的事件回调函数
-			},
-			check:{//控制节点的选中方式(暂时未启用,根据后期需求再做调整)
-				autoCheckTrigger:true,//是否触发自动勾选
-				enable:false,//节点上是否显示选择框,false:不显示,true:显示。
-				chkStyle:"checkbox",//勾选框类型(checkbox[默认值] 或 radio)
-				chkboxType:{"Y":"ps","N":"ps"},//设置勾选关联关系
-			},
-		};	
-		
-		var zTreeObj${treeId}="";
-		$(function(){
-			//自定义顶级栏目
-			<#if rootName?has_content>
-				zNodes${treeId}[zNodes${treeId}.length] = {${jsonName}:"${rootName}",${jsonId}:0,${jsonPid}:0};
-			</#if>
-			
-			//加载树形
-			$.fn.zTree.init($("#tree${treeId}"),setting${treeId},zNodes${treeId});	
-			
-			//zTree内部函数对象,主要用户调用zTree内部方法
-			zTreeObj${treeId} = $.fn.zTree.getZTreeObj("tree${treeId}");
-			
-			//展开(true)/折叠(false)全部节点(zTree内部方法)
-			zTreeObj${treeId}.expandAll(${expandAll});
-
-			//加载默认节点
-			<#if value?has_content>
-				var nodes = zTreeObj${treeId}.getNodeByParam("${jsonId}",${value},null)
-				if (nodes!=null) {
-					zTreeObj${treeId}.selectNode(nodes);
-					$("#treeLabel${treeId}").text(nodes.${jsonName});
-				}
-			</#if>
-			
-			//当属性为折叠时,控制下拉菜单的开启和关闭
-			<#if expandAll = "false">
-				$("body").on("click",function(e) {
-			        e = window.event || e; // 兼容IE7
-			        
-			        //获取当前点击事件对象
-			        var objZtree = $(e.srcElement||e.target);
-			        
-			        //获取当前点击事件ID,并对点击的子节点ID进行切割获取自定义ID
-			        var objZtreeId = objZtree.attr("id");
-			        
-			        //当用户点击选择框时还原下拉框属性
-			        if(objZtreeId != undefined && objZtreeId.split("_")[0] == "treeLabel${treeId}"){
-			        	$("#tree${treeId}").attr("style","");
-			        	return ;
-			        }
-			        
-			        //切割获取到的ID判断点击事件是否产生在下拉框
-			        if(objZtreeId != undefined && objZtreeId.split("_")[0] == "tree${treeId}"){
-			        	$("#tree${treeId}").attr("style","display:block");
-			        }else{
-			        	$("#tree${treeId}").attr("style","display:none");
-			        }
-				});
-			</#if>
-			
-		});
-		
-		<#if !parent>
-			//对节点选择进行限制,用户只能选择子节点
-			function beforeClick${treeId}(treeId,treeNode) {
-				var check = (treeNode && !treeNode.isParent);
-				if (!check){
-					<@ms.notify msg="请选择该分类的子分类!" />
-				};
-				return check;
-			}		
-		</#if>
-		
-		//获取树形中选中的值,将选择值加载到隐藏框中
-		function getZtreeId${treeId}(event,treeId,treeNode){
-			var booleanClick = true;
-			//用于捕获节点被点击的事件回调函数
-			<#if onclick?has_content>
-				booleanClick=${onclick}(event,treeId,treeNode);
-			</#if>
-			if(booleanClick==false){
-				return;
-			}
-			//将用户选择数据ID加载到隐藏框
-			$("#${treeId} input[name='${name}']").val(treeNode.${jsonId});
-			<#if required>
-			$("form:first").bootstrapValidator('revalidateField', '${name}');
-			</#if>
-			//将用户选择数据的名称加载到输入框
-			$("#treeLabel${treeId}").text(treeNode.${jsonName});
-			
-		}
-	</script>
-	<!-- js操作方法结束 -->
-</#macro>

+ 0 - 232
src/main/webapp/WEB-INF/manager/include/ui/input.ftl

@@ -1,232 +0,0 @@
-<#--
-<input type="text"/>
--->
-<#macro text id="" name="" value=""	label="" title="" colSm=""
- 	class="form-control" 	style=""	readonly=""	disabled=false	maxlength=""	minlength=""	
- 	validation="" size=""	width="" placeholder="" groupClass="form-group" onclick="" onchange="" labelStyle="" autocomplete="off" help="" helpDirection="">
-<div class="${groupClass} ms-form-group">	
-	<#include "/include/ui/control.ftl"/><#rt/>
-	<div class="col-sm-9 ms-from-group-input ms-form-input"  style="<#if width!="">width:${width}px;</#if>${style}"<#rt/>>
-		<input type="text"  autocomplete="${autocomplete}"<#rt/>
-		<#if id!=""> id="${id}"</#if><#rt/>
-		<#if maxlength!=""> maxlength="${maxlength}"</#if><#rt/>
-		<#if size!=""> maxlesizength="${size}"</#if><#rt/>
-		<#if readonly!=""> readonly="${readonly}"</#if><#rt/>
-		<#if value?? && value?string!=""> value="${value?html}"</#if><#rt/>
-		<#if  onchange?? && onchange!=""> onchange="${onchange}"</#if><#rt/>
-		<#include "/include/ui/common-attributes.ftl" /><#rt/>
-		/><#rt/>
-	</div>
-</div>
-</#macro>
-
-<#--数字输入框-->
-<#macro number id="" name="" value=""	label="" title="" min=0 max=200 isFloat=false colSm=""
- 	class="form-control" 	style=""	readonly=""	disabled=false	maxlength="10"	minlength=""	
- 	validation="" size=""	width="150" placeholder="" groupClass="form-group" onclick="" onchange="" labelStyle="" autocomplete="off" help="" helpDirection="">
-		<#assign reg="^-?\\d+$">
-		<#if isFloat>
-			<#assign reg="^\\d+(\\.\\d+)?$">
-		</#if>
-		<@ms.text 
-		id="${id}" name="${name}" value="${value}"	label="${label}" title="${title}"
-		class="${class}" style="${style}"  readonly="${readonly}"	
-		 maxlength="${maxlength}"
-		 minlength="${minlength}"
- 		size="${size}"	width="${width}" placeholder="${placeholder}" groupClass="${groupClass}" onclick="${onclick}" onchange="${onchange}" labelStyle="${labelStyle}" 
- 		autocomplete="${autocomplete}" help="${help}" helpDirection="${helpDirection}"
-		validation={"data-bv-between":"true","data-bv-between-message":"必须大于等于${min}且小于等于${max}","data-bv-between-min":"${min}"
-		,"data-bv-between-max":"${max}","data-bv-regexp":"true","data-bv-regexp-regexp":"${reg}","data-bv-regexp-message":"请输入数字"}/>
-</#macro>
-
-<#--
-<input type="password"/>
--->
-<#macro password
-	id="" name="" value=""	label="" title="" colSm=""
- 	class="form-control" 	style=""	readonly=""	disabled=false	maxlength=""	minlength=""	
- 	validation="" size=""	width="" placeholder="" groupClass="form-group" onclick="" onchange="" labelStyle="" autocomplete="off" help="" helpDirection="">
-<div class="form-group ms-form-group">	
-	<#include "/include/ui/control.ftl"/><#rt/>
-	<div  class="ms-form-control ms-from-group-input col-sm-9" <#if width!=""> style="width:${width}px"</#if><#rt/>>
-		<input type="password" autocomplete="${autocomplete}"<#rt/>
-		<#if id!=""> id="${id}"</#if><#rt/>
-		<#if maxlength!=""> maxlength="${maxlength}"</#if><#rt/>
-		<#if readonly!=""> readonly="${readonly}"</#if><#rt/>
-		<#if value!=""> value="${value}"</#if><#rt/>
-		<#if  onchange?? && onchange!=""> onchange="${onchange}"</#if><#rt/>
-		<#include "/include/ui/common-attributes.ftl"/><#rt/>
-		/>
-	</div>
-</div>
-</#macro>
-
-
-<#--
-<input type="hidden"/>
--->
-<#macro hidden
-	id="" name="" value=""
-	>
-<input type="hidden"<#rt/>
-<#if id!=""> id="${id}"</#if><#rt/>
-<#if name!=""> name="${name}"</#if><#rt/>
-<#if value?string!=""> value="${value}"</#if><#rt/>
-/>
-</#macro>
-
-<#--
-<input type="radio"/>
--->
-<#macro radio
-	 name list listKey="" listValue="" value="" width="" colSm=""
-	  help="" helpPosition="2" colon=":" hasColon="true"
-	  label="" class="" style=""  disabled=false direction=false validation="" size="" labelStyle="" onclick="" help="" helpDirection="">
-<div class="form-group ms-form-group  _${name}Div">
-	<#include "/include/ui/control.ftl"/><#rt/>
-	<div class="col-sm-9 ms-from-group-input " style="margin-top:7px<#if width!=""> ;width:${width}px</#if>"<#rt/>>
-		<#if list?is_sequence><#--LIST-->
-			<#if listKey!="" && listValue!="">
-				<#list list as item>
-					<#local rkey=item[listKey]>
-					<#local rvalue=item[listValue]>
-					<#local index=item_index>
-					<#local hasNext=item_has_next>
-					<#include "/include/ui/radio-item.ftl"><#t/>
-				</#list>
-			<#else>
-				<#list list as item>
-					<#local rkey=item>
-					<#local rvalue=item>
-					<#local index=item_index>
-					<#local hasNext=item_has_next>
-					<#include "/include/ui/radio-item.ftl"><#t/>
-				</#list>
-			</#if>
-		<#else>
-			<#list list?keys as key><#--MAP-->
-				<#local rkey=key/>
-				<#local rvalue=list[key]/>
-				<#local index=key_index>
-				<#local hasNext=key_has_next>
-				<#include "/include/ui/radio-item.ftl"><#t/>
-			</#list>
-		</#if>
-	</div>
-</div>
-	<script>
-		$(function() {
-			<#if direction>
-				$("._${name}Div .ms-radio").width("100%");
-			</#if>
-		})
-	</script>
-</#macro>
-
-
-
-<#--
-<input type="checkbox"/>
--->
-<#macro checkbox
-	list listKey="" listValue="" valueList=[] colSm=""
-	label=""     colon=":" hasColon="true"
-	id="" name="" class="" style="" size="" title="" disabled=false
-	validation="" direction=true
-	width=""
-	labelStyle=""
-	help=""
-	helpDirection=""
-	>
-<div class="form-group ms-form-group _${name}Div">	
-	<#include "/include/ui/control.ftl"/><#rt/>
-	<div class="col-sm-9 ms-from-group-input  " style="margin-top:7px<#if width!=""> ;width:${width}px</#if>"<#rt/> >
-		<#if list?is_sequence>
-			<#if listKey!="" && listValue!=""> 
-				<#list list as item>
-					<#local rkey=item[listKey]>
-					<#local rvalue=item[listValue]>
-					<#local index=item_index>
-					<#local hasNext=item_has_next>
-					<#include "/include/ui/checkboxlist-item.ftl"><#t/>
-				</#list>
-			<#else>
-				<#list list as item>
-					<#local rkey=item>
-					<#local rvalue=item>
-					<#local index=item_index>
-					<#local hasNext=item_has_next>
-					<#include "/include/ui/checkboxlist-item.ftl"><#t/>
-				</#list>
-			</#if>
-		<#else>
-			<#list list?keys as key>
-				<#local rkey=key/>
-				<#local rvalue=list[key]/>
-				<#local index=key_index>
-				<#local hasNext=key_has_next>
-				<#include "/include/ui/checkboxlist-item.ftl"><#t/>
-			</#list>
-		</#if>
-	</div>
-</div>
-
-	<script>
-		$(function() {
-			<#if direction>
-				//$("._${name}Div label.ms-checkbox").removeClass("checkbox").addClass("checkbox-inline");
-			<#else>
-				//$("._${name}Div label.ms-checkbox").removeClass("checkbox-inline").addClass("checkbox");
-			</#if>
-		})
-	</script>
-
-</#macro>
-
-<#--
-<input type="checkbox"/>
-4.5.5废弃
--->
-<#macro checkboxlist 
-	list listKey="" listValue="" valueList=[] colSm=""
-	label=""     colon=":" hasColon="true"
-	id="" name="" class="" style="" size="" title="" disabled=false
-	validation="" direction=true
-	width=""
-	labelStyle=""
-	help=""
-	helpDirection=""
-	>
-<div class="form-group ms-form-group">	
-	<#include "/include/ui/control.ftl"/><#rt/>
-	<div class="col-sm-9" <#if width!=""> style="${width}px"</#if><#rt/>>
-		<#if list?is_sequence>
-			<#if listKey!="" && listValue!="">
-				<#list list as item>
-					<#local rkey=item[listKey]>
-					<#local rvalue=item[listValue]>
-					<#local index=item_index>
-					<#local hasNext=item_has_next>
-					<#include "/include/ui/checkboxlist-item.ftl"><#t/>
-				</#list>
-			<#else>
-				<#list list as item>
-					<#local rkey=item>
-					<#local rvalue=item>
-					<#local index=item_index>
-					<#local hasNext=item_has_next>
-					<#include "/include/ui/checkboxlist-item.ftl"><#t/>
-				</#list>
-			</#if>
-		<#else>
-			<#list list?keys as key>
-				<#local rkey=key/>
-				<#local rvalue=list[key]/>
-				<#local index=key_index>
-				<#local hasNext=key_has_next>
-				<#include "/include/ui/checkboxlist-item.ftl"><#t/>
-			</#list>
-		</#if>
-	</div>
-</div>	
-</#macro>

+ 0 - 175
src/main/webapp/WEB-INF/manager/include/ui/modal.ftl

@@ -1,175 +0,0 @@
-
-<#--模态框按钮区域 废弃-->
-<#macro modalButtonarea>
-	<div class="modal-footer">
-			<#nested/>
-	</div>
-</#macro>
-
-<#--警告的模态框-->
-<#macro warn  modalName>
-	<div id="warn${modalName}Dialog" class="modal fade  ${modalName}" tabindex="-1" data-focus-on="input:first">
-	 <div class="modal-dialog">
-	    <div class="modal-content">
-		<div class="modal-header">
-				<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
-				<h4 class="modal-title"  id="warn${modalName}Title">警告!</h4>
-		</div>
-		<div class="modal-body"  id="warn${modalName}Body">
-			<#nested/>
-		</div>
-		<div class="modal-footer">
-			<button type="button" data-dismiss="modal" class="btn btn-default">关闭</button>
-			<button type="button"  id="warn${modalName}Ok" class="btn btn-primary right" >确定</button>
-		</div>
-		</div>
-	 </div>
-	</div>	
-</#macro>
-
-<#--模块框 modalName废弃属性-->
-<#macro modal id="" title="标题" style="" height="300" resetFrom=true modalName="" size="S">
-	<#if style!="">
-		<#assign _style="${style}">
-	<#elseif size=="S">
-		<#assign _style="width:450px;height:150px;">
-	<#elseif size=="M">
-		<#assign _style="width:600px;height:500px;">
-	<#elseif size=="L">
-		<#assign _style="width:900px;height:650px;">
-	</#if>
-	<div class="modal fade ${modalName}${id}" id="${modalName}${id}" >
-	  <div class="modal-dialog"  style="${_style};">
-	    <div class="modal-content">
-	      <div class="modal-header">
-	        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
-	        <h4 class="modal-title" id="${modalName}${id}Title">
-	       	${title}
-	        </h4>
-	      </div>
-		  <#nested/>
-	    </div><!-- /.modal-content -->
-	  </div><!-- /.modal-dialog -->
-	</div><!-- /.modal -->
-	<script>
-		
-	<#if resetFrom>
-		$(function(){
-			$('#${modalName}${id}').on('hide.bs.modal', function (event) {
-			  if ($("#${modalName}${id} form").length>0) {
-			  	$("#${modalName}${id} form").data('bootstrapValidator').resetForm(true);
-			  	$("#${modalName}${id} form")[0].reset();
-			  }
-			})	
-		});
-	</#if>
-		
-	</script>
-</#macro>
-
-<#--模态框内容 height属性废弃, 直接在style里面修改-->
-<#macro modalBody style="" height="">
-	      <div class="modal-body" style="${style}">
-	      	<#nested/>
-	      </div>
-</#macro>
-
-<#--模态框按钮区域-->
-<#macro modalButton>
-	       <div class="modal-footer">
-	      	<#nested/>
-	      </div>
-</#macro>
-
-
-
-<#--通用弹窗-->
-<#--modalName:弹出窗的名称-->
-<#--调用方法open弹出窗口名称,例如:窗口名称 abc ,调用openabc('展示内容','标题')-->
-<#--注意使用的时候,message的内容只能是id或字符串对象-->
-<#macro modalDialog modalName>
-	<div class="modal fade" id="${modalName}Dialog" style="overflow-y: hidden;">
-	  <div class="modal-dialog">
-	    <div class="modal-content">
-	      <div class="modal-header">
-	        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
-	        <h4 class="modal-title" id="${modalName}Title">
-	        </h4>
-	      </div>
-	      <!--startprint-->
-	      <div class="modal-body" id="${modalName}Body">
-	      </div>
-	      <!--添加其他信息-
-	      <div class="modal-footer" id="${modalName}Footer">
-	      </div>
-	      -->
-	      <!--endprint-->
-	    </div><!-- /.modal-content -->
-	  </div><!-- /.modal-dialog -->
-	</div><!-- /.modal -->
-	<script>
-		function open${modalName}(message,title) {
-		    if (title) {
-				$("#${modalName}Title").html(title);
-			}
-			try {
-				if (message) {
-					message.show();
-				}
-			} catch(e){
-				<@ms.notify msg= "文本" type= "warning" />
-			}	
-			$("#${modalName}Body ").html(message);
-			$('#${modalName}Dialog').modal();
-		}
-		 function close${modalName}() {
-				$('#warn${modalName}Dialog').modal('hide');
-			}
-	</script>	
-</#macro>
-
-
-
-<#--通用警告弹窗-->
-<#--warnModal:弹出窗的名称-->
-<#--调用方法open弹出窗口名称,例如:窗口名称 abc ,调用openabc('展示内容','标题','点击确定按钮之后回调方法,如果没有则不会显示确认按钮')-->
-<#macro warnModal  modalName>
-	<div id="warn${modalName}Dialog" class="modal fade" tabindex="-1" data-focus-on="input:first">
-	 <div class="modal-dialog">
-	    <div class="modal-content">
-		<div class="modal-header">
-				<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
-				<h4 class="modal-title"  id="warn${modalName}Title">警告!</h4>
-		</div>
-		<div class="modal-body"  id="warn${modalName}Body">
-			
-		</div>
-		<div class="modal-footer">
-			<button type="button" data-dismiss="modal" class="btn btn-default">关闭</button>
-			<button type="button"  id="warn${modalName}Ok" class="btn btn-primary right" style="display:none">确定</button>
-		</div>
-		</div>
-	 </div>
-	</div>	
-	<script>
-		function warn${modalName}(message,title,func) {
-		    if (title) {
-				$("#warn${modalName}Title").html(title);
-			}
-			if(func) {
-				$("#warn${modalName}Ok ").show();
-				$("#warn${modalName}Ok ").one("click",function(){
-					eval(func);
-				});
-			}
-			$("#warn${modalName}Body ").html(message);
-			$('#warn${modalName}Dialog').modal();
-		}
-		
-		 function closewarn${modalName}() {
-				$('#warn${modalName}Dialog').modal('hide');
-			}
-	</script>
-</#macro>
-
-

+ 0 - 51
src/main/webapp/WEB-INF/manager/include/ui/page.ftl

@@ -1,51 +0,0 @@
-<#--后台的UI界面通用区域定义-->
-<#macro html5 width="100%" style="">
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<#include "/include/macro.ftl"/>
-		<#include "/include/meta.ftl"/>
-	</head>
-	<body>
-		<div class="ms-content">
-				<div class="ms-content-body" style="width:${width};${style}">
-		   			<#nested/>
-		   			<div class='notifications ms-notifications top-right'></div>
-		   		</div>
-		</div>
-		
-	</body>
-</html>
-</#macro>
-<#macro nav title="板块名称" back=false style="">
-    <div class="ms-content-body-title" style="${style}">
-        <strong>${title}</strong>
-        <#nested/>
-        <#if back>
-        	<@ms.backButton/>
-        </#if>
-    </div>
-</#macro>
-
-<#--面板-->
-<#macro panel style="">
-	    <div class="ms-content-body-panel" style="${style}"> 
-	   		<#nested/>
-	   		
-	    </div>
-</#macro>
-
-<#--面板导航-->
-<#macro panelNav empty=false>
-    <div class="ms-content-body-panel-nav"  <#if empty>style="  padding: 0;"</#if>>
-        <#nested/>
-    </div>
-</#macro>
-
-<#--提示-->
-<#macro notify msg="提示信息" type="warning">
-			    		 $('.ms-notifications').offset({top:43}).notify({
-			    		    type:'${type}',
-						    message: { text:'${msg}' }
-						 }).show();	
-</#macro>

+ 0 - 7
src/main/webapp/WEB-INF/manager/include/ui/radio-item.ftl

@@ -1,7 +0,0 @@
-<label class="ms-radio" style="padding-right:10px"><input type="radio"<#rt/>
- value="${rkey}"<#rt/>
- <#if  onclick?? && onclick!=""> onclick="${onclick}"</#if><#rt/>
-<#if disabled?? && disabled> disabled="disabled" </#if><#rt/>
-<#if (rkey?string=="" && (!value?? || value?string=="")) || (value?? && value?string!="" && value?string==rkey?string)> checked="checked"</#if><#rt/>
-<#include "/include/ui/common-attributes.ftl"/><#rt/>
-/> ${rvalue} </label>    <#if hasNext> </#if>

+ 0 - 76
src/main/webapp/WEB-INF/manager/include/ui/select.ftl

@@ -1,76 +0,0 @@
-<#--
-<select><option></option></select>
--->
-<#macro select
-	list=[] value="" multiple=false  listKey="" listValue="" listDeep=""  
-	label="" validation=""    colon=":" hasColon="true" readonly=""
-	id="" name="" class="form-control" style="" size="" title="" disabled=false
-	labelStyle=""
-	width=""
-	help=""
-	helpDirection=""
-	default=""
-	defaultValue=""
-	select2=false
-	>
-<div class="form-group ms-form-group">	
-	<#include "/include/ui/control.ftl"/><#rt/>
-	<div class="col-sm-9 ms-form-control ms-from-group-input" <#if width!=""> style="width:${width}px"</#if><#rt/>>
-		<select<#rt/>
-		<#if id!=""> id="${id}"</#if><#rt/>
-		<#if multiple>multiple="multiple"</#if><#rt/>
-	   <#if readonly!=""> readonly="${readonly}"</#if><#rt/>
-		<#include "/include/ui/common-attributes.ftl"/><#rt/>
-		><#rt/>
-			<#if default?has_content>
-			<option value="<#if value?has_content>${value}</#if>">${default}</option>
-			</#if>
-			<#if list?is_sequence><#--LIST-->
-				<#if listKey!="" && listValue!="">
-					<#list list as item>
-						<#local rkey=item[listKey]>
-						<#local rvalue=item[listValue]>
-						<option value="${rkey}" <#if rkey?string==value?string> selected="selected"</#if>>${rvalue}</option><#rt/>
-					</#list>
-				<#else>
-					<#list list as item>
-						<option value="${item}" <#if item?string==value?string> selected="selected"</#if>>${item}</option><#rt/>
-					</#list>
-				</#if>
-			<#else>
-				<#list list?keys as key>
-					<#local rkey=key/>
-					<#local rvalue=list[key]/>
-					<option value="${rkey}" <#if rkey?string==value?string> selected="selected"</#if>>${rvalue}</option><#rt/>
-				</#list>
-			
-			</#if>
-		</select>
-	</div>
-
-</div>
-<#if select2>
-	<script>
-		$(function() {
-			$("select[name='${name}']").select2({width: "${width}px"});
-			$("select[name='${name}']").select2().val("${value}").trigger("change");;
-		})
-	</script>	
-</#if>
-</#macro>
-
-<#macro select2  name list value="" multiple=false  listKey="" listValue="" listDeep=""  default="请选择"
-	label="" validation=""    colon=":" hasColon="true" readonly=""
-	 class="form-control" style="" size="" title="" disabled=false
-	labelStyle=""
-	width=""
-	>
-	<select id="${name}" name="${name}">
-		<option></option>
-	</select>
-	<script>
-		$(function() {
-			$("#${name}").select2():
-		})
-	</script>
-</#macro>

+ 0 - 82
src/main/webapp/WEB-INF/manager/include/ui/table.ftl

@@ -1,82 +0,0 @@
-
-<#--表格列表-->
-<#--head:表格头部标题,数值格式-->
-<#--head:表格头部标题-->
-<#macro table head="" filed="" listItem="" editField="" editJs="" checkbox="" id="" dateformat="yyyy-MM-dd">
- <script>
- 	<#if checkbox?has_content>
-		$(function() {
-			$("input[name='allCheck${checkbox}']").on("click",function(){  
-				if(this.checked){   
-					$("input[name='${checkbox}']").each(function(){
-						this.checked=true;
-					});
-				}else{   
-					$("input[name='${checkbox}']").each(function(){this.checked=false;});   
-				}
-			});			
-		})
-	</#if>
- </script>
- <table class="table table-hover">
-	<!--表格栏目属性 开始-->
-    <thead>
-        <tr>
-        	<#if checkbox?has_content>
-	        	<th class="text-center" width="10">
-	        		<input type="checkbox" name="allCheck${checkbox}">
-	        	</th>
-        	</#if>
-        	<#if head?has_content>
-				<#list head as h>
-						<#if h?html?length gt 5 &&  h?html?substring(0,6)=="&lt;th">
-							${h}
-						<#elseif h?contains(",") && h?split(",")[1]?eval gt 0>
-							<th width="${h?split(",")[1]}">
-							${h?split(",")[0]}
-							</th>
-						<#else>
-							<th>
-							 	${h}
-		        	        </th>
-	        	        </#if>
-	        	</#list>        	
-        	</#if>
-        </tr>
-        <#if filed?has_content && listItem?has_content>
-        	<#list listItem?eval as item>
-        		<tr>
-        			<#if checkbox?has_content >
-        			<td>
-        				<input type="checkbox" name="${checkbox}" value="${item[checkbox]}">
-        			</td>
-        			</#if>
-        			<#list filed as f>
-	        			<td>
-	        					<#if editField?seq_contains(f)>
-	        						<a href="javascript:${editJs}(${item[checkbox]})">${item[f]}</a>
-	        					<#else>
-	        						<#if item[f]?has_content && item[f]?is_date>
-	        							${item[f]?string(dateformat)}
-	        						<#else>
-	        							${item[f]?default('-')}
-	        						</#if>
-	        					</#if>
-	        			</td>
-        			</#list>
-        		</tr>
-        	</#list>
-        	<#if listItem?eval?size==0>
-	        	<tr>
-	        			<td colspan="${filed?size+1}"><@ms.nodata content="暂无数据" /></td>
-	        	</tr>
-        	</#if>
-        </#if>
-        	
-    </thead>
-    <!--表格栏目属性 结束-->
-     <tbody id=${id}>
-    	<#nested/>
-     </tbody>
- </table>
-</#macro>

+ 0 - 41
src/main/webapp/WEB-INF/manager/include/ui/textarea.ftl

@@ -1,41 +0,0 @@
-<#--
-<textarea name="textarea"></textarea>
--->
-<#macro textarea
-	name
-	wrap="soft" 
-	readonly="" 
-	cols="" 
-	rows="" 
-	value=""
-	label="" 
-	title=""
-	required="false" 
-	id="" 
-	class="form-control" 
-	style="" 
-	size=""
-	disabled=false
-	maxlength="" 
-	placeholder=""
-	validation=""
-	labelStyle=""
-	width=""
-	help=""
-	helpDirection=""
-	colSm=""
-	>
-<div class="form-group ms-form-group">	
-	<#include "/include/ui/control.ftl"/><#rt/>
-	<div  class="ms-form-control ms-from-group-input col-sm-9"  style="<#if width!="">width:${width}px;</#if>"<#rt/>>
-		<textarea<#rt/>
-		<#if id!=""> id="${id}"</#if><#rt/>
-		<#if wrap!=""> wrap="${wrap}"</#if><#rt/>
-		<#if readonly!=""> readonly="${readonly}"</#if><#rt/>
-		<#if cols!=""> cols="${cols}"</#if><#rt/>
-		<#if rows!=""> rows="${rows}"</#if><#rt/>
-		<#include "/include/ui/common-attributes.ftl"/><#rt/>
-		><#if value?? && value!="">${value!?html}</#if></textarea>
-	</div>
-</div>
-</#macro>

+ 0 - 43
src/main/webapp/WEB-INF/manager/include/ui/time.ftl

@@ -1,43 +0,0 @@
-<#--
-<input type="t"/>
--->
-<#macro time    id=""    name=""    value="" 
-	label=""  title=""  size=""  labelStyle="" width=""
-  class="form-control"   style="" readonly="" disabled=false  maxlength=""  minlength=""   placeholder="" 	validation="" 
-  help=""
-  helpDirection=""
-  >
-<div class="form-group ms-form-group">
-    <#include "/include/ui/control.ftl"/><#rt/>
-    <div class="control-group col-sm-9 ms-from-group-input"  style="min-widht:200px;<#if width!="">width:${width}px</#if>"<#rt/>>
-    	<div class="controls">
-		     <div class="input-prepend input-group date" <#if id!=""> id="${id}"<#elseif name!="">id="${name}"</#if><#rt/> 
-		     data-date="" data-date-format="hh:ii"  data-link-format="hh:ii">
-		         <span class="add-on input-group-addon"><i class="glyphicon glyphicon-time"></i></span>
-		         <input type="text"<#rt/>
-		              <#if maxlength!=""> maxlength="${maxlength}"</#if><#rt/>
-		              <#if readonly!=""> readonly="${readonly}"</#if><#rt/>
-		              <#if value?? && value?string!=""> value="${value?html}"</#if><#rt/>
-		              <#include "/include/ui/common-attributes.ftl"/><#rt/>/>
-		 	</div>
-		</div>
-	</div>
-</div>
-
-<script>
-	$(function(){
-	 $('#${name}').datetimepicker({
-	        language: 'cn', 
-	        todayBtn:  1,
-			autoclose: true,
-			todayHighlight: 1,
-			format: 'hh:ii',
-			startView: 1,
-			minView: 0,
-			maxView: 1,
-			forceParse: 0,
-	    });
-    });
-</script>
-
-</#macro>

+ 0 - 480
src/main/webapp/WEB-INF/manager/include/ui/tree.ftl

@@ -1,480 +0,0 @@
-<#-- 树形控件,以input下拉框的形式显示(官网:http://www.ztree.me/v3/main.php#_zTreeInfo) -->
-<#-- treeId(必须):树形加载和控制区域的ID,一张页面同时加载多个树形时必须用该值进行区分 -->
-<#-- json(必须):需要加载成树形的数据,数据结构为:[{categoryId:1,categoryCategoryId:0,categoryTitle:""},{categoryId:2,categoryCategoryId:1,categoryTitle:""}] -->
-<#-- jsonId(必须):json数据中ID名称,如:categoryId -->
-<#-- jsonPid(必须):json数据中关联的父ID,如:categoryCategoryId -->
-<#-- jsonName(必须):json数据中需要显示的数据名称,如:categoryTitle -->
-<#-- jsonUrl:如过json数据中存在跳转地址则直接将字段名称填入点击树形时可自动跳转 -->
-<#-- addNodesName:增加顶级根节点,直接传入根节点名称即可。如:顶级分类 -->
-<#-- buttonText:选择框加载的默认提示信息 -->
-<#-- inputName(必须):隐藏input框的name值,用于保存选中数据的ID -->
-<#-- inputValue:隐藏input框的val默认值,适用用于加载初始化数据 -->
-<#-- inputId:隐藏input框的id值,用于保存选中数据的ID -->
-<#-- selectParent:用户选择父节点时的提示信息,当该值存在时,用户不能选择存在子节点的父节点,并提示传入的值,当该值不存在时用户可以选择任意 -->
-<#-- clickZtreeId: 选择节点后触发的事件-->
-<#-- expandAll:控制节点数据显示的时候是全部展开还是全部折叠(true[默认]:全部展开,false:全部折叠)。 -->
-<#-- showIcon:是否显示文件夹图标,true:显示;false(默认):不显示 -->
-<#-- 内置函数调用方法说明:
-				调用对象的函数名:	zTreeObj${treeId}(treeId为自定义的ID名称);
-					/**
-					 * 根据节点数据的属性搜索,获取条件完全匹配的单一节点数据 JSON 对象
-					 * 如有重复则返回最近的一条。
-					 * @param key:需要精确匹配的属性名称
-					 * @param value:需要精确匹配的属性值,可以是任何类型,只要保证与 key 指定的属性值保持一致即可
-					 * @param parentNodeJSON:搜索范围,指定在某个父节点下的子节点中进行搜索忽略此参数,为null时表示在全部节点中搜索
-					 * @return JSON
-					 */
-					zTreeObj${treeId}.getNodeByParam(key,value,parentNode);
-					
-					/**
-					 * 获取根节点数据,既获取PID=0的数据集合
-					 * @return ArrayList(json)
-					 */
-					 zTreeObj${treeId}.getNodes();
-					 
-					 /**
-					  * 根据节点数据的属性搜索,获取条件完全匹配的节点数据 JSON 对象集合
-					  * @param key:需要精确匹配的属性名称
-					  * @param value:需要精确匹配的属性值,可以是任何类型,只要保证与 key 指定的属性值保持一致即可
-					  * @param parentNode:可以指定在某个父节点下的子节点中搜索,为null时表示在全部节点中搜索
-					  * @return ArrayList(json)
-					  */
-					  zTreeObj${treeId}.getNodesByParam(key,value,parentNode);
--->		 
-<#--废弃,推荐使用inputTree 参考input_tree.ftl--> 
-<#macro treeInput treeId=""  json="" jsonId="" jsonPid="" jsonName="" jsonUrl="" addNodesName="" buttonText="" inputName="" inputValue="" inputId="" selectParent="" clickZtreeId="" expandAll="true" showIcon="false" >
-	<!-- css样式开始 -->
-	<style type="text/css">
-		.ztree${treeId}{width:100%;max-height: 240px;overflow:auto;}
-		.ztree${treeId} li a{padding:0}
-	</style>	
-	<!-- css样式结束 -->
-
-
-	<!-- 初始化样式开始 -->
-	<div class="dropdown" id="${treeId}">
-		<button type="text" id="treeLabel${treeId}" class="form-control dropdown-toggle" data-toggle="dropdown" aria-expanded="true" style="text-align:left">
-			${buttonText?default('请选择')}
-		</button>
-		<input type="hidden" <#if inputName?has_content>name="${inputName}"</#if> <#if inputId?has_content>id="${inputId}"</#if> value="${inputValue?default(0)}">
-		<ul class="ztree ztree${treeId} dropdown-menu" role="menu" id="treeDome${treeId}" aria-labelledby="treeLabel${treeId}">
-		</ul>
-	</div>
-	<!-- 初始化样式结束 -->
-	
-	<!-- js操作方法开始 input -->	
-	<script>
-		//初始化树形数据
-		var zNodes${treeId} = <#if json?has_content>${json}<#else>[]</#if>;
-		
-		//初始化树形结构
-		var setting${treeId} = {
-			view:{//控制视图
-				fontCss:{"white-space":"normal","display":"initial","word-break":"break-all"},
-				showIcon:${showIcon},//是否显示节点文件夹图标
-				showLine:true,//是否显示借点连接线
-				expandSpeed:"",//折叠时的动画速度,参考jquery中动画效果的speed参数,三种预定速度之一的字符串("slow", "normal", or "fast")
-			},
-			data: {//控制显示数据
-				simpleData: {
-					enable: true,//是否采用简单数据模式 (Array)
-					idKey:"${jsonId}",//节点ID名称
-					pIdKey:"${jsonPid}",//父节点ID名称
-				},
-				key:{
-					name:"${jsonName}",//节点数据保存节点名称的属性名称。
-					url:"${jsonUrl}",//节点跳转地址属性
-				}
-			},
-			callback: {//控制获取选择的节点数据
-				beforeClick:<#if selectParent?has_content>beforeClick${treeId}<#else>null</#if>,//用于捕获单击节点之前的事件回调函数,并且根据返回值确定是否允许单击操作
-				onClick:getZtreeId${treeId},//用于捕获节点被点击的事件回调函数
-			},
-			check:{//控制节点的选中方式(暂时未启用,根据后期需求再做调整)
-				autoCheckTrigger:true,//是否触发自动勾选
-				enable:false,//节点上是否显示选择框,false:不显示,true:显示。
-				chkStyle:"checkbox",//勾选框类型(checkbox[默认值] 或 radio)
-				chkboxType:{"Y":"ps","N":"ps"},//设置勾选关联关系
-			},
-		};	
-		
-		var zTreeObj${treeId}="";
-		$(function(){
-			//自定义顶级栏目
-			<#if addNodesName?has_content>
-				zNodes${treeId}[zNodes${treeId}.length] = {${jsonName}:"${addNodesName}",${jsonId}:0,${jsonPid}:0};
-			</#if>
-			
-			//加载树形
-			$.fn.zTree.init($("#treeDome${treeId}"),setting${treeId},zNodes${treeId});	
-			
-			//zTree内部函数对象,主要用户调用zTree内部方法
-			zTreeObj${treeId} = $.fn.zTree.getZTreeObj("treeDome${treeId}");
-			
-			//展开(true)/折叠(false)全部节点(zTree内部方法)
-			zTreeObj${treeId}.expandAll(${expandAll});
-
-			//加载默认节点
-			<#if inputValue?has_content>
-				zTreeObj${treeId}.selectNode(zTreeObj${treeId}.getNodeByParam("${jsonId}",${inputValue},null));
-			</#if>
-			
-			//当属性为折叠时,控制下拉菜单的开启和关闭
-			<#if expandAll = "false">
-				$("body").on("click",function(e) {
-			        e = window.event || e; // 兼容IE7
-			        
-			        //获取当前点击事件对象
-			        var objZtree = $(e.srcElement||e.target);
-			        
-			        //获取当前点击事件ID,并对点击的子节点ID进行切割获取自定义ID
-			        var objZtreeId = objZtree.attr("id");
-			        
-			        //当用户点击选择框时还原下拉框属性
-			        if(objZtreeId != undefined && objZtreeId.split("_")[0] == "treeLabel${treeId}"){
-			        	$("#treeDome${treeId}").attr("style","");
-			        	return ;
-			        }
-			        
-			        //切割获取到的ID判断点击事件是否产生在下拉框
-			        if(objZtreeId != undefined && objZtreeId.split("_")[0] == "treeDome${treeId}"){
-			        	$("#treeDome${treeId}").attr("style","display:block");
-			        }else{
-			        	$("#treeDome${treeId}").attr("style","display:none");
-			        }
-				});
-			</#if>
-			
-		});
-		
-		<#if selectParent?has_content>
-			//对节点选择进行限制,用户只能选择子节点
-			function beforeClick${treeId}(treeId,treeNode) {
-				var check = (treeNode && !treeNode.isParent);
-				if (!check){
-					$("#treeLabel${treeId}").text("${selectParent}");
-				};
-				return check;
-			}		
-		</#if>
-		
-		//获取树形中选中的值,将选择值加载到隐藏框中
-		function getZtreeId${treeId}(event,treeId,treeNode){
-			var booleanClick = true;
-			//用于捕获节点被点击的事件回调函数
-			<#if clickZtreeId?has_content>
-				booleanClick=${clickZtreeId};
-			</#if>
-			if(booleanClick==false){
-				return;
-			}
-			//将用户选择数据ID加载到隐藏框
-			$("#${treeId} input[name='${inputName}']").val(treeNode.${jsonId});
-			//将用户选择数据的名称加载到输入框
-			$("#treeLabel${treeId}").text(treeNode.${jsonName});
-			
-		}
-	</script>
-	<!-- js操作方法结束 -->
-</#macro>
-
-<#------------------------------------------------------------------------------------------------------------------------------------------------------------------>
-
-<#-- 
-	getZtreeId:外部重写JS方法:
-		/**
-		 * 外部点击树形节点时触发的事件,(传入参数必须与下述参数名保持一致)
-		 * event:获取到的触发事件
-		 * treeId:载体ID,这里为:treeDome${treeId}
-		 * treeNode:内置函数对象,这里可直接调用内置函数方法
-		 *				treeNode.${jsonId}:获取点击的树形节点的ID
-		 *				treeNode.${jsonName}:获取点击树形节点的名称
-		 *				.....
-		 */
-		getZtreeId${treeId}(event,treeId,treeNode);
--->
-<#-- 树形控件,以input下拉框的形式显示(官网:http://www.ztree.me/v3/main.php#_zTreeInfo) -->
-<#-- treeId(必须):树形加载和控制区域的ID,一张页面同时加载多个树形时必须用该值进行区分 -->
-<#-- json(必须):需要加载成树形的数据,数据结构为:[{categoryId:1,categoryCategoryId:0,categoryTitle:""},{categoryId:2,categoryCategoryId:1,categoryTitle:""}] -->
-<#-- jsonId(必须):json数据中ID名称,如:categoryId -->
-<#-- jsonPid(必须):json数据中关联的父ID,如:categoryCategoryId -->
-<#-- jsonName(必须):json数据中需要显示的数据名称,如:categoryTitle -->
-<#-- jsonUrl:如过json数据中存在跳转地址则直接将字段名称填入点击树形时可自动跳转 -->
-<#-- addNodesName:增加顶级根节点,直接传入根节点名称即可。如:顶级分类 -->
-<#-- expandAll:控制节点数据显示的时候是全部展开还是全部折叠(true[默认]:全部展开,false:全部折叠)。 -->
-<#-- showIcon:是否显示文件夹图标,true:显示;false(默认):不显示 -->
-<#-- 内置函数调用方法说明:
-				调用对象的函数名:	zTreeObj${treeId}(treeId为自定义的ID名称);
-					/**
-					 * 根据节点数据的属性搜索,获取条件完全匹配的单一节点数据 JSON 对象
-					 * 如有重复则返回最近的一条。
-					 * @param key:需要精确匹配的属性名称
-					 * @param value:需要精确匹配的属性值,可以是任何类型,只要保证与 key 指定的属性值保持一致即可
-					 * @param parentNodeJSON:搜索范围,指定在某个父节点下的子节点中进行搜索忽略此参数,为null时表示在全部节点中搜索
-					 * @return JSON
-					 */
-					zTreeObj${treeId}.getNodeByParam(key,value,parentNode);
-					
-					/**
-					 * 获取根节点数据,既获取PID=0的数据集合
-					 * @return ArrayList(json)
-					 */
-					 zTreeObj${treeId}.getNodes();
-					 
-					 /**
-					  * 根据节点数据的属性搜索,获取条件完全匹配的节点数据 JSON 对象集合
-					  * @param key:需要精确匹配的属性名称
-					  * @param value:需要精确匹配的属性值,可以是任何类型,只要保证与 key 指定的属性值保持一致即可
-					  * @param parentNode:可以指定在某个父节点下的子节点中搜索,为null时表示在全部节点中搜索
-					  * @return ArrayList(json)
-					  */
-					  zTreeObj${treeId}.getNodesByParam(key,value,parentNode);
--->	
-<#macro tree id="ztree${.now?string('yyyyMMddhhmmss')}" type="default" data=[] url="" idKey="" pIdKey="" text=""  label="" treeId="" json="" jsonId="" jsonPid="" jsonName="" jsonUrl="" validation="" addNodesName="" expandAll="true" showIcon="false" getZtreeId="" ischeck="false" help="">
-<#if type="checkbox">
-	<ul id="${id}" class="ztree"></ul>
-	<SCRIPT type="text/javascript">
-		<!--
-		var ${id};
-		ms.post("${url}",null,function(json){
-			var setting = {
-				check: {
-					enable: true,
-					chkboxType: { "Y" : "ps", "N" : "ps" }
-				},		
-				data: {
-					simpleData: {
-						enable: true,//是否采用简单数据模式 (Array)
-						idKey:"${idKey}",//节点ID名称
-						pIdKey:"${pIdKey}",//父节点ID名称
-					},
-					key:{
-						name:"${text}"//节点数据保存节点名称的属性名称。
-					}
-				}
-			};
-			
-			$(document).ready(function(){
-				$.fn.zTree.init($("#${id}"), setting, json);
-				${id} = $.fn.zTree.getZTreeObj("${id}");
-				${id}.expandAll(true);
-			});
-			
-		});
-		//-->
-	</SCRIPT>
-
-<#elseif type=="default"> <#--默认调用方式在4.5.5将废弃-->
-<!-- 初始化样式开始 -->
-	<div class="form-group ms-form-group ">	
-		<#include "/include/ui/control.ftl"/><#rt/>
-		<div  class="ms-form-control <#if label!="">col-sm-9</#if>">	
-			<ul class="ztree" id="treeDome${treeId}">
-			</ul>
-		</div>
-	</div>
-<!-- 初始化样式结束 -->
-	
-<!-- js操作方法开始 tree-->	
-	<script>
-		//初始化树形数据
-		var zNodes${treeId} = ${json?default('[]')};
-		var zTreeObj${treeId};
-		//初始化树形结构
-		var setting${treeId} = {
-			view:{//控制视图
-				fontCss:{"white-space":"normal","display":"initial","word-break":"break-all"},
-				showIcon:${showIcon},//是否显示节点文件夹图标
-				showLine:true,//是否显示借点连接线
-				expandSpeed:"fast",//折叠时的动画速度,参考jquery中动画效果的speed参数,三种预定速度之一的字符串("slow", "normal", or "fast")
-			},
-			data: {//控制显示数据
-				simpleData: {
-					enable: true,//是否采用简单数据模式 (Array)
-					idKey:"${jsonId}",//节点ID名称
-					pIdKey:"${jsonPid}",//父节点ID名称
-				},
-				key:{
-					name:"${jsonName}",//节点数据保存节点名称的属性名称。
-					url:"${jsonUrl}",//节点跳转地址属性
-				}
-			},
-			callback: {//控制获取选择的节点数据
-				onClick:<#if getZtreeId?has_content>getZtreeId${treeId}<#else>null</#if>,//用于捕获节点被点击的事件回调函数
-			},
-			check:{//控制节点的选中方式(暂时未启用,根据后期需求再做调整)
-				autoCheckTrigger:true,//是否触发自动勾选
-				enable:${ischeck},//节点上是否显示选择框,false:不显示,true:显示。
-				chkStyle:"checkbox",//勾选框类型(checkbox[默认值] 或 radio)
-				chkboxType:{"Y":"ps","N":"ps"},//设置勾选关联关系
-			},
-		};	
-		
-		
-		$(function(){
-			//自定义顶级栏目
-			<#if addNodesName?has_content>
-				zNodes${treeId}[zNodes${treeId}.length] = {${jsonName}:"${addNodesName}",${jsonId}:0,${jsonPid}:0};
-			</#if>
-			
-			//加载树形
-			$.fn.zTree.init($("#treeDome${treeId}"),setting${treeId},zNodes${treeId});	
-			
-			//zTree内部函数对象,主要用户调用zTree内部方法
-			zTreeObj${treeId} = $.fn.zTree.getZTreeObj("treeDome${treeId}");
-			
-			//展开(true)/折叠(false)全部节点(zTree内部方法)
-			zTreeObj${treeId}.expandAll(${expandAll});
-		});
-		
-		<#if getZtreeId?has_content>
-			function getZtreeId${treeId}(event,treeId,treeNode){
-				${getZtreeId};
-			}
-		</#if>
-	</script>
-<!-- js操作方法结束 -->
-
-</#if>
-</#macro>
-
-
-<#-------------------------------------------------------------------------- -->
-<#-- 树形控件,树形结构table 格式-->
-<#-- tbodyId(必须) 需要进行委派的容器Id, 如要委派到tbody的id值-->
-<#-- treeId(必须):树形加载和控制区域的ID,一张页面同时加载多个树形时必须用该值进行区分 -->
-<#-- json(必须):需要加载成树形的数据,数据结构为:[{categoryId:1,categoryCategoryId:0,categoryTitle:""},{categoryId:2,categoryCategoryId:1,categoryTitle:""}] -->
-<#-- jsonId(必须):json数据中ID名称,如:categoryId -->
-<#-- jsonPid(必须):json数据中关联的父ID,如:categoryCategoryId -->
-<#-- jsonName(必须):json数据中需要显示的数据名称,如:categoryTitle -->
-<#-- tmplBefored是否插入节点图标之前 false不插入, true插入-->
-<#-- #befored${treeId} 在节点图标之前需要插入列表属性,如果要使用必须tmplBefored="true"-->
-<#-- #after${treeId}(必须) 在节点图标之后需要插入列表属性-->
-
-<#-- 该结构中调用方法简略说明,如果需要其他更改,请添加方法:
-	clickDome${treeId},展开节点|关闭节点
-	getChilds${treeId},获取当前点击的子节点
-	removeChilds${treeId},/移除点击节点的所有子节点
--->
-
-<#macro treeTable tbodyId="" treeId="" json="" jsonId="" jsonPid="" jsonName="" style="" tmplBefored="false">
-	<ul class="ztreeTable" id="treeDome${treeId}" style="display:none">
-	</ul>
-	<!-- 列表HTML模版开始 -->
-	<script id="treeTableTmpl${treeId}" type="text/x-jquery-tmpl">
-		<tr data-id="{{= ${jsonId}}}"   id="columnTitle{{= ${jsonId}}}" >
-			<td>{{= ${jsonId}}}</td>
-			<#if tmplBefored== "true" >
-				{{tmpl($data) '#befored${treeId}'}}
-			</#if>
-			<td>
-				<a class="btn btn-xs red tooltips switch-list columnTitle" data-id="{{= ${jsonId}}}" onclick="clickDome${treeId}(this)" data-parentId="{{= ${jsonPid}}}" data-toggle="tooltip" data-original-title="查看子节点">
-				 	<i class="glyphicon glyphicon-folder-close"></i>
-				</a>
-				{{= ${jsonName}}}
-			</td>
-			{{tmpl($data) '#after${treeId}'}}
-		</tr> 
-	</script>  
-<!-- 列表HTML模版结束 -->
-<!-- js操作方法开始 -->	
-	<script>
-		
-		var zTreeObj${treeId};	//zTree内部函数对象变量,主要用户调用zTree内部方法
-		
-		//初始化树形结构
-		var setting${treeId} = {
-			data: {//控制显示数据
-				simpleData: {
-					enable: true,//是否采用简单数据模式 (Array)
-					idKey:"${jsonId}",//节点ID名称
-					pIdKey:"${jsonPid}",//父节点ID名称
-				},
-				key:{
-					name:"${jsonName}",//节点数据保存节点名称的属性名称。
-				}
-			},
-		};
-		$(function(){
-			//初始化树形数据
-			var zNodes${treeId} = ${json?default('[]')};
-			//加载树形
-			$.fn.zTree.init($("#treeDome${treeId}"),setting${treeId},zNodes${treeId});	
-			
-			//zTree内部函数对象,主要用户调用zTree内部方法
-			zTreeObj${treeId} = $.fn.zTree.getZTreeObj("treeDome${treeId}");
-			
-			//获取zTree中的数据对象
-			var zTreeList = zTreeObj${treeId}.getNodes();
-			
-			//将内容委派到其中
-			$("#treeTableTmpl${treeId}").tmpl(zTreeList).appendTo("#${tbodyId}");
-			
-			
-		});
-		
-		//展开节点|关闭节点
-		function clickDome${treeId}(obj){
-			var columnId = $(obj).attr("data-id");//当前点击的节点
-			var booleanBeging= true;	//用来处理是否展开/关闭节点
-			$(".columnTitle").each(function(){	//判断是否存在子节点
-				if($(this).attr("data-parentId")==columnId){
-					booleanBeging=false;
-					return false;
-				}
-			});
-			//判断节点文件夹关闭图标是否存在,存在则显示打开的文件夹图标
-			if($(obj).find(".glyphicon").hasClass("glyphicon-folder-close")){
-				$(obj).find(".glyphicon").removeClass("glyphicon-folder-close");
-				$(obj).find(".glyphicon").addClass("glyphicon-folder-open");
-			}else if($(obj).find(".glyphicon").hasClass("glyphicon-folder-open")){//判断节点文件夹打开图标是否存在,存在则显示关闭的文件夹图标
-				$(obj).find(".glyphicon").removeClass("glyphicon-folder-open")
-				$(obj).find(".glyphicon").addClass("glyphicon-folder-close");
-			}
-			
-			if(booleanBeging==true){
-				getChilds${treeId}(columnId);//获取当前点击的子节点
-			}else{
-				removeChilds${treeId}(columnId);//移除点击节点的子节点
-			}
-		}
-					
-		//获取当前点击的子节点
-		function getChilds${treeId}(jsonId){
-			//拿到所有节点,比对该节点内是否存在父节点id跟当前点击节点id一致,累加到数组内容,循环完毕后委派到html内
-			var rootNodes=zTreeObj${treeId}.getNodes();	//获取根节点
-			var allNodes=zTreeObj${treeId}.transformToArray(rootNodes); //很据跟节点获取所有节点
-			var selectNodes;	//选中的节点
-			var arrayNodes = new Array();	//需要委派的节点
-			for(var i=0;i<allNodes.length;i++){//将所有节点选中
-				zTreeObj${treeId}.selectNode(allNodes[i],true);
-			}
-			selectNodes=zTreeObj${treeId}.getSelectedNodes();
-			for(var j=0;j<selectNodes.length;j++){	//判断是否是当前点击的节点的子节点
-				if(selectNodes[j].${jsonPid}== jsonId ){
-					arrayNodes.push(selectNodes[j]);
-				}
-			}
-			$("#treeTableTmpl${treeId}").tmpl(arrayNodes).insertAfter("#columnTitle"+jsonId);
-			//文字首行缩进
-			$(".columnTitle").each(function(){
-				var id = $(this).attr("data-id");
-				var curChilds = zTreeObj${treeId}.getNodesByParam("${jsonId}",id,null);
-				var indent = curChilds[0].level;
-				$(this).parents("td").css("text-indent",(indent*5)+"px");
-			});
-			
-		}
-
-		//移除点击节点的子节点
-		function removeChilds${treeId}(jsonId){
-			$(".columnTitle").each(function(){
-				if($(this).attr("data-parentId")==jsonId){
-					removeChilds${treeId}($(this).attr("data-id"));
-					$("#columnTitle"+$(this).attr("data-id")).detach();
-				}
-			});
-		}
-	</script>
-<!-- js操作方法结束 -->
-</#macro>

+ 0 - 344
src/main/webapp/WEB-INF/manager/include/ui/upload.ftl

@@ -1,344 +0,0 @@
-<#--上传控件-->
-
-
-
-<#--上传控件-->
-<#--path:上传路径,文件夹是在ms属性配置文件里面配置,会自动增加当前appId-->
-<#--uploadFloderPath:如果path路径无法满足可以使用这个参数重新定义上传路径-->
-<#--inputName:name值-->
-<#--filetype:上传规则-->
-<#--size:上传数量-->
-<#--msg:提示信息-->
-<#--imgs:默认显示的图片-->
-<#--maxSize:默认文件大小 单位m-->
-<#--如果是反复显示图片需要调用showImgs(imgs地址可以包含"|"符合,input的名称)-->
-<#macro uploadImg path  inputName size="1" uploadFloderPath="" filetype="*.jpg;*.png;*.gif;*.bmp;*.jpeg" msg="" imgs="" maxSize="1">
-	<div id="ms__uploadPic_${inputName}">
-		<style>
-			.msUploadImgs{margin: 0;padding: 0;list-style: none;}
-			.msUploadImgs li {list-style:none;float: left;text-align: center;border: 1px solid #F3F3F3;margin: 8px; width:100px;}
-			.msUploadImgs img {width:100%; height:100px;}
-			.msUploadImgs li span {cursor: pointer;}
-			.divUploader{clear:both}
-		</style>
-		<ul class="msUploadImgs">
-			<#if imgs!="">
-				<#list imgs?split("|") as img>
-					<#if img!="">
-						<li id="SWFUpload_9_${img_index}">
-							<div class="displayimg">
-								<img src="${basePath}/${img}">
-							</div>
-							<span class="front-cover" onclick="removePreview${inputName}(this,'${img}'+'|')"><a class="btn btn-xs red tooltips " data-original-title="点击删除图片"><i class="glyphicon glyphicon-trash"></i></a>
-							</span>
-						</li>
-					</#if>			
-				</#list>	
-			</#if>
-		</ul>
-		<div class="divUploader"><input type="button" id="up_file_${inputName}" />
-		<#if msg!="">
-		<div class="alert alert-warning alert-dismissable">${msg}</div>
-		</#if>
-		</div>
-		<input type="hidden" size="100" name="${inputName}" id="${inputName}" value="${imgs?default('')}" />
-	</div>
-	<script type="text/javascript">
-		    $(function ()  {
-		        $('#ms__uploadPic_${inputName}').swfupload({
-		            upload_url: "${basePath}/file/upload.do",
-		            post_params:{"uploadPath":"${path}","uploadFloderPath":"${uploadFloderPath}","isRename":"true","maxSize":"${maxSize}","allowedFile":"${filetype}","allowedFile":""},
-		            file_size_limit: ${maxSize?default("1")}*1024,
-		            file_types: "${filetype?default("*.jpg;*.png;*.gif;*.bmp;*.jpeg")}",
-		            file_types_description: "Image files",
-		            file_upload_limit: ${size?default("5")},
-		            flash_url: "${basePath}/static/plugins/jquery.swfupload/1.0.0/swfupload.swf",
-		            button_image_url: static+"/plugins/jquery.swfupload/1.0.0/button.png", 
-		         	button_width: 92,
-					button_height: 34,
-		            button_placeholder: $('#up_file_${inputName}')[0],
-		            debug: false
-		        })
-				.bind('fileQueued', function (event, file) {	
-				   if ($("#ms__uploadPic_${inputName} .msUploadImgs").children().length>=${size?default("5")}) {
-						  $(this).swfupload('cancelUpload');
-						  <@ms.notify msg= "最多上传${size}个文件!" type= "warning" />
-					} else {
-					    var listitem = '<li id="' + file.id + '"><div class="displayimg"><img src="'+static+'/plugins/jquery.swfupload/1.0.0/load.gif" /></div><span class="front-cover">0%</span></li>';
-			            $('#ms__uploadPic_${inputName} ul').append(listitem);
-					    $(this).swfupload('startUpload');
-				    }
-				    
-				})
-				.bind('fileQueueError', function (event, file, errorCode, message) {
-				    if (errorCode==-130) {
-				    	<@ms.notify msg= "文件类型错误!" type= "warning" />
-				    } else if (errorCode==-100) {
-				    	<@ms.notify msg= "最多上传${size}个文件!" type= "warning" />
-				    } else {
-				    	<@ms.notify msg= "上传图片过多或上传图片过大!" type= "warning" />
-				    }
-				})
-				.bind('uploadStart', function (event, file) {
-						$('#ms__uploadPic_${inputName} ul li#' + file.id).find('span.front-cover').text('0%');
-				})
-				.bind('uploadProgress', function (event, file, bytesLoaded) {
-					   var percentage = Math.round((bytesLoaded / file.size) * 100);
-				       $('#ms__uploadPic_${inputName} ul li#' + file.id).find('span.front-cover').text(percentage + '%');
-				})
-				.bind('uploadSuccess', function (event, file, serverData) {
-				    var item = $('#ms__uploadPic_${inputName} ul li#' + file.id);
-				    item.find('div.displayimg').html('<img src="${basePath}/' + serverData + '" />');
-				    item.find('span.front-cover').html('<a class="btn btn-xs red tooltips " data-original-title="点击删除图片"><i class="glyphicon glyphicon-trash"></i></a>');
-				    if($('#${inputName}').val()!=""){
-				    	 $('#${inputName}').val($('#${inputName}').val() + "|"+ serverData )
-				    }else{
-				    	 $('#${inputName}').val(serverData )
-				    }
-				    
-				    $('#ms__uploadPic_${inputName} ul li#' + file.id + ' span.front-cover').bind('click', function () {
-				        $('#ms__uploadPic_${inputName} ul li#' + file.id + '').slideUp('fast');
-				        var swfu = $.swfupload.getInstance('#ms__uploadPic_${inputName}');
-				        var stats = swfu.getStats();
-				        stats.successful_uploads--;
-				        swfu.setStats(stats);
-				        
-				        //判断保存图片的输入框中是否存在"|"如果存在则表示图片至少要两张
-				        if ($('#${inputName}').val().indexOf("|")<0) {
-				        	$('#${inputName}').val($('#${inputName}').val().replace(serverData, ""));
-				        }else{
-				        	 $('#${inputName}').val($('#${inputName}').val().replace(serverData+"|", ""));
-				        }
-				      
-				        $('#ms__uploadPic_${inputName} ul li#' + file.id).remove();
-				        
-				        setInputValue${inputName}();
-				    });
-				})
-				.bind('uploadComplete', function (event, file) {
-				    $(this).swfupload('startUpload');
-				})
-		    });
-		    
-		    // 设置文本框的值 用于提交数据
-		    function setInputValue${inputName}(){
-		    	var value = "";
-		        // 设置文本的值
-		        $("#ms__uploadPic_${inputName}").find("ul li .displayimg img").each(function(){
-		      		var src = $(this).attr('src').replace('${basePath}/', '');
-		        	value += src + '|';
-		        });
-		        // 删除最后一个"|"
-		        if (value){
-		        	value = value.slice(0, -1);
-		        }
-		        
-		      	$('#${inputName}').val(value);
-		    }
-		     
-		    function removePreview${inputName}(uid,imgPath) {
-		        var swfu = $.swfupload.getInstance('#ms__uploadPic_${inputName}');
-		        var stats = swfu.getStats();
-		        stats.successful_uploads--;
-		        swfu.setStats(stats);
-		        //imgPath=imgPath.replace("|","")
-		        
-				//判断保存图片的输入框中是否存在"|"如果存在则表示图片至少要两张
-				//if ($('#${inputName}').val().indexOf("|")<0) {
-				     //$('#${inputName}').val($('#${inputName}').val().replace(imgPath, ""));
-				// }else{
-				     //$('#${inputName}').val($('#${inputName}').val().replace(imgPath+"|", ""));
-				// }
-				
-				//var obj=$("#ms__uploadPic_${inputName}").find("ul li:last");
-				//var imgSrcPath = obj.find(".displayimg img").attr("src").replace("${basePath}/","");
-				//判断是否删除的是最后一张,如果是则删除时不含"|"
-				//if(imgSrcPath==imgPath.replace("|","")){
-				    //$('#${inputName}').val($('#${inputName}').val().replace("|"+imgPath.replace("|",""), ""));
-				//}
-				
-		        $('#ms__uploadPic_${inputName} ul li#' + uid.parentNode.id).slideUp('fast',function() {
-		        	$(this).remove();
-		        	setInputValue${inputName}();
-		        });
-		    }
-		    
-		    /**
-		    *提供给弹窗显示图片使用
-		    */
-		    function showImgs${inputName}(imgs,inputName) {
-		    	//var swfu = $.swfupload.getInstance('#ms__uploadPic_'+inputName);
-		        //var stats = swfu.getStats();
-		    	$(".msUploadImgs").children().remove();
-		    	  if (imgs) {
-		    	  	 var _imgs = imgs.split("\|");
-		    	    for (i=0;i<_imgs.length;i++) {
-		    	    	  if (_imgs[i]!="") {
-								var imgLi = '<li id="SWFUpload_9_'+i+'">';
-									imgLi+='<div class="displayimg">';
-													imgLi+='<img src="${basePath}/'+_imgs[i]+'">';
-									imgLi+='</div>';
-									imgLi+='<span class="front-cover" onclick="removePreview${inputName}(this,\''+_imgs[i]+'\'+'|')"><a class="btn btn-xs red tooltips " data-original-title="点击删除图片"><i class="glyphicon glyphicon-trash"></i></a>';
-									imgLi+='</span>';
-								imgLi+='</li>';
-								$(".msUploadImgs").append(imgLi);;
-								//stats.successful_uploads++;
-								//swfu.setStats(stats);
-							}
-						}
-				    }
-		    }			
-			</script>
-</#macro>
-
-<#--上传控件-->
-<#--path:上传路径,文件夹是在ms属性配置文件里面配置,会自动增加当前appId-->
-<#--uploadFloderPath:如果path路径无法满足可以使用这个参数重新定义上传路径-->
-<#--inputName:name值-->
-<#--filetype:上传规则-->
-<#--size:上传数量-->
-<#--msg:提示信息-->
-<#--callBack:回调提示信息-->
-<#--isRename:是否重命名true:将使用时间命名,否则使用上传是文件名,可能会出现同名称覆盖的问题,中文也会存在问题-->
-<#--maxSize:默认文件大小 单位m-->
-<#macro uploadFile path inputName uploadFloderPath="" size=1 filetype="*.zip,*.rar,*.doc,*.xls,*.doc,*.txt,*.pdf" msg=""  maxSize="10" callBack="" isRename=false>
-	<div id="ms__uploadPic_${inputName}">
-		<div class="divUploader"><input type="button" id="up_file_${inputName}" />
-		<#if msg!="">
-		<div class="alert alert-warning alert-dismissable">${msg}</div>
-		</#if>
-		</div>
-		<input type="hidden" size="100" name="${inputName}" id="${inputName}" value="${imgs?default('')}" />
-	</div>
-	<script type="text/javascript">
-		    $(function ()  {
-		        $('#ms__uploadPic_${inputName}').swfupload({
-		            upload_url: "${basePath}/file/upload.do",
-		            post_params:{"uploadPath":"/${path}","uploadFloderPath":"${uploadFloderPath}","isRename":"${isRename?default("true")}","maxSize":"${maxSize}","allowedFile":"${filetype}","allowedFile":""},
-		            file_size_limit: ${maxSize?default("1")}*1024,
-		            file_types: "${filetype?default("*.jpg;*.png;*.gif;*.bmp;*.jpeg;*.zip;*.rar")}",
-		            file_upload_limit: ${size?default("5")},
-		            flash_url: "${basePath}/static/plugins/jquery.swfupload/1.0.0/swfupload.swf",
-		            button_image_url: static+"/plugins/jquery.swfupload/1.0.0/button_file.png",
-		         	button_width: 92,
-					button_height: 34,
-		            button_placeholder: $('#up_file_${inputName}')[0],
-		            debug: false
-		        })
-				.bind('fileQueued', function (event, file) {	
-				   if ($("#ms__uploadPic_${inputName} .msUploadImgs").children().length>=${size?default("5")}) {
-						  $(this).swfupload('cancelUpload');
-						  <@ms.notify msg= "上传图片过多或上传图片过大!" type= "warning" />
-					} else {
-					    $(this).swfupload('startUpload');
-				    }
-				    
-				})
-				.bind('fileQueueError', function (event, file, errorCode, message) {
-				    if (errorCode==-130) {
-				    	<@ms.notify msg= "文件类型错误!" type= "warning" />
-				    } else if (errorCode==-100) {
-				    	<@ms.notify msg= "最多上传${size}个文件!" type= "warning" />
-				    } else {
-				    	//alert(errorCode+'上传图片过多或上传图片过大!');
-				    	<@ms.notify msg= "上传文件过大!" type= "warning" />
-				    }
-				    <#if callBack!=""> 
-				    	eval("${callBack}(errorCode)");
-				    </#if>
-				})
-				.bind('uploadStart', function (event, file) {
-						$('#ms__uploadPic_${inputName} ul li#' + file.id).find('span.front-cover').text('0%');
-				})
-				.bind('uploadProgress', function (event, file, bytesLoaded) {
-					   var percentage = Math.round((bytesLoaded / file.size) * 100);
-				})
-				.bind('uploadSuccess', function (event, file, serverData) {
-						$('#${inputName}').val(serverData);
-						<#if callBack!=""> 
-							eval("${callBack}(serverData)");
-						<#else>
-							<@ms.notify msg= "上传成功" type= "success" />
-						</#if>
-				})
-				.bind('uploadComplete', function (event, file) {
-				    $(this).swfupload('startUpload');
-				})
-		    });
-			</script>
-</#macro>
-
-<#-- plupload 图片上传组件 -->
-<#-- path 图片上传地址-->
-<#-- triggerBtnId 触发上传对话框的dom元素id-->
-<#-- imgId 放置图片的的标签id 为空的话不显示 -->
-<#-- container 用来指定Plupload所创建的html结构的父容器,默认为前面指定的browse_button的父元素。该参数的值可以是一个元素的id,也可以是DOM元素本身。-->
-<#-- filetype 图片文件类型用 , 隔开-->
-<#-- maxSize 文件最大值 单位 M-->
-<#macro pluploadImg path triggerBtnId imgId="" filetype="*.jpg;*.png;*.gif;*.bmp;*.jpeg" maxSize="1" callback="" isRename=true>
-
-<#assign onlyId = triggerBtnId />
-	<script type="text/javascript">
-	var ms__uploader_${onlyId} = new plupload.Uploader({
-		runtimes: 'html5',
-		browse_button: '${triggerBtnId}',
-		url: "${basePath}/upload",			// 接收上传请求的servlet地址
-		multi_selection: false,				// 只能选择1个文件
-		filters : {
-	        max_file_size : '${maxSize}mb',
-	        mime_types: [{title:"ImageFiles", extensions:"jpg,gif,png,bmp,jpeg"}]
-	    },
-	    // 上传服务器数据 post
-	    multipart_params: {
-	    	"uploadPath": "/${path}", 
-	    	"isRename": "${isRename?default("true")}",
-	    	"maxSize": ${maxSize},
-	    	"allowedFile": "${filetype?default('*.jpg;*.png;*.gif;*.bmp;*.jpeg')}"
-	    }
-	});
-	
-	//在实例对象上调用init()方法进行初始化
-	ms__uploader_${onlyId}.init();
-	
-	// 初始化方法
-	ms__uploader_${onlyId}.bind('Init', function(loader){
-	
-	});
-	
-	// 用户添加文件, 开始的时候立即添加
-	ms__uploader_${onlyId}.bind('FilesAdded', function(up, files){
-		uploader.start();
-	});
-	
-	// 队列中所有文件被上传完
-	ms__uploader_${onlyId}.bind('UploadComplete', function(up, file){
-		
-	});
-	
-	// 当一个文件开始上传的时候触发
-	ms__uploader_${onlyId}.bind('UploadFile', function(up, file){
-		
-	});
-	
-	// 文件上传成功的时候触发
-	ms__uploader_${onlyId}.bind('FileUploaded', function(uploader, file, result){
-	
-		if (result.status == 200){
-			// 图片的服务器路径
-			var imgUrl = result.response;
-			$('#${imgId}').attr('src', '${basePath}/' + imgUrl);
-		}
-		else{
-			$('.ms-notifications').offset({top:43}).notify({
-				type:'success',
-				message: { text:'上传失败,请求返回码:' + result.status }
-			}).show();
-		}
-		
-		<#if callback != "" > 
-			eval("${callBack}(result)");
-		</#if>
-	});
-
-</script>
-</#macro>

+ 0 - 198
src/main/webapp/WEB-INF/manager/index.ftl

@@ -1,198 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh">
-<head>
-<title><#if app?has_content>${app.basicTitle}<#else>MS</#if>管理系统</title>
-<link rel="bookmark" href="favicon.ico"/> 
-<#include "/include/macro.ftl"/>
-<#include "/include/meta.ftl"/>
-<script src="http://cdn.mingsoft.net/model/4.6.0/ms.mstore.client.min.js"></script>
-</head>
-<script type="text/javascript">
-    $(function(){
-        var menuJson=${modelList};
-        $('.dropdown-toggle').dropdown();
-        //加载头部菜单
-        manager.topMenu.initMenu(menuJson);
-        //点击头部菜单从左侧显示当前菜单子菜单
-        $(".ms-menu-list").delegate(".ms-menu-detail","click",function(){
-            manager.topMenu.showChildMenu($(this),menuJson);
-        });
-        
-        //获取管理员帐号
-		$("#editLoginPassword").click(function() {
-			$.ajax({
-				type: "post",
-				dataType: "json",
-				url:  "${managerPath}/editPassword.do",
-				success: function(msg){
-					var json =JSON.parse(msg.resultMsg);
-					$(".editLoginPassword input[name='managerName']").val(json);
-					//$(".editLoginPassword").modal();
-				}
-			});
-		});
-		
-		
-		//修改密码
-		$("#editLoginPasswordButton").click(function() {		
-			var vobj = $("#updatePasswordFrom").data('bootstrapValidator').validate();
-			if(vobj.isValid()){
-				$(this).postForm("#updatePasswordFrom",{func:function(data) {
-					if(data.result){
-						alert("密码修改成功!");
-						location.reload();
-					}else{
-						alert(data.resultMsg);
-					}
-		 			
-				}});	
-			} else {
-				alert("表单验证失败");
-			}	
-			
-		});
-		
-		 //退出系统
-		$("#loginOutBtn").click(function() {	
-			//$(this).request({func:function(data) {
-		 	//		location.reload();
-			//}});
-			window.location.href="${managerPath}/logout"		
-		});
-	
-		$(".ms-menu-child li a").each(function() {
-			var tag = "?";
-			if ($(this).data("url").indexOf("?") > 0) {
-				tag="&";
-			}
-			$(this).data("url", "${managerPath}/"+$(this).data("url")+tag+"modelId="+$(this).data("id")+"&modelTitle="+encodeURI($(this).data("title")));
-		});
-    });
-</script>
-
-<body class="over-hide theme-index" >
-    <!--顶部开始 -->
-    <div class="ms-top">
-        <!--头部LOGO-->
-        <div class="ms-top-logo">
-            <img src="${skin_manager_logo}"/>
-            <!--span class="slideMenu">
-                <span class="icon iconfont icon-open">&#xe823;</span>
-                <span class="icon iconfont icon-close" style="display: none;">&#xe80d;</span>
-            </span-->
-        </div>
-        
-        <!--头部一级菜单-->
-        <div class="ms-top-menu">
-            <div class="menu-default">
-            	<#noparse>
-                <script id="ms-menu-list-tmpl" type="text/x-jquery-tmpl">
-                {{if modelModelId==0}}
-                    <li data-model-id="${modelId}" data-model-icon="${modelIcon}" class="ms-menu-detail">${modelTitle}</li>
-                {{/if}}
-                </script>
-                </#noparse>
-                <ul class="ms-menu-list">
-
-                </ul>
-                <span class="glyphicon glyphicon-menu-hamburger openMenu"></span>
-            </div>
-        </div>
-        <!--头部用户信息/进入MStore-->
-        <div class="ms-top-user">
-            <div class="dropdown">
-                <div id="dLabel" class="ms-top-info" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                    <span class="glyphicon glyphicon-user"></span>
-                    ${Session.manager_session.managerName}
-                    <span class="caret"></span>
-                </div>
-                <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
-                	<li role="presentation" data-toggle="modal" data-target="#editLoginPassword">
-                    	<a role="menuitem" tabindex="-1"><span class="glyphicon glyphicon-cog"></span> 修改密码</a>
-                    </li>
-                	<li role="presentation" data-toggle="modal" data-target="#loginOut">
-                    	<a role="menuitem" tabindex="-1"><span class="glyphicon glyphicon-off"></span> 退出</a>
-                    </li>
-                </ul>
-            </div>
-
-            <div class="ms-top-mstore" data-toggle="tooltip" data-placement="bottom" title="点击进入Mstore">
-                <span class="glyphicon glyphicon-th-large animated"></span>
-                <span class="mstore-update"></span>
-            </div>
-        </div>
-    </div>
-
-	<#noparse>
-    <script id="ms-menu-tmpl" type="text/x-jquery-tmpl">
-    {{if modelModelId==0}}
-        <div class="ms-menu-parent" data-model-id="${modelId}">
-            <div class="ms-menu-parent-header ms-menu-parent-active">
-                <div class="ms-menu-parent-title" data-flag="true">
-                    <i class="icon iconfont icon-logo">${modelIcon}</i>
-                    ${modelTitle}    
-                </div>
-                <span class="closeMenu">×</span>
-            </div>
-            <ul class="ms-menu-child child-list${modelId}" id="tab-tools">
-            </ul>
-        </div>
-    {{/if}}
-    </script>
-    <script id="ms-menu-child-tmpl" type="text/x-jquery-tmpl">
-        <li><a style="cursor: pointer;"  data-title='${modelTitle}' data-url='${modelUrl}' data-id='${modelId}'><!--span class="caret"></span-->${modelTitle}</a></li>
-    </script>
-    </#noparse>
-    
-    <!--左边菜单开始-->
-	<div class="ms-menu-div">
-        <div class="slideMenu">
-            <span class="icon iconfont icon-open">&#xe823;</span>
-            <span class="icon iconfont icon-close" style="display: none;">&#xe80d;</span>
-        </div>
-    </div>
-    <div class="ms-menu">
-        <div class="ms-menu-none"></div>
-        <!--span class="slideMenu glyphicon glyphicon-tasks"></span-->
-    </div>
-    <!--左边菜单结束-->
-
-    <!--右边开始-->
-    <div class="ms-content">
-        <div class="wellcome">
-            <h2>欢迎进入MS系统</h2>
-            <p>欢迎加群: 221335098 或到
-                <a href="http://ms.mingsoft.net/mbbs/main.do" target="_blank" style="text-decoration: none;">官方论坛进行技术交流</a>
-            </p>
-        </div>
-        <div class="easyui-tabs">
-        
-        </div>
-        
-    </div>
-    <!--右边结束-->
-    
-    <!--修改登录密码模态框-->
-	<@ms.modal id="editLoginPassword" title="修改密码">
-		  <@ms.modalBody>
-		  		<@ms.form  isvalidation=true name="updatePasswordFrom"  action="${managerPath}/updatePassword.do">
-		    		<@ms.text name="managerName" width="280" label="账号:" title="managerName" value="" readonly="readonly" validation={"required":"true", "data-bv-notempty-message":"必填项目"} />
-		    		<@ms.password width="280" name="oldManagerPassword" label="旧密码:" title="managerPassword" validation={"required":"true","minlength":"6","maxlength":"20","data-bv-notempty-message":"必填项目","data-bv-stringlength-message":"6-20个字符以内!"}/>
-		    		<@ms.password width="280" name="newManagerPassword" label="新密码:" title="managerPassword" validation={"required":"true", "minlength":"6","maxlength":"20", "data-bv-notempty-message":"必填项目","data-bv-stringlength-message":"6-20个字符以内!"}/>
-		    	</@ms.form>	
-	     </@ms.modalBody>
-		 <@ms.modalButton>
-		 	<@ms.savebutton value="更新密码" id="editLoginPasswordButton"/>
-		 </@ms.modalButton>
-	</@ms.modal>
-	
-	<@ms.modal id="loginOut" title="退出提示!">
-		  <@ms.modalBody>
-		  		确认退出?
-	     </@ms.modalBody>
-		 <@ms.modalButton>
-		 	<@ms.button value="确认退出" id="loginOutBtn" url="${managerPath}/loginOut.do"/>
-		 </@ms.modalButton>
-	</@ms.modal>
-</body>
-</html>

+ 0 - 247
src/main/webapp/WEB-INF/manager/login.ftl

@@ -1,247 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<#include "/include/meta.ftl"/>
-<title><#if app?has_content>${app.appName}<#else>MS</#if>管理系统${managerViewPath}</title>
-<link rel="shortcut icon" href="${static}/global/images/ms.ico"/>     
-<link rel="bookmark" href="${static}/global/images/ms.icoo"/> 
-<script type="text/javascript" src="http://cdn.mingsoft.net/plugins/vue/2.3.3/vue.min.js"></script>
-<script type="text/javascript" src="http://cdn.mingsoft.net/plugins/validator/5.5.0/validator.min.js"></script>
-<link rel="stylesheet/less" type="text/css" href="${static}/skin/manager/${manager_ui}/less/login.less" media="all" />
-<script type="text/javascript" src="http://cdn.mingsoft.net/plugins/less/2.5.3/less.min.js" ></script>
-<script>
-			if(top.location != location){  
-			    top.location.href= location.href;  
-			}  
-			
-</script>
-</head>
-<style>
-	.gray{background:#92908E}
-</style>
-<body>
-        <#if app?has_content>
-        <div id="mcms-login">
-            <img src="${static}/skin/manager/${manager_ui}/images/pic.png" class="login-images login-float" />
-            <div class="login-form-container login-float">
-                <div class="login-title">
-                    <span class="login-chinese-title">账号登录 /</span>
-                    <span class="login-english-title">User login</span>
-                </div>
-				<div class="ms-login-error-text">
-					<img src="${static}/skin/manager/${manager_ui}/images/error.png" v-show="errorText != ''" />
-					<span v-text="errorText" v-show="errorText != ''"></span>
-				</div>
-                <form class="form-horizontal" id="loginForm" action="${managerPath}/checkLogin.do">
-                    <input type="text" maxlength="12" class="login-people-name" :class="{'ms-error':error == 'peopleName'}" id="managerName" name="managerName" @blur="checkPeopleName" @keyup="chanageBackgroundColor" placeholder="用户名" v-model="peopleName" />
-                    <input type="password" maxlength="20" class="login-people-name" :class="{'ms-error':error == 'peoplePassword'}" id="managerPassword" name="managerPassword" @blur="checkPeoplePassword" @keyup="chanageBackgroundColor" placeholder="密码" v-model="peoplePassword" />
-                    <div class="login-code">
-                        <input type="text" onKeyUp ="value=value.replace(/[\W]/g,'')" maxlength="4" class="login-float login-code-input" :class="{'ms-error':error == 'rand_code'}" id="rand_code" name="rand_code" @blur="checkCode" @keyup="chanageBackgroundColor" placeholder="验证码" v-model="code" />
-                        <img id="ms-login-code" class="login-code-img login-float" src="${basePath}/code" @click="changeCode"/>
-                        <p class="login-float login-code-text">
-                            <span>看不清?</span><br/>
-                            <spna class="login-code-change" @click="changeCode">换一张</span>
-                        </p>
-                    </div>
-                    <p  class="login-remmember-password">
-                        <input id="remember" type="checkbox" name="" />
-                        <label class="login-remember" for="remember">记住密码</label>
-                    </p>
-                    <div  id="login-button" class="login-button"  v-on:click="toLogin">登录</div>
-                </form>
-            </div>
-        </div>
-        <#else>
-            <div id="errorDisplay">
-        	    <img src="${static}/skin/manager/${manager_ui}/images/errorDisplay.png"/>
-        	    <div class="errorData">
-        	    <p >系统配置异常,请手动去掉WEB-INF/ms.install.bak文件的后缀.bak,再重启系统进入登录界面进行初始化</p>
-        	    </div>
-        	<div>
-
-        </#if>
-    </body>
-   
-	<script>
-	    
-        var loginForm = new Vue({
-            el:'#mcms-login',
-            data:{
-                isRight: true,
-                errorText:"",//错误提示
-                error:"",//输入框错误的显示
-                peopleName:"",//用户名输入框
-                peoplePassword:"",//密码输入框
-				code:"",//验证码
-            },
-            watch: {
-				peopleName: function() {
-                    var pattern = /[^\w\u4E00-\u9FA5]/ig;
-                    if(!validator.isNull(this.peopleName) && this.peopleName.indexOf(" ") < 0 && validator.isLength(this.peopleName, {min:6,max:20}) && pattern.test(this.peopleName) == false && this.error == 'peopleName'){
-                        this.errorText = "";
-                        this.error = "";
-					}
-				},
-                peoplePassword: function() {
-                    if(!validator.isNull(this.peoplePassword) && this.peoplePassword.indexOf(" ") < 0 && validator.isLength(this.peoplePassword, {min:6,max:20}) && this.error == 'peoplePassword'){
-                        this.errorText = "";
-                        this.error = "";
-					}
-				},
-				code: function(){
-					if(!validator.isNull(this.code) && this.code.length == 4 && this.error == 'rand_code'){
-						this.errorText = "";
-                        this.error = "";
-					}
-				}
-			},
-			mounted: function() {
-			      var _this = this;
-		          //页面初始化时,如果帐号密码cookie存在则填充
-                  if($.cookie('managerName') && $.cookie('managerPassword')){
-                      _this.peopleName = $.cookie('managerName');
-                      _this.peoplePassword = $.cookie('managerPassword');
-                      $("#remember").attr("checked",true);
-                  }
-			      //检测浏览器版本
-			      if (navigator.userAgent.toLowerCase().indexOf("msie") > 0) {
-			      	    alert("您当前的浏览器版本太低,建议使用IE8以上版本浏览器,推荐使用Chrome浏览器");
-			      }
-			      
-			      //js监听回车键 
-			      document.onkeydown = function(e) {
-			      	e = e ? e : window.event;
-			      	var keyCode = e.which ? e.which : e.keyCode;
-			      	if (keyCode == 13) {
-			      		_this.login(); 
-			      	}
-			      }
-			},
-            methods:{
-                //错误提示显示
-                errorShow:function(msg,type){
-                    this.errorText = msg;
-                    this.error = type;
-                },
-                changeCode:function(){
-                	$("#ms-login-code").attr("src","${basePath}/code?t="+new Date().getTime())
-                },
-                //判断用户名
-                checkPeopleName:function(){
-                    var pattern = /[^\w\u4E00-\u9FA5]/ig;
-					if(validator.isNull(this.peopleName)){
-						this.errorShow("用户名不能为空",'peopleName');
-						this.isRight = false;
-						return;
-					}else if(this.peopleName.indexOf(" ") >= 0) {
-						this.errorShow("用户名不能包含空格",'peopleName');
-						this.isRight = false;
-						return;
-					}else if(!validator.isLength(this.peopleName, {min:3,max:12})){
-						this.errorShow("用户名为3~12个字符",'peopleName');
-						this.isRight = false;
-						return;
-					}else if(pattern.test(this.peopleName)){
-                        this.errorShow("用户名不能包含特殊字符",'peopleName');
-                        this.isRight = false;
-						return;
-                    }
-                },
-                //判断密码
-                checkPeoplePassword:function(){
-                    if(validator.isNull(this.peoplePassword)){
-						this.errorShow("密码不能为空",'peoplePassword');
-						this.isRight = false;
-						return;
-					}else if(!validator.isLength(this.peoplePassword, {min: 6,max: 20})){
-						this.errorShow("密码长度在6~20位之间!",'peoplePassword');
-						this.isRight = false;
-						return;
-					}else if(this.peoplePassword.indexOf(" ") >=0){
-                        this.errorShow("密码是不能包含空格",'peoplePassword');
-                        this.isRight = false;
-						return;
-					}
-                },
-				//判断验证码
-                checkCode:function(){
-                    if(validator.isNull(this.code)){
-						this.errorShow("验证码不能为空",'rand_code');
-						this.isRight = false;
-						return;
-					}else if(this.code.length != 4){
-						this.errorShow("验证码为4位!",'rand_code');
-						this.isRight = false;
-						return;
-					}
-                },
-                //登录判断验证
-                checkLogin:function(){
-                    this.checkPeoplePassword();
-                    this.checkPeopleName();
-                    this.checkCode();
-                },
-                //验证登录数据
-                login:function(){
-                    loginForm.checkLogin(); 
-		            if(this.isRight){
-		                $("#login-button").html("正在登录");
-		                $("#login-button").attr("style","pointer-events: none;");
-				        $(this).postForm("#loginForm",{loadingText:"正在登录中..",func:function(data) {
-    				        if(data.result){
-    					    location.href=base+"${baseManager}/index.do";
-    				            }else{
-    				        alert(data.resultMsg);
-    				        $("#ms-login-code").attr("src","${basePath}/code?t="+new Date().getTime())
-    				        $("#login-button").html("登录");
-    				        $("#login-button").attr("style","pointer-events: auto;");
-    				        $("#login-button").css({"background-color":"#0099ff"});
-				        };
-				        }});
-				     }else{
-				         this.isRight=true;
-				        
-				          }
-                     },
-                   //删除cookies
-                delCookies: function(names){
-                     for(i=0;i<names.length;i++){
-                     $.cookie(names[i],null,{ expires: -1 });
-                     }
-                  },
-                  //删除并且修改cookies
-                delAndSetCookies: function(names,values,date){
-                     this.delCookies(names);
-                     for(i=0;i<values.length;i++){
-                        $.cookie(names[i], values[i], { expires: date });
-                     }
-                  },
-                  //改变登录按钮背景色
-                chanageBackgroundColor: function(){
-                     if($("#managerName").val().length >= 3 && $("#managerPassword").val().length >= 6 && $("#rand_code").val().length == 4){
-                         $("#login-button").css({"background-color":"#0099ff"});
-                     }else{
-                          $("#login-button").css({"background-color":"#eeeeee"});
-                     }
-                  },
-                  //点击登录方法
-                toLogin: function(){
-                     var names=new Array('managerName','managerPassword');
-			         var values=new Array($("#managerName").val(),$("#managerPassword").val());
-			         if($("#remember").is(":checked")){ 
-                         this.delAndSetCookies(names,values,1);
-                     }else{
-                         this.delCookies(names);
-                     }
-                         this.login();
-                     }
-                 
-                       
-            }
-            
-			
-        })
-		
-	</script>
-   
-</html>

+ 0 - 15
src/main/webapp/WEB-INF/manager/main.ftl

@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head> 
-  <title>铭飞MCMS</title> 
-  <meta content="IE=edge" http-equiv="X-UA-Compatible" /> 
-  <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
-  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 
-  <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
-<style>
-body{  height: 100%;}
-</style>
-</head>
-<body>
-</body>
-</html>

+ 0 - 360
src/main/webapp/WEB-INF/manager/manager/manager.ftl

@@ -1,360 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-  	<#include "/include/macro.ftl"/>
-  	<#include "/include/meta.ftl"/>   
-</head>
-<body>
-<@ms.content>
-		<@ms.contentBody>
-			<@ms.contentNav title="管理员管理">
-				<@ms.panelNavBtnGroup>
-						<@ms.panelNavBtnAdd  id="totalAdd" title=""/>
-						<@ms.panelNavBtnDel  id="totalDelete"/>
-					</@ms.panelNavBtnGroup>
-			</@ms.contentNav >
-			<@ms.contentPanel>
-	              <@ms.table head=['账号','昵称','密码','角色名称',"<th style='text-align:center'>添加时间</th>"] checkbox="checkbox">
-	           			<#if listManager?has_content>
-	           				<#list listManager as manager>
-	                    	<tr>
-						          	<td style="text-align:center;width:10%;">
-					            		<#if manager.managerName != managerSession.managerName>
-		  									<input type="checkbox" name="checkbox" value="${manager.managerId?c?default(0)}">
-		  								</#if>
-						            </td>	          	
-						            <td style="width:10%">
-						            	
-						            	<#if manager.managerName != managerSession.managerName>
-						                    
-						                    <a class="btn btn-xs tooltips updateModalBtn" data-toggle="tooltip" data-id="${manager.managerId?c?default(0)}" data-original-title="编辑">
-					                     		${manager.managerName?default("暂无")}
-					                    	</a>
-					                    	<#else>
-					                    	${manager.managerName?default("暂无")}
-				                    	</#if>	
-						            </td>
-						            <td style="width:10%">${manager.managerNickName?default("暂无")}</td>
-						 			<td style="width:25%">${manager.managerPassword?default("暂无")}</td>
-						            <td style="width:10%" >${manager.roleName?default("暂无")}</td>
-						            <td class="text-center">${manager.managerTime?string("yyyy-MM-dd HH:mm:ss")}</td>
-						         </tr>
-	                    	</#list>
-	                 		<#else>
-	                 			<tr>
-						            <td colspan="5" class="text-left">
-						            	<@ms.nodata/>
-									</td>
-					          	</tr>
-	        			</#if>
-	        			</@ms.table>
-					<@showPage page=page/>
-			</@ms.contentPanel>		
-		</@ms.contentBody>
-		<!--=================模态框部分开始=================-->
-		
-		<!--修改/保存的模态框开始-->
-		<@ms.modal modalName="update" title="">
-			 <@ms.modalBody height="250">
-				<@ms.form isvalidation=true name="updateManager" id="updateManager"  action="">	
-		    		<@ms.text name="managerName"    label="账号" title="账号" maxlength="30" placeholder="请输入账号" validation={"required":"true", "data-bv-notempty-message":"账号不能为空"}/>
-		    		<@ms.text name="managerNickName"    label="昵称" title="昵称"  maxlength="30" placeholder="请输入昵称" validation={"required":"true", "data-bv-notempty-message":"昵称不能为空"}/>
-		    		<@ms.text name="managerPassword"    label="密码" title="密码"  maxlength="100" placeholder="请输入密码"/>	
-					<@ms.select  name="managerRoleID" label="选择角色"  list=listRole  id="orderStatus" listKey="roleId"  listValue="roleName" value="" style="width:57%" validation={"required":"true", "data-bv-notempty-message":"角色不能为空"}/>
-	    			<input type="hidden" class="managerPeopleID" name="managerPeopleID" value="0"/>
-					<input type="hidden" class="oldManagerName" name="oldManagerName" value=""/>
-		    	</@ms.form>		          	
-		     </@ms.modalBody>
-		     <@ms.modalButton>
-	 			<@ms.savebutton id="updateButton"/>  
-	 		 </@ms.modalButton>
-		</@ms.modal>
-		<!--修改/保存的模态框结束-->
-		
-		<!--多选删除的模态框开始-->
-		<@ms.modal modalName="deleteAll" title="批量删除管理员">
-			 <@ms.modalBody>
-				您确定删除您所勾选的管理员吗?
-		     </@ms.modalBody>
-		     <@ms.modalButton>
-	    		<@ms.button value="返回" id="closeDelete"/>  
-	 			<@ms.button class="btn btn-danger" id="deleteButton" value="删除"/>  
-	 		 </@ms.modalButton>
-		</@ms.modal>
-		<!--多选删除的模态框结束-->
-		<!--单个删除的模态框开始-->
-		<@ms.modal modalName="deleteRadio" title="删除管理员">
-			 <@ms.modalBody>
-				您确定删除您所勾选的管理员吗?
-		     </@ms.modalBody>
-		     <@ms.modalButton>
-	    		<@ms.button value="返回" id="closeRadio"/>  
-	 			<@ms.button class="btn btn-danger" id="deleteRadio" value="删除"/>  
-	 		 </@ms.modalButton>
-		</@ms.modal>
-		<!--单个删除的模态框结束-->
-		
-		<@ms.modal modalName="managerPageModel" title="主页面绑定">
-			 <@ms.modalBody>
-				<@ms.form isvalidation=true name="managerPageForm" id="managerPageForm" class="form-inline" action="${managerPath}/managerModelPage/save.do">	
-		    		<@ms.text name="managerModelPageUrl"    label="主界面地址:" title="主界面地址:" size="5" maxlength="30" placeholder="请输入主页面地址"/>
-		    		<@ms.select  name="managerModelPageModelId" label="选择模块"  list=listManager  id="orderStatus" listKey="managerRoleID"  listValue="roleName" value="" style="width:57%"/>
-		  			<input type="hidden"  name="managerModelPagemanagerId">
-		    	</@ms.form>		          	
-		     </@ms.modalBody>
-		     <@ms.modalButton>
-	    		<@ms.button value="返回" id="closeSaveUrl"/>  
-	 			<@ms.savebutton id="saveUrl"/>  
-	 		 </@ms.modalButton>
-		</@ms.modal>
-		<!--=================模态框部分结束=================-->
-	</@ms.content>
-	<script>				
-	var URL='';
-	//模态框的操作
-	$(function () {	
-		$("#totalAdd").click(function(){
-			$("#updateTitle").text("新增管理员");	
-			$("#updateButton").text("保存");
-			URL="${managerPath}/manager/save.do";
-	 		$(".update").modal();
-	 	});
-	 	$("#closeUpdate").click(function(){
-	 		$(".update").modal("hide");
-	 	});
-	 	
-	 	$("#closeDelete").click(function(){
-	 		$(".deleteAll").modal("hide");
-	 	});
-	 	
-	 	$("#closeRadio").click(function(){
-	 		$(".deleteRadio").modal("hide");
-	 	});
-	 	
-	 	$("#closeSaveUrl").click(function(){
-	 		$(".managerPageModel").modal("hide");
-	 	});	
-	});
-	 	
- 		//全选
-	   	$("#allCheck").on("click",function(){   
-			if(this.checked){
-			      $("input[name='checkbox']").each(function(){this.checked=true;});
-			}else{
-			      $("input[name='checkbox']").each(function(){this.checked=false;});   
-			}   
-		}); 
-		
-	 //点击更新按钮
-	 $("#updateButton").click(function() {
-			var formData = $("#updateManager").serialize();
-			var vobj = $("#updateManager").data('bootstrapValidator').validate();
-			var buttonHtml = $("#updateButton").html();
-			if(vobj.isValid()){
-					$.ajax({
-					   type: "post",
-					   dataType: "json",
-					   url:  URL,
-					   data: formData, 
-					   beforeSend:function(){
-					   		$("#updateButton").text($("#updateButton").text()+"中");
-					   		$("#updateButton").attr("disabled",true);
-					   },
-					   success: function(msg){ 
-					   		if(msg.result==true){
-					   			$('.ms-notifications').offset({top:43}).notify({
-									type:'success',
-									message: { text:buttonHtml+"成功" }
-								}).show();
-					   			location.reload();
-					   		}else{
-					   			$('.ms-notifications').offset({top:43}).notify({
-									type:'warning',
-									message: { text:msg.resultMsg }
-								}).show();
-					   			$("#updateButton").text(buttonHtml);
-					   			$("#updateButton").attr("disabled",false);
-					   		}
-					   },error: function(){
-					   	  <@ms.notify msg= "数据请求失败,请检查请求地址和参数是否正确" type= "danger" />
-					   	  location.href = base+"${baseManager}/role/add.do";
-					   }
-				});
-			 }
-			
-	 });
-	 
-	$(".updateModalBtn").click(function(){
-		$("#updateTitle").text("编辑管理员");			
-		$("#updateButton").text("更新");	
-		//找到点击的id
-		var managerId =  $(this).attr("data-id");
-		URL="${managerPath}/manager/"+managerId+"/edit.do";
-		$.ajax({
-			type: "post",
-			dataType:"json",
-			url:  URL,
-			data: "managerId=" + managerId,
-			success: function(msg){	
-	   			if(msg.manager != null){
-			   		$("input[name='managerName']").val(msg.manager.managerName);
-			   		$("input[name='oldManagerName']").val(msg.manager.managerName);
-			   		$("input[name='managerNickName']").val(msg.manager.managerNickName);
-			   		$("input[name='managerPassword']").val(msg.manager.managerPassword);
-			   		$("input[name='managerRoleID']").val(msg.manager.managerRoleID);
-			   		$("select[name=managerRoleID]").find("option[value="+msg.manager.managerRoleID+"]").attr("selected",true);
-		   		}
-		   },error: function(){
-		   	  <@ms.notify msg= "系统异常" type= "danger" />
-		   }
-		});
-		URL = "${managerPath}/manager/update.do?managerId="+managerId;
-		$(".update").modal();
-	});
-	 
-	 $("#totalDelete").click(function(){
-	 	var radioData = $("input[name='checkbox']").serialize();
-		if(radioData!=""){
-			$(".deleteAll").modal();//打开
-		}else{
-			<@ms.notify msg= "请选择需要删除的管理员!" type= "warning" />
-		}
-	 });
-	 
-	 
-	 	//批量删除管理员
-		$("#deleteButton").click(function(){
-			var count = 0;
-			var checkboxData = $("input[name='checkbox']").serialize();
-			$("input[name='checkbox']").each(function(){
-				if(this.checked==true){
-					count++;
-				}
-			});
-			if(checkboxData.length != 0) {
-				$.ajax({
-				   type: "post",
-				   dataType: "json",
-				   url:  base+"${baseManager}/manager/allDelete.do",
-				   data: checkboxData,
-				   beforeSend:function(){
-				   		$("#deleteButton").text("删除中");
-				   		$("#deleteButton").attr("disabled",true);
-				   },
-				   success: function(msg){
-				   		<@ms.notify msg= "删除管理员成功" type= "success" />
-				   		if($("tbody tr").length == count && msg != 1){
-				     		location.href = base+"${baseManager}/manager/queryList.do?pageNo="+(msg-1);
-						}else{
-				     		location.href = base+"${baseManager}/manager/queryList.do?pageNo="+msg;
-						}
-				   },error: function(){
-				   	  <@ms.notify msg= "批量删除管理员失败" type= "danger" />
-				      $(".deleteAll").modal("hide");
-				   }
-				});
-			 } else {
-			 	<@ms.notify msg= "删除失败,请先选择管理员" type= "danger" />
-				$(".deleteAll").modal("hide");
-			 }
-		 });
-		 
-		 
-		 var radioManagerId 
-		 $(".delete").click(function(){
-		 	radioManagerId =  $(this).attr("data-id");
- 		 	$(".deleteRadio").modal();
-		 });
-		 
-		 //删除单个
-		 $("#deleteRadio").click(function(){
-		 	$.ajax({
-			   type: "post",
-			   dataType: "json",
-			   url:  "${managerPath}/manager/"+radioManagerId+"/delete.do",
-			   data: "managerId=" + radioManagerId,
-			   success: function(msg){
-			    	if(msg != 0) {
-			    		<@ms.notify msg= "删除管理员成功" type= "success" />
-			    		if($("tbody tr").length==0 && msg != 1){
-			    			location.href = base+"${baseManager}/manager/queryList.do?pageNo="+(msg-1);
-						}else{
-							location.href = base+"${baseManager}/manager/queryList.do?pageNo="+msg;
-						}
-			    	} else {
-						<@ms.notify msg= "删除管理员失败" type= "danger" />
-				    	$(".closeModal").click();
-			    	}
-			   },error: function(){
-			   	  <@ms.notify msg= "系统异常" type= "danger" />
-			   }
-			});
-		 });
-		 
-		
-		 //点击弹出管理员主界面新增或更新弹出框
-		$(".addPage").click(function(){
-			var managerModelPageModelId = $(this).attr("data-id");
-			$("input[name='managerModelPagemanagerId']").val($(this).attr("data-id"));
-			//查询该管理员的模块信息
-			$.ajax({
-			   type: "post",
-			   dataType: "json",
-			   url:  base+"${baseManager}/model/"+$(this).attr("data-id")+"/queryModelByRoleId.do",
-			   data:$("#managerPageForm").serialize(),
-			   success: function(msg){
-			     	if(msg.result){
-			     		var modelJson =jQuery.parseJSON( msg.resultMsg);
-			     		$("select[name='managerModelPageModelId']").html("");
-			     		for (i=0;i<modelJson.length;i++) {
-							if (modelJson[i].modelModelId==0) {
-								$("select[name='managerModelPageModelId']").append("<option  value="+modelJson[i].modelId+">"+modelJson[i].modelTitle+"</option>");
-							}
-						}
-			     	} 
-			   }
-			});
-			//查询该管理员是否绑定主界面
-			var modelId=0;
-			queryModelPage(modelId,managerModelPageModelId);
-			$(".managerPageModel").modal();
-		});
-		//查询模块是否绑定主界面
-		function queryModelPage(modelId,managerModelPageModelId){
-			$.ajax({
-			   type: "post",
-			   dataType: "json",
-			   url:  "${managerPath}/managerModelPage/"+modelId+"/getEntity.do",
-			   data:"managerModelPageModelId="+managerModelPageModelId,
-			   success: function(msg){
-			     	if(msg.result){
-			     		var json =jQuery.parseJSON(msg.resultMsg);
-			     		alert(msg);
-			     		$("input[name='managerModelPageUrl']").val(json.managerModelPageUrl);
-			     	} 
-			   }
-			});
-		}
-		
-		//点击保存时,开始主界面信息的保存
-		$("#saveUrl").click(function(){
-			$.ajax({
-				type: "post",
-				dataType: "json",
-				url:  "${managerPath}/managerModelPage/save.do",
-				data:$("#managerPageForm").serialize(),
-				beforeSend:function(){
-					$("#saveUrl").text("保存中");
-					$("#saveUrl").attr("disabled",true)
-				},
-				success: function(msg){
-					if(msg){
-			     		<@ms.notify msg= "保存成功!" type= "success" />
-			     		location.href = base+"${baseManager}/manager/queryList.do";
-			     	} 
-			   	}
-			});
-		});
-	</script>
-</body>
-</html>

+ 0 - 248
src/main/webapp/WEB-INF/manager/model/index.ftl

@@ -1,248 +0,0 @@
-<@ms.html5>
-	<@ms.nav title="菜单管理"></@ms.nav>
-	<@ms.panel>
-		<div id="toolbar">
-			<@ms.panelNav>
-				<@ms.buttonGroup>
-					<@shiro.hasPermission name="model:save"><@ms.panelNavBtnAdd title="" id="addModelBtn"/></@shiro.hasPermission> 
-					<@shiro.hasPermission name="model:del"><@ms.panelNavBtnDel title="" id="delModelBtn"/></@shiro.hasPermission> 
-				</@ms.buttonGroup>
-			</@ms.panelNav>
-		</div>
-		<table id="modelList" 
-			data-show-refresh="true"
-			data-show-columns="true"
-			data-show-export="true"
-			data-method="post" 
-			data-side-pagination="server">
-		</table>
-	</@ms.panel>
- 	<!--添加模块-->    
-	<@ms.modal modalName="addEditModel" title="添加模块">
-		<@ms.modalBody height="350">
-			<@ms.form isvalidation=true name="addEditForm"  action="" method="post"  >
-				<@ms.formRow label="父级菜单">
-					<@ms.treeInput treeId="modelInputTree" json="${parentModelList?default('')}" jsonId="modelId" jsonPid="modelModelId" jsonName="modelTitle"  addNodesName="顶级模块" buttonText="顶级模块" inputName="modelModelId" inputValue="0" clickZtreeId="clickZtreeId(event,treeId,treeNode);" expandAll="true" showIcon="true"/>
-				</@ms.formRow>
-				<@ms.text name="modelTitle" label="标题" title="模块标题" placeholder="请输入模块标题" value="" validation={"required":"true", "data-bv-notempty-message":"请输入模块标题!","data-bv-stringlength":"true","minlength":"1","maxlength":"10","data-bv-stringlength-message":"模块标题为1-10个字符!"} />
-				<@ms.text name="modelIcon"  label="图标" title="模块图标"  placeholder="请输入模块图标" value="" validation={"maxlength":"20","data-bv-stringlength-message":"模块图标为1-20个字符!"}/>
-				<@ms.text name="modelUrl"  label="链接地址" title="模块链接地址"  placeholder="请输入模块链接地址" value="" validation={"maxlength":"255","data-bv-stringlength-message":"模块链接地址为1-255个字符!"}/>
-				<#assign isMenu=[{"id":"0","name":"否"},{"id":"1","name":"是"}]>
-				<@ms.text name="modelSort" label="排序" title="模块排序" width="165px;" value="" placeholder="请输入排序" validation={"required":"true","maxlength":"5", "data-bv-notempty-message":"请输入模块排序!"}/>
-				<@ms.select name="modelIsMenu" style="width: 25%;" id="modelMenuSelect" list=isMenu  listKey="id" listValue="name" label="是否是菜单"  value="0" title="是否是菜单" />
-				<@ms.hidden name="modelId" value="" id="hideModelId"/>
-			</@ms.form>
-		</@ms.modalBody>
-		<@ms.modalButton>
-			<@ms.button  value=""  id="addEditBtn"/>
-		</@ms.modalButton>
-	</@ms.modal>	
-	<@ms.modal  modalName="delModel" title="模块数据删除" >
-		<@ms.modalBody>删除此模块
-			<@ms.modalButton>
-				<!--模态框按钮组-->
-				<@ms.button  value="删除" class="btn btn-danger rightDelete"  id="deleteModelBtn"  />
-			</@ms.modalButton>
-		</@ms.modalBody>
-	</@ms.modal>
-</@ms.html5>
-
-<script>
-	var modelId;
-	var postMessage;
-	$(function(){
-		$("#modelList").bootstrapTable({
-			url:"${managerPath}/model/list.do",
-			contentType : "application/x-www-form-urlencoded",
-			queryParamsType : "undefined",
-			toolbar: "#toolbar",
-			idField: 'modelId',
-            treeShowField: 'modelTitle',
-            parentIdField: 'modelModelId',
-	    	columns: [{ checkbox: true},
-				    	{
-				        	field: 'modelIcon',
-				        	title: '模块图标',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		if(value != null){
-				        			return "<i class='iconfont'>"+value+"</i>";
-				        		}else{
-				        			return "";
-				        		}
-				        	}
-				        	
-				    	},{
-				        	field: 'modelTitle',
-				        	title: '模块标题',
-				        	formatter:function(value,row,index) {
-				        		<@shiro.hasPermission name="model:update">	        
-					        	return "<a style='cursor:pointer;text-decoration:none;' onclick='editModal("+row.modelId+")'>" + value + "</a>";
-					    		</@shiro.hasPermission> 
-					    		<@shiro.lacksPermission name="model:update">
-					    			return value;
-					    		</@shiro.lacksPermission>
-				        		
-				        	}
-				    	},{
-				        	field: 'modelUrl',
-				        	title: '模块连接地址',
-				        	formatter:function(value,row,index) {
-				        		if(value == null){
-				        			return "";
-				        		}else{
-				        			return value;
-				        		}
-				        	}
-				        	
-				    	},{
-				        	field: 'isChild',
-				        	title: '菜单类型'
-				    	},{
-				        	field: 'modelSort',
-				        	title: '模块的排序'
-				    	},{
-				        	field: 'modelIsMenu',
-				        	title: '模块是否是菜单',
-				        	align: 'center',
-				        	formatter:function(value,row,index) {
-				        		if(value == 0){
-				        			return "否";
-				        		}else if(value == 1){
-				        			return "是";
-				        		}else{
-				        			return "";
-				        		}
-				        	}
-				    	}]
-	    })
-	})
-	//新增模块
-	$("#addModelBtn").click(function(){
-		$("#addEditForm").data("bootstrapValidator").validate();
-			var isValid = $("#addEditForm").data("bootstrapValidator").isValid();
-			if(!isValid) {
-				<@ms.notify msg= "数据提交失败,请检查数据格式!" type= "warning" />
-				return;
-		}
-		postMessage="保存成功!";
-		$("#addEditBtn").text("保存");
-		$("#addEditForm").attr("action","${managerPath}/model/save.do");
-		$("#addEditForm")[0].reset(); 
-		$(".addEditModel").modal();
-		$("input[name='modelSort']").val(0);
-		$("#hideModelId").attr("disabled",true);
-	});
-	//编辑模块
-	function editModal(id){
-	$("#addEditForm").data("bootstrapValidator").validate();
-		var isValid = $("#addEditForm").data("bootstrapValidator").isValid();
-		if(!isValid) {
-			<@ms.notify msg= "数据提交失败,请检查数据格式!" type= "warning" />
-			return;
-	}
-	var editUrl="${managerPath}/model/get.do?modelId="+id;
-	$(this).request({url:editUrl,type:"json",method:"post",func:function(data){
-		var model = data.model;
-		// 给表单赋值
-		if(model!=null){
-			$("input[name='modelId']").val(model.modelId);
-			if(model.modelIcon!=undefined){
-				$("input[name='modelIcon']").val(model.modelIcon);
-			}
-			if(model.modelModelId==0){
-				$("#treeLabelmodelInputTree").text("顶级模块");
-			}else{
-				$("#treeLabelmodelInputTree").text(data.parentModel.modelTitle);
-			}
-			$("#modelMenuSelect").get(0).selectedIndex = model.modelIsMenu;
-			$("input[name='modelTitle']").val(model.modelTitle);
-			$("input[name='modelSort']").val(model.modelSort);
-			$("input[name='modelUrl']").val(model.modelUrl);
-			$("input[name='isChild']").val(model.isChild);
-			$("#modelMenuSelect option[value="+model.modelMenu+"]").attr("selected",true);
-			$("input[name='modelModelId']").val(model.modelModelId);
-			$(".addEditModel").modal();
-			postMessage="更新成功!";
-			$("#addEditBtn").text("更新");
-			$("#hideModelId").attr("disabled",false);
-			$("#hideModelId").val(model.modelId);
-			$("#addEditForm").attr("action","${managerPath}/model/update.do");
-		}		
-	}});
-}
-	//提交表单
-	$("#addEditBtn").on("click",function(){
-		var vobj = $("#addEditForm").data('bootstrapValidator').validate();
-		if(vobj.isValid()){
-			$(this).postForm("#addEditForm",{func:function(msg) {
-				if(msg.result){
-					<@ms.notify msg="更新成功!" type="success"/>
-			    	location.reload();
-				}else{
-			 	        $('.ms-notifications').offset({top:43}).notify({
-			    		    type:'warning',
-						    message: { text:msg.resultMsg }
-						 }).show();
-				}
-			}});
-		}
-	});
-	
-	//删除按钮
-	$("#delModelBtn").click(function(){
-		//获取checkbox选中的数据
-		var rows = $("#modelList").bootstrapTable("getSelections");
-		//没有选中checkbox
-		if(rows.length <= 0){
-			<@ms.notify msg="请选择需要删除的记录" type="warning"/>
-		}else{
-			$(".delModel").modal();
-		}
-	})
-	
-	$("#deleteModelBtn").click(function(){
-		var rows = $("#modelList").bootstrapTable("getSelections");
-		$(this).text("正在删除...");
-		$(this).attr("disabled","true");
-		var ids = "";
-		for(var i=0;i<rows.length;i++){
-			if(ids == ""){
-				ids = rows[i].modelId;
-			}else{
-				ids = ids+","+rows[i].modelId
-			}
-		}
-		$.ajax({
-			type: "post",
-			url: "${managerPath}/model/delete.do?ids="+ids,
-			dataType: "json",
-			contentType: "application/json",
-			success:function(msg) {
-				if(msg.result == true) {
-					<@ms.notify msg= "删除成功" type= "success" />
-				}else {
-					<@ms.notify msg= "删除失败" type= "danger" />
-				}
-				location.reload();
-			}
-		})
-	});
-	//查询功能
-	function search(){
-		var search = $("form[name='searchForm']").serializeJSON();
-        var params = $('#modelList').bootstrapTable('getOptions');
-        params.queryParams = function(params) {
-        	$.extend(params,search);
-	        return params;  
-       	}  
-   	 	$("#modelList").bootstrapTable('refresh', {query:$("form[name='searchForm']").serializeJSON()});
-	}
-	//排除添加功能按钮
-	function clickZtreeId(event,treeId,treeNode){
-		if (treeNode.modelIsMenu==0) {
-			<@ms.notify msg= "不能将功能按钮添加为菜单" type= "danger" />
-			return false;
-		} 
-	} 
-</script>

+ 0 - 9
src/main/webapp/WEB-INF/manager/rf.html

@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<META HTTP-EQUIV="Refresh" CONTENT="120">
-</head>
-<body>
-***><***
-</body>
-</html>

+ 0 - 122
src/main/webapp/WEB-INF/manager/role/role.ftl

@@ -1,122 +0,0 @@
-<@ms.html5>
-	<@ms.nav title="角色设置" back=true>
-		<@ms.saveButton id="save"/>
-		<@ms.resetButton id="reset" value="重置" onclick=" " />
-	</@ms.nav>
-	<@ms.panel>
-		<@ms.form isvalidation=true name="saveRoleFrom" style="width: 55%" action="">
-    		<@ms.text name="roleName" label="角色名称:" title="角色名称"  maxlength="30"  validation={"required":"true", "data-bv-notempty-message":"请填写标题"}/>
-    		<#if flag == false><input type="hidden" name="roleId" value="${role.roleId}"/><input type="hidden" id="oldRoleName" name="oldRoleName" value="${role.roleName}"/></#if>
-    		<!-- 树形模块菜单开始 -->	
-				<#if listModel?has_content>
-					<@ms.tree label="模块列表:" treeId="tree" json="${listModel?default('')}" jsonId="modelId" jsonPid="modelModelId" jsonName="modelTitle"  showIcon="true" expandAll="true" ischeck="true"/>
-				<#else> 
-					<@ms.treeInput  treeId="errorTree"  buttonText="暂无数据"/>
-				</#if>	
-			<!-- 树形模块菜单结束 -->
-		</@ms.form>	
-		<#if !listModel?has_content>
-			<@ms.nodata/>	
-		</#if>
-	</@ms.panel>
-</@ms.html5>
-	
-	<script type="text/javascript">
-		
-			
-		<#if flag == true>
-	     	 $("input[name='roleName']").attr("placeholder","请输入角色名称")       
-		<#else>
-			 $("input[name='roleName']").val("${role.roleName}");
-		</#if>
-			
-		$(function () {
-			//前端验证角色名称是否存在
-			$("input[name='roleName']").blur(function(){
-				var oldRoleName = $("#oldRoleName").length;
-				var roleName = $(this).val();
-				if((oldRoleName != 0 && $("#oldRoleName").val() != roleName) || (oldRoleName == 0)){
-					$.ajax({
-					   type: "post",
-					   dataType: "json",
-					   url:  "${managerPath}/role/judgeRoleNameExist.do",
-					   data: "roleName=" + roleName,
-					   success: function(msg){
-					     	if(msg){
-					     		<@ms.notify msg= "该角色名称已存在,请再次输入" type= "warning" />
-					     		$("input[name='roleName']").val(null);
-					     	} 
-					   }
-					});
-				}
-			});
-			//点击重置按钮取消树形菜单的选中
-			$("#reset").click(function(){
-				 zTreeObjtree.checkAllNodes(false);
-			});
-			
-			
-			//更新角色时勾选出该角色所拥有的模块
-	   		var nodes = zTreeObjtree.transformToArray(zTreeObjtree.getNodes());
-			<#if listSelModel?has_content>
-	   			<#list listSelModel as selModel>
-	   				for(i=0; i<nodes.length; i++){
-						if(nodes[i].modelId==${selModel.modelId}){
-							zTreeObjtree.checkNode(nodes[i], true, false);
-						} 
-					}
-				</#list>
-			</#if> 
-			//声明需要获取的树形菜单的每一个子节点的id
-			var modelId = new Array();
-			
-			//保存按钮点击提交表单
-			$("#save").click(function(){
-				if($("#saveRoleFrom").data('bootstrapValidator').validate().isValid()){
-					$(this).attr("disabled","true");
-					var nodes = zTreeObjtree.getCheckedNodes(true);
-					for(var i=0; i<nodes.length; i++){
-						modelId[i] = nodes[i].modelId;
-					}
-					if(modelId==""||modelId==null||modelId==undefined){
-						<@ms.notify msg= "请选择功能模块!" type= "warning"/>
-						$("#save").removeAttr("disabled");
-						return;
-					}
-					var URL = "${managerPath}/role/<#if flag == true>save<#else>update</#if>.do";
-					$.ajax({
-					   type: "post",
-					   dataType: "json",
-					   url:  URL,
-					   data: $("#saveRoleFrom").serialize() + "&modelId=" + modelId,
-					   beforeSend:function(){
-					   		$("#save").attr("disabled",true);
-					   },
-					   success: function(msg){
-					     	if(msg.result){
-					     		<#if flag == true>
-					     			<@ms.notify msg= "保存成功" type= "success" />
-					     		<#else>
-					     			<@ms.notify msg= "更新成功" type= "warning" />
-					     		</#if>
-					   			location.href = "${managerPath}/role/queryList.do";
-					    	} else {
-					    	    $('.ms-notifications').offset({top:43}).notify({
-					    			type:'warning',
-					    			message: { text:msg.resultMsg }
-					 			}).show();	
-					    	}
-					    	$("#save").removeAttr("disabled");
-					   },error: function(){
-					   	  	<@ms.notify msg= "操作失败" type= "danger" />
-					   		$("#save").removeAttr("disabled");
-					   	  	location.href = "${managerPath}/role/queryList.do";
-					   }
-					});
-				}
-			});
-		});	
-		
-		
-		
-	</script>

+ 0 - 177
src/main/webapp/WEB-INF/manager/role/role_list.ftl

@@ -1,177 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<#include "/include/meta.ftl"/>
-	<#include "/include/macro.ftl"/>
-<style>
-
-</style>
-</head>
-<body>
-	<@ms.content>
-		<@ms.contentBody>
-			<@ms.contentNav title="角色管理">
-				<@ms.panelNavBtnGroup>
-					<@ms.panelNavBtnAdd  id="totalAdd"/>
-					<@ms.panelNavBtnDel  id="totalDelete"/>
-				</@ms.panelNavBtnGroup>
-			</@ms.contentNav>
-			<@ms.contentPanel>
-					<@ms.table head=['<input type="checkbox" id="allCheck"/>,10','编号,50','角色名称']>
-						<#if listRole?has_content>
-		           			<#list listRole as role>
-					          <tr>
-					            <td>
-						          	<#if role.roleId!=managerRoleId>
-		  								<input type="checkbox" name="ids" value="${role.roleId?c?default(0)}">
-						            </#if>
-					            </td>
-					            <input type="hidden" name="${role.roleId?c?default(0)}" />
-					            <td>${role.roleId?c?default(0)}</td>
-			            		<td><a href="${managerPath}/role/${role.roleId}/edit.do" target="_self">${role.roleName?default("匿名")}</a></td>
-					          </tr>
-				           </#list>
-						<#else>
-		           			<tr>
-					            <td colspan="4" class="text-center">
-					            	<a href="${managerPath}/role/add.do"><@ms.nodata/></a>
-								</td>
-				          	</tr>
-		           		</#if>
-					</@ms.table>	
-					<@showPage page=page/>
-			</@ms.contentPanel>
-		</@ms.contentBody>
-		<!--=================模态框部分开始=================-->
-		<!--删除的模态框开始-->
-		<@ms.modal modalName="delete" title="删除角色">
-			 <@ms.modalBody>
-				确定删除该角色吗?
-		     </@ms.modalBody>
-		     <@ms.modalButton>
-	    		<@ms.button value="返回" id="closeDelete"/>  
-	 			<@ms.button class="btn btn-danger" id="deleteButton" value="删除"/>  
-	 		 </@ms.modalButton>
-		</@ms.modal>
-		<!--删除的模态框结束-->
-		<!--多选删除的模态框开始-->
-		<@ms.modal modalName="deleteAll" title="多选删除角色">
-			 <@ms.modalBody>
-				您确定删除您所勾选的角色么?
-		     </@ms.modalBody>
-		     <@ms.modalButton>
-	    		<@ms.button value="返回" id="closeAllDelete"/>  
-	 			<@ms.button class="btn btn-danger" id="deleteButtonAll" value="删除"/>  
-	 		 </@ms.modalButton>
-		</@ms.modal>
-		<!--多选删除的模态框结束-->
-		<!--=================模态框部分结束=================-->
-	</@ms.content>
-	
-	<script type="text/javascript">	
-		
-		//触发模态框事件或者是模态框中按钮的事件
-		$(function(){
-				var roleId;
-				//删除角色
-				$(".del-btn").on("click",function(){
-					roleId = $(this).attr("data-id");
-					$(".delete").modal();
-				});
-		
-				$("#deleteButton").click(function(){
-					deleteRole(roleId);
-				});
-				
-				$("#closeDelete").click(function(){
-					$(".delete").modal("hide");
-				});
-				
-				$("#totalDelete").click(function(){
-					$(".deleteAll").modal();
-				});
-				$("#closeAllDelete").click(function(){
-					$(".deleteAll").modal("hide");
-				});
-				
-				
-				
-				//全选
-			   	$("#allCheck").on("click",function(){   
-					if(this.checked){   
-						$("input[name='ids']").each(function(){this.checked=true;});
-					}else{   
-						$("input[name='ids']").each(function(){this.checked=false;});   
-					}   
-				}); 
-				
-				//批量删除
-				$("#deleteButtonAll").on("click",function(){
-					batchDelete();
-				});
-		});
-	
-		//删除角色
-		function deleteRole(roleId){
-			//拼接ajax地址
-			var URL="${managerPath}/role/"+roleId+"/delete.do";
-			$("#deleteButtonAll").text("删除中");
-			$("#deleteButtonAll").attr("disabled",true);
-			$(this).request({url:URL,data:"roleId=" + roleId,type:"json",method:"post",func:function(msg) {
-				//回调处理方式
-				if(msg != 0) {
-			    	$("input[name="+roleId+"]").parent().remove();
-		    		<@ms.notify msg= "删除角色成功!" type= "success" />
-		    		if($("tbody tr").length==0 && msg != 1){
-		    			location.href = base+"${baseManager}/role/queryList.do?pageNo="+(msg-1);
-					}else{
-						location.href = base+"${baseManager}/role/queryList.do?pageNo="+msg;
-					}
-		    	} else {
-		    		<@ms.notify msg= "删除失败" type= "danger"/>
-		    	}
-		    	location.reload();
-			}});
-		}
-		
-		//批量删除角色
-		function batchDelete(){
-			var count = 0;
-			var ids = $("input[name='ids']").serialize();
-			$("input[name='ids']").each(function(){
-				if(this.checked==true){
-					count++;
-				}
-			});	
-			if(ids.length != 0) {
-				var URL= "${managerPath}/role/allDelete.do";
-				$("#deleteButtonAll").text("删除中");
-				$("#deleteButtonAll").attr("disabled",true);
-				$(this).request({url:URL,data:ids,type:"json",method:"post",func:function(msg) {
-                	if(msg != 0) {
-			   			<@ms.notify msg= "批量删除成功" type= "success" />
-			   			if($("tbody tr").length == count && msg != 1){
-		    				location.href = base+"${baseManager}/role/queryList.do?pageNo="+(msg-1);
-						}else{
-							location.href = base+"${baseManager}/role/queryList.do?pageNo="+msg;
-						}
-			   		} else {
-			    		<@ms.notify msg= "删除角色失败" type= "danger"/>
-			    		$("#deleteButtonAll").text("删除");
-						$("#deleteButtonAll").attr("disabled",false);
-						$(".deleteAll").modal("hide");
-			    	}
-				}});
-			 } else {
-				<@ms.notify msg= "删除失败,请先选择管理员" type= "warning" />
-				$(".deleteAll").modal("hide");
-			 }
-		}
-		
-		$("#totalAdd").click(function(){
-			location.href = "${managerPath}/role/add.do"
-		});
-	</script>
-	
-</body>
-</html>

+ 0 - 41
src/main/webapp/WEB-INF/manager/template/template_edit_file.ftl

@@ -1,41 +0,0 @@
-	<@ms.html5>
-		<@ms.nav title="编辑模版文件" back=true>
-			<@ms.savebutton  id="update" value="修改"/>
-		</@ms.nav>
-		<@ms.panel>		
-			<@ms.form name="form"  id="editFileForm">
-				<!--文件名称-->
-				<@ms.text label="文件名称" value="${name?default('')}" readonly="readonly"/>
-				<@ms.hidden value="${fileName}" name="fileName" />
-				<!--文件内容-->
-				<@ms.textarea name="fileContent" label="文件内容"   wrap="Soft" rows="21"  size="" value="${fileContent}"/>
-				<@ms.hidden id="fileName" value="${fileName}" />
-				<@ms.hidden id="fileNamePrefix" value="${fileNamePrefix}" />		
-    		</@ms.form>
-		</@ms.panel>
-	</@ms.html5> 
-	<script type="text/javascript">		
-		$(function () {	
-			//修改文件
-			$("#update").on("click",function(){
-				var formData = $("#editFileForm").serialize();
-				var URL=base+"${baseManager}/template/writeFileContent.do"
-				var oldFileName = $("#fileName").val();
-				var fileNamePrefix = $("#fileNamePrefix").val();
-				$(this).text("修改中");
-				$(this).attr("disabled",true);
-				$(this).request({url:URL,type:"json",method:"post",data:formData+"&oldFileName="+oldFileName+"&fileNamePrefix="+fileNamePrefix,func:function(msg) {
-					//回调处理方式
-					if(msg.result){
-			    		<@ms.notify msg= "修改模版文件成功" type= "success" />
-			    	} else {
-			    		<@ms.notify msg= "修改模版文件失败" type= "warning" />
-			   	  	}
-			   	  	var fileNameUrl = $(".fileNamePrefix").val();
-			   	  	$("#update").text("修改");
-					$("#update").attr("disabled",false);
-				}});
-			});
-		});
-	</script>
-

+ 0 - 152
src/main/webapp/WEB-INF/manager/template/template_file_list.ftl

@@ -1,152 +0,0 @@
-<@ms.html5>
-	<@ms.nav title="文件列表" back=true></@ms.nav>
-	<@ms.panel>
-			<@shiro.hasPermission name="template:upload"><@ms.uploadFile uploadFloderPath="${uploadFileUrl}" path="" inputName="file" size="20" filetype="*.htm;*.html;*.jpg;*.gif;*.png;*.css;*.js;*.ico;*.swf;*.less" msg="建议上传5M以下htm/html/css/js/jpg/gif/png/swf文件"  maxSize="5" callBack="refresh" isRename="false"/></@shiro.hasPermission> 
-			<@ms.table head=['<th class="text-center">图标</th>','模板名称',"<th style='width:20%;text-align:center'>类型</th>","<th class='text-center' style='width:10%;'>操作</th>"]>
-				<#if fileNameList?has_content>
-	           		<#list fileNameList as fileName>
-			        	<tr> 
-				            <td style="width:10%" class="pic text-center"></td>
-				            <td style="width:35%" class="name">${fileName?replace("\\","/")}</td>
-				            <td class="text-center type"></td>
-				            <td style="width:10%;text-align:center">	
-				            	<@shiro.hasPermission name="template:del">	        
-					        	<a class="btn btn-xs tooltips deleteIcon" data-toggle="tooltip" data-title="${fileName?replace("\\","/")}" data-original-title="删除">
-			                        <i class="glyphicon glyphicon-trash" style="color:#428BCA"></i>
-			                    </a>
-					    		</@shiro.hasPermission> 
-		                    	<@shiro.hasPermission name="template:update">	        
-					        	 <a class="btn btn-xs tooltips editFileBtn" data-toggle="tooltip" data-title="templets/${websiteId}/${fileName?replace("\\","/")}" data-original-title="编辑">
-		                     		<i class="glyphicon glyphicon-pencil" style="color:#428BCA"></i>
-		                    	</a>
-					    		</@shiro.hasPermission> 
-			                   			                    	
-							</td>
-				        </tr>
-		        	</#list>	  
-	        	<#else>         	
-	           		<tr>
-			            <td colspan="5" class="text-left">
-			            	<@ms.nodata/>
-						</td>
-		          	</tr>
-				</#if>
-			</@ms.table>
-	</@ms.panel>
-</@ms.html5>	
-	<!--=================模态框部分开始=================-->
-	<@ms.modal modalName="delete" title="删除评论">
-		 <@ms.modalBody>
-			确定删除该模板吗?
-	     </@ms.modalBody>
-	     <@ms.modalButton>
-    		<@ms.button value="返回" id="closeDelete"/>  
- 			<@ms.button class="btn btn-danger" id="deleteButton" value="删除"/>  
- 		 </@ms.modalButton>
-	</@ms.modal>
-	<!--=================模态框部分结束=================-->
-	
-	<script type="text/javascript">
-		var fileName;
-		var isSuccess = false;
-		var fileUrl;
-		var skinFolderName = "${uploadFileUrl?replace("\\","/")}";
-		
-	   var interval;  
-       function refresh(e){
-        <@ms.notify msg= "上传成功!" type= "success" />
-       	location.reload();
-	   }
-       function chat() {  
-       	  	  var temp = $(".deleteIcon").attr("data-title");
-       	  	  if(temp == null || temp == ""){
-       	  	  	temp = $(".editFileBtn").attr("data-title");
-       	  	  }
-       	  	  if(temp != null && temp != ""){
-       	  	  	temp = temp.substring(0,temp.lastIndexOf("/"));
-       	  	  } else {
-       	  	  	temp = skinFolderName.substring(skinFolderName.indexOf("/"));
-       	  	  	temp = temp.substring(temp.indexOf("/"));
-       	  	  }
-       	  	  //若上传的为zip压缩文件则直接解压
-       	  	  if($("#file").val().substring($("#file").val().lastIndexOf(".")+1) == "zip"){
-	       	  	  $.ajax({
-					   type: "post",
-					   url: base+"${baseManager}/template/unZip.do",
-					   data: "fileUrl=" + fileUrl,
-					   success: function(msg){ 
-					     	location.href=base+"${baseManager}/template/showChildFileAndFolder.do?skinFolderName="+temp;
-					     	fileName = temp + fileUrl.substring(fileUrl.lastIndexOf("/"));
-					     	//deleteTempletsFile();
-					     	$("#deleteButton").click();
-					   }
-				  });
-			  } else {
-	     	 	 location.href=base+"${baseManager}/template/showChildFileAndFolder.do?skinFolderName="+temp;
-	     	  }
-       }
-		
-		//删除模版文件
-		$("#deleteButton").click(function(){
-			
-			var URL = base+"${baseManager}/template/deleteTemplateFile.do";
-			var DATA = "fileName=" + fileName;
-			$(this).request({url:URL,data:DATA,type:"json",method:"post",func:function(msg) {
-					if(msg != 0) {
-						<@ms.notify msg= "删除模版文件成功" type= "success" />
-						location.reload();
-			    	} else {
-			    		<@ms.notify msg= "删除模版文件失败" type= "warning" />
-			   	  	}
-			}});
-			
-		});
-		
-		$(function () {	
-			//加载页面时启动定时器  
-	        
-	        //若为文件夹,则左侧显示文件夹图标;若为文件,则左侧显示文件图标,且稍向右偏移
-	       $(".name").each(function(i){
-	        	var temp = $(this).html();
-	        	if(temp.indexOf(".") >= 0){
-	        		$(this).parent().find(".pic").prepend("<span class='glyphicon glyphicon-file'></span>")
-	        		$(this).parent().find(".type").prepend("文件")
-	        	} else {
-	        		$(this).parent().find(".pic").prepend("<span class='glyphicon glyphicon-folder-close'></span>")
-	        		$(this).parent().find(".type").prepend("文件夹")
-	        		$(this).parent().find(".editFileBtn").attr("data-original-title","打开文件夹");
-	        		$(this).parent().find(".editFileBtn").find(".glyphicon").removeClass("glyphicon-pencil");
-	        		$(this).parent().find(".editFileBtn").find(".glyphicon").addClass("glyphicon-log-in");	        		
-	        		$(this).parent().find(".deleteIcon").remove();
-	        	}
-	        	var suffix = temp.substring(temp.lastIndexOf(".")+1);
-				if(suffix == "jpg" || suffix == "gif" || suffix == "png"){
-					$(this).parent().find(".type").prepend("图像")
-					$(this).parent().find(".editFileBtn").remove();
-				}
-	        });
-
-	        
-	        //编辑模版文件,若为文件夹,则跳至显示子文件和子文件夹action;若为文件,则直接读取代码内容,且跳至模版文件修改页面
-			$("table").delegate(".editFileBtn","click",function(){
-				fileName = $(this).attr("data-title");
-		        if(fileName.indexOf(".") >= 0){
-		        	location.href = base+"${baseManager}/template/readFileContent.do?fileName="+encodeURIComponent(fileName);
-		        } else {
-					location.href=base+"${baseManager}/template/showChildFileAndFolder.do?skinFolderName="+encodeURIComponent(fileName);
-				}
-			});
-	        
-			//点击返回按钮,关闭模态框
-	       $("#closeDelete").click(function() {
-	       		$(".delete").modal("hide");
-	       })
-			
-			//删除模版
-			$("table").delegate(".deleteIcon","click",function(){
-				fileName = $(this).attr("data-title");
-				$(".delete").modal();
-			});	
-		});
-	</script>
-	

+ 0 - 93
src/main/webapp/WEB-INF/manager/template/template_list.ftl

@@ -1,93 +0,0 @@
-<@ms.html5>
-	<@ms.nav title="模板管理"></@ms.nav>
-	<@ms.panel>
-		<@shiro.hasPermission name="template:upload"><@ms.uploadFile path="" uploadFloderPath="templets/${websiteId}/" inputName="websiteStyle" size="10" filetype="*.zip" msg="建议上传30M以下的zip文件,模版名称不能使用中文,zip的压缩方式为:存储"  maxSize="30" callBack="setUrl" isRename="false"/></@shiro.hasPermission> 
-		<@ms.table head=['<th class="text-center">图标</th>','模板名称',"<th style='width:20%;text-align:center'>类型</th>","<th class='text-center' style='width:10%;'>操作</th>"]>
-			<#if folderNameList?has_content>
-           		<#list folderNameList as folderName>
-		        	<tr> 
-			            <td style="width:7%" class="pic text-center"><span class='glyphicon glyphicon-folder-close'></span></td>
-			            <td style="width:35%">${folderName}</td>
-			            <td class="text-center">文件夹</td>
-			            <td style="width:10%;text-align:center">
-			            	<@shiro.hasPermission name="template:del">	
-			            	<a class="btn btn-xs tooltips deleteIcon" data-toggle="tooltip" data-title="${folderName}" data-original-title="删除">
-		                        <i class="glyphicon glyphicon-trash" style="color:#428BCA"></i>
-		                    </a>	
-		                    </@shiro.hasPermission>	
-		                    <@shiro.hasPermission name="template:update">	      
-	                    	<a  class="btn btn-xs tooltips" href="${managerPath}/template/showChildFileAndFolder.do?skinFolderName=templets/${websiteId}/${folderName}" data-toggle="tooltip" target="_self" data-original-title="打开文件夹" >
-	                     		<i class="glyphicon glyphicon-log-in" style="color:#428BCA"></i>
-	                    	</a>	
-	                    	</@shiro.hasPermission>		                    	
-						</td>
-			        </tr>
-	        	</#list>
-           	<#else>		           	
-	           	<tr>
-		            <td colspan="5" class="text-left">
-		            	<@ms.nodata/>
-					</td>
-	          	</tr>
-          	</#if>
-		</@ms.table>		
-	</@ms.panel>
-</@ms.html5>
-	<!--=================模态框部分开始=================-->
-	<@ms.modal modalName="delete" title="删除模板">
-		 <@ms.modalBody>
-			确定删除该模板吗?
-	     </@ms.modalBody>
-	     <@ms.modalButton>
-    		<@ms.button value="返回" id="closeDelete"/>  
- 			<@ms.button class="btn btn-danger" id="deleteButton" value="删除"/>  
- 		 </@ms.modalButton>
-	</@ms.modal>
-	<!--=================模态框部分结束=================-->
-	
-	<script type="text/javascript">
-	   var name;
-	   var fileUrl;
-       function setUrl(e){
-       		fileUrl = e;
-           	 $.ajax({
-				   type: "post",
-				   url: base+"${baseManager}/template/unZip.do",
-				   data: "fileUrl=" + fileUrl,
-				   success: function(msg){ 
-				   		<@ms.notify msg= "模版上传成功!" type= "success" />
-				     	location.href=base+"${baseManager}/template/queryTemplateSkin.do"
-				   }
-			  });            	   
-	   	} 
-       
-       	//点击返回按钮,关闭模态框
-       	$("#closeDelete").click(function() {
-       		$(".delete").modal("hide");
-       	})
-       
-       	//点击删除按钮进行删除模版
-		$("#deleteButton").click(function(){
-			var URL = base+"${baseManager}/template/delete.do";
-			var DATA = "fileName=" + name;
-			$(this).attr("disabled",true);
-			$(this).text("删除中");
-			$(this).request({url:URL,data:DATA,type:"json",method:"post",func:function(msg) {
-				if(msg){
-			      	<@ms.notify msg= "删除模版成功" type= "success" />
-			      	location.href=base+"${baseManager}/template/queryTemplateSkin.do"
-			      } else {
-			      	<@ms.notify msg= "删除模版失败" type= "warning" />
-			      	$("#deleteButton").attr("disabled",false);
-					$("#deleteButton").text("删除");
-			      }
-			}});
-			
-		});
-		
-       	//删除模版
-		$("table").delegate(".deleteIcon","click",function(){
-			name = $(this).attr("data-title");
-			$(".delete").modal();
-		});	   
-	</script>