<template>
  <div class="login" style="text-align: center;width: 100%">
    <el-card class="box-card" style="text-align: center" v-loading="loading">
      <div style="flex:1;margin: 0 auto">
        <el-form
          :model="ruleForm"
          status-icon
          :rules="rules"
          ref="ruleForm"
          label-width="100px"
        >
            <el-form-item><p style="font-size: 30px">登录</p></el-form-item>
            <el-form-item label="账号" prop="name">
              <el-input v-model="ruleForm.name" placeholder="请输入账号"></el-input>
            </el-form-item>
              <el-form-item label="密码" prop="pass">
                <el-input
                  type="password"
                  v-model="ruleForm.pass"
                  autocomplete="off"
                  placeholder="请输入密码"
                  show-password
                ></el-input>
              </el-form-item>
            <el-form-item>
              <el-button type="primary" @click="submitForm('ruleForm')"
              >登录</el-button
              >
              <el-button @click="resetForm('ruleForm')">清空</el-button>
            </el-form-item>

          <el-form-item>
            <el-link target="_blank" @click="$router.push({ path: '/register' })"
            >没有账号?</el-link
            >
            <el-link type="primary" @click="$router.push({ path: '/register' })"
            >去注册</el-link
            >
          </el-form-item>
          <el-form-item>
            <div style="width: 100%">
              <el-divider>三方登录</el-divider>
              <div style="display: flex;width: 100%">
              <div style="width:50%;text-align: center">
                <img src="https://ts2.cn.mm.bing.net/th?id=ODLS.f9daea21-9936-4164-815f-b5209459f3c6&w=32&h=32&qlt=90&pcl=fffffa&o=6&pid=1.2" style="width:10px;line-height: 56px"/>
                <el-link type="primary" @click="thirdLogin('azure')"
                >微软登录</el-link
                >
              </div>
              <div style="width:50%;text-align: center">
                <img src="https://sola.gtimg.cn/aoi/sola/20210118201807_hzF9zYwEBj.png" style="width:10px;line-height: 56px"/>
                <el-link type="primary" @click="thirdLogin('qq')"
                >QQ登录</el-link
                >
              </div>
              </div>
            </div>
          </el-form-item>

        </el-form>
      </div>
    </el-card>
  </div>
</template>

<script>
import store from '@/store'
export default {
    name: 'Login',
    data () {
        const checkName = (rule, value, callback) => {
            if (!value) {
                return callback(new Error('账号不能为空'))
            }
            setTimeout(() => {
                if (value.length < 2) {
                    callback(new Error('名字至少两位'))
                } else {
                    callback()
                }
            }, 1000)
        }
        const validatePass = (rule, value, callback) => {
            if (value === '') {
                callback(new Error('密码不能为空'))
            } else {
                callback()
            }
        }
        return {
            loading: false,
            // baseurl:"http://127.0.0.1/user/login/",
            baseurl: '/api/',
            // baseurl: 'http://yongma16.xyz/user/login/',
            ruleForm: {
                pass: '',
                // checkPass: '',
                name: ''
            },
            rules: {
                pass: [{ validator: validatePass, trigger: 'blur' }],
                checkPass: [{ validator: validatePass, trigger: 'blur' }],
                name: [{ validator: checkName, trigger: 'blur' }]
            }
        }
    },
    methods: {
        thirdLogin (type) {
            if (type === 'azure') {
                this.azureLogin()
            } else {
                this.qqLogin()
            }
        },
        azureLogin () {
            const url = 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=3a46d800-6bcc-47b5-9724-5a651b336bdb&scope=User.Read%20openid%20profile%20offline_access&redirect_uri=https%3A%2F%2Fyongma16.xyz%2Fazure_login_callback%2F&client-request-id=d4f3e873-d59f-417d-8101-ad19aac54168&response_mode=fragment&response_type=code&x-client-SKU=msal.js.browser&x-client-VER=2.26.0&client_info=1&code_challenge=pmwq-hZFKj0arSiO6WXFHngszqW0cH0fwMpd-a1Vuns&code_challenge_method=S256&nonce=e8d65872-8fe9-45b4-9b4d-b0c7db70a61f&state=eyJpZCI6IjVjNGUyZDQyLTI5Y2MtNDc5MS1iMmQ4LTBiZDAwZWM5Y2M2MyIsIm1ldGEiOnsiaW50ZXJhY3Rpb25UeXBlIjoicG9wdXAifX0%3D'
            const openHandle = window.open(url, '_black')
            console.log('openHandle', openHandle)
        },
        qqLogin () {
            const url = 'https://graph.qq.com/oauth2.0/show?which=Login&display=pc&client_id=100330589&response_type=token&scope=all&redirect_uri=https%3A%2F%2Fconnect.qq.com%2Fsdk%2Fwebtools%2Findex2.html'
            const openHandle = window.open(url, '_black')
            console.log('openHandle', openHandle)
        },
        submitForm (formName) {
            const that = this // this指向
            this.$refs[formName].validate((valid) => {
                if (valid) {
                    that.loading = true
                    // 提交数据
                    const loginUrl = that.baseurl + 'user/login/'
                    const userInfo = {
                        name: that.ruleForm.name,
                        password: that.ruleForm.pass
                    }
                    that.$axios
                        .post(loginUrl, userInfo)
                        .then((res) => {
                            // alter('提交中');
                            if (res.data.code === 1) {
                                localStorage.setItem(
                                    'yma16siteUserInfo',
                                    JSON.stringify({
                                        username: userInfo.name,
                                        password: userInfo.password
                                    })
                                )
                                store.commit('setUserInfo', userInfo) // store信息
                                document.cookie = `user=${that.ruleForm.name}`
                                that.$router.push({ path: '/' })
                                // 添加cookie
                            } else if (res.data.code === 0) {
                                // alter("失败！" res.data.msg)
                                that.$message.error('用户名或密码错误')
                            }
                            that.loading = false
                        })
                        .catch((error) => {
                            that.loading = false
                            that.$message.error(error)
                        })
                } else {
                    return false
                }
            })
        },
        resetForm (formName) {
            this.$refs[formName].resetFields()
        }
    }
}
</script>

<style scoped>
.login {
  position: relative;
  width: 100%;
  height: auto;
}
.left {
  position: relative;
  margin-top: 50px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.text {
  align-content: center;
  display: flex;
  margin: 0 auto;
  font-size: 14px;
}

.item {
  display: flex;
  margin: 0 auto;
  /* width: 50%; */
}

.box-card {
  position: relative;
  align-self: center;
  align-content: center;
  display: flex;
  width: 450px;
  /* padding-left:25%; */
  margin: 0 auto;
  opacity: 1;
  margin-top: 80px;
  background-color: #ffffff;
  box-sizing: border-box;
}
</style>
