{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-fvue\\src\\views\\main\\organizationPermission\\UserManager.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\views\\main\\organizationPermission\\UserManager.vue","mtime":1667327530028},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport utils from '@/hotent-ui-util.js'\r\nimport uc from '@/api/uc.js'\r\nimport org from '@/api/org.js'\r\nimport sys from '@/api/portal.js'\r\nimport eipOrgDialog from '@/components/dialog/EipOrgDialog.vue'\r\nimport eipPostDialog from '@/components/dialog/EipPostDialog.vue'\r\nconst eipRoleDialog = () => import('@/components/dialog/EipRoleDialog.vue')\r\n\r\nexport default {\r\n    name: 'UserManager',\r\n    components: {\r\n        eipOrgDialog,\r\n        eipPostDialog,\r\n        eipRoleDialog,\r\n    },\r\n    computed: {\r\n        saveUserUrl: function () {\r\n            let preUrl = window.context.uc + '/api/user/v1/user'\r\n            if (this.account) {\r\n                preUrl += '/updateUser'\r\n            } else {\r\n                preUrl += '/addUser'\r\n            }\r\n            return preUrl\r\n        },\r\n        delOrgUser: function () {\r\n            return window.context.uc + '/api/org/v1/orgUser/delOrgUser'\r\n        },\r\n        ElectronicSealSubmitUrl: function () {\r\n            return window.context.uc + '/uc/electronicSeal/v1/save'\r\n        },\r\n        electronicSealPicUrl: function () {\r\n            return (\r\n                window.context.uc +\r\n                '/file/v1/preview?fileId=' +\r\n                this.electronicSeal.fileId\r\n            )\r\n        },\r\n    },\r\n    data() {\r\n        return {\r\n            user: {\r\n                id: '',\r\n                account: '',\r\n                address: '',\r\n                email: '',\r\n                fullname: '',\r\n                mobile: '',\r\n                password: '',\r\n                photo: '',\r\n                sex: '',\r\n                status: 1,\r\n                userType: 2,\r\n            },\r\n            photoUrl: '/img/defaultPhoto.jpg',\r\n            orgPostPageResult: {\r\n                page: 1,\r\n                pageSize: 20,\r\n                total: 0,\r\n            },\r\n            rolePageResult: {\r\n                page: 1,\r\n                pageSize: 20,\r\n                total: 0,\r\n            },\r\n            orgPostList: [], //组织岗位\r\n            userRoleList: [], //用户角色,\r\n            userParam: {}, //当前用户的用户参数值\r\n            userParams: [], //系统的所有用户参数\r\n            account: '',\r\n            isSubmit: false,\r\n            currentTabName: 'basic',\r\n            userParamLoaded: false,\r\n            userOrgPostLoaded: false,\r\n            userRoleLoaded: false,\r\n            pwdValidate: {\r\n                required: true,\r\n                min: 6,\r\n                max: 30,\r\n            },\r\n            electronicSeal: {\r\n                fileId: '',\r\n                password: '',\r\n                picUrl: '',\r\n            }, // 签章\r\n            electronicSealPic: '',\r\n            sealPicShow: false,\r\n            electronicSealFormSubmit: false,\r\n        }\r\n    },\r\n    props: ['userAccount', 'orgCode'],\r\n    mounted() {\r\n      \r\n        this.account = this.userAccount\r\n        // 用户参数是否已加载\r\n        this.userParamLoaded = false\r\n        // 是否显示用户所属组织岗位\r\n        this.userOrgPostLoaded = false\r\n        // 是否显示用户拥有的角色\r\n        this.userRoleLoaded = false\r\n        if (this.account) {\r\n            uc.getUser(this.account).then((resp) => {\r\n                this.user = resp.user\r\n                if (this.user.photo) {\r\n                    this.$store\r\n                        .dispatch('menu/downloadImg', this.user.photo)\r\n                        .then((res) => {\r\n                            if (res != '') {\r\n                                this.photoUrl = res\r\n                            }\r\n                        })\r\n                }\r\n            })\r\n        }\r\n        //默认密码策略\r\n        uc.getDefaultPwdStrategy().then((data) => {\r\n            if (data) {\r\n                let form = data\r\n                //默认初始化密码\r\n                if (form.initPwd) {\r\n                    this.user.password = form.initPwd\r\n                }\r\n                if (form.enable == 1) {\r\n                    let pwdRule = form.pwdRule\r\n                    let pwdLength = form.pwdLength\r\n                    if (pwdRule == 1) {\r\n                        this.pwdValidate = {\r\n                            required: true,\r\n                            min: pwdLength,\r\n                        }\r\n                    } else {\r\n                        let regex = {}\r\n                        if (pwdRule == 2) {\r\n                            regex = {\r\n                                exp:\r\n                                    '^(?=.*[0-9])(?=.*[a-zA-Z]).{' +\r\n                                    pwdLength +\r\n                                    ',30}$',\r\n                                message:\r\n                                    '密码必须包含字母、数字,至少' +\r\n                                    pwdLength +\r\n                                    '位',\r\n                            }\r\n                        } else if (pwdRule == 3) {\r\n                            regex = {\r\n                                exp:\r\n                                    '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{' +\r\n                                    pwdLength +\r\n                                    ',30}$',\r\n                                message:\r\n                                    '密码必须包含数字、字母、特殊字符,至少' +\r\n                                    pwdLength +\r\n                                    '位',\r\n                            }\r\n                        } else if (pwdRule == 4) {\r\n                            regex = {\r\n                                exp:\r\n                                    '^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[^a-zA-Z0-9]).{' +\r\n                                    pwdLength +\r\n                                    ',30}$',\r\n                                message:\r\n                                    '密码必须包含数字、大小写字母、特殊字符,至少' +\r\n                                    pwdLength +\r\n                                    '位',\r\n                            }\r\n                        }\r\n                        this.pwdValidate = {\r\n                            required: true,\r\n                            regex: regex,\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        })\r\n    },\r\n    methods: {\r\n        phonoError(e) {\r\n            // this.user.photo = \"/img/defaultPhoto.jpg\";\r\n        },\r\n        addOrg() {\r\n            if (!this.orgCode || !this.user.account) {\r\n                return false\r\n            }\r\n            //是否是编辑用户,是编辑用户就不要添加到组织下\r\n            if (this.user.id) {\r\n                return false\r\n            }\r\n            let param = [\r\n                {\r\n                    code: this.orgCode,\r\n                },\r\n            ]\r\n            this.account = this.user.account\r\n            this.addUserOrg(param)\r\n        },\r\n        async beforeSaveData() {\r\n            if (this.photo) {\r\n                this.user.photo = this.photo\r\n            }\r\n            this.isSubmit = true\r\n        },\r\n        afterSaveData() {\r\n            this.addOrg()\r\n            this.$confirm('操作成功，是否退出?', '提示', {\r\n                confirmButtonText: '退出',\r\n                cancelButtonText: '不退出',\r\n                type: 'warning',\r\n            })\r\n                .then(() => {\r\n                    //点击取消按钮\r\n                    this.$emit('handleCloseUserManager')\r\n                })\r\n                .catch(() => {\r\n                    this.account = this.user.account\r\n                    this.electronicSealFormSubmit = false\r\n                })\r\n        },\r\n        updateUserImage(param) {\r\n            const formData = new FormData()\r\n            formData.append('files', param.file)\r\n            uc.fileUpload(formData)\r\n                .then((response) => {\r\n                    this.photo = response.fileId\r\n                    this.user.photo = response.fileId\r\n                    this.$store\r\n                        .dispatch('menu/downloadImg', response.fileId)\r\n                        .then((res) => {\r\n                            if (res != '') {\r\n                                this.photoUrl = res\r\n                            }\r\n                        })\r\n                    param.onSuccess() // 上传成功的图片会显示绿色的对勾\r\n                })\r\n                .catch((response) => {\r\n                    param.onError()\r\n                })\r\n        },\r\n        updateElectronicSeal(param) {\r\n            const formData = new FormData()\r\n            formData.append('files', param.file)\r\n            uc.fileUpload(formData).then((response) => {\r\n                this.electronicSeal.fileId = response.fileId\r\n                this.$store\r\n                    .dispatch('menu/downuserloadImg', response.fileId)\r\n                    .then((res) => {\r\n                        if (res != '') {\r\n                            this.electronicSealPic = res\r\n                            this.sealPicShow = true\r\n                        }\r\n                    })\r\n                this.$message.success('上传成功')\r\n            })\r\n        },\r\n        electronicSaveData() {\r\n            this.electronicSealFormSubmit = true\r\n            if (!this.electronicSeal.fileId) {\r\n                this.$message.error('请上传签章！')\r\n                this.electronicSealFormSubmit = false\r\n                return false\r\n            }\r\n            if (!this.electronicSeal.password) {\r\n                this.$message.error('请输入密码！')\r\n                this.electronicSealFormSubmit = false\r\n                return false\r\n            } else if (\r\n                this.electronicSeal.password != this.electronicSeal.confirmPwd\r\n            ) {\r\n                this.$message.error('两次输入的密码不一致，请重新输入')\r\n                this.electronicSealFormSubmit = false\r\n                return false\r\n            }\r\n            this.electronicSeal.userId = this.user.id\r\n        },\r\n        orgPostData(param, cb) {\r\n            uc.getUserOrgPage(param)\r\n                .then((response) => {\r\n                    this.orgPostList = response.rows\r\n                    this.orgPostPageResult = {\r\n                        page: response.page,\r\n                        pageSize: response.pageSize,\r\n                        total: response.total,\r\n                    }\r\n                })\r\n                .finally(() => cb())\r\n        },\r\n        setMaster(row) {\r\n            let flag = false\r\n            let orgName = ''\r\n            this.orgPostList.forEach((item) => {\r\n                if (item.isMaster === 1 && row.orgId !== item.orgId) {\r\n                    orgName = item.orgName\r\n                    flag = true\r\n                }\r\n            })\r\n            if (flag) {\r\n                this.$confirm(\r\n                    '该用户已设置主组织' + orgName + '，是否重新设置？',\r\n                    '提示',\r\n                    {\r\n                        confirmButtonText: '确定',\r\n                        cancelButtonText: '取消',\r\n                        type: 'success',\r\n                    }\r\n                )\r\n                    .then(() => {\r\n                        uc.setMasterById(row.orgUserId).then((resp) => {\r\n                            this.$refs.orgPostTables.load()\r\n                        })\r\n                    })\r\n                    .catch(() => {})\r\n            } else {\r\n                uc.setMasterById(row.orgUserId).then((resp) => {\r\n                    this.$refs.orgPostTables.load()\r\n                })\r\n            }\r\n        },\r\n        showEipOrgDialog() {\r\n            this.$refs.eipOrgDialog.showDialog()\r\n        },\r\n        showEipPostDialog() {\r\n            this.$refs.eipPostDialog.showDialog()\r\n        },\r\n        checkBeyondOrg(orgCodes, callback) {\r\n            org.getOrgLimitByCodes(orgCodes.join(',')).then((resp) => {\r\n                let normalOrgCodes = []\r\n                let beyondOrgs = []\r\n                if (resp && resp.rows) {\r\n                    resp.rows.forEach((org) => {\r\n                        if (org.exceedLimitNum === 1 && org.limitNum != 0) {\r\n                            if (org.limitNum > org.nowNum + 1) {\r\n                                normalOrgCodes.push(org.code)\r\n                            } else {\r\n                                beyondOrgs.push(org)\r\n                            }\r\n                        } else {\r\n                            normalOrgCodes.push(org.code)\r\n                        }\r\n                    })\r\n                }\r\n                callback({normal: normalOrgCodes, beyond: beyondOrgs})\r\n            })\r\n        },\r\n        addUserOrg(param) {\r\n            param = param.map((param) => {\r\n                return param.code\r\n            })\r\n            let _this = this\r\n            this.checkBeyondOrg(param, function (resp) {\r\n                if (resp.beyond.length > 0) {\r\n                    let beyondOrgNames = resp.beyond.map((org) => {\r\n                        return org.name\r\n                    })\r\n                    _this.$message.error(\r\n                        '添加失败：组织【' +\r\n                            beyondOrgNames.join(',') +\r\n                            '】超出限编'\r\n                    )\r\n                    return\r\n                }\r\n                var params = {\r\n                    account: _this.account,\r\n                    orgCode: resp.normal,\r\n                }\r\n                uc.saveUserOrgs(params).then((resp) => {\r\n                    _this.$refs.orgPostTables.load()\r\n                })\r\n            })\r\n        },\r\n        addUserPost(param) {\r\n            param = param.map((param) => {\r\n                return param.code\r\n            })\r\n            var params = {\r\n                account: this.account,\r\n                Code: param,\r\n            }\r\n            uc.saveUserPosts(params).then((resp) => {\r\n                this.$refs.orgPostTables.load()\r\n            })\r\n        },\r\n        getOrg(_param) {\r\n            org.getOrg(_param.orgCode).then((resp) => {\r\n                if (resp.exceedLimitNum === 1 && resp.limitNum != 0) {\r\n                    if (resp.limitNum > resp.nowNum + 1) {\r\n                        return _param.code\r\n                    } else {\r\n                        isBeyond = true\r\n                    }\r\n                } else {\r\n                    return _param.code\r\n                }\r\n            })\r\n        },\r\n        showEipRoleDialog() {\r\n            this.$refs.eipRoleDialog.showDialog()\r\n        },\r\n        deleteOrgPost(id) {\r\n            uc.delOrgUser(id).then(() => {\r\n                this.$refs.orgPostTables.load()\r\n            })\r\n        },\r\n        userRoleLoad(param, cb) {\r\n            uc.userRolePage(param)\r\n                .then((response) => {\r\n                    if (response) {\r\n                        this.userRoleList = response.rows\r\n                        this.rolePageResult = {\r\n                            page: response.page,\r\n                            pageSize: response.pageSize,\r\n                            total: response.total,\r\n                        }\r\n                    }\r\n                })\r\n                .finally(() => cb())\r\n        },\r\n        deleteUserRole(code) {\r\n            var params = {\r\n                account: this.account,\r\n                codes: code,\r\n            }\r\n            uc.delUserRole(params).then(() => {\r\n                this.$refs.userRoleTable.load()\r\n            })\r\n        },\r\n        addUserRole(param) {\r\n            param = param.map((param) => {\r\n                return param.code\r\n            })\r\n            var params = {\r\n                account: this.account,\r\n                codes: param,\r\n            }\r\n            uc.saveUserRoles(params).then(() => {\r\n                this.$refs.userRoleTable.load()\r\n            })\r\n        },\r\n        userParamSubmit() {\r\n            var param = {\r\n                account: this.user.account,\r\n            }\r\n            var data = []\r\n            let _this = this\r\n            for (var _param in this.userParam) {\r\n                for (let i = 0; i < _this.userParams.length; i++) {\r\n                    if (\r\n                        _this.userParams[i].ctlType === 'input' &&\r\n                        _this.userParam[_param].length > 30\r\n                    ) {\r\n                        this.$message({\r\n                            type: 'warning',\r\n                            message: '内容超出输入限制',\r\n                        })\r\n                        return false\r\n                    }\r\n                }\r\n                data.push({alias: _param, value: this.userParam[_param]})\r\n            }\r\n            uc.saveUserParams(data, param).then((resp) => {\r\n                this.$message({\r\n                    message: resp.message,\r\n                    type: 'success',\r\n                    showClose: true,\r\n                })\r\n            })\r\n        },\r\n        closeUserManager() {\r\n            // 调用父级方法关闭面板\r\n            this.$emit('closeUserManeger')\r\n        },\r\n        // 点击某个tab页签时再加载该页签的数据\r\n        tabClick() {\r\n            switch (this.currentTabName) {\r\n                case 'orgPost':\r\n                    this.userOrgPostLoaded = true\r\n                    break\r\n                case 'role':\r\n                    this.userRoleLoaded = true\r\n                    break\r\n                case 'param':\r\n                    // 获取用户参数\r\n                    if (!this.userParamLoaded && this.account) {\r\n                        uc.getUserParams()\r\n                            .then((resp) => {\r\n                                this.userParamLoaded = true\r\n                                this.userParams = resp\r\n                                return resp\r\n                            })\r\n                            .then((params) => {\r\n                                if (\r\n                                    !params ||\r\n                                    params.constructor != Array ||\r\n                                    params.length < 1\r\n                                ) {\r\n                                    return\r\n                                }\r\n                                uc.getUserParamsValue(this.account).then(\r\n                                    (response) => {\r\n                                        if (\r\n                                            response &&\r\n                                            response.constructor == Array\r\n                                        ) {\r\n                                            response.forEach((r) => {\r\n                                                this.$set(\r\n                                                    this.userParam,\r\n                                                    r['alias'],\r\n                                                    r['value']\r\n                                                )\r\n                                            })\r\n                                        }\r\n                                    }\r\n                                )\r\n                            })\r\n                    }\r\n                    break\r\n                case 'electronicSeal':\r\n                  uc.getSealByUserId(this.user.id).then((resp) => {\r\n                        if (resp) {\r\n                            this.electronicSeal = resp\r\n                            this.$store\r\n                                .dispatch(\r\n                                    'menu/downuserloadImg',\r\n                                    this.electronicSeal.fileId\r\n                                )\r\n                                .then((res) => {\r\n                                    if (res != '') {\r\n                                        this.electronicSealPic = res\r\n                                        this.sealPicShow = true\r\n                                    }\r\n                                })\r\n                        }\r\n                    })\r\n                    break\r\n            }\r\n        },\r\n        afterDelOrgUser() {\r\n            this.$refs.orgPostTables.load()\r\n        },\r\n        beforeAvatarUpload(file) {\r\n            var FileExt = file.name.replace(/.+\\./, '')\r\n            if (['png'].indexOf(FileExt.toLowerCase()) === -1) {\r\n                this.$message({\r\n                    type: 'warning',\r\n                    message: '请上传后缀名为png类型的图片',\r\n                })\r\n                return false\r\n            }\r\n        },\r\n        removeElectronicSealPic() {\r\n          this.$http\r\n            .remove(\r\n              '${uc}/uc/electronicSeal/v1/remove/?ids=' + this.electronicSeal.id\r\n            )\r\n            .then((rep) => {\r\n              if (rep.data.state) {\r\n                this.electronicSealPic = ''\r\n                this.sealPicShow = false\r\n                Message.success('删除成功')\r\n              }\r\n            })\r\n        },\r\n    },\r\n}\r\n",null]}