From 5a15bad0c4da87bc0da1f44a89b34c52d64b713b Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Thu, 27 Jun 2024 10:22:36 +0800
Subject: [PATCH] 积木报表+业主大会统计
---
src/page/login/userlogin.vue | 447 ++++++++++++++++++++++++++++---------------------------
1 files changed, 231 insertions(+), 216 deletions(-)
diff --git a/src/page/login/userlogin.vue b/src/page/login/userlogin.vue
index eefba39..b4bc379 100644
--- a/src/page/login/userlogin.vue
+++ b/src/page/login/userlogin.vue
@@ -1,6 +1,6 @@
<template>
- <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-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"
v-model="loginForm.tenantId"
@@ -9,20 +9,20 @@
<i slot="prefix" class="icon-quanxian"/>
</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"
- :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')">
- <i class="el-icon-view el-input__icon" slot="suffix" @click="showPassword" />
- <i slot="prefix" class="icon-mima" />
- </el-input>
- </el-form-item>
- <!-- <el-form-item v-if="this.website.captchaMode" prop="code">
+ <el-form-item prop="username">
+ <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')">
+ <i class="el-icon-view el-input__icon" slot="suffix" @click="showPassword" />
+ <i slot="prefix" class="icon-mima" />
+ </el-input>
+ </el-form-item>
+ <!-- <el-form-item v-if="this.website.captchaMode" prop="code">
<el-row :span="24">
<el-col :span="16">
<el-input size="small"
@@ -41,221 +41,236 @@
</el-col>
</el-row>
</el-form-item> -->
- <el-form-item>
- <el-button type="primary" size="small" @click.native.prevent="handleLogin" class="login-submit">{{
+ <el-form-item>
+ <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">
- <avue-form :option="userOption" v-model="userForm" @submit="submitLogin" />
- </el-dialog>
- </el-form>
+ </el-button>
+ </el-form-item>
+ <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 Layout from "@/page/index/"
-import { mapGetters } from "vuex"
-import { info } from "@/api/system/tenant"
-// import {getCaptcha} from "@/api/user";
-import { getTopUrl } from "@/util/util"
+ import Layout from "@/page/index/"
+ import {
+ mapGetters
+ } from "vuex"
+ import {
+ info
+ } from "@/api/system/tenant"
+ // import {getCaptcha} from "@/api/user";
+ import {
+ getTopUrl
+ } from "@/util/util"
-export default {
+ export default {
name: "userlogin",
- data () {
- return {
- tenantMode: this.website.tenantMode,
- loginForm: {
- //租户ID
- tenantId: "000000",
- //部门ID
- deptId: "",
- //角色ID
- roleId: "",
- //用户名
- username: "",
- //密码
- password: "",
- //账号类型
- type: "account",
- //验证码的值
- code: "",
- //验证码的索引
- key: "",
- //预加载白色背景
- image: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
- },
- loginRules: {
- // tenantId: [
- // {required: false, message: "请输入租户ID", trigger: "blur"}
- // ],
- username: [
- { required: true, message: "请输入用户名", trigger: "blur" }
- ],
- password: [
- { required: true, message: "请输入密码", trigger: "blur" },
- { min: 1, message: "密码长度最少为6位", trigger: "blur" }
- ]
- },
- passwordType: "password",
- userBox: false,
- userForm: {
- deptId: '',
- roleId: ''
- },
- userOption: {
- labelWidth: 70,
- submitBtn: true,
- emptyBtn: false,
- submitText: '登录',
- column: [
- {
- label: '部门',
- prop: 'deptId',
- type: 'select',
- props: {
- label: 'deptName',
- value: 'id'
- },
- dicUrl: '/api/blade-system/dept/select',
- span: 24,
- display: false,
- rules: [{
- required: true,
- message: "请选择部门",
- trigger: "blur"
- }],
- },
- {
- label: '角色',
- prop: 'roleId',
- type: 'select',
- props: {
- label: 'roleName',
- value: 'id'
- },
- dicUrl: '/api/blade-system/role/select',
- span: 24,
- display: false,
- rules: [{
- required: true,
- message: "请选择角色",
- trigger: "blur"
- }],
- },
- ]
- }
- }
- },
- created () {
- this.getTenant()
- // this.refreshCode();
- },
- mounted () {
- },
- watch: {
- 'loginForm.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
- } else {
- column.dicUrl = ''
- }
+ data() {
+ return {
+ tenantMode: this.website.tenantMode,
+ loginForm: {
+ //租户ID
+ tenantId: "000000",
+ //部门ID
+ deptId: "",
+ //角色ID
+ roleId: "",
+ //用户名
+ username: "",
+ //密码
+ password: "",
+ //账号类型
+ type: "account",
+ //验证码的值
+ code: "",
+ //验证码的索引
+ key: "",
+ //预加载白色背景
+ image: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
},
- 'loginForm.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
- } else {
- column.dicUrl = ''
+ loginRules: {
+ // tenantId: [
+ // {required: false, message: "请输入租户ID", trigger: "blur"}
+ // ],
+ username: [{
+ required: true,
+ message: "请输入用户名",
+ trigger: "blur"
+ }],
+ password: [{
+ required: true,
+ message: "请输入密码",
+ trigger: "blur"
+ },
+ {
+ min: 1,
+ message: "密码长度最少为6位",
+ trigger: "blur"
}
+ ]
+ },
+ passwordType: "password",
+ userBox: false,
+ userForm: {
+ deptId: '',
+ roleId: ''
+ },
+ userOption: {
+ labelWidth: 70,
+ submitBtn: true,
+ emptyBtn: false,
+ submitText: '登录',
+ column: [{
+ label: '部门',
+ prop: 'deptId',
+ type: 'select',
+ props: {
+ label: 'deptName',
+ value: 'id'
+ },
+ dicUrl: '/api/blade-system/dept/select',
+ span: 24,
+ display: false,
+ rules: [{
+ required: true,
+ message: "请选择部门",
+ trigger: "blur"
+ }],
+ },
+ {
+ label: '角色',
+ prop: 'roleId',
+ type: 'select',
+ props: {
+ label: 'roleName',
+ value: 'id'
+ },
+ dicUrl: '/api/blade-system/role/select',
+ span: 24,
+ display: false,
+ rules: [{
+ required: true,
+ message: "请选择角色",
+ trigger: "blur"
+ }],
+ },
+ ]
}
+ }
+ },
+ created() {
+ this.getTenant()
+ // this.refreshCode();
+ },
+ mounted() {},
+ watch: {
+ 'loginForm.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
+ } else {
+ column.dicUrl = ''
+ }
+ },
+ 'loginForm.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
+ } else {
+ column.dicUrl = ''
+ }
+ }
},
computed: {
- ...mapGetters(["tagWel", "userInfo"])
+ ...mapGetters(["tagWel", "userInfo"])
},
props: [],
methods: {
- // refreshCode () {
- // if (this.website.captchaMode) {
- // getCaptcha().then(res => {
- // const data = res.data
- // this.loginForm.key = data.key
- // this.loginForm.image = data.image
- // })
- // }
- // },
- showPassword () {
- this.passwordType === ""
- ? (this.passwordType = "password")
- : (this.passwordType = "")
- },
- submitLogin (form, done) {
- if (form.deptId !== '') {
- this.loginForm.deptId = form.deptId
- }
- if (form.roleId !== '') {
- this.loginForm.roleId = form.roleId
- }
- this.handleLogin()
- done()
- },
- handleLogin () {
- this.$refs.loginForm.validate(valid => {
- if (valid) {
- const loading = this.$loading({
- lock: true,
- text: '登录中,请稍后。。。',
- spinner: "el-icon-loading"
- })
- this.$store.dispatch("LoginByUsername", this.loginForm).then((res) => {
- if (res.error) {
- loading.close()
- return
- }
-
- if (this.website.switchMode) {
- 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.$store.dispatch("LogOut").then(() => {
- loading.close()
- })
- return false
- }
- }
-
- this.$router.$avueRouter.formatRoutes(res.menuData, true)
- this.$router.push({ path: res.fistMenu.path })
-
- loading.close()
- }).catch(() => {
- loading.close()
- // this.refreshCode()
- })
- }
- })
- },
-
- getTenant () {
- let domain = getTopUrl()
- // 临时指定域名,方便测试
- //domain = "https://bladex.cn";
- info(domain).then(res => {
- 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})`
- }
- })
+ // refreshCode () {
+ // if (this.website.captchaMode) {
+ // getCaptcha().then(res => {
+ // const data = res.data
+ // this.loginForm.key = data.key
+ // this.loginForm.image = data.image
+ // })
+ // }
+ // },
+ showPassword() {
+ this.passwordType === "" ?
+ (this.passwordType = "password") :
+ (this.passwordType = "")
+ },
+ submitLogin(form, done) {
+ if (form.deptId !== '') {
+ this.loginForm.deptId = form.deptId
}
+ if (form.roleId !== '') {
+ this.loginForm.roleId = form.roleId
+ }
+ this.handleLogin()
+ done()
+ },
+ handleLogin() {
+ this.$refs.loginForm.validate(valid => {
+ if (valid) {
+ const loading = this.$loading({
+ lock: true,
+ text: '登录中,请稍后。。。',
+ spinner: "el-icon-loading"
+ })
+ this.$store.dispatch("LoginByUsername", this.loginForm).then((res) => {
+ if (res.error) {
+ loading.close()
+ return
+ }
+
+ if (this.website.switchMode) {
+ 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.$store.dispatch("LogOut").then(() => {
+ loading.close()
+ })
+ return false
+ }
+ }
+
+ this.$router.$avueRouter.formatRoutes(res.menuData, true)
+ this.$router.push({
+ path: res.fistMenu.path
+ })
+
+ loading.close()
+ }).catch(() => {
+ loading.close()
+ // this.refreshCode()
+ })
+ }
+ })
+ },
+
+ getTenant() {
+ let domain = getTopUrl()
+ // 临时指定域名,方便测试
+ //domain = "https://bladex.cn";
+ info(domain).then(res => {
+ 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})`
+ }
+ })
+ }
}
-}
+ }
</script>
-<style></style>
+<style></style>
\ No newline at end of file
--
Gitblit v1.9.3