<template>
|
<router-view/>
|
</template>
|
|
<script setup lang="ts">
|
import * as echarts from 'echarts'
|
import { getCurrentInstance, provide, onMounted } from "vue";
|
import { useStore } from "vuex";
|
import { useRoute } from 'vue-router';
|
import { ddLogin, getUserInfo, testLogin, getDingdingCorpId } from "@/apis";
|
import { Toast } from "vant";
|
|
const { proxy }: any = getCurrentInstance()
|
|
provide('ec', echarts)
|
const route = useRoute()
|
const store = useStore()
|
|
const LOGIN = async () => {
|
|
let timer: any = null
|
timer = setInterval(() => {
|
if (store.state.companyId) {
|
clearInterval(timer)
|
timer = null
|
if (proxy.$dd.env.platform !== 'notInDingTalk') {
|
if (store.state.companyId !== 'noLogin') {
|
// Toast.fail(store.state.companyId)
|
getDingdingCorpId(store.state.companyId)
|
.then(dataCode => {
|
if (dataCode.code === 200) {
|
proxy.$dd.runtime.permission.requestAuthCode({
|
corpId: dataCode.data,
|
onSuccess: async (result: any) => {
|
// process.env.VUE_APP_CORPID
|
// process.env.VUE_APP_COMPANYID
|
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)
|
} else {
|
Toast.fail(info.message)
|
}
|
} else {
|
Toast.fail(res.message)
|
}
|
proxy.$reslove()
|
},
|
onFail: (err: any) => {
|
Toast.fail('钉钉登录失败')
|
}
|
})
|
}
|
})
|
} else {
|
proxy.$reslove()
|
}
|
} else {
|
proxy.$reslove()
|
}
|
}
|
}, 1000)
|
}
|
|
if (proxy.$dd.env.platform !== 'notInDingTalk') {
|
proxy.$dd.ready(function() {
|
// 页面被唤醒的事件监听(webview)
|
document.addEventListener('resume', function(e) {
|
e.preventDefault();
|
}, false);
|
// 网络连接断开的事件监听
|
document.addEventListener('offline', function(e) {
|
e.preventDefault();
|
}, false);
|
})
|
}
|
|
onMounted(() => {
|
store.dispatch('mobilePhoneModel')
|
LOGIN()
|
})
|
</script>
|
|
<style lang="scss">
|
html, body, #app {
|
width: 100%;
|
height: 100%;
|
margin: 0;
|
}
|
</style>
|