|
@@ -1,69 +1,145 @@
|
|
<template>
|
|
<template>
|
|
<el-container v-if="isLoggedIn == false" class="login-box">
|
|
<el-container v-if="isLoggedIn == false" class="login-box">
|
|
- <div style="width: 50%;"></div>
|
|
|
|
|
|
+ <div style="width: 50%"></div>
|
|
<div class="login-container">
|
|
<div class="login-container">
|
|
- <div class="login-header">
|
|
|
|
- <!-- <h1>知识图谱自动化构建平台</h1><br> -->
|
|
|
|
- <h1>欢迎{{isSignedIn? '注册' : '登录'}}知识图谱自动化构建平台</h1>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <div class="login-header">
|
|
|
|
+ <!-- <h1>知识图谱自动化构建平台</h1><br> -->
|
|
|
|
+ <h1>欢迎{{ isSignedIn ? "注册" : "登录" }}知识图谱自动化构建平台</h1>
|
|
|
|
+ </div>
|
|
|
|
|
|
- <div v-if="isSignedIn == false">
|
|
|
|
- <el-form v-model="loginForm">
|
|
|
|
- <el-form-item label="用户名" :label-width="loginForm.formLabelWidth" size="large">
|
|
|
|
- <el-input v-model="loginForm.username" name="username" placeholder="请输入用户名"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="密码" :label-width="loginForm.formLabelWidth" size="large">
|
|
|
|
- <el-input v-model="loginForm.password" name="password" type="password" placeholder="请输入密码"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="" :label-width="loginForm.formLabelWidth">
|
|
|
|
- <el-button type="primary" @click="handleLoginSubmit">登录</el-button>
|
|
|
|
- <el-button type="success" @click="handleSignIn">注册</el-button>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-form>
|
|
|
|
- </div>
|
|
|
|
- <div v-if="isSignedIn == true">
|
|
|
|
- <!-- <div>
|
|
|
|
|
|
+ <div v-if="isSignedIn == false">
|
|
|
|
+ <el-form v-model="loginForm">
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="用户名"
|
|
|
|
+ :label-width="loginForm.formLabelWidth"
|
|
|
|
+ size="large"
|
|
|
|
+ >
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="loginForm.username"
|
|
|
|
+ name="username"
|
|
|
|
+ placeholder="请输入用户名"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="密码"
|
|
|
|
+ :label-width="loginForm.formLabelWidth"
|
|
|
|
+ size="large"
|
|
|
|
+ >
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="loginForm.password"
|
|
|
|
+ name="password"
|
|
|
|
+ type="password"
|
|
|
|
+ placeholder="请输入密码"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="" :label-width="loginForm.formLabelWidth">
|
|
|
|
+ <el-button type="primary" @click="handleLoginSubmit"
|
|
|
|
+ >登录</el-button
|
|
|
|
+ >
|
|
|
|
+ <el-button type="success" @click="handleSignIn">注册</el-button>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-if="isSignedIn == true">
|
|
|
|
+ <!-- <div>
|
|
<h1>注册</h1>
|
|
<h1>注册</h1>
|
|
</div> -->
|
|
</div> -->
|
|
|
|
|
|
- <el-form :model="loginForm" :rules="signinRules" ref="signinForm">
|
|
|
|
- <el-form-item label="用户名" :label-width="loginForm.formLabelWidth" prop="username" size="large">
|
|
|
|
- <el-input v-model="loginForm.username" name="username" placeholder="请输入用户名"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="显示姓名" :label-width="loginForm.formLabelWidth" prop="full_name" size="large">
|
|
|
|
- <el-input v-model="loginForm.full_name" name="full_name" placeholder="请输入姓名"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="密码" :label-width="loginForm.formLabelWidth" prop="password" size="large">
|
|
|
|
- <el-input v-model="loginForm.password" name="password" type="password" placeholder="请输入密码"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item lable="密码确认" :label-width="loginForm.formLabelWidth" prop="password2" size="large">
|
|
|
|
- <el-input v-model="loginForm.password2" name="password2" type="password" placeholder="请再次输入密码"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="邮箱" :label-width="loginForm.formLabelWidth" prop="email" size="large">
|
|
|
|
- <el-input v-model="loginForm.email" name="email" placeholder="请输入邮箱"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="" :label-width="loginForm.formLabelWidth">
|
|
|
|
- <el-button type="primary" @click="handleSignInSubmit">注册</el-button>
|
|
|
|
- <el-button type="success" @click="handleSignIn">登录</el-button>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-form>
|
|
|
|
|
|
+ <el-form :model="loginForm" :rules="signinRules" ref="signinForm">
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="用户名"
|
|
|
|
+ :label-width="loginForm.formLabelWidth"
|
|
|
|
+ prop="username"
|
|
|
|
+ size="large"
|
|
|
|
+ >
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="loginForm.username"
|
|
|
|
+ name="username"
|
|
|
|
+ placeholder="请输入用户名"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="显示姓名"
|
|
|
|
+ :label-width="loginForm.formLabelWidth"
|
|
|
|
+ prop="full_name"
|
|
|
|
+ size="large"
|
|
|
|
+ >
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="loginForm.full_name"
|
|
|
|
+ name="full_name"
|
|
|
|
+ placeholder="请输入姓名"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="密码"
|
|
|
|
+ :label-width="loginForm.formLabelWidth"
|
|
|
|
+ prop="password"
|
|
|
|
+ size="large"
|
|
|
|
+ >
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="loginForm.password"
|
|
|
|
+ name="password"
|
|
|
|
+ type="password"
|
|
|
|
+ placeholder="请输入密码"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ lable="密码确认"
|
|
|
|
+ :label-width="loginForm.formLabelWidth"
|
|
|
|
+ prop="password2"
|
|
|
|
+ size="large"
|
|
|
|
+ >
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="loginForm.password2"
|
|
|
|
+ name="password2"
|
|
|
|
+ type="password"
|
|
|
|
+ placeholder="请再次输入密码"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="邮箱"
|
|
|
|
+ :label-width="loginForm.formLabelWidth"
|
|
|
|
+ prop="email"
|
|
|
|
+ size="large"
|
|
|
|
+ >
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="loginForm.email"
|
|
|
|
+ name="email"
|
|
|
|
+ placeholder="请输入邮箱"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="" :label-width="loginForm.formLabelWidth">
|
|
|
|
+ <el-button type="primary" @click="handleSignInSubmit"
|
|
|
|
+ >注册</el-button
|
|
|
|
+ >
|
|
|
|
+ <el-button type="success" @click="handleSignIn">登录</el-button>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
-
|
|
|
|
</el-container>
|
|
</el-container>
|
|
<el-container class="main-container" v-if="isLoggedIn">
|
|
<el-container class="main-container" v-if="isLoggedIn">
|
|
<el-header class="site_header">
|
|
<el-header class="site_header">
|
|
<el-row>
|
|
<el-row>
|
|
-
|
|
|
|
<el-col :span="18">
|
|
<el-col :span="18">
|
|
- <div style="margin-top:8px;font-size:large;font-weight: bold;">
|
|
|
|
- <span style="vertical-align: middle;">知识图谱自动化构建平台</span>
|
|
|
|
|
|
+ <div style="margin-top: 8px; font-size: large; font-weight: bold">
|
|
|
|
+ <span style="vertical-align: middle">知识图谱自动化构建平台</span>
|
|
<span class="knowledge-base-icon" @click="goToKMPlatform"></span>
|
|
<span class="knowledge-base-icon" @click="goToKMPlatform"></span>
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="6" style="justify-content:flex-end;display: flex; flex-direction: row;margin-top:8px;">
|
|
|
|
- <el-dropdown style="margin-top:10px">
|
|
|
|
- <div style="font-size:medium;font-weight: bold; color:#000">{{ user.full_name }}</div>
|
|
|
|
|
|
+ <el-col
|
|
|
|
+ :span="6"
|
|
|
|
+ style="
|
|
|
|
+ justify-content: flex-end;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: row;
|
|
|
|
+ margin-top: 8px;
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ <el-dropdown style="margin-top: 10px">
|
|
|
|
+ <div style="font-size: medium; font-weight: bold; color: #000">
|
|
|
|
+ {{ user.full_name }}
|
|
|
|
+ </div>
|
|
<template #dropdown>
|
|
<template #dropdown>
|
|
<el-dropdown-menu>
|
|
<el-dropdown-menu>
|
|
<el-dropdown-item>用户资料</el-dropdown-item>
|
|
<el-dropdown-item>用户资料</el-dropdown-item>
|
|
@@ -72,13 +148,15 @@
|
|
</el-dropdown-menu>
|
|
</el-dropdown-menu>
|
|
</template>
|
|
</template>
|
|
</el-dropdown>
|
|
</el-dropdown>
|
|
-
|
|
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
</el-header>
|
|
</el-header>
|
|
<el-container>
|
|
<el-container>
|
|
<el-aside class="main-aside">
|
|
<el-aside class="main-aside">
|
|
- <SideMenu @selectQueue="onSelectQueue" @selectMenu="onSelectMenu"></SideMenu>
|
|
|
|
|
|
+ <SideMenu
|
|
|
|
+ @selectQueue="onSelectQueue"
|
|
|
|
+ @selectMenu="onSelectMenu"
|
|
|
|
+ ></SideMenu>
|
|
</el-aside>
|
|
</el-aside>
|
|
<el-main class="content-area">
|
|
<el-main class="content-area">
|
|
<!-- 主要内容区域 -->
|
|
<!-- 主要内容区域 -->
|
|
@@ -90,29 +168,35 @@
|
|
</el-container>
|
|
</el-container>
|
|
</template>
|
|
</template>
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
-import { onMounted, ref,watch, watchEffect } from 'vue'
|
|
|
|
-import { useRouter, useRoute } from 'vue-router'
|
|
|
|
-import { RouterView } from 'vue-router'
|
|
|
|
-import SideMenu from '@/components/SideMenu.vue'
|
|
|
|
-import { userLogin, userSignin } from '@/api/AgentApi'
|
|
|
|
-import { deleteSessionVar, getSessionVar, saveSessionVar } from '@/utils/session'
|
|
|
|
-import { ElNotification, ElMessageBox } from 'element-plus'
|
|
|
|
|
|
+import { onMounted, ref, watch, watchEffect } from "vue";
|
|
|
|
+import { useRouter, useRoute } from "vue-router";
|
|
|
|
+import { RouterView } from "vue-router";
|
|
|
|
+import SideMenu from "@/components/SideMenu.vue";
|
|
|
|
+import { userLogin, userSignin } from "@/api/AgentApi";
|
|
|
|
+import {
|
|
|
|
+ deleteSessionVar,
|
|
|
|
+ getSessionVar,
|
|
|
|
+ saveSessionVar,
|
|
|
|
+} from "@/utils/session";
|
|
|
|
+import { ElNotification, ElMessageBox } from "element-plus";
|
|
|
|
+import { useMenuStore } from "@/stores/menu.js";
|
|
|
|
+const { updateRouteList } = useMenuStore();
|
|
const router = useRouter();
|
|
const router = useRouter();
|
|
-const route = useRoute()
|
|
|
|
|
|
+const route = useRoute();
|
|
// console.log('router', router.getRoutes(), route)
|
|
// console.log('router', router.getRoutes(), route)
|
|
-const isSignedIn = ref(false)
|
|
|
|
|
|
+const isSignedIn = ref(false);
|
|
const loginForm = ref({
|
|
const loginForm = ref({
|
|
- username: '',
|
|
|
|
- password: '',
|
|
|
|
- full_name: '',
|
|
|
|
- password2: '',
|
|
|
|
- email: '',
|
|
|
|
- formLabelWidth: 100
|
|
|
|
-})
|
|
|
|
-const signinForm = ref()
|
|
|
|
|
|
+ username: "",
|
|
|
|
+ password: "",
|
|
|
|
+ full_name: "",
|
|
|
|
+ password2: "",
|
|
|
|
+ email: "",
|
|
|
|
+ formLabelWidth: 100,
|
|
|
|
+});
|
|
|
|
+const signinForm = ref();
|
|
|
|
|
|
function goToKMPlatform() {
|
|
function goToKMPlatform() {
|
|
- router.push({ name: 'kmplatform' })
|
|
|
|
|
|
+ router.push({ name: "kmplatform" });
|
|
}
|
|
}
|
|
|
|
|
|
const validatePassword = (rule: any, value: any, callback: Function) => {
|
|
const validatePassword = (rule: any, value: any, callback: Function) => {
|
|
@@ -138,7 +222,7 @@ const validatePassword2 = (rule, value, callback) => {
|
|
const signinRules = ref({
|
|
const signinRules = ref({
|
|
username: [
|
|
username: [
|
|
{ required: true, message: "请输入用户名", trigger: "blur" },
|
|
{ required: true, message: "请输入用户名", trigger: "blur" },
|
|
- { min: 3, max: 20, message: "长度在 3 到 10 个字符", trigger: "blur" }
|
|
|
|
|
|
+ { min: 3, max: 20, message: "长度在 3 到 10 个字符", trigger: "blur" },
|
|
],
|
|
],
|
|
full_name: [
|
|
full_name: [
|
|
{ required: true, message: "请输入姓名", trigger: "blur" },
|
|
{ required: true, message: "请输入姓名", trigger: "blur" },
|
|
@@ -153,16 +237,19 @@ const signinRules = ref({
|
|
],
|
|
],
|
|
email: [
|
|
email: [
|
|
{ required: true, message: "请输入邮箱", trigger: "blur" },
|
|
{ required: true, message: "请输入邮箱", trigger: "blur" },
|
|
- { type: "email", message: "请输入有效的邮箱地址", trigger: ["blur", "change"] },
|
|
|
|
|
|
+ {
|
|
|
|
+ type: "email",
|
|
|
|
+ message: "请输入有效的邮箱地址",
|
|
|
|
+ trigger: ["blur", "change"],
|
|
|
|
+ },
|
|
],
|
|
],
|
|
-
|
|
|
|
-})
|
|
|
|
-const isLoggedIn = ref(false)
|
|
|
|
|
|
+});
|
|
|
|
+const isLoggedIn = ref(false);
|
|
const user = ref({
|
|
const user = ref({
|
|
id: "0",
|
|
id: "0",
|
|
- full_name: 'John Doe',
|
|
|
|
- username: 'johndoe',
|
|
|
|
-})
|
|
|
|
|
|
+ full_name: "John Doe",
|
|
|
|
+ username: "johndoe",
|
|
|
|
+});
|
|
//校验注册信息
|
|
//校验注册信息
|
|
const onSelectQueue = (idData: any) => {
|
|
const onSelectQueue = (idData: any) => {
|
|
// console.log(router.getRoutes());
|
|
// console.log(router.getRoutes());
|
|
@@ -171,17 +258,17 @@ const onSelectQueue = (idData: any) => {
|
|
// 可以使用 router.push 方法来实现路由跳转
|
|
// 可以使用 router.push 方法来实现路由跳转
|
|
|
|
|
|
router.push({ path: `/workspace/queue/${idData.id}` });
|
|
router.push({ path: `/workspace/queue/${idData.id}` });
|
|
-}
|
|
|
|
|
|
+};
|
|
const onSelectMenu = (menuData: any) => {
|
|
const onSelectMenu = (menuData: any) => {
|
|
if (menuData.name == "graph") {
|
|
if (menuData.name == "graph") {
|
|
- router.push({ path: `/workspace/graph` })
|
|
|
|
|
|
+ router.push({ path: `/workspace/graph` });
|
|
}
|
|
}
|
|
-}
|
|
|
|
|
|
+};
|
|
const handleSignIn = () => {
|
|
const handleSignIn = () => {
|
|
- loginForm.value.username = ''
|
|
|
|
- loginForm.value.password = ''
|
|
|
|
- isSignedIn.value = !isSignedIn.value
|
|
|
|
-}
|
|
|
|
|
|
+ loginForm.value.username = "";
|
|
|
|
+ loginForm.value.password = "";
|
|
|
|
+ isSignedIn.value = !isSignedIn.value;
|
|
|
|
+};
|
|
|
|
|
|
const handleSignInSubmit = () => {
|
|
const handleSignInSubmit = () => {
|
|
// console.log('submit', loginForm.value)
|
|
// console.log('submit', loginForm.value)
|
|
@@ -191,86 +278,119 @@ const handleSignInSubmit = () => {
|
|
username: loginForm.value.username,
|
|
username: loginForm.value.username,
|
|
password: loginForm.value.password,
|
|
password: loginForm.value.password,
|
|
full_name: loginForm.value.full_name,
|
|
full_name: loginForm.value.full_name,
|
|
- email: loginForm.value.email
|
|
|
|
- }).then((res: any) => {
|
|
|
|
- loginForm.value.password = ''
|
|
|
|
- loginForm.value.password2 = ''
|
|
|
|
- loginForm.value.email = ''
|
|
|
|
- loginForm.value.full_name = ''
|
|
|
|
- loginForm.value.username = ''
|
|
|
|
- ElNotification({
|
|
|
|
- title: '成功',
|
|
|
|
- message: res.message,
|
|
|
|
- type: 'success',
|
|
|
|
- duration: 3000
|
|
|
|
- })
|
|
|
|
- isSignedIn.value = !isSignedIn.value
|
|
|
|
- }).catch((err: any) => {
|
|
|
|
- ElNotification({
|
|
|
|
- title: '错误',
|
|
|
|
- message: err.message,
|
|
|
|
- type: 'error',
|
|
|
|
- duration: 3000
|
|
|
|
- })
|
|
|
|
|
|
+ email: loginForm.value.email,
|
|
})
|
|
})
|
|
|
|
+ .then((res: any) => {
|
|
|
|
+ loginForm.value.password = "";
|
|
|
|
+ loginForm.value.password2 = "";
|
|
|
|
+ loginForm.value.email = "";
|
|
|
|
+ loginForm.value.full_name = "";
|
|
|
|
+ loginForm.value.username = "";
|
|
|
|
+ ElNotification({
|
|
|
|
+ title: "成功",
|
|
|
|
+ message: res.message,
|
|
|
|
+ type: "success",
|
|
|
|
+ duration: 3000,
|
|
|
|
+ });
|
|
|
|
+ isSignedIn.value = !isSignedIn.value;
|
|
|
|
+ })
|
|
|
|
+ .catch((err: any) => {
|
|
|
|
+ ElNotification({
|
|
|
|
+ title: "错误",
|
|
|
|
+ message: err.message,
|
|
|
|
+ type: "error",
|
|
|
|
+ duration: 3000,
|
|
|
|
+ });
|
|
|
|
+ });
|
|
} else {
|
|
} else {
|
|
console.log("表单校验失败");
|
|
console.log("表单校验失败");
|
|
}
|
|
}
|
|
});
|
|
});
|
|
-}
|
|
|
|
|
|
+};
|
|
|
|
|
|
const handleLoginSubmit = () => {
|
|
const handleLoginSubmit = () => {
|
|
// console.log('submit', loginForm.value)
|
|
// console.log('submit', loginForm.value)
|
|
- userLogin({ username: loginForm.value.username, password: loginForm.value.password }).then((res: any) => {
|
|
|
|
|
|
+ userLogin({
|
|
|
|
+ username: loginForm.value.username,
|
|
|
|
+ password: loginForm.value.password,
|
|
|
|
+ }).then((res: any) => {
|
|
// console.log(res.records[0])
|
|
// console.log(res.records[0])
|
|
- loginForm.value.password = ''
|
|
|
|
- saveSessionVar("session_id", res.records[0].session_id)
|
|
|
|
- saveSessionVar("user_id", res.records[0].user_id)
|
|
|
|
- saveSessionVar("username", res.records[0].username)
|
|
|
|
- saveSessionVar("full_name", res.records[0].full_name)
|
|
|
|
|
|
+ loginForm.value.password = "";
|
|
|
|
+ saveSessionVar("session_id", res.records[0].session.session_id);
|
|
|
|
+ saveSessionVar("user_id", res.records[0].session.user_id);
|
|
|
|
+ saveSessionVar("username", res.records[0].session.username);
|
|
|
|
+ saveSessionVar("full_name", res.records[0].session.full_name);
|
|
|
|
+ let knowledageSystem = '';
|
|
|
|
+ let routeList:any= [{
|
|
|
|
+ path: '/kmplatform/home',
|
|
|
|
+ name: 'kmplatform-home',
|
|
|
|
+ title: "主页",
|
|
|
|
+ children: []
|
|
|
|
+ }]
|
|
|
|
+ res.records[0].menu_permissions.forEach((item: any) => {
|
|
|
|
+ if(item.menu_name == "知识更新管理") {
|
|
|
|
+ knowledageSystem = 'true';
|
|
|
|
+ }
|
|
|
|
+ if (item.menu_route) {
|
|
|
|
+ routeList.push({
|
|
|
|
+ path: item.menu_route,
|
|
|
|
+ name: item.menu_route.split("/")[2],
|
|
|
|
+ title: item.name,
|
|
|
|
+ children: item.children,
|
|
|
|
+ }) ;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ console.log("knowledageSystem", knowledageSystem);
|
|
|
|
+ saveSessionVar("knowledageSystem",knowledageSystem);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ updateRouteList(routeList);
|
|
|
|
|
|
user.value = {
|
|
user.value = {
|
|
- id: getSessionVar('user_id') || "0",
|
|
|
|
- full_name: getSessionVar('full_name') || 'John Doe',
|
|
|
|
- username: getSessionVar('username') || 'johndoe',
|
|
|
|
- }
|
|
|
|
|
|
+ id: getSessionVar("user_id") || "0",
|
|
|
|
+ full_name: getSessionVar("full_name") || "John Doe",
|
|
|
|
+ username: getSessionVar("username") || "johndoe",
|
|
|
|
+ };
|
|
|
|
|
|
isLoggedIn.value = true;
|
|
isLoggedIn.value = true;
|
|
- goToKMPlatform()
|
|
|
|
- })
|
|
|
|
-}
|
|
|
|
|
|
+ goToKMPlatform();
|
|
|
|
+ });
|
|
|
|
+};
|
|
|
|
|
|
function handleLogout() {
|
|
function handleLogout() {
|
|
- deleteSessionVar("session_id")
|
|
|
|
- deleteSessionVar("user_id")
|
|
|
|
- deleteSessionVar("username")
|
|
|
|
- deleteSessionVar("full_name")
|
|
|
|
- isLoggedIn.value = false
|
|
|
|
|
|
+ deleteSessionVar("session_id");
|
|
|
|
+ deleteSessionVar("user_id");
|
|
|
|
+ deleteSessionVar("username");
|
|
|
|
+ deleteSessionVar("full_name");
|
|
|
|
+ updateRouteList([]);
|
|
|
|
+ deleteSessionVar("knowledageSystem");
|
|
|
|
+ isLoggedIn.value = false;
|
|
}
|
|
}
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
// 模拟从后端获取数据
|
|
// 模拟从后端获取数据
|
|
setTimeout(() => {
|
|
setTimeout(() => {
|
|
user.value = {
|
|
user.value = {
|
|
- id: getSessionVar('user_id') || "0",
|
|
|
|
- full_name: getSessionVar('full_name') || 'John Doe',
|
|
|
|
- username: getSessionVar('username') || 'johndoe',
|
|
|
|
- }
|
|
|
|
|
|
+ id: getSessionVar("user_id") || "0",
|
|
|
|
+ full_name: getSessionVar("full_name") || "John Doe",
|
|
|
|
+ username: getSessionVar("username") || "johndoe",
|
|
|
|
+ };
|
|
if (user.value.id != "0") {
|
|
if (user.value.id != "0") {
|
|
- isLoggedIn.value = true
|
|
|
|
|
|
+ isLoggedIn.value = true;
|
|
} else {
|
|
} else {
|
|
- isLoggedIn.value = false
|
|
|
|
|
|
+ isLoggedIn.value = false;
|
|
}
|
|
}
|
|
|
|
|
|
- router.push({ path: '/' })
|
|
|
|
- })
|
|
|
|
-})
|
|
|
|
|
|
+ router.push({ path: "/" });
|
|
|
|
+ });
|
|
|
|
+});
|
|
watchEffect(() => {
|
|
watchEffect(() => {
|
|
// 监听路由变化
|
|
// 监听路由变化
|
|
- console.log('route changed', route)
|
|
|
|
|
|
+ console.log("route changed", route);
|
|
if (route.query.logout) {
|
|
if (route.query.logout) {
|
|
- handleLogout()
|
|
|
|
- }})
|
|
|
|
|
|
+ handleLogout();
|
|
|
|
+ }
|
|
|
|
+});
|
|
</script>
|
|
</script>
|
|
<style scoped>
|
|
<style scoped>
|
|
#app {
|
|
#app {
|
|
@@ -287,13 +407,12 @@ watchEffect(() => {
|
|
.login-box {
|
|
.login-box {
|
|
width: 100vw;
|
|
width: 100vw;
|
|
height: 100vh;
|
|
height: 100vh;
|
|
- background-image: url('@/assets/images/loginBanar.png');
|
|
|
|
|
|
+ background-image: url("@/assets/images/loginBanar.png");
|
|
background-repeat: no-repeat;
|
|
background-repeat: no-repeat;
|
|
background-size: cover;
|
|
background-size: cover;
|
|
}
|
|
}
|
|
|
|
|
|
.login-container {
|
|
.login-container {
|
|
-
|
|
|
|
display: flex;
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
justify-content: center;
|
|
@@ -306,7 +425,7 @@ watchEffect(() => {
|
|
background-color: #eef6ff;
|
|
background-color: #eef6ff;
|
|
border-radius: 12px 12px 12px 12px;
|
|
border-radius: 12px 12px 12px 12px;
|
|
}
|
|
}
|
|
-.login-header{
|
|
|
|
|
|
+.login-header {
|
|
font-size: 26px;
|
|
font-size: 26px;
|
|
font-weight: bold;
|
|
font-weight: bold;
|
|
margin-bottom: 20px;
|
|
margin-bottom: 20px;
|