{"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\\UserCenter.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\views\\main\\organizationPermission\\UserCenter.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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 uc from '@/api/uc.js'\r\nimport org from '@/api/org.js'\r\nimport utils from '@/hotent-ui-util.js'\r\nimport UserManager from './UserManager'\r\nimport UserDetail from './UserDetail'\r\n\r\nconst UserRoleManager = () => import('./UserRoleManager.vue')\r\nconst EipSysTypeDialog = () =>\r\n import('@/components/dialog/EipSysTypeDialog.vue')\r\nconst UnderUserTable = () => import('./UnderUserTable')\r\nconst ShiftRuleDialog = () => import('@/components/dialog/ShiftRuleDialog.vue')\r\nimport tenant from '@/store/tenant'\r\n\r\nexport default {\r\n components: {\r\n\r\n UserRoleManager,\r\n EipSysTypeDialog,\r\n UserManager,\r\n UserDetail,\r\n UnderUserTable,\r\n ShiftRuleDialog,\r\n },\r\n computed: {\r\n userDeleteUrl: function () {\r\n return window.context.uc + '/api/user/v1/user/deleteUserByIds'\r\n },\r\n saveUserUrl: function () {\r\n let preUrl = window.context.uc + '/api/user/v1/user'\r\n if (this.user.id) {\r\n preUrl += '/updateUser'\r\n } else {\r\n preUrl += '/addUser'\r\n }\r\n return preUrl\r\n },\r\n requestMethod: function () {\r\n return this.role.id ? 'PUT' : 'POST'\r\n },\r\n roleCodesOptions: function () {\r\n let result = []\r\n for (let role of this.allowRoles) {\r\n let obj = {}\r\n obj.key = role.code\r\n obj.value = role.name\r\n result.push(obj)\r\n }\r\n return result\r\n },\r\n saveRoleCopy: function () {\r\n return `${window.context.uc}/sys/sysRoleAuth/v1/saveCopy?oldCode=${this.menuPerm.code}&newCodes=${this.menuPerm.newCodes}`\r\n },\r\n importUserUrl: function () {\r\n let tenantId = ''\r\n if (tenant.state.tenantId) {\r\n tenantId = '&tenantId=' + tenant.state.tenantId\r\n }\r\n return (\r\n window.context.uc +\r\n '/api/user/v1/users/importExcelUser?demCode=' +\r\n this.importDemCode +\r\n '&repeatConver=' +\r\n this.importRepeatConver +\r\n tenantId\r\n )\r\n },\r\n importSignatureUrl: function () {\r\n let tenantId = ''\r\n if (tenant.state.tenantId) {\r\n tenantId = '&tenantId=' + tenant.state.tenantId\r\n }\r\n return (\r\n window.context.portal +\r\n '/file/v1/importSignature?repeatConver=' +\r\n this.signatureRepeatConver +\r\n tenantId\r\n )\r\n },\r\n uploadHeaders: function (mapState) {\r\n return {\r\n Authorization: 'Bearer ' + this.$store.state.login.currentUser.token,\r\n }\r\n },\r\n },\r\n data() {\r\n return {\r\n showDialogId: '',\r\n selectOrgId: '',\r\n selectOrgName: '',\r\n orgList: [], //下拉框待选择的组织\r\n demList: [], //下拉框待选择的维度\r\n treeData: [], //树形菜单展示的数组\r\n defaultProps: {\r\n children: 'children',\r\n label: 'name',\r\n },\r\n reFresh: true,\r\n dialogVisible: false,\r\n isUserManagerShow: false,\r\n showExcel: false,\r\n role: {\r\n name: '',\r\n code: '',\r\n },\r\n user: {\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 roleName: '',\r\n orgPostList: [],\r\n },\r\n isSubmit: true,\r\n data: [],\r\n pageResult: {\r\n page: 1,\r\n pageSize: 50,\r\n total: 0,\r\n },\r\n loadDataUrl: '',\r\n menuPerm: {},\r\n allowRoles: [],\r\n fileList: [],\r\n img: '',\r\n clickUserAccount: '', //当前点击用户的用户账号\r\n isUserInfo: false,\r\n isUpdatePwd: false,\r\n password: {\r\n pwd: '',\r\n newPwd: '',\r\n },\r\n pwdValidate: {\r\n required: true,\r\n min: 6,\r\n max: 30,\r\n },\r\n dialogTitle: '',\r\n roles: [],\r\n jobs: [],\r\n posts: [],\r\n importDialogVisible: false,\r\n importDemCode: '',\r\n importRepeatConver: false,\r\n exportSelection: [],\r\n orgCode: '',\r\n selectOrgUserAccount: '',\r\n orgId: '',\r\n dimenList: [],\r\n wxDtVisible: false,\r\n userUnite: {},\r\n signatureImportVisible: false,\r\n signatureRepeatConver: true,\r\n }\r\n },\r\n mounted() {\r\n this.$validator = this.$root.$validator\r\n //维度-组织数据\r\n this.getAllDemList()\r\n //获取用户导入按钮参数\r\n this.getUserExcel()\r\n //默认密码策略\r\n //this.loadPwdStratege();\r\n /*//加载全部角色\r\n this.getAllRoles();\r\n //加载全部职务\r\n this.getAllJobs();\r\n //加载全部岗位\r\n this.getAllPosts();*/\r\n },\r\n methods: {\r\n rowClick(row, column, event) {\r\n this.$refs.htTable.$refs.htTable.toggleRowSelection(row)\r\n },\r\n getUserExcel() {\r\n let this_ = this\r\n this.$http\r\n .get('${portal}/sys/sysProperties/v1/getByAlias?alias=userExcel')\r\n .then(function (resp) {\r\n if (resp.data) {\r\n this_.showExcel = true\r\n }\r\n })\r\n },\r\n demChange(data) {\r\n this.selectOrgId = data\r\n this.orgCode = ''\r\n this.loadTreeData()\r\n this.showDialogId = ''\r\n },\r\n orgTreeClick(orgbytree) {\r\n //重置数据\r\n let ary = this.$refs.htTable.querys\r\n for (var i = 0; i < ary.length; i++) {\r\n if (ary[i].group && ary[i].group == 'orgTree') {\r\n ary.remove(ary[i])\r\n }\r\n }\r\n let quickSearchEl = document.querySelector('.quick-search input')\r\n if (quickSearchEl && !quickSearchEl.value) {\r\n this.$refs.htTable.querys = []\r\n }\r\n if (!orgbytree.code) {\r\n this.$refs.htTable.querys.push({\r\n property: 'DEM_ID_',\r\n value: orgbytree.demId,\r\n group: 'orgTree',\r\n relation: 'AND',\r\n operation: 'EQUAL',\r\n })\r\n this.showDialogId = ''\r\n } else {\r\n this.orgCode = orgbytree.code\r\n let ids = []\r\n let trees = ''\r\n this.getOrgTrees(orgbytree, ids)\r\n trees = ids.join(',')\r\n if (trees != '') {\r\n this.$refs.htTable.querys.push({\r\n property: 'ORG_ID_',\r\n value: trees,\r\n group: 'orgTree',\r\n relation: 'AND',\r\n operation: 'IN',\r\n })\r\n }\r\n this.showDialogId = trees\r\n }\r\n this.$refs.htTable.load()\r\n },\r\n getOrgTrees(node, ids) {\r\n ids.push(node.id)\r\n let arr = node.children\r\n if (arr) {\r\n for (var i = 0; i < arr.length; i++) {\r\n this.getOrgTrees(arr[i], ids)\r\n }\r\n }\r\n },\r\n handleRefresh(cb) {\r\n this.loadTreeData(cb)\r\n //重置数据\r\n let ary = this.$refs.htTable.querys\r\n for (var i = 0; i < ary.length; i++) {\r\n if (ary[i].group && ary[i].group == 'orgTree') {\r\n ary.remove(ary[i])\r\n }\r\n }\r\n this.$refs.htTable.load()\r\n this.showDialogId = ''\r\n },\r\n getAllDemList() {\r\n org\r\n .getDescAll()\r\n .then((resp) => {\r\n for (let i = 0; i < resp.length; i++) {\r\n this.orgList.push({\r\n key: resp[i].id,\r\n value: resp[i].demName,\r\n })\r\n this.demList.push({\r\n key: resp[i].code,\r\n value: resp[i].demName,\r\n })\r\n this.dimenList = resp\r\n if (resp[i].isDefault === 1) {\r\n this.selectOrgId = resp[i].id\r\n }\r\n }\r\n })\r\n .then((params) => {\r\n var dem = {\r\n demId: this.selectOrgId,\r\n }\r\n org.getByParentAndDemToTree(dem).then((data) => {\r\n this.treeData = utils.tile2nest(data)\r\n })\r\n })\r\n },\r\n loadTreeData(cb) {\r\n var param = {\r\n demId: this.selectOrgId,\r\n }\r\n org.getByParentAndDemToTree(param).then((data) => {\r\n this.treeData = utils.tile2nest(data)\r\n cb && cb()\r\n })\r\n },\r\n loadPwdStratege() {\r\n uc.getDefaultPwdStrategy().then((data) => {\r\n if (data) {\r\n let form = data\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: '^(?=.*[0-9])(?=.*[a-zA-Z]).{' + pwdLength + ',30}$',\r\n message: '密码必须包含字母、数字,至少' + pwdLength + '位',\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 '密码必须包含数字、字母、特殊字符,至少' + pwdLength + '位',\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 onBeforeUploadImage(file) {\r\n const isIMAGE = file.type === 'image/jpeg' || 'image/jpg' || 'image/png'\r\n const isLt1M = file.size / 1024 / 1024 < 1\r\n if (!isIMAGE) {\r\n this.$message.error('上传文件只能是图片格式!')\r\n }\r\n if (!isLt1M) {\r\n this.$message.error('上传文件大小不能超过 1MB!')\r\n }\r\n return isIMAGE && isLt1M\r\n },\r\n UploadImage(param) {\r\n //执行文件上传\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.user.photo = '/file/v1/downloadFile?fileId=' + response.fileId\r\n param.onSuccess() // 上传成功的图片会显示绿色的对勾\r\n })\r\n .catch((response) => {\r\n param.onError()\r\n })\r\n },\r\n handleClose() {\r\n this.dialogVisible = false\r\n },\r\n handleCloseUserManager() {\r\n this.isUserManagerShow = false\r\n this.isUserInfo = false\r\n this.isUpdatePwd = false\r\n this.password = {}\r\n this.clickUserAccount = ''\r\n this.$refs.htTable.load()\r\n },\r\n showDialog(row) {\r\n if (this.showDialogId) {\r\n this.dialogTitle = '添加用户'\r\n this.isUserManagerShow = false\r\n this.$nextTick(() => {\r\n this.isUserManagerShow = true\r\n })\r\n } else {\r\n this.$message.error('请选择用户所在组织')\r\n }\r\n },\r\n dialogCancle(dialogVisible) {\r\n this[dialogVisible] = false\r\n },\r\n loadData(param, cb) {\r\n uc.getOrgUserQuery(param)\r\n .then((response) => {\r\n this.data = response.rows\r\n this.pageResult = {\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 handleCommand(params) {\r\n switch (params.command) {\r\n case 'edit':\r\n this.dialogTitle = '编辑用户'\r\n this.clickUserAccount = params.row.account\r\n this.isUserManagerShow = false\r\n this.$nextTick(() => {\r\n this.isUserManagerShow = true\r\n })\r\n break\r\n case 'showInfo':\r\n this.selectUserInfo(params.row.account)\r\n break\r\n case 'updatePwd':\r\n this.user = params.row\r\n this.isUpdatePwd = true\r\n break\r\n case 'toFront':\r\n uc.getTokenByUserName(params.row.account).then((resp) => {\r\n let token = resp.value\r\n // window.location.href = `${window.context.front}?token= ` + token;\r\n window.open(`${window.context.front}?token=` + token)\r\n })\r\n break\r\n case 'toManager':\r\n uc.getTokenByUserName(params.row.account).then((resp) => {\r\n let token = resp.value\r\n // window.location.href = `${window.context.front}?token= ` + token;\r\n window.open(`${window.context.manage}?token=` + token)\r\n })\r\n break\r\n case 'bindWxDk':\r\n this.getUserUniteData(params.row.userId)\r\n break\r\n case 'toUnderUserPage':\r\n this.selectOrgUserAccount = params.row.account\r\n this.$refs.underUserTable.showDialog(params.row.userId)\r\n break\r\n case 'shiftUser':\r\n this.setShiftUser(params.row.userId)\r\n default:\r\n break\r\n }\r\n },\r\n async beforeSaveData() {\r\n this.isSubmit = true\r\n },\r\n afterSaveData() {\r\n this.dialogVisible = false\r\n this.$refs.htTable.load()\r\n },\r\n afterDelete() {\r\n this.$refs.htTable.load()\r\n },\r\n afterLoadData(data) {\r\n // 菜单权限复制\r\n if (this.isUserManagerShow) {\r\n this.allowRoles = data\r\n }\r\n // 编辑角色\r\n if (this.dialogVisible) {\r\n this.role = data.value\r\n setTimeout(() => this.$validator.validateAll('editRoleForm'))\r\n }\r\n },\r\n showFlowTypeDialog() {\r\n this.$refs.flowTypeDialog.showDialog()\r\n },\r\n selectUserInfo(account) {\r\n //查询用户的详细信息\r\n uc.getUser(account)\r\n .then((resp) => {\r\n resp.photo = `${window.context.portal}` + resp.photo\r\n this.user = {...resp.user}\r\n })\r\n .then(() => {\r\n // 查询所属组织岗位,所属角色信息\r\n uc.getUserByUserId(this.user.id).then((resp) => {\r\n this.$set(\r\n this.user,\r\n 'roleName',\r\n resp[resp.length - 1].roleName.roleName\r\n )\r\n let _orgPostList = []\r\n for (var i = 0; i < resp.length - 1; i++) {\r\n _orgPostList.push(resp[i])\r\n }\r\n this.$set(this.user, 'orgPostList', _orgPostList)\r\n this.isUserInfo = true\r\n })\r\n })\r\n },\r\n beforeSynchronization() {\r\n var users = this.$refs.htTable.$refs.htTable.selection\r\n let userIds = users.map((obj) => {\r\n return obj.userId\r\n })\r\n uc.syncUserToWx(userIds).then(() => {\r\n this.$refs.htTable.load()\r\n })\r\n },\r\n updatePwd() {\r\n if (this.password.pwd != this.password.newPwd) {\r\n this.$message.error('两次输入密码不一致')\r\n return\r\n } else if (this.password.newPwd == '' || this.password.newPwd == null) {\r\n this.$message.error('请输入密码')\r\n return\r\n } else if (this.password.newPwd.length < 6) {\r\n this.$message.error('密码长度必须到6位')\r\n return\r\n }\r\n var param = {\r\n account: this.user.account,\r\n newPwd: this.password.newPwd,\r\n }\r\n uc.updateUserPsw(param).then(() => {\r\n this.$message({\r\n message: '修改成功!',\r\n type: 'success',\r\n })\r\n this.isUpdatePwd = false\r\n this.password = {}\r\n })\r\n },\r\n closeUserManeger() {\r\n this.handleCloseUserManager()\r\n },\r\n excelImport() {\r\n this.fullscreenLoading = false\r\n this.importDialogVisible = true\r\n },\r\n signatureImport() {\r\n this.fullscreenLoading = false\r\n this.signatureImportVisible = true\r\n },\r\n excelExport() {\r\n if (this.exportSelection.length < 1) {\r\n this.$message({type: 'warning', message: '请选择需要导出的数据!'})\r\n return false\r\n }\r\n let select = []\r\n for (let i = 0; i < this.exportSelection.length; i++) {\r\n select.push(JSON.stringify(this.exportSelection[i]))\r\n }\r\n let loading = this.$loading()\r\n uc.userExport(select, (resp) => {\r\n loading.close()\r\n this.$message({type: 'success', message: '导出成功'})\r\n })\r\n },\r\n rowClick(row, column, event) {\r\n this.$refs.htTable.$refs.htTable.toggleRowSelection(row)\r\n },\r\n selectRow(selection, row) {\r\n this.exportSelection = selection\r\n },\r\n getAllRoles() {\r\n uc.getAllRoles().then((data) => {\r\n data.forEach((item) => {\r\n this.roles.push({\r\n key: item.name,\r\n value: item.name,\r\n })\r\n })\r\n })\r\n },\r\n getAllJobs() {\r\n uc.getAllJobs().then((data) => {\r\n data.forEach((item) => {\r\n this.jobs.push({\r\n key: item.name,\r\n value: item.name,\r\n })\r\n })\r\n })\r\n },\r\n getAllPosts() {\r\n uc.getAllPosts().then((data) => {\r\n data.rows.forEach((item) => {\r\n this.posts.push({\r\n key: item.name,\r\n value: item.name,\r\n })\r\n })\r\n })\r\n },\r\n getTokenByUserName(username) {\r\n let token = ''\r\n uc.getTokenByUserName(username).then((resp) => {\r\n token = resp.value\r\n })\r\n return token\r\n },\r\n onExceed(file) {\r\n this.$message.warning('只能选择一个Excel文件!')\r\n },\r\n submitImport() {\r\n if (\r\n !this.$refs.upload.uploadFiles ||\r\n this.$refs.upload.uploadFiles.length == 0\r\n ) {\r\n this.$message.warning('请选择要导入的数据文件!')\r\n return false\r\n }\r\n if (!this.importDemCode) {\r\n this.$message.warning('请选择要导入的维度!')\r\n return false\r\n }\r\n this.$refs.upload.submit()\r\n },\r\n beforeUpload(file) {\r\n if (!file.name.endsWith('.xlsx') && !file.name.endsWith('.xls')) {\r\n this.$message.warning('只能导入Excel文件!')\r\n return false\r\n }\r\n this.fullscreenLoading = true\r\n },\r\n hadleUploadResult(response, file, fileList) {\r\n this.fullscreenLoading = false\r\n if (response.state) {\r\n this.$message.success(response.message)\r\n this.importDialogVisible = false\r\n this.$refs.htTable.load()\r\n } else {\r\n this.$message.error(response.message + ':' + response.value)\r\n }\r\n },\r\n submitSignature() {\r\n if (\r\n !this.$refs.signatureFile.uploadFiles ||\r\n this.$refs.signatureFile.uploadFiles.length == 0\r\n ) {\r\n this.$message.warning('请选择要导入的数据文件!')\r\n return false\r\n }\r\n this.$refs.signatureFile.submit()\r\n },\r\n beforeSignatureUpload(file) {\r\n if (!file.name.endsWith('.zip')) {\r\n this.$message.warning('只能导入压缩(zip)文件!')\r\n return false\r\n }\r\n this.fullscreenLoading = true\r\n },\r\n hadleSignatureUploadResult(response, file, fileList) {\r\n this.fullscreenLoading = false\r\n if (response.state) {\r\n this.$message.success(response.message)\r\n this.signatureImportVisible = false\r\n this.$refs.htTable.load()\r\n } else {\r\n this.$message.error(response.message + ':' + response.value)\r\n }\r\n },\r\n downloadTemplate() {\r\n window.location.href =\r\n window.context.manage + '/static/excel/导入组织用户模板_标准.xlsx'\r\n },\r\n setShiftUser(id) {\r\n let selection = this.$refs.htTable.$refs.htTable.selection\r\n if (selection.length <= 0) {\r\n this.$message.error('请选择用户!')\r\n return\r\n }\r\n this.$refs.shiftRuleDialog.showDialog()\r\n },\r\n shiftConfirm(data) {\r\n let selection = this.$refs.htTable.$refs.htTable.selection\r\n if (data.length > 0) {\r\n let shiftUser = selection.map((item) => {\r\n return {\r\n userId: item.id,\r\n shiftId: data[0].id,\r\n }\r\n })\r\n uc.saveShiftUser(shiftUser).then((response) => {\r\n if (response.state) {\r\n this.$message.success('设置成功')\r\n }\r\n })\r\n } else {\r\n let ids = selection.map((item) => item.id).join(',')\r\n uc.removeShiftUser(ids).then((response) => {\r\n if (response.state) {\r\n this.$message.success('设置成功')\r\n }\r\n })\r\n }\r\n },\r\n getUserUniteData(userId) {\r\n this.userUnite = {}\r\n this.userUnite.userId = userId\r\n uc.getUserUniteByUserId(userId).then((resp) => {\r\n if (resp.data) {\r\n this.userUnite = resp.data\r\n }\r\n this.wxDtVisible = true\r\n })\r\n },\r\n },\r\n}\r\n",null]}