Selaa lähdekoodia

新增广告和职位分类

lishuwen79 6 vuotta sitten
vanhempi
commit
8ebfa577d8
38 muutettua tiedostoa jossa 828 lisäystä ja 592 poistoa
  1. 15 0
      src/main/java/com/lsw/Application.java
  2. 36 7
      src/main/java/com/lsw/commons/utils/ImageZipUtil.java
  3. 13 1
      src/main/java/com/lsw/controller/admin/system/upload/UploadController.java
  4. 87 0
      src/main/java/com/lsw/controller/admin/work/banner/BannerController.java
  5. 74 0
      src/main/java/com/lsw/controller/admin/work/position/PositionController.java
  6. 12 0
      src/main/java/com/lsw/controller/admin/work/position/PositionValidator.java
  7. 30 0
      src/main/java/com/lsw/model/Banner.java
  8. 11 0
      src/main/java/com/lsw/model/NewsColumn.java
  9. 25 0
      src/main/java/com/lsw/model/Position.java
  10. 3 0
      src/main/java/com/lsw/model/_MappingKit.java
  11. 68 0
      src/main/java/com/lsw/model/base/BaseBanner.java
  12. 52 0
      src/main/java/com/lsw/model/base/BaseNewsColumn.java
  13. 44 0
      src/main/java/com/lsw/model/base/BasePosition.java
  14. 4 0
      src/main/java/com/lsw/route/AdminRoute.java
  15. 11 0
      src/main/webapp/WEB-INF/view/admin/common/js_include.html
  16. 1 1
      src/main/webapp/WEB-INF/view/admin/system/index/index.html
  17. 0 3
      src/main/webapp/WEB-INF/view/admin/system/log/login/list.html
  18. 0 3
      src/main/webapp/WEB-INF/view/admin/system/log/operation/list.html
  19. 0 77
      src/main/webapp/WEB-INF/view/admin/work/apply/form.html
  20. 0 61
      src/main/webapp/WEB-INF/view/admin/work/apply/list.html
  21. 134 0
      src/main/webapp/WEB-INF/view/admin/work/banner/form.html
  22. 64 0
      src/main/webapp/WEB-INF/view/admin/work/banner/list.html
  23. 0 61
      src/main/webapp/WEB-INF/view/admin/work/constant/form.html
  24. 0 64
      src/main/webapp/WEB-INF/view/admin/work/constant/list.html
  25. 44 0
      src/main/webapp/WEB-INF/view/admin/work/position/form.html
  26. 62 0
      src/main/webapp/WEB-INF/view/admin/work/position/list.html
  27. 0 61
      src/main/webapp/WEB-INF/view/admin/work/process/choice.html
  28. 0 98
      src/main/webapp/WEB-INF/view/admin/work/process/form.html
  29. 0 63
      src/main/webapp/WEB-INF/view/admin/work/process/list.html
  30. 0 88
      src/main/webapp/WEB-INF/view/admin/work/process/look.html
  31. 16 2
      src/main/webapp/static/js/common.js
  32. 8 0
      src/main/webapp/static/third-party/cropper/cropper.min.css
  33. 9 0
      src/main/webapp/static/third-party/cropper/cropper.min.js
  34. BIN
      src/main/webapp/static/third-party/element-ui/fonts/element-icons.woff
  35. 0 0
      src/main/webapp/static/third-party/element-ui/index.css
  36. 0 0
      src/main/webapp/static/third-party/element-ui/index.js
  37. 5 2
      src/main/webapp/static/ui/css/style.min.css
  38. BIN
      src/main/webapp/static/ui/img/icon_p.png

+ 15 - 0
src/main/java/com/lsw/Application.java

@@ -26,6 +26,9 @@ import com.lsw.shiro.ext.ShiroInterceptor;
 import com.lsw.shiro.ext.ShiroPlugin;
 import com.lsw.shiro.tag.ShiroTag;
 
+import javax.servlet.ServletContext;
+import java.lang.reflect.Method;
+
 /**
  * @author 李书文
  * @description 应用程序入口
@@ -113,6 +116,18 @@ public class Application extends JFinalConfig {
         ac.setEncryptMessage(PropKit.getBoolean("encryptMessage", false));
         ac.setEncodingAesKey(PropKit.get("encodingAesKey", "setting it in config file"));
         ApiConfigKit.putApiConfig(ac);
+        //解决jetty传输大小限制
+        if (JFinal.me().getServletContext().getClass().getName().equals("org.eclipse.jetty.webapp.WebAppContext$Context")) {
+            try {
+                ServletContext ctx = JFinal.me().getServletContext();
+                Method getContextHandler = ctx.getClass().getMethod("getContextHandler", null);
+                Object handler = getContextHandler.invoke(ctx, null);
+                Method setMax = handler.getClass().getMethod("setMaxFormContentSize", int.class);
+                setMax.invoke(handler, 1024 * 1024 * 100);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
         welcome();
     }
 

+ 36 - 7
src/main/java/com/lsw/commons/utils/ImageZipUtil.java

@@ -1,14 +1,11 @@
 package com.lsw.commons.utils;
 
-import java.awt.Color;
-import java.awt.Graphics2D;
-import java.awt.Image;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
+import sun.misc.BASE64Decoder;
 
 import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.*;
 
 public class ImageZipUtil {
 	/**
@@ -167,4 +164,36 @@ public class ImageZipUtil {
 		}
 		return newImage;
 	}
+	/**
+	 * 把base64图片数据转为本地图片
+	 *
+	 * @param base64str
+	 * @param savepath
+	 * @throws IOException
+	 */
+	public static boolean GenerateImage(String base64str, String savepath) {   //对字节数组字符串进行Base64解码并生成图片
+		if (base64str == null) //图像数据为空
+			return false;
+		// System.out.println("开始解码");
+		BASE64Decoder decoder = new BASE64Decoder();
+		try {
+			//Base64解码
+			byte[] b = decoder.decodeBuffer(base64str);
+			//  System.out.println("解码完成");
+			for (int i = 0; i < b.length; ++i) {
+				if (b[i] < 0) {//调整异常数据
+					b[i] += 256;
+				}
+			}
+			// System.out.println("开始生成图片");
+			//生成jpeg图片
+			OutputStream out = new FileOutputStream(savepath);
+			out.write(b);
+			out.flush();
+			out.close();
+			return true;
+		} catch (Exception e) {
+			return false;
+		}
+	}
 }

+ 13 - 1
src/main/java/com/lsw/controller/admin/system/upload/UploadController.java

@@ -29,7 +29,19 @@ public class UploadController extends BaseController {
             uploadImage();
         }
     }
-
+    /**
+     * 上传data:image格式的图片
+     */
+    public void uploadData() {
+        String imgName = System.currentTimeMillis() + new Random().nextInt(10000) + ".jpg";
+        try {
+            String oldImage = PathKit.getWebRootPath() + "/upload" + Path + imgName;
+            ImageZipUtil.GenerateImage(getPara("dataImage").replace("data:image/png;base64,", ""), oldImage);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        renderJson(Ret.by("url", "/upload" + Path + imgName));
+    }
     public void uploadImage() {
         UploadFile uf = null;
         String imgName = System.currentTimeMillis() + new Random().nextInt(10000) + ".jpg";

+ 87 - 0
src/main/java/com/lsw/controller/admin/work/banner/BannerController.java

@@ -0,0 +1,87 @@
+package com.lsw.controller.admin.work.banner;
+
+import com.jfinal.json.FastJson;
+import com.jfinal.kit.JsonKit;
+import com.jfinal.plugin.activerecord.Db;
+import com.jfinal.plugin.activerecord.Page;
+import com.lsw.base.BaseController;
+import com.lsw.model.Banner;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+import java.util.Date;
+
+/**
+ * @author 李书文
+ * @description 轮播管理
+ * @time 2017-8-23
+ */
+public class BannerController extends BaseController {
+
+    /**
+     * 管理页面
+     */
+    @RequiresPermissions("banner:list")
+    public void list() {
+        render("list.html");
+    }
+
+    /**
+     * 轮播json数据
+     */
+    public void jsonList() {
+        Page<Banner> pgaeList = Banner.dao.jsonList(getPage(), getRows(), getPara("sidx","mView"), getSord());
+        renderJson(getPage(pgaeList));
+    }
+
+    /**
+     * 视图页面
+     */
+    public void view() {
+        String op = getPara("op", "add");
+        if (op.equals("edit")) {
+            Banner banner = Banner.dao.findById(getParaToInt("id"));
+            setAttr("banner", JsonKit.toJson(banner));
+        } else {
+            setAttr("banner", "{}");
+        }
+        setAttr("op", op);
+        render("form.html");
+    }
+
+    /**
+     * 添加轮播
+     */
+    @RequiresPermissions("banner:add")
+    public void add() {
+        Banner banner = FastJson.getJson().parse(getPara("banner"), Banner.class);
+        banner.setMTime(new Date());
+        banner.save();
+        renderSuccess();
+    }
+
+    /**
+     * 编辑轮播
+     */
+    @RequiresPermissions("banner:edit")
+    public void edit() {
+        Banner banner = FastJson.getJson().parse(getPara("banner"), Banner.class);
+        banner.setMTime(new Date());
+        banner.setMView(banner.getMView());
+        banner.update();
+        renderSuccess();
+    }
+
+    /**
+     * 删除轮播
+     */
+    @RequiresPermissions("banner:delete")
+    public void delete() {
+        String ids = getPara("ids");
+        int row = Db.update("delete from tb_banner where id in(" + ids + ")");
+        if (row > 0) {
+            renderSuccess();
+        } else {
+            renderError("删除失败");
+        }
+    }
+}

+ 74 - 0
src/main/java/com/lsw/controller/admin/work/position/PositionController.java

@@ -0,0 +1,74 @@
+package com.lsw.controller.admin.work.position;
+
+import com.jfinal.aop.Before;
+import com.jfinal.plugin.activerecord.Db;
+import com.jfinal.plugin.activerecord.Page;
+import com.jfinal.plugin.activerecord.tx.Tx;
+import com.lsw.base.BaseController;
+import com.lsw.model.Position;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+public class PositionController extends BaseController {
+
+    /**
+     * 列表
+     */
+    @RequiresPermissions("position:list")
+    public void list() {
+        render("list.html");
+    }
+
+    public void jsonList() {
+        Page<Position> pgaeList = Position.dao.jsonList(getPage(), getRows(), getPara("name"), getSidx(), getSord());
+        renderJson(getPage(pgaeList));
+    }
+
+    /**
+     * 视图页面
+     */
+    public void view() {
+        String op = getPara("op");
+        if (op.equals("edit")) {
+            Position position = Position.dao.findById(getPara("id"));
+            setAttr("position", position);
+        }
+        setAttr("op", op);
+        render("form.html");
+    }
+
+    /**
+     * 录入
+     */
+    @RequiresPermissions("position:add")
+    @Before(PositionValidator.class)
+    public void add() {
+        Position position = getModel(Position.class, "", true);
+        position.save();
+        renderSuccess();
+    }
+
+
+    /**
+     * 编辑
+     */
+    @RequiresPermissions("position:edit")
+    @Before(PositionValidator.class)
+    public void edit() {
+        Position position = getModel(Position.class, "", true);
+        position.update();
+        renderSuccess();
+    }
+
+    /**
+     * 删除
+     */
+    @RequiresPermissions("position:delete")
+    @Before(Tx.class)
+    public void delete() {
+        String ids = getPara("ids");
+        Db.update("delete from tb_position where id in(" + ids + ")");
+        renderSuccess();
+    }
+
+
+}

+ 12 - 0
src/main/java/com/lsw/controller/admin/work/position/PositionValidator.java

@@ -0,0 +1,12 @@
+package com.lsw.controller.admin.work.position;
+
+import com.jfinal.core.Controller;
+import com.lsw.base.BaseValidator;
+
+public class PositionValidator extends BaseValidator {
+
+    @Override
+    protected void validate(Controller c) {
+        validateRequiredString("mName", "msg", "不能为空");
+    }
+}

+ 30 - 0
src/main/java/com/lsw/model/Banner.java

@@ -0,0 +1,30 @@
+package com.lsw.model;
+
+import com.jfinal.plugin.activerecord.Page;
+import com.lsw.model.base.BaseBanner;
+
+/**
+ * Generated by JFinal.
+ */
+@SuppressWarnings("serial")
+public class Banner extends BaseBanner<Banner> {
+	public static final Banner dao = new Banner().dao();
+
+	/**
+	 * 分页查询
+	 *
+	 * @param page 当前页
+	 * @param row  分页条数
+	 * @param sidx 排序字段
+	 * @param sord 排序方式 asc|desc
+	 * @return
+	 */
+	public Page<Banner> jsonList(int page, int row, String sidx, String sord) {
+		String select = "SELECT b.*";
+		StringBuilder sb = new StringBuilder();
+		sb.append(" FROM tb_banner b");
+		sb.append(" WHERE 1=1");
+		sb.append(" ORDER BY b." + sidx + " " + sord);
+		return dao.paginate(page, row, select, sb.toString());
+	}
+}

+ 11 - 0
src/main/java/com/lsw/model/NewsColumn.java

@@ -0,0 +1,11 @@
+package com.lsw.model;
+
+import com.lsw.model.base.BaseNewsColumn;
+
+/**
+ * Generated by JFinal.
+ */
+@SuppressWarnings("serial")
+public class NewsColumn extends BaseNewsColumn<NewsColumn> {
+	public static final NewsColumn dao = new NewsColumn().dao();
+}

+ 25 - 0
src/main/java/com/lsw/model/Position.java

@@ -0,0 +1,25 @@
+package com.lsw.model;
+
+import com.jfinal.kit.StrKit;
+import com.jfinal.plugin.activerecord.Page;
+import com.lsw.model.base.BasePosition;
+
+/**
+ * Generated by JFinal.
+ */
+@SuppressWarnings("serial")
+public class Position extends BasePosition<Position> {
+    public static final Position dao = new Position().dao();
+
+    public Page<Position> jsonList(int page, int row, String name, String sidx, String sord) {
+        String select = "SELECT e.*";
+        StringBuilder sb = new StringBuilder();
+        sb.append(" FROM tb_position e");
+        sb.append(" WHERE 1=1");
+        if (StrKit.notBlank(name)) {
+            sb.append(" AND e.mName like '%" + name + "%'");
+        }
+        sb.append(" ORDER BY e." + sidx + " " + sord);
+        return dao.paginate(page, row, select, sb.toString());
+    }
+}

+ 3 - 0
src/main/java/com/lsw/model/_MappingKit.java

@@ -27,6 +27,9 @@ public class _MappingKit {
 		arp.addMapping("sys_role", "id", Role.class);
 		arp.addMapping("sys_user", "id", User.class);
 		arp.addMapping("sys_user_role", "id", UserRole.class);
+		arp.addMapping("tb_banner", "id", Banner.class);
+		arp.addMapping("tb_news_column", "id", NewsColumn.class);
+		arp.addMapping("tb_position", "id", Position.class);
 		arp.addMapping("tb_token", "id", Token.class);
 	}
 }

+ 68 - 0
src/main/java/com/lsw/model/base/BaseBanner.java

@@ -0,0 +1,68 @@
+package com.lsw.model.base;
+
+import com.jfinal.plugin.activerecord.Model;
+import com.jfinal.plugin.activerecord.IBean;
+
+/**
+ * Generated by JFinal, do not modify this file.
+ */
+@SuppressWarnings("serial")
+public abstract class BaseBanner<M extends BaseBanner<M>> extends Model<M> implements IBean {
+
+	public void setId(java.lang.Integer id) {
+		set("id", id);
+	}
+
+	public java.lang.Integer getId() {
+		return getInt("id");
+	}
+
+	public void setCover(java.lang.String cover) {
+		set("cover", cover);
+	}
+
+	public java.lang.String getCover() {
+		return getStr("cover");
+	}
+
+	public void setTitle(java.lang.String title) {
+		set("title", title);
+	}
+
+	public java.lang.String getTitle() {
+		return getStr("title");
+	}
+
+	public void setMUrl(java.lang.Integer mUrl) {
+		set("mUrl", mUrl);
+	}
+
+	public java.lang.Integer getMUrl() {
+		return getInt("mUrl");
+	}
+
+	public void setMView(java.lang.Integer mView) {
+		set("mView", mView);
+	}
+
+	public java.lang.Integer getMView() {
+		return getInt("mView");
+	}
+
+	public void setMShow(java.lang.Integer mShow) {
+		set("mShow", mShow);
+	}
+
+	public java.lang.Integer getMShow() {
+		return getInt("mShow");
+	}
+
+	public void setMTime(java.util.Date mTime) {
+		set("mTime", mTime);
+	}
+
+	public java.util.Date getMTime() {
+		return get("mTime");
+	}
+
+}

+ 52 - 0
src/main/java/com/lsw/model/base/BaseNewsColumn.java

@@ -0,0 +1,52 @@
+package com.lsw.model.base;
+
+import com.jfinal.plugin.activerecord.Model;
+import com.jfinal.plugin.activerecord.IBean;
+
+/**
+ * Generated by JFinal, do not modify this file.
+ */
+@SuppressWarnings("serial")
+public abstract class BaseNewsColumn<M extends BaseNewsColumn<M>> extends Model<M> implements IBean {
+
+	public void setId(java.lang.Integer id) {
+		set("id", id);
+	}
+
+	public java.lang.Integer getId() {
+		return getInt("id");
+	}
+
+	public void setMColumnName(java.lang.String mColumnName) {
+		set("mColumnName", mColumnName);
+	}
+
+	public java.lang.String getMColumnName() {
+		return getStr("mColumnName");
+	}
+
+	public void setMView(java.lang.Integer mView) {
+		set("mView", mView);
+	}
+
+	public java.lang.Integer getMView() {
+		return getInt("mView");
+	}
+
+	public void setMShow(java.lang.Integer mShow) {
+		set("mShow", mShow);
+	}
+
+	public java.lang.Integer getMShow() {
+		return getInt("mShow");
+	}
+
+	public void setMDate(java.util.Date mDate) {
+		set("mDate", mDate);
+	}
+
+	public java.util.Date getMDate() {
+		return get("mDate");
+	}
+
+}

+ 44 - 0
src/main/java/com/lsw/model/base/BasePosition.java

@@ -0,0 +1,44 @@
+package com.lsw.model.base;
+
+import com.jfinal.plugin.activerecord.Model;
+import com.jfinal.plugin.activerecord.IBean;
+
+/**
+ * Generated by JFinal, do not modify this file.
+ */
+@SuppressWarnings("serial")
+public abstract class BasePosition<M extends BasePosition<M>> extends Model<M> implements IBean {
+
+	public void setId(java.lang.Integer id) {
+		set("id", id);
+	}
+
+	public java.lang.Integer getId() {
+		return getInt("id");
+	}
+
+	public void setMName(java.lang.String mName) {
+		set("mName", mName);
+	}
+
+	public java.lang.String getMName() {
+		return getStr("mName");
+	}
+
+	public void setMShow(java.lang.Integer mShow) {
+		set("mShow", mShow);
+	}
+
+	public java.lang.Integer getMShow() {
+		return getInt("mShow");
+	}
+
+	public void setMDate(java.util.Date mDate) {
+		set("mDate", mDate);
+	}
+
+	public java.util.Date getMDate() {
+		return get("mDate");
+	}
+
+}

+ 4 - 0
src/main/java/com/lsw/route/AdminRoute.java

@@ -11,6 +11,8 @@ import com.lsw.controller.admin.system.menu.MenuController;
 import com.lsw.controller.admin.system.role.RoleController;
 import com.lsw.controller.admin.system.upload.UploadController;
 import com.lsw.controller.admin.system.user.UserController;
+import com.lsw.controller.admin.work.banner.BannerController;
+import com.lsw.controller.admin.work.position.PositionController;
 import com.lsw.interceptor.LogInterceptor;
 import com.lsw.interceptor.RoleMenuInterceptor;
 
@@ -34,6 +36,8 @@ public class AdminRoute extends Routes {
         add("/admin/file", FileController.class, "/system/file/"); // 文件管理
 
         /***************************************业务相关*****************************************/
+        add("/admin/work/banner",BannerController.class, "/work/banner/"); // 广告管理
+        add("/admin/work/position",PositionController.class, "/work/position/"); // 职位管理
     }
 
 }

+ 11 - 0
src/main/webapp/WEB-INF/view/admin/common/js_include.html

@@ -1,6 +1,7 @@
 #define js()
 <script src="#(path)/static/ui/js/jquery.min.js"></script>
 <script src="#(path)/static/third-party/layer/layer.js"></script>
+<script src="#(path)/static/third-party/layer/extend/layer.ext.js"></script>
 #if(main??false)
 <script src="#(path)/static/ui/js/bootstrap.min.js"></script>
 <script src="#(path)/static/ui/js/plugins/metisMenu/jquery.metisMenu.js"></script>
@@ -47,6 +48,16 @@
 <link href="#(path)/static/third-party/ztree/zTreeStyle.css" rel="stylesheet">
 <script src="#(path)/static/third-party/ztree/jquery.ztree.all-3.5.min.js"></script>
 #end
+#if(element??false)
+<!--element-ui-->
+<link href="#(path)/static/third-party/element-ui/index.css" rel="stylesheet">
+<script src="#(path)/static/third-party/element-ui/index.js"></script>
+#end
+#if(cropper??false)
+<!--图片剪裁-->
+<link href="#(path)/static/third-party/cropper/cropper.min.css" rel="stylesheet">
+<script src="#(path)/static/third-party/cropper/cropper.min.js"></script>
+#end
 #if(valida??false)
 <!--表单验证-->
 <script type="text/javascript" src="#(path)/static/third-party/jquery-validation/1.14.0/jquery.validate.js"></script>

+ 1 - 1
src/main/webapp/WEB-INF/view/admin/system/index/index.html

@@ -1,4 +1,4 @@
-#set(title="智能化电力迁移改造工程管理系统")
+#set(title="党建扶贫系统")
 #@header()
 <body class="fixed-sidebar full-height-layout gray-bg" style="overflow: hidden;font-family: 微软雅黑;">
 <div id="wrapper" class="animated fadeInDown"> 

+ 0 - 3
src/main/webapp/WEB-INF/view/admin/system/log/login/list.html

@@ -1,8 +1,5 @@
 #set(title="登录日志")
 #@header()
-<style>
-    .refresh{margin-top: 0px;}
-</style>
 <body>
 <div class="con">
     <form class="form-inline toolbar">

+ 0 - 3
src/main/webapp/WEB-INF/view/admin/system/log/operation/list.html

@@ -1,8 +1,5 @@
 #set(title="操作日志")
 #@header()
-<style>
-    .refresh{margin-top: 0px;}
-</style>
 <body>
 <div class="con">
     <form class="form-inline toolbar">

+ 0 - 77
src/main/webapp/WEB-INF/view/admin/work/apply/form.html

@@ -1,77 +0,0 @@
-#set(title="添加流程")
-#@header()
-<style>
-    span{cursor: pointer;}
-    ul{list-style: none;overflow: scroll;padding: 0px;}
-    ul li{cursor: pointer;}
-</style>
-<body class="bg">
-<div id="app">
-    <form id="addForm">
-    <input type="hidden" name="id" value="#(constant.id??)">
-    <ul class="steps">
-        <li v-for="(item,index) in step_list" :class="{active:item.steps<#(apply.steps)}">{{item.name}}</li>
-    </ul>
-    <table class="table table-bordered">
-        <tbody>
-        <tr>
-            <td class="l">申请单名称</td>
-            <td>#(apply.name)</td>
-            <td class="l">申请人</td>
-            <td>#(apply.realName)</td>
-            <td class="l">流程类型</td>
-            <td>#(apply.processName)</td>
-        </tr>
-        <tr>
-            <td class="l">当前节点</td>
-            <td>#(now)</td>
-            <td class="l">附件</td>
-            <td>无</td>
-            <td class="l">申请时间</td>
-            <td>#(apply.mDate)</td>
-        </tr>
-        <tr height="300">
-            <td class="l" style="vertical-align: top">内容</td>
-            <td colspan="5" style="vertical-align: top">#(apply.mContent)</td>
-        </tr>
-        </tbody>
-    </table>
-        #if(now!='结束')
-           <button class="btn btn-primary " type="button" @click="op(1)"><i class="fa fa-check"></i>&nbsp;同意</button> &nbsp;&nbsp;&nbsp;
-           <button type="button" class="btn btn-danger " @click="op(2)"><i class="fa fa-times"></i>&nbsp;拒绝</button>
-        #end
- </form>
-   </div>
-</div>
-#set(layer=true,util=true,vue=true)
-#@js()
-<script>
-    var vm = new Vue({
-        el: "#app",
-        data: {
-            step_list:[],
-        },
-        mounted: function () {
-            this.step_list=#(step_list);
-        },
-        methods: {
-            del:function(item){
-                vm.step_list.splice(vm.step_list.indexOf(item),1);
-            },
-            op:function(index){
-                var data={};
-                if(index==1){
-                    data={steps:parseInt('#(apply.steps)')+1,state:0,id:"#(apply.id)"};
-                }else{
-                    data={steps:'#(apply.steps)',state:1,id:"#(apply.id)"};
-                }
-                sendAjax("#(path)/admin/work/apply/#(op)",data,function(res){
-                    parent.$("#jqGrid").trigger("reloadGrid"); //重新载入
-                    closeView();
-                });
-            }
-        }
-    })
-</script>
-</body>
-</html>

+ 0 - 61
src/main/webapp/WEB-INF/view/admin/work/apply/list.html

@@ -1,61 +0,0 @@
-#set(title="申请单")
-#@header()
-<body>
-<div class="con">
-    <div class="toolbar">
-        <!--权限操作按钮-->
-        #@menu(menu_list)
-        <div class="input-group search">
-            <input type="text" id="name" placeholder="输入名称" class="form-control">
-            <span class="input-group-btn"><button type="button" id="search" class="btn btn-primary">搜索</button></span>
-        </div>
-    </div>
-    <div class="mbox">
-        <table id="jqGrid"></table>
-        <div id="jqGridPager"></div>
-    </div>
-</div>
-#set(layer=true,util=true,jgrid=true)
-#@js()
-<script>
-    var colModel = [
-        {label: 'ID', name: 'id', hidden: true},
-        {label: '申请单', name: 'name'},
-        {label: '申请人', name: 'realName'},
-        {label: '内容', name: 'name'},
-        {label: '流程类型', name: 'processName'},
-        {label: '当前节点', name: 'now'},
-        {label: '申请时间', name: 'mDate'},
-
-    ]
-    jgrid('#(path)/admin/work/apply/jsonList', colModel);
-
-    /**
-     * 搜索
-     */
-    $("#search").click(function () {
-        reloadGrid({'name': $("#name").val()});
-    });
-    /**
-     * 操作
-     */
-    function operate(op) {
-        if (op == 'add') {
-            openDialogDiy("添加常量", "#(path)/admin/work/apply/view?op=add", "60%", "84%");
-        }
-        if (op == 'edit') {
-            openDialogDiy("操作", "#(path)/admin/work/apply/view?op=edit&id=" + selectedRow().id+"&now="+ selectedRow().now, "60%", "84%");
-        }
-        if (op == 'delete') {
-            deleteRows("#(path)/admin/work/apply/delete?ids=");
-        }
-    }
-    /**
-     * 选择
-     */
-    $("#selected").change(function(){
-        reloadGrid({'name': $("#name").val(),type:$("#selected").val()});
-    });
-</script>
-</body>
-</html>

+ 134 - 0
src/main/webapp/WEB-INF/view/admin/work/banner/form.html

@@ -0,0 +1,134 @@
+#set(title="添加广告")
+#@header()
+<style>
+    .img{cursor: pointer;max-height:128px;padding: 10px;max-width: 128px;margin-left: -10px;}
+    .mask{position:fixed;width:100%;height:100%;background-color:rgba(0,0,0,0.83);top:0;z-index:6666;overflow: hidden;}
+    #photo{width: 80%;}
+    input[type=file] {height:128px;opacity: 0;width: 128px;cursor: pointer;margin: 0 auto;}
+    .bo{margin:0 auto;width:200px;position:absolute;bottom:0;background-color: #2f4050;width: 100%;padding: 5px;}
+    .pull-right{cursor: pointer;}
+    [v-cloak] {display: none;}
+</style>
+<body class="bg">
+<div id="app" v-cloak>
+    <form id="addForm" method="post">
+        <table class="table">
+            <tbody>
+            <tr>
+                <td width="150">选择图片 <span>*</span></td>
+                <td colspan="3">
+                    <img class="img" alt="添加封面" :src="mCove==''?'#(path)/static/ui/img/icon_p.png':mCove">
+                    <input type="file" accept="image/*" accept='image/*' v-on:change="change($event,0)" style="margin-top:-128px;width:70%;margin-left: -30px;">
+                    <span class="pull-right" @click="review">照片预览</span>
+                </td>
+            </tr>
+            <tr>
+                <td>显示次序</td>
+                <td><input type="number" class="form-control" v-model="item.mView" min="1">
+                    <span class="help-block m-b-none"><i class="fa fa-info-circle"></i> 按照数字从小到大显示第多少张</span>
+                </td>
+            </tr>
+            <tr>
+                <td>是否显示</td>
+                <td>
+                    <el-switch
+                            v-model="item.mShow"
+                            active-color="#13ce66"
+                            inactive-color="#ff4949">
+                    </el-switch>
+                </td>
+            </tr>
+            </tbody>
+        </table>
+        <input type="hidden" name="dataImage" v-model="dataImage"/>
+    </form>
+    <div class="mask" v-show="show">
+        <img id="photo">
+        <div class="bo">
+            <div style="text-align: center;">
+                <button class="btn btn-primary" @click="save()">裁剪</button>
+                <button class="btn btn-danger" style="margin-left: 30px;" @click="cancel()">取消</button>
+            </div>
+        </div>
+    </div>
+</div>
+#set(layer=true,util=true,vue=true,cropper=true,element=true)
+#@op()
+#@js()
+<script>
+    var cropper = null;
+    var vm = new Vue({
+        el: "#app",
+        data: {
+            item: {cover: '',mView: 1,mShow:true},
+            show: false,
+            mCove: '',
+            dataImage: '',
+            dialogVisible:false
+        },
+        mounted: function () {
+            if ('#(op)' == 'edit') {
+                this.item =#(banner);
+                this.mCove = this.item.cover;
+                this.item.mShow=this.item.mShow==0?true:false;
+            }
+        },
+        methods: {
+            //创建列表
+            change: function (e, index) {
+                var objUrl = vm.getUri(e.currentTarget.files[0]);
+                if (objUrl == null) {
+                    return;
+                }
+                vm.show = true;
+                vm.index = index;
+                document.getElementById("photo").src = objUrl;
+                cropper = getClipper(21 / 9, objUrl, 'photo');
+            },
+            getUri: function (file) {
+                var url = null;
+                if (window.createObjectURL != undefined) { // basic
+                    url = window.createObjectURL(file);
+                } else if (window.URL != undefined) { // mozilla(firefox)
+                    url = window.URL.createObjectURL(file);
+                } else if (window.webkitURL != undefined) { // webkit or chrome
+                    url = window.webkitURL.createObjectURL(file);
+                }
+                return url;
+            },
+            //预览
+            review: function () {
+                var json={"id":123,"start":0,"data":[{"alt":"照片预览","pid":666,"src":vm.item.cover,"thumb":""}]}
+                layer.photos({photos:json,anim: 2});
+            },
+            //保存图像
+            save: function () {
+                vm.show = false;
+                var croppedCanvas = cropper.getCroppedCanvas({height: 480});
+                var dataUrl = croppedCanvas.toDataURL();
+                sendAjax("#(path)/admin/upload/uploadData", {dataImage: dataUrl}, function (res) {
+                    vm.mCove = dataUrl;
+                    vm.item.cover = res.url;
+                    cancelLoding();
+                })
+                cropper.destroy();
+            },
+            //取消剪裁
+            cancel: function () {
+                vm.show = false;
+                cropper.destroy();
+            }
+        }
+    })
+    $("#add").click(function () {
+        if (vm.item.cover == '') {
+            showToastError("请上传一个图片");
+            return
+        }
+        vm.item.mShow=vm.item.mShow==true?0:1;
+        var data = {banner: JSON.stringify(vm.item)};
+        ajaxSubmit("#(path)/admin/work/banner/#(op)", data);
+    });
+</script>
+</body>
+</html>

+ 64 - 0
src/main/webapp/WEB-INF/view/admin/work/banner/list.html

@@ -0,0 +1,64 @@
+#set(title="广告管理")
+#@header()
+<body>
+<div class="con">
+    <div class="toolbar">
+        <!--权限操作按钮-->
+        #@menu(menu_list)
+        <a class="pull-right refresh" href="javascript:location.replace(location.href);"><i class="fa fa-history"></i>&nbsp;刷新</a>
+    </div>
+    <div class="mbox">
+        <table id="jqGrid"></table>
+        <div id="jqGridPager"></div>
+    </div>
+</div>
+#set(layer=true,util=true,jgrid=true)
+#@js()
+<script>
+    var colModel=[
+        { label: 'ID', name: 'id',hidden : true},
+        { label: '广告图片', name: 'cover',formatter:cover,width:90},
+        { label: '显示次序', name: 'mView',width:80},
+        { label: '是否显示', name: 'mShow',width:100,formatter: mShow},
+        { label: '添加时间', name: 'mTime',width:100},]
+    jgrid('#(path)/admin/work/banner/jsonList', colModel,{sort:'asc'});
+    /**
+     * 封面显示
+     */
+    function cover(cellvalue, options, rowObject){
+        return '<img class="img-rounded" onclick="view(this)" id="#(path)'+cellvalue+'" style="width:100px;height:65px" alt="没有封面" src="#(path)'+cellvalue+'">';
+    }
+    /**
+     *查看照片
+     */
+    function view(str){
+        var json={"id":123,"start":0,"data":[{"alt":"照片查看","pid":666,"src":str.id,"thumb":""}]}
+        layer.photos({photos:json,anim: 2});
+    }
+    /**
+     *是否显示
+     */
+    function mShow(cellvalue, options, rowObject) {
+        if (cellvalue == '0') {
+            return '<span class="label label-sm label-info">显示</span>';
+        } else {
+            return '<span class="label label-sm label-danger">不显示</span>';
+        }
+    }
+    /**
+     * 操作
+     */
+    function operate(op) {
+        if (op == 'add') {
+            openDialogDiy("添加广告", "#(path)/admin/work/banner/view?op=add", "60%", "80%");
+        }
+        if (op == 'edit') {
+            openDialogDiy("编辑新闻轮播", "#(path)/admin/work/banner/view?op=edit&id=" + selectedRow().id, "60%", "80%");
+        }
+        if (op == 'delete') {
+            deleteRows("#(path)/admin/work/banner/delete?ids=");
+        }
+    }
+</script>
+</body>
+</html>

+ 0 - 61
src/main/webapp/WEB-INF/view/admin/work/constant/form.html

@@ -1,61 +0,0 @@
-#set(title="添加角色")
-#@header()
-<body class="bg">
-<form id="addForm" method="post">
-    <input type="hidden" name="id" value="#(constant.id??)">
-    <table class="table">
-        <tbody>
-        <tr>
-            <td>常量类型</td>
-            <td>
-                <select class="form-control m-b" name="type" id="selected">
-                    <option value="1" #(constant.type??==1?'selected':'')>常量</option>
-                    <option value="0" #(constant.type??==0?'selected':'')>平台</option>
-                </select>
-            </td>
-        </tr>
-        <tr>
-            <td>名称</td>
-            <td><input type="text" class="form-control" name="name" placeholder="名称" value="#(constant.name??)"
-                       #(constant.constantName??!=null?'readonly':'')></td>
-        </tr>
-        <tr id="display">
-            <td>所属平台</td>
-            <td>
-                <select class="form-control" name="pId">
-                    #for(c:constant_list)
-                    <option value="#(c.id)" #(constant.pId??==c.id?'selected':'')>#(c.name)</option>
-                    #end
-                </select>
-            </td>
-        </tr>
-        </tbody>
-    </table>
-</form>
-#set(layer=true,util=true,valida=true)
-#@op()
-#@js()
-<script>
-    $("#selected").change(function () {
-        if ($("#selected").val() == 1) {
-            $("#display").show();
-        } else {
-            $("#display").hide();
-        }
-    });
-    var valida = $("#addForm").validate({
-        rules: {
-            name: {
-                required: true
-            }
-        }
-    });
-    $("#add").click(function () {
-        valida.form();
-        if (valida.valid()) {
-            ajaxSubmit("#(path)/admin/work/constant/#(op)", $("#addForm").serialize());
-        }
-    });
-</script>
-</body>
-</html>

+ 0 - 64
src/main/webapp/WEB-INF/view/admin/work/constant/list.html

@@ -1,64 +0,0 @@
-#set(title="平台常量")
-#@header()
-<body>
-<div class="con">
-    <div class="toolbar">
-        <!--权限操作按钮-->
-        #@menu(menu_list)
-        <div class="input-group search">
-            <div class="input-group-btn">
-                <!--查询条件-->
-                <select class="form-control" style="width: 120px;" id="selected">
-                    <option value=''>--全部平台--</option>
-                    #for(c:constant_list)
-                    <option value="#(c.id)">#(c.name)</option>
-                    #end
-                </select>
-            </div>
-            <input type="text" id="name" placeholder="输入名称" class="form-control">
-            <span class="input-group-btn"><button type="button" id="search" class="btn btn-primary">搜索</button></span>
-        </div>
-    </div>
-    <div class="mbox">
-        <table id="jqGrid"></table>
-        <div id="jqGridPager"></div>
-    </div>
-</div>
-#set(layer=true,util=true,jgrid=true)
-#@js()
-<script>
-    var colModel = [
-        {label: 'ID', name: 'id', hidden: true},
-        {label: '名称', name: 'name'},
-        {label: '类型', name: 'pId'}]
-    jgrid('#(path)/admin/work/constant/jsonList', colModel);
-
-    /**
-     * 搜索
-     */
-    $("#search").click(function () {
-        reloadGrid({'name': $("#name").val()});
-    });
-    /**
-     * 操作
-     */
-    function operate(op) {
-        if (op == 'add') {
-            openDialogDiy("添加常量", "#(path)/admin/work/constant/view?op=add", "38%", "64%");
-        }
-        if (op == 'edit') {
-            openDialogDiy("编辑常量", "#(path)/admin/work/constant/view?op=edit&id=" + selectedRow().id, "38%", "64%");
-        }
-        if (op == 'delete') {
-            deleteRows("#(path)/admin/work/constant/delete?ids=");
-        }
-    }
-    /**
-     * 选择
-     */
-    $("#selected").change(function(){
-        reloadGrid({'name': $("#name").val(),type:$("#selected").val()});
-    });
-</script>
-</body>
-</html>

+ 44 - 0
src/main/webapp/WEB-INF/view/admin/work/position/form.html

@@ -0,0 +1,44 @@
+#set(title="添加职位")
+#@header()
+<body class="bg">
+        <form  id="addForm" method="post">
+            <input type="hidden"  name="id"  value="#(position.id??)">
+            <table class="table">
+                <tbody>
+                <tr>
+                    <td>职位名称 </td>
+                    <td><input type="text" class="form-control" name="mName" placeholder="职位名称" value="#(position.mName??)"  #(position.positionName??!=null?'readonly':'')></td>
+                </tr>
+                <tr>
+                    <td>启用职位 </td>
+                    <td>
+                        <select class="form-control m-b" name="mShow">
+                            <option value="0" #(position.mShow??==0?'selected':'')>启用</option>
+                            <option value="1" #(position.mShow??==1?'selected':'')>不启用</option>
+                        </select>
+                    </td>
+                </tr>
+                </tbody>
+            </table>
+        </form>
+#set(layer=true,util=true,valida=true)
+#@op()
+#@js()
+<script>
+    var valida=$("#addForm").validate({
+        rules:{
+            mName:{
+                required:true,
+                isContainsSpecialChar:true
+            }
+        }
+    });
+    $("#add").click(function() {
+        valida.form();
+        if(valida.valid()){
+            ajaxSubmit("#(path)/admin/work/position/#(op)",$("#addForm").serialize());
+        }
+    });
+</script>
+</body>
+</html>

+ 62 - 0
src/main/webapp/WEB-INF/view/admin/work/position/list.html

@@ -0,0 +1,62 @@
+#set(title="职位分类")
+#@header()
+<body>
+<div class="con">
+    <div class="toolbar">
+        <!--权限操作按钮-->
+        #@menu(menu_list)
+        <div class="input-group search">
+            <input type="text" id="name" placeholder="输入职位名称" class="form-control">
+            <span class="input-group-btn"><button type="button" id="search" class="btn btn-primary">搜索</button></span>
+        </div>
+        <a class="pull-right refresh" href="javascript:location.replace(location.href);"><i class="fa fa-history"></i>&nbsp;刷新</a>
+    </div>
+    <div class="mbox">
+        <table id="jqGrid"></table>
+        <div id="jqGridPager"></div>
+    </div>
+</div>
+#set(layer=true,util=true,jgrid=true)
+#@js()
+<script>
+    var colModel = [
+        {label: 'ID', name: 'id', hidden: true},
+        {label: '职位名称', name: 'mName'},
+        {label: '是否启用', name: 'mShow', formatter: mShow},
+        {label: '添加时间', name: 'mDate'}]
+    jgrid('#(path)/admin/work/position/jsonList', colModel);
+
+    /**
+     * 搜索
+     */
+    $("#search").click(function () {
+        reloadGrid({'name': $("#name").val()});
+    });
+
+    /**
+     * 启用
+     */
+    function mShow(cellvalue, options, rowObject) {
+        if (cellvalue == '0') {
+            return '<span class="label label-sm label-info">启用</span>';
+        } else {
+            return '<span class="label label-sm label-danger">未启用</span>';
+        }
+    }
+    /**
+     * 操作
+     */
+    function operate(op) {
+        if (op == 'add') {
+            openDialogDiy("添加职位", "#(path)/admin/work/position/view?op=add", "38%", "64%");
+        }
+        if (op == 'edit') {
+            openDialogDiy("编辑职位", "#(path)/admin/work/position/view?op=edit&id=" + selectedRow().id, "38%", "64%");
+        }
+        if (op == 'delete') {
+            deleteRows("#(path)/admin/work/position/delete?ids=");
+        }
+    }
+</script>
+</body>
+</html>

+ 0 - 61
src/main/webapp/WEB-INF/view/admin/work/process/choice.html

@@ -1,61 +0,0 @@
-#set(title="添加流程")
-#@header()
-<style>
-    label{padding: 10px 10px 10px 0px }
-</style>
-<body>
-<div style="margin-bottom: 60px;">
-    <form id="addForm">
-    <table class="table">
-        <tbody>
-        <tr>
-            <td>流程名称</td>
-            <td><input type="text" class="form-control" id="name" name="name" placeholder="名称" ></td>
-        </tr>
-        <tr>
-            <td>经办角色</td>
-            <td>
-                #for(r:role_list)
-                <label>
-                <input name="role" type="checkbox" value="#(r.roleName)"/>
-                    #(r.roleName)
-                </label>
-                #end
-            </td>
-        </tr>
-        </tbody>
-    </table>
-    </form>
-</div>
-#set(layer=true,util=true,valida=true)
-#@js()
-#@op()
-<script>
-    var valida = $("#addForm").validate({
-        rules: {
-            name: {
-                required: true
-            }
-        }
-    });
-    $("#add").click(function () {
-        valida.form();
-        if (valida.valid()) {
-            var obj = document.getElementsByName("role");
-            var approval = [];
-            for (k in obj) {
-                if (obj[k].checked) {
-                    approval.push(obj[k].value);
-                }
-            }
-            if(approval.length==0){
-                showToastError("必须选择一个经办人");
-                return;
-            }
-            parent.vm.step_list.push({name: $("#name").val(),approval: approval.toString()});
-            closeView();
-        }
-    });
-</script>
-</body>
-</html>

+ 0 - 98
src/main/webapp/WEB-INF/view/admin/work/process/form.html

@@ -1,98 +0,0 @@
-#set(title="添加流程")
-#@header()
-<style>
-    #addForm{padding: 10px;}
-    .input-group{width: 70%;}
-    span{cursor: pointer;}
-    .add{margin-top: -27px;color: #2f4050;padding-right: 10px;font-weight: bold;font-size: 18px;}
-    .del{margin-top: -23px;color: red;padding-right: 10px;font-weight: bold;}
-    ul{list-style: none;overflow: scroll;padding: 0px;}
-    ul li{cursor: pointer;}
-</style>
-<body>
-<div id="app">
-    <form id="addForm">
-    <input type="hidden" name="id" value="#(constant.id??)">
-    <ul class="steps">
-        <li v-for="(item,index) in step_list">{{item.name}}</li>
-    </ul>
-    <table class="table">
-        <tbody>
-        <tr>
-            <td>流程名称</td>
-            <td colspan="3"><input type="text" class="form-control" name="name" placeholder="流程名称" v-model="process.name"></td>
-        </tr>
-        <tr>
-            <td colspan="4"><div class="bod"><span class="t">流程节点</span></div>
-            <span class="pull-right add" @click="add()">添加</span>
-            </td>
-        </tr>
-        <tr v-for="(item,index) in step_list">
-            <td>节点名称</td>
-            <td><input type="text" class="form-control"  v-model="item.name"></td>
-            <td>经办角色</td>
-            <td>
-                <div class="input-group">
-                    <input type="text" class="form-control"  v-model="item.approval" readonly>
-                </div>
-                <span class="pull-right del" @click="del(item)">删除</span>
-            </td>
-        </tr>
-        </tbody>
-    </table>
- </form>
-   </div>
-</div>
-#set(layer=true,util=true,valida=true,vue=true)
-#@op()
-#@js()
-<script>
-    var vm = new Vue({
-        el: "#app",
-        data: {
-            process:{name:''},
-            step_list:[],
-        },
-        mounted: function () {
-            if('#(op)'=='edit'){
-                this.process=#(process);
-                this.step_list=#(step_list);
-            }
-        },
-        methods: {
-            //添加节点
-            add:function(){
-                openDialogDiy("添加节点", "#(path)/admin/work/process/view?op=choice", "80%", "84%");
-            },
-            del:function(item){
-                vm.step_list.splice(vm.step_list.indexOf(item),1);
-            },
-        }
-    })
-    var valida = $("#addForm").validate({
-        rules: {
-            name: {
-                required: true
-            }
-        }
-    });
-    $("#add").click(function () {
-        valida.form();
-        if (valida.valid()) {
-            var data={
-                process:JSON.stringify(vm.process),
-                step_list:JSON.stringify(vm.step_list)
-            }
-            sendAjax("#(path)/admin/work/process/#(op)",data,function(res){
-                 cancelLoding();
-                if(res.result==true){
-                    showToast("添加成功");
-                    parent.$("#jqGrid").trigger("reloadGrid"); //重新载入
-                    closeView();
-                }
-            });
-        }
-    });
-</script>
-</body>
-</html>

+ 0 - 63
src/main/webapp/WEB-INF/view/admin/work/process/list.html

@@ -1,63 +0,0 @@
-#set(title="工作流程")
-#@header()
-<body>
-<div class="con">
-    <div class="toolbar">
-        <!--权限操作按钮-->
-        #@menu(menu_list)
-        <div class="input-group search">
-            <input type="text" id="name" placeholder="输入名称" class="form-control">
-            <span class="input-group-btn"><button type="button" id="search" class="btn btn-primary">搜索</button></span>
-        </div>
-    </div>
-    <div class="mbox">
-        <table id="jqGrid"></table>
-        <div id="jqGridPager"></div>
-    </div>
-</div>
-#set(layer=true,util=true,jgrid=true)
-#@js()
-<script>
-    var colModel = [
-        {label: 'ID', name: 'id', hidden: true},
-        {label: '流程名称', name: 'name'},
-        {label: '流程节点', name: 'lists',formatter: view,}
-    ]
-    jgrid('#(path)/admin/work/process/jsonList', colModel);
-
-    function view(cellvalue, options, rowObject){
-        var list='';
-        cellvalue.forEach(function(item){
-            list+='<li class="active">'+item.name+'</li>'
-        })
-        return '<ul class="steps">'+list+'</ul>';
-    }
-    /**
-     * 搜索
-     */
-    $("#search").click(function () {
-        reloadGrid({'name': $("#name").val()});
-    });
-    /**
-     * 操作
-     */
-    function operate(op) {
-        if (op == 'add') {
-            openDialogDiy("添加流程", "#(path)/admin/work/process/view?op=add", "80%", "84%");
-        }
-        if (op == 'edit') {
-            openDialogDiy("查看流程", "#(path)/admin/work/process/view?op=edit&id=" + selectedRow().id, "80%", "84%");
-        }
-        if (op == 'delete') {
-            deleteRows("#(path)/admin/work/process/delete?ids=");
-        }
-    }
-    /**
-     * 选择
-     */
-    $("#selected").change(function(){
-        reloadGrid({'name': $("#name").val(),type:$("#selected").val()});
-    });
-</script>
-</body>
-</html>

+ 0 - 88
src/main/webapp/WEB-INF/view/admin/work/process/look.html

@@ -1,88 +0,0 @@
-#set(title="查看流程")
-#@header()
-<style>
-    .input-group{width: 70%;}
-    span{cursor: pointer;}
-    .add{margin-top: -27px;color: #2f4050;padding-right: 10px;font-weight: bold;font-size: 18px;}
-    .del{margin-top: -23px;color: red;padding-right: 10px;font-weight: bold;}
-    ul{list-style: none;overflow: scroll;padding: 0px;}
-    ul li{cursor: pointer;}
-</style>
-<body>
-<div id="app">
-    <form id="addForm">
-    <input type="hidden" name="id" value="#(constant.id??)">
-    <ul class="steps">
-        <li v-for="(item,index) in step_list">{{item.name}}</li>
-    </ul>
-    <table class="table">
-        <tbody>
-        <tr>
-            <td>流程名称</td>
-            <td colspan="3"><input type="text" class="form-control" name="name" placeholder="流程名称" v-model="process.name"></td>
-        </tr>
-        <tr>
-            <td colspan="4"><div class="bod"><span class="t">流程节点</span></div>
-            </td>
-        </tr>
-        <tr v-for="(item,index) in step_list">
-            <td>节点名称</td>
-            <td><input type="text" class="form-control"  v-model="item.name"></td>
-            <td>经办角色</td>
-            <td>
-                <div class="input-group">
-                    <input type="text" class="form-control"  v-model="item.approval" readonly>
-                </div>
-            </td>
-        </tr>
-        </tbody>
-    </table>
- </form>
-   </div>
-</div>
-#set(layer=true,util=true,valida=true,vue=true)
-#@op()
-#@js()
-<script>
-    var vm = new Vue({
-        el: "#app",
-        data: {
-            process:{name:''},
-            step_list:[],
-        },
-        mounted: function () {
-
-        },
-        methods: {
-            del:function(item){
-                vm.step_list.splice(vm.step_list.indexOf(item),1);
-            },
-        }
-    })
-    var valida = $("#addForm").validate({
-        rules: {
-            name: {
-                required: true
-            }
-        }
-    });
-    $("#add").click(function () {
-        valida.form();
-        if (valida.valid()) {
-            var data={
-                process:JSON.stringify(vm.process),
-                step_list:JSON.stringify(vm.step_list)
-            }
-            sendAjax("#(path)/admin/work/process/#(op)",data,function(res){
-                 cancelLoding();
-                if(res.result==true){
-                    showToast("添加成功");
-                    parent.$("#jqGrid").trigger("reloadGrid"); //重新载入
-                    closeView();
-                }
-            });
-        }
-    });
-</script>
-</body>
-</html>

+ 16 - 2
src/main/webapp/static/js/common.js

@@ -30,7 +30,7 @@ function openDialogDiy(title, url, width, height) {
  * 弹出一个提示信息
  *
  * @param content
- *            提示内容
+ *  提示内容
  */
 function showMessage(content) {
     layer.alert(content, {
@@ -309,7 +309,6 @@ function ajaxSubmit(url, param) {
             cancelLoding();
             if (data.result == true) {
                 showToast("操作成功");
-                console.log("zxx");
                 $("#jqGrid").trigger("reloadGrid"); //重新载入
                 parent.$("#jqGrid").trigger("reloadGrid"); //重新载入
                 closeView();
@@ -346,6 +345,21 @@ function unique(arr) {
     return result;
 }
 /**
+ * 初始化剪裁
+ * @param {Object} ratio 裁剪框比例1是正方形,0NaN是无限制,16:9/4:3/2:3
+ * @param {Object} path 剪裁图像路径
+ */
+function getClipper(ratio,path,id){
+    var cropper=null;
+    document.getElementById(id).src = path;
+    var image = document.getElementById(id);
+    cropper = new Cropper(image, {
+        aspectRatio:ratio,
+        viewMode: 1,
+    });
+    return cropper;
+}
+/**
  * 删除数组
  * @param val
  */

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 8 - 0
src/main/webapp/static/third-party/cropper/cropper.min.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 9 - 0
src/main/webapp/static/third-party/cropper/cropper.min.js


BIN
src/main/webapp/static/third-party/element-ui/fonts/element-icons.woff


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
src/main/webapp/static/third-party/element-ui/index.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
src/main/webapp/static/third-party/element-ui/index.js


+ 5 - 2
src/main/webapp/static/ui/css/style.min.css

@@ -4,7 +4,7 @@ h1,h2,h3,h4,h5,h6{font-weight:100}h1{font-size:30px}h2{font-size:24px}h3{font-si
 #page-wrapper{margin-left: 221px;}
 .table > tbody > tr > td{padding: 12px;position: relative;}
 .con{}
-.toolbar{padding: 10px;background-color: #f5f5f6;box-shadow: 0 1px 6px #ccc;}
+.toolbar{padding: 10px;background-color: #f5f5f6;box-shadow: 0 1px 6px #ccc;overflow: hidden;}
 .toolbar .search{width: 350px;}
 .bg{padding: 10px;}
 .la{padding: 10px 20px 10px 20px;background-color: #f5f5f6;box-shadow: 0 1px 6px #ccc;border-left: 3px solid darkcyan;font-weight: bold;}
@@ -30,8 +30,11 @@ label.error{position:absolute;right:18px;top:21px;color:#ef392b;font-weight:norm
 .object ul li{position: relative; float: left;border: 1px dashed darkgray;border-radius: 5px;padding: 10px 14px;cursor:pointer;margin: 8px;}
 .object ul li.active{border: 1px dashed red;color: red}
 .object ul li a{position: absolute;top:0;right: 0;background-color: red;padding:0px 5px 0px 5px;margin: -7px;color: white;border-radius: 50%;}
-.refresh{margin-top:-30px;    background-color: #23c6c8;
+.refresh{background-color: #23c6c8;
     color: white;
+    position: absolute;
+    right: 0px;
+    top: 10px;
     border-radius: 5px;
     margin-right: 8px;
     padding: 6px;}

BIN
src/main/webapp/static/ui/img/icon_p.png


Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä