{"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]}