Commit d9750b45 authored by zhangsan's avatar zhangsan

1

parent d3bd5730
......@@ -33,6 +33,7 @@ declare module 'vue' {
VanSwipeItem: typeof import('vant/es')['SwipeItem']
VanTag: typeof import('vant/es')['Tag']
VarButton: typeof import('@varlet/ui')['Button']
VarCheckbox: typeof import('@varlet/ui')['Checkbox']
VarForm: typeof import('@varlet/ui')['Form']
VarIcon: typeof import('@varlet/ui')['Icon']
VarInput: typeof import('@varlet/ui')['Input']
......
......@@ -22,7 +22,7 @@ let isVersionChecking = false;
// 路由守卫
router.beforeEach(async (to, from, next) => {
NProgress.start();
document.title = (to.meta.title as string) || "Vue App";
document.title = (to.meta.title as string) || "人民助梦金";
// 检查版本更新
if (process.env.NODE_ENV === "production" && !isVersionChecking) {
......@@ -45,7 +45,6 @@ router.beforeEach(async (to, from, next) => {
// 获取用户信息
const token = sessionStorage.getItem("token");
// 登录页面判断
if (to.path === "/login") {
if (token) {
......
......@@ -7,7 +7,12 @@
</template>
<script setup lang="ts">
import { isEealNameAuthentication } from '@/utils/userInfoCheck'
import { useRouter } from 'vue-router'
const router = useRouter()
if(!isEealNameAuthentication()){
router.replace('/user/shiming')
}
</script>
<style scoped lang="scss">
.container {
......
......@@ -20,19 +20,21 @@
</template>
</var-input>
<var-input v-model="loginPassword" type="password" placeholder="密码"
:rules="[(value) => {
if (!value) return '请填写密码';
return true;
}]">
<var-input v-model="loginPassword" type="password" placeholder="密码" :rules="[(value: string) => {
if (!value) return '请填写密码';
return true;
}]">
<template #prepend-icon>
<var-icon name="lock" />
</template>
</var-input>
<div class="action-row">
<span class="forgot-password" @click="downloadApp">APP下载</span>
<span class="verify-login" @click="onLineService">在线客服</span>
<var-checkbox v-model="rememberPassword">记住密码</var-checkbox>
<div>
<span class="forgot-password" @click="downloadApp">APP下载</span>
<span class="verify-login" @click="onLineService">在线客服</span>
</div>
</div>
<var-button class="submit-btn" type="primary" block native-type="submit" :loading="loginLoading">
......@@ -48,28 +50,64 @@
</template>
<script lang="ts" setup>
import { ref } from 'vue'
import { ref, onMounted } from 'vue'
import { useRouter } from 'vue-router'
import request from '@/utils/request'
import { clearCookie } from '@/utils/cookie'
import { clearCookie } from '@/utils/cookie'
interface LoginResponse {
code: number
msg: string
token: string
data?: any
}
const router = useRouter()
const loginFormRef = ref()
const loginUsername = ref('')
const loginPassword = ref('')
const loginLoading = ref(false)
const rememberPassword = ref(false)
sessionStorage.clear()
clearCookie()
// 页面加载时获取存储的账号密码
onMounted(() => {
const savedUsername = localStorage.getItem('rememberedUsername')
const savedPassword = localStorage.getItem('rememberedPassword')
const remembered = localStorage.getItem('rememberPassword')
if (remembered === 'true' && savedUsername && savedPassword) {
loginUsername.value = savedUsername
loginPassword.value = savedPassword
rememberPassword.value = true
}
})
const onLoginSubmit = async () => {
const isValid = await loginFormRef.value?.validate()
if (isValid) {
try {
loginLoading.value = true
const res = await request.post('/login', {
const res = await request.post<LoginResponse>('/login', {
username: loginUsername.value,
password: loginPassword.value,
type: 'app'
})
if (res.code == 200) {
})
if (res.code === 200) {
// 保存或清除记住的账号密码
if (rememberPassword.value) {
localStorage.setItem('rememberedUsername', loginUsername.value)
localStorage.setItem('rememberedPassword', loginPassword.value)
localStorage.setItem('rememberPassword', 'true')
} else {
localStorage.removeItem('rememberedUsername')
localStorage.removeItem('rememberedPassword')
localStorage.removeItem('rememberPassword')
}
showToast(res.msg)
sessionStorage.setItem('token', res.token)
router.replace('/')
......@@ -85,7 +123,7 @@ const onLoginSubmit = async () => {
}
}
// kfurl,appdownload,appVersion
request.get('/system/config/configKeys?code=appVersion').then(res => {
request.get('/system/config/configKeys?code=appVersion,appdownload,kfurl').then(res => {
if (res.code == 200) {
sessionStorage.setItem('kfurl', res?.data?.kfurl)
sessionStorage.setItem('appdownload', res?.data?.appdownload)
......@@ -108,7 +146,10 @@ const onLineService = () => {
background: #fff;
padding: 20px;
box-sizing: border-box;
::v-deep .var-checkbox__action {
margin: 0 0;
padding: 0 0;
}
.logo {
padding: 80px 0 20px;
display: flex;
......@@ -118,7 +159,8 @@ const onLineService = () => {
width: 120px;
height: 120px;
border-radius: 16px;
img{
img {
width: 100%;
height: 100%;
}
......@@ -165,11 +207,14 @@ const onLineService = () => {
font-size: 14px;
color: #666;
span {
cursor: pointer;
div {
span {
cursor: pointer;
margin-left: 12px;
&:hover {
color: #ff6b35;
&:hover {
color: #ff6b35;
}
}
}
}
......
......@@ -63,6 +63,7 @@ import { usePageHook } from "@/hooks/usePageHook";
import { addApply, editApply, getApplyList } from "@/api/czwj";
import { ref } from "vue";
import { isEealNameAuthentication } from "@/utils/userInfoCheck";
import { useRouter } from "vue-router";
const form = ref();
const formData = reactive({
a3: "",
......@@ -166,7 +167,10 @@ const handleModify = () => {
}
};
const router = useRouter()
if(!isEealNameAuthentication()){
router.replace('/user/shiming')
}
usePageHook({
onPageShow: () => {
getApplyRecord();
......
......@@ -131,7 +131,8 @@ const handleLogout = () => {
showCancelButton: true,
}).then(() => {
sessionStorage.clear();
router.push("/login");
router.replace("/login");
window.location.reload();
});
};
const userInfo = ref({});
......
......@@ -77,8 +77,8 @@ export default defineConfig({
port: 8080,
proxy: {
'/api': {
target: 'http://27.124.5.14:9023',
// target: 'http://43.199.109.243:3000/api',
// target: 'http://27.124.5.14:9023',
target: 'http://43.199.109.243:3000/api',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '')
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment