Newer
Older
EMS-WEB-3.0 / src / main / webapp / s / app / user / user-info-edit.js
zhangyingjie on 19 Dec 2020 7 KB 用户管理增加数据权限配置
function  companiseToList(companies) {
    let list = [];
    for (let company of companies) {
        let item = {}
        item.id = company.id
        item.title = company.companyName;
        item.parentCompanyId = company.parentCompanyId
        list.push(item)
    }
    return list;
}

function listToTreeList(list) { // 将普通列表转换为树结构的列表
    if (!list || !list.length) {
        return []
    }
    let treeListMap = {};
    for (let item of list) {
        treeListMap[item.id] = item
    }
    for (let i = 0; i < list.length; i++) {
        if ((list[i].parentCompanyId || list[i].parentCompanyId === 0) && treeListMap[list[i].parentCompanyId]) {
            if (!treeListMap[list[i].parentCompanyId].subs) {
                treeListMap[list[i].parentCompanyId].subs = []
            }
            treeListMap[list[i].parentCompanyId].subs.push(list[i]);
            list.splice(i, 1);
            i--
        }
    }
    return list
}

/**
 * Created by Administrator on 2015/7/26.
 */
var UserInfoEdit = function () {

    return {

        initForms:function(){

            var form = $('#submit_form');
            var error = $('.alert-error', form);
            var success = $('.alert-success', form);

            var data = $("#companies").val();
            console.log(data)
            var val = eval("("+data+")");
            console.log(val)
            var list = companiseToList(val);
            var tree = listToTreeList(list);
            console.log(tree)

            comboTree1 = $('#selectCompany').comboTree({
                source : tree,
                isMultiple: false,
                cascadeSelect: true,
                collapse: false
            });
            comboTree1.setSource(tree);
            if($("#companyId").val()){
                console.log('setSelection',$("#companyId").val())
                comboTree1.setSelection([$("#companyId").val()])
            }
            comboTree1.onChange(function(){
                var selectedIds = comboTree1.getSelectedIds();
                $('#companyId').val(selectedIds)
                console.log('companyId',$('#companyId').val())
            })


            comboTree2 = $('#selectDataScope').comboTree({
                source : tree,
                isMultiple: true,
                cascadeSelect: true,
                collapse: false
            });
            comboTree2.setSource(tree);
            if($("#datascope").val()){

                var datascopeStr = $("#datascope").val()
                var datascpeInts = []
                for (item of datascopeStr.split(',')){
                    datascpeInts.push(parseInt(item))
                }
                console.log('setDatascope',datascpeInts)
                comboTree2.setSelection(datascpeInts)
            }
            comboTree2.onChange(function(){
                var selectedIds = comboTree2.getSelectedIds();
                $('#datascope').val(selectedIds)
                console.log('datascope',$('#datascope').val())
            })

            $('#cancelBtn').live('click', function (e) {

                location.href = $("#context").val() + "/content/user/user-info-list.jsp";

            });

            form.validate({
                doNotHideMessage: true, //this option enables to show the error/success messages on tab switch.
                errorElement: 'span', //default input error message container
                errorClass: 'validate-inline', // default input error message class
                focusInvalid: false, // do not focus the last invalid input
                rules: {
                    userName: {
                        required: true
                    },
                    password: {
                        minlength: 5,
                        required: true
                    },
                    companyName: {
                        required: true
                    },
                    roleId: {
                        required: true
                    }
                },
                messages: { // custom messages for radio buttons and checkboxes
                    userName: {
                        required: "请输入用户名"
                    },
                    password:{
                        required: "请输入密码",
                        minlength:"密码要大于五位"
                    },
                    companyName: {
                        required: "请选择权属单位"
                    },
                    roleId: {
                        required: "请选择用户角色"
                    }
                },
                errorPlacement: function (error, element) { // render error placement for each input type

                    error.insertAfter(element); // for other inputs, just perform default behavoir

                },

                invalidHandler: function (event, validator) { //display error alert on form submit
                    success.hide();
                    error.show();
                    App.scrollTo(error, -200);
                },

                highlight: function (element) { // hightlight error inputs
                    $(element)
                        .closest('.help-inline').removeClass('ok'); // display OK icon
                    $(element)
                        .closest('.control-group').removeClass('success').addClass('error'); // set error class to the control group
                },

                unhighlight: function (element) { // revert the change dony by hightlight
                    $(element)
                        .closest('.control-group').removeClass('error'); // set error class to the control group
                },

                success: function (label) {
                    label
                        .addClass('valid ok') // mark the current input as valid and display OK icon
                        .closest('.control-group').removeClass('error').addClass('success'); // set success class to the control group

                },

                submitHandler: function (form) {
                    $.ajax( {
                        type: "POST",
                        url: $('#context').val()+"/user/user-info-save.do",
                        //  dataType:'json',
                        //TODO LIST:按条件查询服务器数据
                        //   data: JSON.stringify($('#submit_form').serialize()),
                        data: $('#submit_form').serialize(),
                        success: function(data) {

                            var jData = eval(data);
                            if(jData.success==true) {

                                location.href = $("#context").val() + "/content/user/user-info-list.jsp";
                            }
                            else{

                                success.hide();
                                $("#errorMessage").html(jData.message);
                                error.show();
                            }
                        },
                        error:function(request){
                            success.hide();
                            error.show();
                        }
                    });

                }
            });
        }

    };

}();