zouyu
2023-11-17 e5ed44879d7722c160b9af63ba51b333bc7f4d1d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<template>
  <el-form
    ref="loginForm"
    :rules="loginRules"
    :model="loginForm"
    class="login-form"
    status-icon
    label-width="0"
  >
    <el-form-item prop="username">
      <el-input
        v-model="loginForm.username"
        size="small"
        auto-complete="off"
        placeholder="请输入用户名"
        @keyup.enter.native="handleLogin"
      >
        <i slot="prefix" class="icon-yonghu" />
      </el-input>
    </el-form-item>
    <el-form-item prop="password">
      <el-input
        :type="passwordType"
        v-model="loginForm.password"
        size="small"
        auto-complete="off"
        placeholder="请输入密码"
        @keyup.enter.native="handleLogin"
      >
        <i
          slot="suffix"
          class="el-icon-view el-input__icon"
          @click="showPassword"
        />
        <i slot="prefix" class="iconfont icon-mima"></i>
      </el-input>
    </el-form-item>
    <el-form-item>
      <el-button
        type="primary"
        size="small"
        class="login-submit"
        @click.native.prevent="handleLogin"
        >登录
      </el-button>
    </el-form-item>
    <el-button v-if="false" type="primary" plain @click="goLogin"
      >集团集成登录</el-button
    >
  </el-form>
</template>
 
<script>
import { randomLenNum } from '@/util/util'
import { mapGetters } from 'vuex'
import { getCode } from '@/api/code'
import Verify from '@/components/verifition/Verify'
import { getSsoAuthUrl } from '@/api/login'
 
export default {
  name: 'Userlogin',
  components: {
    Verify
  },
  data() {
    return {
      socialForm: {
        code: '',
        state: ''
      },
      loginForm: {
        username: '',
        password: '',
        code: '',
        randomStr: 'blockPuzzle'
      },
      checked: false,
      code: {
        src: undefined,
        len: 4
      },
      loginRules: {
        username: [
          { required: true, message: '请输入用户名', trigger: 'blur' }
        ],
        password: [
          { required: true, message: '请输入密码', trigger: 'blur' },
          { min: 6, message: '密码长度最少为6位', trigger: 'blur' }
        ]
      },
      passwordType: 'password',
      SSO: window.location.hash
    }
  },
  created() {
    this.initLogin()
  },
  computed: {
    ...mapGetters(['tagWel'])
  },
  methods: {
    async goLogin() {
      const {
        data: { data }
      } = await getSsoAuthUrl()
      window.location.href = data
      // this.$router.push({ path: '/thirdpartylogin' })
    },
    showPassword() {
      this.passwordType == ''
        ? (this.passwordType = 'password')
        : (this.passwordType = '')
    },
    handleLogin() {
      this.$refs.loginForm.validate((valid) => {
        if (valid) {
          this.$store.dispatch('LoginByUsername', this.loginForm).then(() => {
            this.$router.push({ path: this.tagWel.value })
          })
        }
      })
    },
    initLogin() {
      const accessToken = this.SSO.split('&')[0].split('=')[1]
      if (accessToken) {
        this.$store.dispatch('LoginBySSO', accessToken).then(() => {
          this.$router.push({ path: this.tagWel.value })
        })
      }
    }
  }
}
</script>
 
<style></style>