这个提交包含在:
徐勤民 2024-08-20 15:57:41 +08:00
父节点 f45130bd1f
当前提交 3a8180d118
共有 10 个文件被更改,包括 147 次插入27 次删除

查看文件

@ -29,7 +29,6 @@ function interceptorErr(err) {
function showError(err) { function showError(err) {
errorHandle(err) errorHandle(err)
} }
//添加一个请求拦截器 //添加一个请求拦截器
axios.interceptors.request.use((config) => { axios.interceptors.request.use((config) => {
if (sessionStorage.getItem("szyxToken")) { if (sessionStorage.getItem("szyxToken")) {

查看文件

@ -19,8 +19,8 @@ function handle(data) {
CommonUtil.debounce(() => { CommonUtil.debounce(() => {
router.push("/login") router.push("/login")
}, 1000) }, 1000)
} else }
throw Error(data.msg) throw Error(data.msg)
} }
return data.data return data.data
} }
@ -30,5 +30,6 @@ API.setErrorHandle(errorHandle)
export default { export default {
// 登录 // 登录
login: (params) => API.POSTJSON("/tenant/v1/tenant/create", params) register: (params) => API.POSTJSON("/tenant/v1/tenant/create", params),
login: (params) => API.POSTJSON("/user/v1/login", params)
} }

查看文件

@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import CommonHeader from "@/components/CommonHeader.vue"; import CommonHeader from "@/components/CommonHeader.vue"
defineProps<{ defineProps<{
title: string title: string
@ -10,10 +10,9 @@ defineProps<{
<div class="common-layout"> <div class="common-layout">
<el-container> <el-container>
<el-header style="align-content: center"> <el-header style="align-content: center">
<CommonHeader :title="title"/> <CommonHeader :title="title" />
</el-header> </el-header>
<el-main><slot></slot></el-main> <el-main><slot></slot></el-main>
</el-container> </el-container>
</div> </div>
</template> </template>

查看文件

@ -1,7 +1,8 @@
import { createRouter, createWebHashHistory } from "vue-router" import { createRouter, createWebHashHistory } from "vue-router"
import HomeView from "../views/HomeView.vue" import HomeView from "../views/HomeView.vue"
import Login from "@/views/Login.vue" import LoginView from "@/views/LoginView.vue"
import RegisterView from "@/views/RegisterView.vue" import RegisterView from "@/views/RegisterView.vue"
import MainView from "@/views/MainView.vue"
const router = createRouter({ const router = createRouter({
history: createWebHashHistory(), history: createWebHashHistory(),
@ -22,12 +23,17 @@ const router = createRouter({
{ {
path: "/login", path: "/login",
name: "登录", name: "登录",
component: Login component: LoginView
}, },
{ {
path: "/register", path: "/register",
name: "注册", name: "注册",
component: RegisterView component: RegisterView
},
{
path: "/main",
name: "主页",
component: MainView
} }
] ]
}) })

查看文件

@ -1,7 +1,7 @@
import { ref, computed } from 'vue' import { ref, computed } from "vue"
import { defineStore } from 'pinia' import { defineStore } from "pinia"
export const useCounterStore = defineStore('counter', () => { export const useCounterStore = defineStore("counter", () => {
const count = ref(0) const count = ref(0)
const doubleCount = computed(() => count.value * 2) const doubleCount = computed(() => count.value * 2)
function increment() { function increment() {

11
src/stores/token.ts 普通文件
查看文件

@ -0,0 +1,11 @@
import { ref, computed } from "vue"
import { defineStore } from "pinia"
export const useTokenStore = defineStore("token", () => {
const token = ref(undefined)
function setToken(t: string) {
token.value = t
}
return { token, setToken }
})

查看文件

@ -1,14 +0,0 @@
<script setup lang="ts">
import CommonHeader from "@/components/CommonHeader.vue"
</script>
<template>
<el-container>
<el-header>
<CommonHeader title="登录" />
</el-header>
<el-main>Main</el-main>
</el-container>
</template>
<style scoped></style>

77
src/views/LoginView.vue 普通文件
查看文件

@ -0,0 +1,77 @@
<script setup lang="ts">
import CommonView from "@/components/CommonView.vue"
import { ref } from "vue"
import { Lock, User } from "@element-plus/icons-vue"
import { useRouter } from "vue-router"
import { ElMessage } from "element-plus"
// @ts-ignore
import API from "@/api/index.js"
const router = useRouter()
const Api = API
const email = ref("")
const pwd = ref("")
const register = () => {
router.push("/register")
}
const login = () => {
if (email.value.length === 0) {
ElMessage.error("请输入正确的邮箱地址")
return
}
if (pwd.value.length === 0) {
ElMessage.error("请输入密码")
return
}
Api.login({
email: email.value,
password: pwd.value
}).then((res) => {
ElMessage.success("登录成功")
console.log(">>>>", JSON.stringify(res))
sessionStorage.setItem("szyxToken", res)
router.push("/main")
})
}
</script>
<template>
<CommonView title="登录">
<div style="display: flex; place-content: center">
<el-card style="max-width: 480px">
<template #header>
<div class="card-header" style="display: flex; flex-direction: row-reverse">
<el-button type="primary" @click="register">注册</el-button>
</div>
</template>
<div class="flex gap-4 mb-4">
<el-input
class="text item"
v-model="email"
style="width: 440px"
placeholder="请输入邮箱地址"
:prefix-icon="User"
:clearable="true"
/>
<el-input
v-model="pwd"
style="width: 440px; margin-top: 18px"
placeholder="请输入密码"
:prefix-icon="Lock"
:clearable="true"
:show-password="true"
/>
<el-button style="width: 440px; margin-top: 28px" type="primary" @click="login"
>登录
</el-button>
</div>
</el-card>
</div>
</CommonView>
</template>
<style scoped></style>

38
src/views/MainView.vue 普通文件
查看文件

@ -0,0 +1,38 @@
<template>
<div class="common-layout">
<el-container>
<el-header>
<el-menu
:default-active="activeIndex"
menu-trigger="click"
class="el-menu-demo"
mode="horizontal"
:ellipsis="false"
:router="true"
>
<el-menu-item index="/">
<img style="width: 60px" src="@/assets/logo.svg" alt="logo" />
</el-menu-item>
<el-menu-item index="/about">控制台</el-menu-item>
<el-menu-item index="/login">注销</el-menu-item>
</el-menu>
</el-header>
<el-main>Main</el-main>
</el-container>
</div>
</template>
<script lang="ts" setup>
import { ref } from "vue"
const activeIndex = ref("1")
const handleSelect = (key: string, keyPath: string[]) => {
console.log(key, keyPath)
}
</script>
<style>
.el-menu--horizontal > .el-menu-item:nth-child(1) {
margin-right: auto;
}
</style>

查看文件

@ -50,10 +50,13 @@ const register = () => {
ElMessage.error("验证码错误") ElMessage.error("验证码错误")
return return
} }
Api.login({ Api.register({
userEmail: email.value, userEmail: email.value,
userPhone: phone.value, userPhone: phone.value,
userPwd: pwd.value userPwd: pwd.value
}).then(() => {
ElMessage.success("注册成功")
open()
}) })
} }
</script> </script>