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">&#xe615;</i>搜索</button>
+                                <button id="btnAdd" class="layui-btn icon-btn"><i class="layui-icon">&#xe654;</i>添加</button>
+                                <button id="btnExp" class="layui-btn icon-btn"><i class="layui-icon">&#xe67d;</i>导出</button>
+                                <!-- 下拉按钮 -->
+                                <div class="dropdown-menu dropdown-hover">
+                                    <button class="layui-btn icon-btn" type="button">
+                                        &nbsp;更多 <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>上传资料&nbsp;&nbsp;</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>&emsp;提交&emsp;</button>
+        <button type="reset" class="layui-btn layui-btn-primary" ew-event="closeDialog">&emsp;取消&emsp;</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>&emsp;提交&emsp;</button>
+        <button type="reset" class="layui-btn layui-btn-primary" ew-event="closeDialog">&emsp;取消&emsp;</button>
+    </div>
+
+</form>
+
+@}
\ No newline at end of file