87 lines
2.2 KiB
Vue
87 lines
2.2 KiB
Vue
<template>
|
|
<div class="login-container flx-center">
|
|
<div class="login-box">
|
|
<div class="login-left">
|
|
<div class="title">
|
|
人资薪资核算系统<span style="font-size: 14px">v1.7</span>
|
|
</div>
|
|
<div class="sub">用于自动管理核算人员工资</div>
|
|
<img src="../../assets/login.png" alt="" />
|
|
</div>
|
|
|
|
<div class="login-form">
|
|
<div class="login-logo">
|
|
<img class="login-icon" src="../../assets/logo.png" alt="" />
|
|
<p class="logo-text">人资薪资核算系统</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup name="login">
|
|
import { useRouter } from "vue-router";
|
|
import { ref } from "vue";
|
|
// import { login, obtainUserInformationApi } from "../../api/modules/index";
|
|
import { login } from "../../api/modules/index";
|
|
import { ElMessage } from "element-plus";
|
|
import dd from "dingtalk-jsapi";
|
|
const router = useRouter();
|
|
|
|
// 登录
|
|
const loginIn = async (code) => {
|
|
let res = await login(code);
|
|
sessionStorage.setItem("token", res.result.token);
|
|
ElMessage({
|
|
message: "授权成功",
|
|
type: "success",
|
|
});
|
|
// 拿用户信息
|
|
obInformation();
|
|
router.push("/");
|
|
};
|
|
// 登录判断
|
|
const token = sessionStorage.getItem("token");
|
|
if (token) {
|
|
// 有then代表已经登录
|
|
} else {
|
|
// 钉钉环境去登录,
|
|
if (dd.env.platform === "notInDingTalk") {
|
|
// ElMessage({
|
|
// message: "检测到不是钉钉环境,请进入钉钉环境打开",
|
|
// type: "error",
|
|
// });
|
|
router.push("/");
|
|
console.log("跳转");
|
|
} else {
|
|
dd.ready(() => {
|
|
dd.runtime.permission.requestAuthCode({
|
|
corpId: "ding03f8e88dde9b426835c2f4657eb6378f", //企业id
|
|
onSuccess: function (info) {
|
|
console.log(info);
|
|
loginIn(info.code);
|
|
},
|
|
});
|
|
});
|
|
}
|
|
// 测试修改环境
|
|
// loginIn("4545");
|
|
}
|
|
// 获取个人信息
|
|
const obInformation = async () => {
|
|
let res = await obtainUserInformationApi();
|
|
const userInfo = res.result;
|
|
ElMessage({
|
|
message: "获取个人信息成功",
|
|
type: "success",
|
|
});
|
|
|
|
sessionStorage.setItem("userInfo", JSON.stringify(userInfo));
|
|
router.push("/");
|
|
};
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
@import "./index.scss";
|
|
</style>
|