sysuser.js 9.06 KB
layui.config({
    base: "/js/"
}).use(['form', 'I18nPage', 'vue', 'ztree', 'layer', 'jquery', 'table', 'droptree', 'hhweb', 'utils'], function () {
    var form = layui.form,
        layer = layui.layer,
        $ = layui.jquery,
        I18nPage = layui.I18nPage,
        table = layui.table,
        hhweb = layui.hhweb;

    var MessageContainer = {};
    I18nPage.GetI18nMessage({
        Type: "PM",
        Code: "SysUser",
        Container: MessageContainer,
    });

    I18nPage.GetI18nText({
        Type: "GP",
        Code: "PAGE",
    });

    var cols_arr = I18nPage.GetI18nTable(
        {
            TableNo: "base-SysUser",
            TableName: "SysUser",
            Eel: "#eFields",
        }
    );

    var vm = new Vue({
        el: "#formEdit"
    });

    hhweb.InitUIClass();

    var config = {};
    var mainList = {
        Render: function (options) {
            if (options != undefined) {
                $.extend(config, options);
            }

            mainList.Table = table.render({
                elem: '#mainList'
                , url: '/base/SysUser/Load'
                , method: "post"
                , page: true //开启分页
                , cols: hhweb.ColumnSetting('mainList', cols_arr)
                , id: 'mainList'
                , limit: 20
                , limits: [20, 50, 100, 200, 500, 1000]
                , toolbar: false
                , height: 'full-60'
                , cellMinWidth: 80
                , size: 'sm'
                , where: config
                , page: {
                    curr: 1 //重新从第 1 页开始
                }
                , done: function (res) {
                    //监听行单击事件(双击事件为:rowDouble)
                    table.on('row(mainList)', function (obj) {
                        table.on('checkbox(mainList)', function (obj) {
                            if (obj.checked == true) {
                                obj.tr.addClass('layui-table-click');
                            } else {
                                obj.tr.removeClass('layui-table-click');
                            }
                        });
                    });
                }
            });

            return mainList.Table;
        },
        Load: function (options) {
            if (options != undefined) {
                $.extend(config, options);
            }
            if (mainList.Table == undefined) {
                mainList.Table = this.Render(options);
                return;
            }
            table.reload('mainList', {
                page: {
                    curr: 1 //重新从第 1 页开始
                }
                , where: config
            });
        }
    };

    var active = {
        btnDel: function () {      //批量删除
            var checkStatus = table.checkStatus('mainList')
                , data = checkStatus.data;
            hhweb.del("/base/SysUser/Delete",
                data.map(function (e) { return e.Id; }),
                function () {
                    mainList.Load();
                });
        }
        , btnAdd: function () {  //添加
            editDlg.add();
        }
        , btnEdit: function () {  //编辑
            var checkStatus = table.checkStatus('mainList')
                , data = checkStatus.data;
            if (data.length != 1) {
                layer.alert(MessageContainer.EditMsg, { icon: 5, shadeClose: true, title: MessageContainer.ErrorTitle });
                return;
            }
            editDlg.update(data[0]);
        }

        , btnRefresh: function () {
            mainList.Load();
        }

        , btnAccessRole: function () {
            var checkStatus = table.checkStatus('mainList')
                , data = checkStatus.data;
            if (data.length != 1) {
                layer.msg(MessageContainer.EditMsg);
                return;
            }

            layer.open({
                title: MessageContainer.AssignRoleTitle.replace("{0}", data[0].Name),
                type: 2,
                area: ['750px', '600px'],
                content: "/base/SysRole/Assign?type=UserRole&id=" + data[0].Id,
                success: function (layero, index) {

                },
                end: function () {
                    mainList.Load();
                }
            });
        }

        , btnAccessModule: function () {
            var checkStatus = table.checkStatus('mainList')
                , data = checkStatus.data;
            if (data.length != 1) {
                layer.msg(MessageContainer.EditMsg);
                return;
            }

            layer.open({
                title: MessageContainer.AssignModuleTitle.replace("{0}", data[0].Name),
                type: 2,
                area: ['900px', '600px'],
                content: "/base/SysModule/Assign?type=UserModule&menuType=UserElement&id=" + data[0].Id,
                success: function (layero, index) {

                },
                end: function () {
                    mainList.Load();
                }
            });
        }

        , btnResetPwd: function () {  //编辑
            var checkStatus = table.checkStatus('mainList')
                , data = checkStatus.data;
            if (data.length != 1) {
                layer.msg(EditTitle);
                return;
            }

            layer.confirm(MessageContainer.ResetPwdConfirm, { icon: 3, title: MessageContainer.ResetPwdInfo }, function (index) {
                $.post("/base/SysUser/ResetPassword",
                    {
                        user: data[0],
                    },
                    function (result) {
                        if (result.Code != 500) {
                            layer.msg(MessageContainer.ResetPwdSuccess);
                        } else {
                            layer.alert(result.Message, { icon: 2, shadeClose: true, title: MessageContainer.ErrorTitle });
                        }
                    },
                    "json");

                layer.close(index);
            });
        }
    };

    var myCallBackmenu = function () {
        $('.toolList .layui-btn').on('click', function () {
            var type = $(this).data('type');
            active[type] ? active[type].call(this) : '';
        });
    }
    $("#menus").loadMenus("SysUser", 1, myCallBackmenu);

    //添加(编辑)对话框
    var editDlg = function () {
        var update = false;  //是否为更新
        var show = function (data) {
            var title = update ? MessageContainer.EditTitle : MessageContainer.AddTitle;
            index = layer.open({
                title: title,
                area: ["500px", "250px"],
                type: 1,
                content: $('#divEdit'),
                success: function () {
                    vm.$set('$data', data);
                    hhweb.RenderSwitch({ vueEdit: { vm: vm, layfilter: 'eform' } });
                    form.render();
                }
            });
            var url = "/base/SysUser/Add";
            if (update) {
                url = "/base/SysUser/Update";
            }
            //提交数据
            form.on('submit(formSubmit)',
                function (data) {
                    data.field.Sex = vm.$data.Sex;
                    data.field.Status = vm.$data.Status;
                    data.field.IsAssignRole = vm.$data.IsAssignRole;
                    data.field.IsAssignModule = vm.$data.IsAssignModule;

                    //密码强度正则,最少8位,包括至少1个大写字母,1个小写字母,1个数字
                    var pPattern = /^.*(?=.{8,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z]).*$/;
                    if (data.field.Password == data.field.Account) {
                        layer.alert(MessageContainer.ResetPwdErrorSame);
                        return false;
                    }
                    //else if (!pPattern.test(data.field.Password)) {
                    //    layer.alert('密码不符合规则!!密码最少8位,包括至少1个大写字母,1个小写字母,1个数字');
                    //    return false;
                    //}
                    else {
                        $.post(url,
                            data.field,
                            function (data) {
                                layer.msg(data.Message);
                                mainList.Load();
                                layer.close(index);
                            },
                            "json");
                    }
                    return false;
                });
        };
        return {
            add: function () { //弹出添加
                update = false;
                show({
                    Id: '',
                    Sex: true,
                    Status: true,
                    Password: '123456',
                });
            },
            update: function (data) { //弹出编辑框
                update = true;
                show(data);
            }
        };
    }();

    //监听switch控件
    form.on('switch(eform)', function (data) {
        vm.$data[this.name] = data.elem.checked;
    });

    mainList.Load();
});