| | |
| | | <template> |
| | | <el-form class="login-form" |
| | | status-icon |
| | | :rules="loginRules" |
| | | ref="loginForm" |
| | | :model="loginForm" |
| | | label-width="0"> |
| | | <el-form class="login-form" status-icon :rules="loginRules" ref="loginForm" :model="loginForm" label-width="0"> |
| | | <!-- <el-form-item v-if="tenantMode" prop="tenantId"> |
| | | <el-input size="small" |
| | | @keyup.enter.native="handleLogin" |
| | |
| | | </el-input> |
| | | </el-form-item> --> |
| | | <el-form-item prop="username"> |
| | | <el-input size="small" |
| | | @keyup.enter.native="handleLogin" |
| | | v-model="loginForm.username" |
| | | auto-complete="off" |
| | | <el-input size="small" @keyup.enter.native="handleLogin" v-model="loginForm.username" auto-complete="off" |
| | | :placeholder="$t('login.username')"> |
| | | <i slot="prefix" class="icon-yonghu"/> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="password"> |
| | | <el-input size="small" |
| | | @keyup.enter.native="handleLogin" |
| | | :type="passwordType" |
| | | v-model="loginForm.password" |
| | | auto-complete="off" |
| | | :placeholder="$t('login.password')"> |
| | | <el-input size="small" @keyup.enter.native="handleLogin" :type="passwordType" v-model="loginForm.password" |
| | | auto-complete="off" :placeholder="$t('login.password')"> |
| | | <i class="el-icon-view el-input__icon" slot="suffix" @click="showPassword"/> |
| | | <i slot="prefix" class="icon-mima"/> |
| | | </el-input> |
| | |
| | | </el-row> |
| | | </el-form-item> --> |
| | | <el-form-item> |
| | | <el-button type="primary" |
| | | size="small" |
| | | @click.native.prevent="handleLogin" |
| | | class="login-submit">{{$t('login.submit')}} |
| | | <el-button type="primary" size="small" @click.native.prevent="handleLogin" class="login-submit">{{ |
| | | $t('login.submit') }} |
| | | </el-button> |
| | | </el-form-item> |
| | | <el-dialog title="用户信息选择" |
| | | append-to-body |
| | | :visible.sync="userBox" |
| | | width="350px"> |
| | | <el-dialog title="用户信息选择" append-to-body :visible.sync="userBox" width="350px"> |
| | | <avue-form :option="userOption" v-model="userForm" @submit="submitLogin"/> |
| | | </el-dialog> |
| | | </el-form> |
| | | </template> |
| | | |
| | | <script> |
| | | import {mapGetters} from "vuex"; |
| | | import {info} from "@/api/system/tenant"; |
| | | import { mapGetters } from "vuex" |
| | | import { info } from "@/api/system/tenant" |
| | | // import {getCaptcha} from "@/api/user"; |
| | | import {getTopUrl} from "@/util/util"; |
| | | import { getTopUrl } from "@/util/util" |
| | | |
| | | export default { |
| | | name: "userlogin", |
| | |
| | | }, |
| | | ] |
| | | } |
| | | }; |
| | | } |
| | | }, |
| | | created() { |
| | | this.getTenant(); |
| | | this.refreshCode(); |
| | | this.getTenant() |
| | | // this.refreshCode(); |
| | | }, |
| | | mounted() { |
| | | }, |
| | | watch: { |
| | | 'loginForm.deptId'() { |
| | | const column = this.findObject(this.userOption.column, "deptId"); |
| | | const column = this.findObject(this.userOption.column, "deptId") |
| | | if (this.loginForm.deptId.includes(",")) { |
| | | column.dicUrl = `/api/blade-system/dept/select?deptId=${this.loginForm.deptId}`; |
| | | column.display = true; |
| | | column.dicUrl = `/api/blade-system/dept/select?deptId=${this.loginForm.deptId}` |
| | | column.display = true |
| | | } else { |
| | | column.dicUrl = ''; |
| | | column.dicUrl = '' |
| | | } |
| | | }, |
| | | 'loginForm.roleId'() { |
| | | const column = this.findObject(this.userOption.column, "roleId"); |
| | | const column = this.findObject(this.userOption.column, "roleId") |
| | | if (this.loginForm.roleId.includes(",")) { |
| | | column.dicUrl = `/api/blade-system/role/select?roleId=${this.loginForm.roleId}`; |
| | | column.display = true; |
| | | column.dicUrl = `/api/blade-system/role/select?roleId=${this.loginForm.roleId}` |
| | | column.display = true |
| | | } else { |
| | | column.dicUrl = ''; |
| | | column.dicUrl = '' |
| | | } |
| | | } |
| | | }, |
| | |
| | | refreshCode() { |
| | | if (this.website.captchaMode) { |
| | | getCaptcha().then(res => { |
| | | const data = res.data; |
| | | this.loginForm.key = data.key; |
| | | this.loginForm.image = data.image; |
| | | const data = res.data |
| | | this.loginForm.key = data.key |
| | | this.loginForm.image = data.image |
| | | }) |
| | | } |
| | | }, |
| | | showPassword() { |
| | | this.passwordType === "" |
| | | ? (this.passwordType = "password") |
| | | : (this.passwordType = ""); |
| | | : (this.passwordType = "") |
| | | }, |
| | | submitLogin (form, done) { |
| | | if (form.deptId !== '') { |
| | | this.loginForm.deptId = form.deptId; |
| | | this.loginForm.deptId = form.deptId |
| | | } |
| | | if (form.roleId !== '') { |
| | | this.loginForm.roleId = form.roleId; |
| | | this.loginForm.roleId = form.roleId |
| | | } |
| | | this.handleLogin(); |
| | | done(); |
| | | this.handleLogin() |
| | | done() |
| | | }, |
| | | handleLogin() { |
| | | this.$refs.loginForm.validate(valid => { |
| | |
| | | lock: true, |
| | | text: '登录中,请稍后。。。', |
| | | spinner: "el-icon-loading" |
| | | }); |
| | | }) |
| | | this.$store.dispatch("LoginByUsername", this.loginForm).then(() => { |
| | | if (this.website.switchMode) { |
| | | const deptId = this.userInfo.dept_id; |
| | | const roleId = this.userInfo.role_id; |
| | | const deptId = this.userInfo.dept_id |
| | | const roleId = this.userInfo.role_id |
| | | if (deptId.includes(",") || roleId.includes(",")) { |
| | | this.loginForm.deptId = deptId; |
| | | this.loginForm.roleId = roleId; |
| | | this.userBox = true; |
| | | this.loginForm.deptId = deptId |
| | | this.loginForm.roleId = roleId |
| | | this.userBox = true |
| | | this.$store.dispatch("LogOut").then(() => { |
| | | loading.close(); |
| | | }); |
| | | return false; |
| | | loading.close() |
| | | }) |
| | | return false |
| | | } |
| | | } |
| | | this.$router.push({path: this.tagWel.value}); |
| | | loading.close(); |
| | | this.$router.push({ path: this.tagWel.value }) |
| | | loading.close() |
| | | }).catch(() => { |
| | | loading.close(); |
| | | this.refreshCode(); |
| | | }); |
| | | loading.close() |
| | | this.refreshCode() |
| | | }) |
| | | } |
| | | }); |
| | | }) |
| | | }, |
| | | getTenant() { |
| | | let domain = getTopUrl(); |
| | | let domain = getTopUrl() |
| | | // 临时指定域名,方便测试 |
| | | //domain = "https://bladex.cn"; |
| | | info(domain).then(res => { |
| | | const data = res.data; |
| | | const data = res.data |
| | | if (data.success && data.data.tenantId) { |
| | | this.tenantMode = false; |
| | | this.loginForm.tenantId = data.data.tenantId; |
| | | this.$parent.$refs.login.style.backgroundImage = `url(${data.data.backgroundUrl})`; |
| | | this.tenantMode = false |
| | | this.loginForm.tenantId = data.data.tenantId |
| | | this.$parent.$refs.login.style.backgroundImage = `url(${data.data.backgroundUrl})` |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | </style> |
| | | <style></style> |