QiYuAdmin-用户增删改查

简述

一家人都生病了一周,病毒性感冒,传染性急强,我在家待了5天了,我女儿到现在还在咳嗽。
昨天和领导到一个客户现场聊完之后坐在车上说起了孩子的事,他说他不会在要第二个了,太折腾人了。不过我们领导年纪也大了,孩子也挺大的了。
其实不是身体累而是心累,睡觉都睡不安稳,总想着女儿有没有把被子给踢掉。不过开心的时候还是挺幸福的。生活就是如此。
这段时间做了如下的事情:

  • 用户表单样式
  • 用户增删改查

用户表单样式

效果

这里写图片描述

描述

表单验证的插件用的是BootStrapValidator,具体API和用法百度即可。

/**
     * 用户增加页面验证表单
     */
    var initUserAddBootStrapValidate = function (addAjaxUrl) {
        $addUserForm.bootstrapValidator({
//          trigger: 'blur',
            feedbackIcons: {
                valid: 'glyphicon glyphicon-ok',
                invalid: 'glyphicon glyphicon-remove',
                validating: 'glyphicon glyphicon-refresh'
            },
            fields: {
                userCode: {
                    validators: {
                        notEmpty: {
                            message: '员工编码不能为空'
                        }
                    }
                },
                loginName: {
                    validators: {
                        notEmpty: {
                            message: '登录账号不能为空'
                        },
                        remote: {//ajax验证。server result:{"valid",true or false} 向服务发送当前input name值,获得一个json数据。例表示正确:{"valid",true}
                            url: '/QiYuAdmin/user/uniqueness/loginName',//验证地址
                            message: '账号已存在',//提示消息
                            delay :  2000,//每输入一个字符,就发ajax请求,服务器压力还是太大,设置2秒发送一次ajax(默认输入一个字符,提交一次,服务器压力太大)
                            type: 'POST'//请求方式
                        }
                    }
                },
                userName:{
                    validators: {
                        notEmpty: {
                            message: '员工名称不能为空'
                        }
                    }
                }
            }
        }).on("success.form.bv",function(e){
            QiYuComponents.qiYuAjaxFormSumbit(addAjaxUrl,addUserFormId,userTableId);
        });
    }

这里有个规范问题,以上的代码里面的验证账号是否重复功能的url,QiYuAdmin是项目的Context,这里是写死的,有没有好的办法?我在网上找到相关的答案,是这样写的。

function getContextPath() {
    var pathName = document.location.pathname;
    var index = pathName.substr(1).indexOf("/");
    var result = pathName.substr(0,index+1);
    return result;
}

不知道Thymeleaf里面有没有更好的解决方案?我找了半天没有找到Thymeleaf里面是怎么处理js文件里面的地址的,而是在他的模板里面进行内联,js内联代码如下。

<script th:inline="javascript">
    /*<![CDATA[*/
    jQuery(document).ready(function() {
        QiYuUser.initUserAdd(/*[[@{/user}]]*/);
    });
    /*]]>*/
</script>

这样写的话我的user.js所有用到ajax地址的都需要弄一个参数,如上代码所示。

用户增加

效果

这里写图片描述

这里写图片描述
这里写图片描述

描述

有很多共用的方法,比如说:增加表单、修改表单、删除表单、表格初始化。这些都可以封装成共用的。下次类似的功能只需要传入几个参数就可以了,很方便的。比如这里的增加用户功能。

   //初始化用户增加页面
        initUserAdd:function (addAjaxUrl) {
            initUserAddBootStrapValidate(addAjaxUrl);//表单验证
            userAddEventHandler();//按钮事件绑定
        }
        /**
     * 用户增加页面验证表单
     */
    var initUserAddBootStrapValidate = function (addAjaxUrl) {
        $addUserForm.bootstrapValidator({
//          trigger: 'blur',
            feedbackIcons: {
                valid: 'glyphicon glyphicon-ok',
                invalid: 'glyphicon glyphicon-remove',
                validating: 'glyphicon glyphicon-refresh'
            },
            fields: {
                userCode: {
                    validators: {
                        notEmpty: {
                            message: '员工编码不能为空'
                        }
                    }
                },
                loginName: {
                    validators: {
                        notEmpty: {
                            message: '登录账号不能为空'
                        },
                        remote: {//ajax验证。server result:{"valid",true or false} 向服务发送当前input name值,获得一个json数据。例表示正确:{"valid",true}
                            url: '/QiYuAdmin/user/uniqueness/loginName',//验证地址
                            message: '账号已存在',//提示消息
                            delay :  2000,//每输入一个字符,就发ajax请求,服务器压力还是太大,设置2秒发送一次ajax(默认输入一个字符,提交一次,服务器压力太大)
                            type: 'POST'//请求方式
                        }
                    }
                },
                userName:{
                    validators: {
                        notEmpty: {
                            message: '员工名称不能为空'
                        }
                    }
                }
            }
        }).on("success.form.bv",function(e){
            QiYuComponents.qiYuAjaxFormSumbit(addAjaxUrl,addUserFormId,userTableId);
        });
    }
         /**
     * 用户增加页面事件绑定
     */
    var userAddEventHandler = function () {
        $addUserBtn.on("click",function () {
            $addUserForm.submit();
        });
    } 

特别像后台管理系统之类的功能,很多都是表格、表格上面有几个按钮:增加、修改、删除等等。类似的功能可以单独抽出来,抽出共用的方法。非常方便。等做下一个这样的功能的时候我在说下有多方便了。

用户修改和删除

效果

这里写图片描述
这里写图片描述

这里写图片描述

描述

修改和增加的功能是类似的。多了一个修改密码的页签。都很简单。我把user.js模块的源码贴下就知道了。

/**
 * 用户模块js:包括用户主界面、用户增加修改界面
 */
var QiYuUser = function () {
    //用户主页面属性开始
    var userTableId = "userTable";
    var $userTable=$("#userTable");
    var tableAjaxUrl="user/page/list";
    var userTableColum=[{checkbox: true}
                        ,{title: 'id',field: 'id',align: 'center',valign: 'middle',visible:false}
                        ,{title: '登录账号',field: 'loginName',align: 'center',valign: 'middle'}
                        ,{title: '用户名称',field: 'userName',align: 'center',valign: 'middle'}
                        ,{title: '用户性别',field: 'gender',align: 'center',valign: 'middle',formatter:function (value,row,index) {
                            if(value==1){return "男";}else if(value==-1){return "女";}else{return "未知";}
                        }}
                        ,{title: '用户状态',field: 'isLock',align: 'center',formatter:function (value,row,index) {
            if(value==1){return "正常";}else if(value==-1){return "锁定";}else{return "未知";}
        }}];
    var $addUserView=$("#addUserView");
    var $updateUserView=$("#updateUserView");
    var $deleteUsers=$("#deleteUsers");
    //用户主页面属性结束
    //用户修改页面属性开始
    var $updateUserInfo = $("#updateUserInfo");//修改用户信息按钮
    var $resetUserInfo = $("#resetUserInfo");//取消用户信息按钮
    var updateUserFormId="updateUserForm";//个人信息表单
    var $updateUserForm=$("#updateUserForm");
    var $updateUserBtn = $("#updateUserBtn");

    var updateUserPwdFormId="updateUserPwdForm";
    var $updateUserPwdForm = $("#updateUserPwdForm");//修改密码表单
    var $updateUserPwdBtn = $("#updateUserPwdBtn");//修改密码按钮
    //用户修改页面属性结束

    //用户增加页面属性开始
    var $cancelUserBtn = $("#cancelUserBtn");
    var $addUserBtn = $("#addUserBtn");
    var addUserFormId = "addUserForm";
    var $addUserForm = $("#addUserForm");
    //用户增加页面属性结束
    /**
     * 用户主页面初始化用户表格数据
     */
    var initTable=function () {
        QiYuComponents.initBootStrapTable($userTable,tableAjaxUrl,userTableColum);
    }
    /**
     * 用户主页面按钮绑定事件:增加、修改、删除
     */
    var userMainEventHandler=function () {
        //绑定增加用户弹出页面的按钮事件
        $addUserView.on("click",function () {
            QiYuComponents.layerOpen("添加账户",'1000px','650px',"user/add/view");
        });
        //绑定修改用户弹出页面的按钮事件
        $updateUserView.on("click",function () {
           var rows =  QiYuComponents.getTableSelections($userTable);
            if(rows.length==0){
                QiYuComponents.bootstrapSweetAlert("","请选择一个用户","error");
                return;
            }
            if(rows.length>=2){
                QiYuComponents.bootstrapSweetAlert("","不能选择多个用户","error");
                return;
            }
            //查看用户的基本信息
            QiYuComponents.layerOpen("配置账户",'1000px','650px',"user/profile/view/"+rows[0].id+"?operator=admin");
        });
        //绑定删除按钮事件
        $deleteUsers.on("click",function () {
            QiYuComponents.qiYuAjaxDelete("user/batch",$userTable);
        });
    }
    /**
     * 用户修改页面事件绑定
     */
    var userProfileEventHandler = function () {

        $updateUserInfo.on("click",function () {

        });
    }
    /**
     * 用户增加页面事件绑定
     */
    var userAddEventHandler = function () {
        $addUserBtn.on("click",function () {
            $addUserForm.submit();
        });
    }
    /**
     * 用户增加页面验证表单
     */
    var initUserAddBootStrapValidate = function (addAjaxUrl) {
        $addUserForm.bootstrapValidator({
//          trigger: 'blur',
            feedbackIcons: {
                valid: 'glyphicon glyphicon-ok',
                invalid: 'glyphicon glyphicon-remove',
                validating: 'glyphicon glyphicon-refresh'
            },
            fields: {
                userCode: {
                    validators: {
                        notEmpty: {
                            message: '员工编码不能为空'
                        }
                    }
                },
                loginName: {
                    validators: {
                        notEmpty: {
                            message: '登录账号不能为空'
                        },
                        remote: {//ajax验证。server result:{"valid",true or false} 向服务发送当前input name值,获得一个json数据。例表示正确:{"valid",true}
                            url: '/QiYuAdmin/user/uniqueness/loginName',//验证地址
                            message: '账号已存在',//提示消息
                            delay :  2000,//每输入一个字符,就发ajax请求,服务器压力还是太大,设置2秒发送一次ajax(默认输入一个字符,提交一次,服务器压力太大)
                            type: 'POST'//请求方式
                        }
                    }
                },
                userName:{
                    validators: {
                        notEmpty: {
                            message: '员工名称不能为空'
                        }
                    }
                }
            }
        }).on("success.form.bv",function(e){
            QiYuComponents.qiYuAjaxFormSumbit(addAjaxUrl,addUserFormId,userTableId);
        });
    }

    /**
     * 用户修改页面验证表单
     */
    var initUserUpdateBootStrapValidate = function (updateAjaxUrl) {
        $updateUserForm.bootstrapValidator({
//          trigger: 'blur',
            feedbackIcons: {
                valid: 'glyphicon glyphicon-ok',
                invalid: 'glyphicon glyphicon-remove',
                validating: 'glyphicon glyphicon-refresh'
            },
            fields: {
                userCode: {
                    validators: {
                        notEmpty: {
                            message: '员工编码不能为空'
                        }
                    }
                },
                userName:{
                    validators: {
                        notEmpty: {
                            message: '员工名称不能为空'
                        }
                    }
                }
            }
        }).on("success.form.bv",function(e){
            QiYuComponents.qiYuAjaxFormSumbit(updateAjaxUrl,updateUserFormId,userTableId);
        });
    }

    /**
     * 用户修改页面验证表单
     */
    var initUserPwsUpdateBootStrapValidate = function (updateAjaxUrl) {
        $updateUserPwdForm.bootstrapValidator({
//          trigger: 'blur',
            feedbackIcons: {
                valid: 'glyphicon glyphicon-ok',
                invalid: 'glyphicon glyphicon-remove',
                validating: 'glyphicon glyphicon-refresh'
            },
            fields: {
                loginPwd:{
                    validators: {
                        notEmpty: {
                            message: '新密码不能为空'
                        }
                    }
                },
                loginRepPwd:{
                    validators: {
                        notEmpty: {
                            message: '新重复密码不能为空'
                        },
                        identical: {//相同
                            field: 'loginPwd', //需要进行比较的input name值
                            message: '两次密码不一致'
                        }
                    }
                }
            }
        }).on("success.form.bv",function(e){
            QiYuComponents.qiYuAjaxFormSumbit(updateAjaxUrl,updateUserPwdFormId,userTableId);
        });
    }

    /**
     * 用户增加页面事件绑定
     */
    var userUpdateEventHandler = function () {
        $updateUserBtn.on("click",function () {
            $updateUserForm.submit();
        });

        $updateUserPwdBtn.on("click",function () {
            $updateUserPwdForm.submit();
        });
    }


    return{
        //初始化用户管理的主页面:用户列表
        initUserMain:function () {
            initTable();
            userMainEventHandler();
        },
        //初始化用户管理的修改页面:user_profile.html
        initUserProfile:function (updateAjaxUrl) {
            initUserUpdateBootStrapValidate(updateAjaxUrl);
            userUpdateEventHandler();
            initUserPwsUpdateBootStrapValidate(updateAjaxUrl);

        },
        //初始化用户增加页面
        initUserAdd:function (addAjaxUrl) {
            initUserAddBootStrapValidate(addAjaxUrl);
            userAddEventHandler();
        }

    }
}();

结语

下一篇博客将集成FastDfs和上传图片的一个插件(这个插件待确认中,还在调研中,webuploader?zyuploder?待确定)。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山竹之七语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值