刘帅
2026-09-22 9bcbf4398202139b31de1df6599e362915f15682
cloud-server-management/src/main/webapp/static/modular/system/user/user_info.js
@@ -1,14 +1,14 @@
/**
 * 用户详情对话框(可用于添加和修改对话框)
 */
var language =$("#language").val()
var language =1
var UserInfoDlg = {
    userInfoData: {},
    validateFields: {
        account: {
        phone: {
            validators: {
                notEmpty: {
                    message: language==1?'账户不能为空':(language==2?"The account cannot be empty":"Akaun tidak dapat kosong")
                    message: language==1?'联系电话不能为空':(language==2?"The account cannot be empty":"Akaun tidak dapat kosong")
                }
            }
        },
@@ -26,33 +26,17 @@
                }
            }
        },*/
        password: {
        birthday: {
            validators: {
                notEmpty: {
                    message: language==1?'密码不能为空':(language==2?"The password cannot be empty.":"Kata sandi tidak bisa kosong.")
                },
                identical: {
                    field: 'rePassword',
                    message: language==1?'两次密码不一致':(language==2?"The password entered twice are inconsistent.":"Kata sandi yang dimasukkan dua kali tidak konsisten.")
                },
                regexp: {
                    regexp: /(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[^a-zA-Z0-9]).{8,30}/,
                    message: language==1?'密码中必须包含大小字母、数字、特称字符,至少8个字符,最多30个字符':(language==2?"The name cannot be empty. The password must contain letters, numbers, and special characters. At least 8 characters and at most 30 characters.":"Namanya tidak bisa kosong. Kata sandi harus mengandung huruf, nomor, dan karakter khusus. Setidaknya 8 karakter dan paling tidak 30 karakter.")
                    message: '生日不能为空'
                },
            }
        },
        rePassword: {
        idCard: {
            validators: {
                notEmpty: {
                    message: language==1?'密码不能为空':(language==2?"The password cannot be empty.":"Kata sandi tidak bisa kosong.")
                },
                identical: {
                    field: 'password',
                    message: language==1?'两次密码不一致':(language==2?"The password entered twice are inconsistent.":"Kata sandi yang dimasukkan dua kali tidak konsisten.")
                },
                regexp: {
                    regexp: /(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[^a-zA-Z0-9]).{8,30}/,
                    message: language==1?'密码中必须包含大小字母、数字、特称字符,至少8个字符,最多30个字符':(language==2?"The name cannot be empty. The password must contain letters, numbers, and special characters. At least 8 characters and at most 30 characters.":"Namanya tidak bisa kosong. Kata sandi harus mengandung huruf, nomor, dan karakter khusus. Setidaknya 8 karakter dan paling tidak 30 karakter.")
                    message: '身份证号不能为空'
                },
            }
        }
@@ -93,9 +77,16 @@
                    }
                });
            }
            this.userInfoData[key] = ids;
            // 不提交不存在控件或未选择控件的空字符串,避免后端把 "" 转 Integer 时抛异常。
            if (ids !== "") {
                this.userInfoData[key] = ids;
            }
        }else{
            this.userInfoData[key]= $("#" + key).val();
            var value = $("#" + key).val();
            // 新增页 id 为空、多选门店未选中时均不应提交为 key=""。
            if (value !== null && value !== "") {
                this.userInfoData[key] = value;
            }
        }
    }
@@ -176,8 +167,14 @@
 * 收集数据
 */
UserInfoDlg.collectData = function () {
    this.set('id').set('account').set('sex').set('password').set('avatar')
        .set('email').set('name').set('birthday').set('rePassword').set('deptid').set('phone');
    this.set('id').set('account').set('sex').set('password').set('avatar').set("deptid")
        .set('email').set('name').set('birthday').set('rePassword').set('roleid').set('phone').set('idCard').set('storeIds');
    // jQuery 默认会把数组编码为 storeIds[]=1&storeIds[]=2;Spring 对 List<Integer>
    // 无法解析空下标 "[]"。转成逗号分隔值后,Spring 会自动绑定为 List<Integer>。
    if ($.isArray(this.userInfoData.storeIds)) {
        this.userInfoData.storeIds = this.userInfoData.storeIds.join(',');
    }
};
/**
@@ -213,53 +210,60 @@
    if (!this.validate()) {
        return;
    }
    if (!this.validatePwd()) {
        if(language==1){
            Feng.error("两次密码输入不一致");
        }else if(language==2){
            Feng.error("The two password entries are inconsistent");
        }else {
            Feng.error("Dua entri kata sandi tidak konsisten");
        }
    if($("#name").val()==''){
        Feng.info("请输入员工姓名")
        return;
    }
    var birthday = $("#birthday").val();
    if ("" == birthday){
        if(language==1){
            Feng.info("出生日期不能为空!");
        }else if(language==2){
            Feng.info("The date of birth cannot be empty!");
        }else {
            Feng.info("Tanggal lahir tidak bisa kosong!");
        }
    var phonePattern = /^1[3-9]\d{9}$/;
    if (!phonePattern.test($("#phone").val())) {
        Feng.info("请输入合法手机号")
        return ;
    }
    if($("#phone").val()==''){
        Feng.info("请输入员工电话")
        return;
    }
    var citySel = $("#citySel").val();
    if ("" == citySel){
        if(language==1){
            Feng.info("部门不能为空!");
        }else if(language==2){
            Feng.info("The department cannot be empty!");
        }else {
            Feng.info("Departemen tidak bisa kosong!");
        }
    if($("#birthday").val()==''){
        Feng.info("请选择员工生日")
        return;
    }
    var avatar = $("#avatar").val();
    if(avatar==''){
        Feng.info("请上传照片")
        return;
    }
    var sex = $("#sex").val();
    if(sex==''){
        Feng.info("请选择性别")
        return;
    }
    // 当前登陆人类型 如果不是平台 不校验角色选择
    var role = $("#role").val();
    if (role==1){
        var roleid = $("#roleid").val();
        if(roleid==''){
            Feng.info("请选择角色")
            return;
        }
    }
    var dept = $("#deptid").val();
    if(dept==''){
        Feng.info("请选择部门")
        return;
    }
    console.log(this.userInfoData)
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/mgr/add", function (data) {
          Feng.success("添加成功!");
        window.parent.MgrUser.table.refresh();
        UserInfoDlg.close();
        $(".img-circle").each(function () {
            $(this).attr("src",Feng.ctxPath+$("#avatar").val());
        })
        if (data==5001){
            Feng.error("该手机号已存在!");
        }else{
            Feng.success("添加成功!");
            window.parent.MgrUser.table.refresh();
            UserInfoDlg.close();
            $(".img-circle").each(function () {
                $(this).attr("src",Feng.ctxPath+$("#avatar").val());
            })
        }
    }, function (data) {
        Feng.error("添加失败!" + data.responseJSON.message + "!");
    });
@@ -278,41 +282,60 @@
    if (!this.validate()) {
        return;
    }
    console.log(this.userInfoData)
    var birthday = $("#birthday").val();
    if ("" == birthday){
        if(language==1){
            Feng.info("出生日期不能为空!");
        }else if(language==2){
            Feng.info("The date of birth cannot be empty!");
        }else {
            Feng.info("Tanggal lahir tidak bisa kosong!");
        }
    if($("#name").val()==''){
        Feng.info("请输入员工姓名")
        return;
    }
    var phone = $("#phone").val();
    if(phone == ''){
        Feng.info("请输入员工电话")
        return;
    }
    // 编辑页未改动的手机号为脱敏值(如 138****0000),后端会保留原值;
    // 仅在输入了完整新手机号时才校验格式。
    var phonePattern = /^1[3-9]\d{9}$/;
    if (phone.indexOf('*') === -1 && !phonePattern.test(phone)) {
        Feng.info("请输入合法手机号")
        return ;
    }
    if($("#birthday").val()==''){
        Feng.info("请选择员工生日")
        return;
    }
    var citySel = $("#citySel").val();
    if ("" == citySel){
        if(language==1){
            Feng.info("部门不能为空!");
        }else if(language==2){
            Feng.info("The department cannot be empty!");
        }else {
            Feng.info("Departemen tidak bisa kosong!");
        }
    var sex = $("#sex").val();
    if(sex==''){
        Feng.info("请选择性别")
        return;
    }
    // 当前登陆人类型 如果不是平台 不校验角色选择
    var role = $("#role").val();
    if (role==1){
        var roleid = $("#roleid").val();
        if(roleid==''){
            Feng.info("请选择角色")
            return;
        }
    }
    var dept = $("#deptid").val();
    if(dept==''){
        Feng.info("请选择部门")
        return;
    }
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/mgr/edit", function (data) {
        Feng.success("修改成功!");
        if (window.parent.MgrUser != undefined) {
        if (data==5001){
            Feng.error("该手机号已存在!");
        }else{
            Feng.success("修改成功!");
            window.parent.MgrUser.table.refresh();
            UserInfoDlg.close();
            $(".img-circle").each(function () {
                $(this).attr("src",Feng.ctxPath+$("#avatar").val());
            })
        }
        window.parent.$(".img-circle").each(function () {
            $(this).attr("src",$("#avatar").val());
        })
        window.parent.$("#userNameTab").text($("#name").val());
    }, function (data) {
@@ -386,4 +409,12 @@
    avatarUp.setUploadBarId("progressBar");
    avatarUp.init();
    // 员工编辑页有 roleid_ 用于回显;个人资料页只有隐藏的 roleid。
    // 不能把不存在控件的 undefined 写回 roleid,否则提交 /mgr/edit
    // 会将 sys_user.roleid 更新为字符串 "undefined"。
    var roleIdSource = $("#roleid_");
    var roleIdTarget = $("#roleid");
    if (roleIdSource.length && roleIdTarget.length && roleIdSource.val()) {
        roleIdTarget.val(roleIdSource.val());
    }
});