From b5b8d75da2f7281721b30d5e5eb49095f26d4e19 Mon Sep 17 00:00:00 2001 From: chenjinlong <$chenjinlong> Date: Thu, 31 Dec 2020 00:51:20 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90Organization=E3=80=91=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=EF=BC=8C=E5=8A=9F=E8=83=BD=E6=9A=82=E6=9C=AA=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OrganizationViewController.java | 53 +++++++ .../system/organization/organization.js | 144 ++++++++++++++++++ .../system/organization/organization_add.js | 18 +++ .../system/organization/organization_edit.js | 25 +++ .../system/organization/organization.html | 67 ++++++++ .../system/organization/organization_add.html | 46 ++++++ .../organization/organization_edit.html | 46 ++++++ 7 files changed, 399 insertions(+) create mode 100644 src/main/java/cn/stylefeng/guns/modular/organization/OrganizationViewController.java create mode 100644 src/main/webapp/assets/modular/system/organization/organization.js create mode 100644 src/main/webapp/assets/modular/system/organization/organization_add.js create mode 100644 src/main/webapp/assets/modular/system/organization/organization_edit.js create mode 100644 src/main/webapp/pages/modular/system/organization/organization.html create mode 100644 src/main/webapp/pages/modular/system/organization/organization_add.html create mode 100644 src/main/webapp/pages/modular/system/organization/organization_edit.html diff --git a/src/main/java/cn/stylefeng/guns/modular/organization/OrganizationViewController.java b/src/main/java/cn/stylefeng/guns/modular/organization/OrganizationViewController.java new file mode 100644 index 00000000..3a8ff30b --- /dev/null +++ b/src/main/java/cn/stylefeng/guns/modular/organization/OrganizationViewController.java @@ -0,0 +1,53 @@ +package cn.stylefeng.guns.modular.organization; + +import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource; +import cn.stylefeng.roses.kernel.resource.api.annotation.GetResource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Controller; + +/** + * 职位管理控制器 + * + * @author chenjinlong + * @date 2020/12/28 9:28 + */ +@Controller +@Slf4j +@ApiResource(name = "职位管理相关的界面渲染", path = "organization") +public class OrganizationViewController { + + private String PREFIX = "/modular/system/organization"; + + /** + * 机构管理-首页-视图 + * + * @author chenjinlong + * @date 2020/11/04 11:07 + */ + @GetResource(name = "机构管理-首页-视图", path = "", requiredPermission = false, requiredLogin = false) + public String indexView() { + return PREFIX + "/organization.html"; + } + + /** + * 机构管理—新增-视图 + * + * @author chenjinlong + * @date 2020/11/04 11:07 + */ + @GetResource(name = "机构管理—新增-视图", path = "/addView", requiredPermission = false, requiredLogin = false) + public String addView() { + return PREFIX + "/organization_add.html"; + } + + /** + * 机构管理_修改_视图 + * + * @author chenjinlong + * @date 2020/11/04 11:07 + */ + @GetResource(name = "机构管理-修改-视图", path = "editView", requiredPermission = false, requiredLogin = false) + public String editView() { + return PREFIX + "/organization_edit.html"; + } +} diff --git a/src/main/webapp/assets/modular/system/organization/organization.js b/src/main/webapp/assets/modular/system/organization/organization.js new file mode 100644 index 00000000..3256b375 --- /dev/null +++ b/src/main/webapp/assets/modular/system/organization/organization.js @@ -0,0 +1,144 @@ +layui.use(['table', 'admin', 'ax', 'form', 'func', 'ajaxUtil', 'dropdown','util'], function () { + var $ = layui.$; + var table = layui.table; + var form = layui.form; + var func = layui.func; + var ajaxUtil = layui.ajaxUtil; + var dropdown = layui.dropdown; + var util = layui.util; + + // 职位表管理 + var Organization = { + tableId: "organizationTable" + }; + + // 初始化表格的列 + Organization.initColumn = function () { + return [[ + {type: 'checkbox'}, + {field: 'positionId', hide: true, title: '主键id'}, + {field: 'positionName', sort: true, title: '职位名称'}, + {field: 'positionCode', sort: true, title: '职位编码'}, + {field: 'positionRemark', sort: true, title: '备注'}, + {field: 'createTime', sort: true, title: '创建时间',templet: function (d) { + return util.toDateString(d.createTime); + }}, + {field: 'updateTime', sort: true, title: '更新时间',templet: function (d) { + console.log(d.updateTime); + return d.updateTime==null?'': util.toDateString(d.updateTime); + }}, + {field: 'statusFlag', sort: true, templet: '#statusTpl', title: '状态'}, + {align: 'center', toolbar: '#tableBar', title: '操作'} + ]]; + }; + + // 点击查询按钮 + Organization.search = function () { + var queryData = {}; + queryData['positionName'] = $("#positionName").val(); + //queryData['positionCode'] = $("#positionCode").val(); + table.reload(Organization.tableId, { + where: queryData, + page: {curr: 1} + }); + }; + + // 弹出添加对话框 + Organization.openAddDlg = function () { + func.open({ + height: 800, + title: '添加职位', + content: Feng.ctxPath + '/hrOrganization/addView', + tableId: Organization.tableId + }); + }; + + // 点击编辑 + Organization.openEditDlg = function (data) { + func.open({ + height: 800, + title: '修改职位', + content: Feng.ctxPath + '/organization/editView?positionId=' + data.positionId, + tableId: Organization.tableId + }); + }; + + // 导出excel按钮 + Organization.exportExcel = function () { + var checkRows = table.checkStatus(Organization.tableId); + if (checkRows.data.length === 0) { + Feng.error("请选择要导出的数据"); + } else { + table.exportFile(tableResult.config.id, checkRows.data, 'xls'); + } + }; + + // 点击删除 + Organization.delete = function (data) { + var operation = function () { + ajaxUtil.post(Feng.ctxPath + "/hrOrganization/delete", {"positionId":data.positionId},function (data) { + Feng.success("删除成功!"); + table.reload(Organization.tableId); + },function (data) { + Feng.error("删除失败!" + data.responseJSON.message + "!"); + }); + }; + Feng.confirm("是否删除?", operation); + }; + + // 修改职位状态 + Organization.updateStatus = function (positionId, checked) { + ajaxUtil.post(Feng.ctxPath + "/hrOrganization/updateStatus", {"positionId":positionId,"statusFlag":checked},function (data) { + Feng.success("修改成功!"); + },function (data) { + Feng.error("修改失败!" + data.responseJSON.message); + table.reload(Organization.tableId); + }); + }; + + // 渲染表格 + var tableResult = table.render({ + elem: '#' + Organization.tableId, + url: Feng.ctxPath + '/hrOrganization/page', + page: true, + request: {pageName: 'pageNo', limitName: 'pageSize'}, //自定义分页参数 + height: "full-158", + cellMinWidth: 100, + cols: Organization.initColumn(), + parseData: Feng.parseData + }); + + // 搜索按钮点击事件 + $('#btnSearch').click(function () { + Organization.search(); + }); + + // 添加按钮点击事件 + $('#btnAdd').click(function () { + Organization.openAddDlg(); + }); + + // 导出excel + $('#btnExp').click(function () { + Organization.exportExcel(); + }); + + // 工具条点击事件 + table.on('tool(' + Organization.tableId + ')', function (obj) { + var data = obj.data; + var event = obj.event; + if (event === 'edit') { + Organization.openEditDlg(data); + } else if (event === 'delete') { + Organization.delete(data); + } + dropdown.hideAll(); + }); + + // 修改状态 + form.on('switch(status)', function (obj) { + var positionId = obj.elem.value; + var checked = obj.elem.checked ? 1 : 2; + Organization.updateStatus(positionId, checked); + }); +}); diff --git a/src/main/webapp/assets/modular/system/organization/organization_add.js b/src/main/webapp/assets/modular/system/organization/organization_add.js new file mode 100644 index 00000000..b01eb4bf --- /dev/null +++ b/src/main/webapp/assets/modular/system/organization/organization_add.js @@ -0,0 +1,18 @@ +layui.use(['form', 'admin', 'ax', 'ajaxUtil'], function () { + var form = layui.form; + var admin = layui.admin; + var ajaxUtil = layui.ajaxUtil; + + //表单提交事件 + form.on('submit(btnSubmit)', function (data) { + ajaxUtil.post(Feng.ctxPath + "/hrOrganization/add", data.field, function (res) { + admin.closeThisDialog(); + Feng.success("添加成功!"); + admin.putTempData('formOk', true); + + }, function (res) { + admin.closeThisDialog(); + Feng.error("添加失败!" + res.responseJSON.message); + }); + }); +}); \ No newline at end of file diff --git a/src/main/webapp/assets/modular/system/organization/organization_edit.js b/src/main/webapp/assets/modular/system/organization/organization_edit.js new file mode 100644 index 00000000..450527c7 --- /dev/null +++ b/src/main/webapp/assets/modular/system/organization/organization_edit.js @@ -0,0 +1,25 @@ +layui.use(['form', 'admin', 'ajaxUtil'], function () { + var form = layui.form; + var admin = layui.admin; + var ajaxUtil = layui.ajaxUtil; + //获取详情信息,填充表单 + + ajaxUtil.get("/hrOrganization/detail?orgId=" + Feng.getUrlParam("positionId"), function (res) { + form.val('positionForm', res.data); + }, function (res) { + admin.closeThisDialog(); + Feng.error("编辑异常!" + res.responseJSON.message); + }); + + //表单提交事件 + form.on('submit(btnSubmit)', function (data) { + ajaxUtil.post(Feng.ctxPath + "/hrOrganization/edit", data.field, function (res) { + Feng.success("修改成功!"); + admin.putTempData('formOk', true); + admin.closeThisDialog(); + }, function (res) { + admin.closeThisDialog(); + Feng.error("修改失败!" + res.responseJSON.message); + }); + }); +}); \ No newline at end of file diff --git a/src/main/webapp/pages/modular/system/organization/organization.html b/src/main/webapp/pages/modular/system/organization/organization.html new file mode 100644 index 00000000..5bd69589 --- /dev/null +++ b/src/main/webapp/pages/modular/system/organization/organization.html @@ -0,0 +1,67 @@ +@layout("/layout/_container.html",{js:["/assets/modular/system/organization/organization.js"]}){ + +<div class="layui-body-header"> + <span class="layui-body-header-title">职位表管理</span> +</div> + +<div class="layui-fluid"> + <div class="layui-row layui-col-space15"> + <div class="layui-col-sm12 layui-col-md12 layui-col-lg12"> + <div class="layui-card"> + <div class="layui-card-body"> + <div class="layui-form toolbar"> + <div class="layui-form-item"> + <div class="layui-inline"> + <input id="positionName" class="layui-input" type="text" placeholder="职位名称"/> + </div> +<!-- <div class="layui-inline">--> +<!-- <input id="positionCode" class="layui-input" type="text" placeholder="职位编码"/>--> +<!-- </div>--> + <div class="layui-inline"> + <button id="btnSearch" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button> + <button id="btnAdd" class="layui-btn icon-btn"><i class="layui-icon"></i>添加</button> + <button id="btnExp" class="layui-btn icon-btn"><i class="layui-icon"></i>导出</button> + <!-- 下拉按钮 --> + <div class="dropdown-menu dropdown-hover"> + <button class="layui-btn icon-btn" type="button"> + 更多 <i class="layui-icon layui-icon-drop"></i></button> + <ul class="dropdown-menu-nav"> + <li><a><i class="layui-icon layui-icon-edit"></i>test1</a></li> + <li><a><i class="layui-icon layui-icon-delete"></i>test2</a></li> + <li><a><i class="layui-icon layui-icon-password"></i>test3</a></li> + </ul> + </div> + </div> + </div> + </div> + <table class="layui-table" id="organizationTable" lay-filter="positionTable"></table> + </div> + </div> + </div> + </div> +</div> + +<script type="text/html" id="tableBar"> + <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a> + <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delete">删除</a> + <a class="layui-btn layui-btn-xs" data-dropdown="#userTbDrop{{d.LAY_INDEX}}" no-shade="true"> + 更多<i class="layui-icon layui-icon-drop" style="font-size: 12px;margin-right: 0;"></i></a> + <!-- 下拉菜单 --> + <ul class="dropdown-menu-nav dropdown-bottom-right layui-hide" id="userTbDrop{{d.LAY_INDEX}}"> + <div class="dropdown-anchor"></div> + <li><a lay-event="lock"><i class="layui-icon layui-icon-password"></i>锁定用户</a></li> + <li><a lay-event="reset"><i class="layui-icon layui-icon-key"></i>重置密码</a></li> + <li class="have-more show-left"> + <a><i class="layui-icon layui-icon-upload-drag"></i>上传资料 </a> + <ul class="dropdown-menu-nav-child"> + <li><a><i class="layui-icon layui-icon-camera"></i>上传头像</a></li> + <li><a><i class="layui-icon layui-icon-picture-fine"></i>上传照片</a></li> + </ul> + </li> + </ul> +</script> + +<script type="text/html" id="statusTpl"> + <input type="checkbox" lay-filter="status" value="{{d.positionId}}" lay-skin="switch" lay-text="正常|锁定" {{d.statusFlag=='1'?'checked':''}} /> +</script> +@} \ No newline at end of file diff --git a/src/main/webapp/pages/modular/system/organization/organization_add.html b/src/main/webapp/pages/modular/system/organization/organization_add.html new file mode 100644 index 00000000..a66a33bb --- /dev/null +++ b/src/main/webapp/pages/modular/system/organization/organization_add.html @@ -0,0 +1,46 @@ +@layout("/layout/_form.html",{js:["/assets/modular/system/organization/organization_add.js"]}){ + +<form class="layui-form" id="positionForm" lay-filter="positionForm"> + <div class="layui-fluid" style="padding-bottom: 75px;"> + <div class="layui-card"> + <div class="layui-card-header">基本信息</div> + <div class="layui-card-body"> + <div class="layui-form-item layui-row"> + <input name="positionId" type="hidden"/> + + <div class="layui-inline layui-col-md12"> + <label class="layui-form-label">职位名称<span style="color: red;">*</span></label> + <div class="layui-input-block"> + <input id="positionName" name="positionName" placeholder="请输入职位名称" type="text" class="layui-input" lay-verify="required" required/> + </div> + </div> + <div class="layui-inline layui-col-md12"> + <label class="layui-form-label">职位编码<span style="color: red;">*</span></label> + <div class="layui-input-block"> + <input id="positionCode" name="positionCode" placeholder="请输入职位编码" type="text" class="layui-input" lay-verify="required" required/> + </div> + </div> + <div class="layui-inline layui-col-md12"> + <label class="layui-form-label">顺序<span style="color: red;">*</span></label> + <div class="layui-input-block"> + <input id="positionSort" name="positionSort" placeholder="请输入顺序" type="text" class="layui-input" lay-verify="required" required/> + </div> + </div> + <div class="layui-inline layui-col-md12"> + <label class="layui-form-label">备注<span style="color: red;">*</span></label> + <div class="layui-input-block"> + <textarea id="positionRemark" name="positionRemark" placeholder="请输入备注" class="layui-textarea" lay-verify="required" required></textarea> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="form-group-bottom text-center"> + <button class="layui-btn" lay-filter="btnSubmit" lay-submit> 提交 </button> + <button type="reset" class="layui-btn layui-btn-primary" ew-event="closeDialog"> 取消 </button> + </div> + +</form> + +@} \ No newline at end of file diff --git a/src/main/webapp/pages/modular/system/organization/organization_edit.html b/src/main/webapp/pages/modular/system/organization/organization_edit.html new file mode 100644 index 00000000..40dbf4b9 --- /dev/null +++ b/src/main/webapp/pages/modular/system/organization/organization_edit.html @@ -0,0 +1,46 @@ +@layout("/layout/_form.html",{js:["/assets/modular/system/organization/organization_edit.js"]}){ + +<form class="layui-form" id="positionForm" lay-filter="positionForm"> + <div class="layui-fluid" style="padding-bottom: 75px;"> + <div class="layui-card"> + <div class="layui-card-header">基本信息</div> + <div class="layui-card-body"> + <div class="layui-form-item layui-row"> + <input name="positionId" type="hidden"/> + + <div class="layui-inline layui-col-md12"> + <label class="layui-form-label">职位名称<span style="color: red;">*</span></label> + <div class="layui-input-block"> + <input id="positionName" name="positionName" placeholder="请输入职位名称" type="text" class="layui-input" lay-verify="required" required/> + </div> + </div> + <div class="layui-inline layui-col-md12"> + <label class="layui-form-label">职位编码<span style="color: red;">*</span></label> + <div class="layui-input-block"> + <input id="positionCode" name="positionCode" placeholder="请输入职位编码" type="text" class="layui-input" lay-verify="required" required/> + </div> + </div> + <div class="layui-inline layui-col-md12"> + <label class="layui-form-label">顺序<span style="color: red;">*</span></label> + <div class="layui-input-block"> + <input id="positionSort" name="positionSort" placeholder="请输入顺序" type="text" class="layui-input" lay-verify="required" required/> + </div> + </div> + <div class="layui-inline layui-col-md12"> + <label class="layui-form-label">备注<span style="color: red;">*</span></label> + <div class="layui-input-block"> + <textarea id="positionRemark" name="positionRemark" placeholder="请输入备注" class="layui-textarea" lay-verify="required" required></textarea> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="form-group-bottom text-center"> + <button class="layui-btn" lay-filter="btnSubmit" lay-submit> 提交 </button> + <button type="reset" class="layui-btn layui-btn-primary" ew-event="closeDialog"> 取消 </button> + </div> + +</form> + +@} \ No newline at end of file