<template> 
 | 
  <div class="box"> 
 | 
    <div class="box_content" v-show="show" @click="LOGIN"> 
 | 
      <img src="@/assets/icon/loginError.png" alt="" /> 
 | 
      <span>登录失败,请点击重新登录</span> 
 | 
    </div> 
 | 
  </div> 
 | 
</template> 
 | 
  
 | 
<script setup lang="ts"> 
 | 
  import { onMounted, getCurrentInstance, ref } from 'vue' 
 | 
  import { ddLogin, getUserInfo, testLogin, getDingdingCorpId } from "@/apis" 
 | 
  import { Toast } from "vant" 
 | 
  import { useStore } from "vuex" 
 | 
  import { useRouter } from "vue-router" 
 | 
  const { proxy }: any = getCurrentInstance() 
 | 
  
 | 
  const store = useStore() 
 | 
  
 | 
  const router = useRouter() 
 | 
  
 | 
  let show = ref<boolean>(false) 
 | 
  
 | 
  const LOGIN = async () => { 
 | 
    show.value = false 
 | 
    // 判断如果是从钉钉进入,执行登录操作 
 | 
    // if (proxy.$dd.env.platform == 'notInDingTalk') { 
 | 
      // process.env.VUE_APP_COMPANYID 
 | 
    if (proxy.$dd.env.platform !== 'notInDingTalk') { 
 | 
      if (store.state.companyId !== 'noLogin') { 
 | 
        getDingdingCorpId(store.state.companyId) 
 | 
          .then(dataCode => { 
 | 
            if (dataCode.code === 200) { 
 | 
              proxy.$dd.runtime.permission.requestAuthCode({ 
 | 
                corpId: dataCode.data, 
 | 
                onSuccess: async (result: any) => { 
 | 
                  let res: any = await ddLogin({ code: result.code, companyId: store.state.companyId }) 
 | 
                  if (res.code === 200) { 
 | 
                    let info: any = await getUserInfo() 
 | 
                    if (info.code === 200) { 
 | 
                      await store.commit('setEntrance', 'DD') 
 | 
                      await store.commit('setUserInfo', info.data) 
 | 
                      await store.dispatch('getMenuList', 2) 
 | 
                      await router.go(-1) 
 | 
                    } else { 
 | 
                      Toast.fail(info.message) 
 | 
                      show.value = true 
 | 
                    } 
 | 
                  } else { 
 | 
                    Toast.fail(res.message) 
 | 
                    show.value = true 
 | 
                  } 
 | 
                }, 
 | 
                onFail: (err: any) => { 
 | 
                  show.value = true 
 | 
                  console.log(err) 
 | 
                  Toast.fail('钉钉登录失败') 
 | 
                } 
 | 
              }) 
 | 
            } 
 | 
          }) 
 | 
      } 
 | 
    } else { 
 | 
      // let res = await testLogin({ 
 | 
      //     username: 'manager', 
 | 
      //     password: '1', 
 | 
      //     companyId: '1', 
 | 
      //     uuid: '0000', 
 | 
      //     code: '0000' 
 | 
      // }) 
 | 
  
 | 
      // let res = await testLogin({ 
 | 
      //     username: '15395136032', 
 | 
      //     password: '123456', 
 | 
      //     companyId: '4', 
 | 
      //     uuid: '0000', 
 | 
      //     code: '0000' 
 | 
      // }) 
 | 
  
 | 
      // let res = await testLogin({  // 英子姐 
 | 
      //   username: '18055151023', 
 | 
      //   password: '123456', 
 | 
      //   companyId: '8', 
 | 
      //   uuid: '0000', 
 | 
      //   code: '0000' 
 | 
      // }) 
 | 
      let res = await testLogin({  // 大栓 
 | 
        username: '18019924213', 
 | 
        password: '123456', 
 | 
        companyId: '8', 
 | 
        uuid: '0000', 
 | 
        code: '0000' 
 | 
      }) 
 | 
      // let res = await testLogin({ // 文武 
 | 
      //   username: '18656077929', 
 | 
      //   password: '123456', 
 | 
      //   companyId: '111', 
 | 
      //   uuid: '0000', 
 | 
      //   code: '0000' 
 | 
      // }) 
 | 
      // let res = await testLogin({ // 张磊高 
 | 
      //   username: '15256913207', 
 | 
      //   password: '123456', 
 | 
      //   companyId: '8', 
 | 
      //   uuid: '0000', 
 | 
      //   code: '0000' 
 | 
      // }) 
 | 
  
 | 
      // let res = await testLogin({ 
 | 
      //     username: '15056231084', 
 | 
      //     password: '123456', 
 | 
      //     companyId: '1', 
 | 
      //     uuid: '0000', 
 | 
      //     code: '0000' 
 | 
      // }) 
 | 
      if (res.code === 200) { 
 | 
        window.localStorage.setItem('token', res.data) 
 | 
        let info: any = await getUserInfo() 
 | 
        if (info.code === 200) { 
 | 
          await store.commit('setEntrance', 'H5') 
 | 
          await store.commit('setUserInfo', info.data) 
 | 
          await store.dispatch('getMenuList', 2) 
 | 
          await router.go(-1) 
 | 
        } else { 
 | 
          show.value = true 
 | 
          Toast.fail(res.message) 
 | 
        } 
 | 
      } else { 
 | 
        show.value = true 
 | 
        Toast.fail(res.message) 
 | 
      } 
 | 
    } 
 | 
  } 
 | 
  
 | 
  onMounted(async () => { 
 | 
    LOGIN() 
 | 
  }) 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
.box { 
 | 
  width: 100%; 
 | 
  position: absolute; 
 | 
  height: 100%; 
 | 
  background: white; 
 | 
  .box_content { 
 | 
    position: absolute; 
 | 
    top: 50%; 
 | 
    left: 50%; 
 | 
    transform: translate(-50%, -50%); 
 | 
    display: flex; 
 | 
    align-items: center; 
 | 
    justify-content: center; 
 | 
    flex-direction: column; 
 | 
    img { 
 | 
      width: 200px; 
 | 
      height: 200px; 
 | 
    } 
 | 
    span { 
 | 
      font-size: 28px; 
 | 
      margin-top: 20px; 
 | 
    } 
 | 
  } 
 | 
} 
 | 
</style> 
 |