完成个人设置页面
This commit is contained in:
parent
e11d3c4e55
commit
feccf869ee
@ -1,7 +1,5 @@
|
||||
<script setup>
|
||||
import {get} from "@/net";
|
||||
import {useStore} from "@/stores";
|
||||
import router from "@/router";
|
||||
|
||||
const store = useStore()
|
||||
const user = localStorage.getItem('user')
|
||||
|
@ -1,13 +0,0 @@
|
||||
<script setup>
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
我是设置界面
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
@ -0,0 +1,54 @@
|
||||
<script setup>
|
||||
import {reactive} from "vue";
|
||||
import {Select} from "@element-plus/icons-vue";
|
||||
|
||||
const infoForm = reactive({
|
||||
username: '',
|
||||
desc: '',
|
||||
phone: '',
|
||||
qq: '',
|
||||
wx: '',
|
||||
blog: '',
|
||||
sex: ''
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<el-form
|
||||
label-position="top"
|
||||
label-width="100px"
|
||||
:model="infoForm"
|
||||
style="max-width: 460px">
|
||||
<el-form-item label="用户名">
|
||||
<el-input v-model="infoForm.username" />
|
||||
</el-form-item>
|
||||
<el-form-item label="性别">
|
||||
<el-radio-group v-model="infoForm.sex" class="ml-4">
|
||||
<el-radio label="1" size="large">男</el-radio>
|
||||
<el-radio label="2" size="large">女</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号">
|
||||
<el-input v-model="infoForm.phone" />
|
||||
</el-form-item>
|
||||
<el-form-item label="QQ">
|
||||
<el-input v-model="infoForm.qq" />
|
||||
</el-form-item>
|
||||
<el-form-item label="微信">
|
||||
<el-input v-model="infoForm.wx" />
|
||||
</el-form-item>
|
||||
<el-form-item label="博客">
|
||||
<el-input v-model="infoForm.blog" />
|
||||
</el-form-item>
|
||||
<el-form-item label="个人简介">
|
||||
<el-input type="textarea" v-model="infoForm.desc" :rows="6"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-button type="success" :icon="Select">保存个人信息设置</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
@ -0,0 +1,49 @@
|
||||
<script setup>
|
||||
import {Message, Select} from "@element-plus/icons-vue";
|
||||
import {reactive} from "vue";
|
||||
|
||||
const privacyForm = reactive({
|
||||
email: false,
|
||||
phone: false,
|
||||
qq: false,
|
||||
wx: false,
|
||||
blog: false,
|
||||
sex: false
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<el-form
|
||||
label-position="top"
|
||||
label-width="100px"
|
||||
:model="privacyForm"
|
||||
style="max-width: 460px">
|
||||
<el-form-item>
|
||||
<el-checkbox v-model="privacyForm.email" label="是否公开展示展示我的邮箱" size="large" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-checkbox v-model="privacyForm.sex" label="是否公开展示展示我的性别" size="large" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-checkbox v-model="privacyForm.phone" label="是否公开展示展示我的电话号码" size="large" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-checkbox v-model="privacyForm.qq" label="是否公开展示展示我的QQ" size="large" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-checkbox v-model="privacyForm.wx" label="是否公开展示展示我的微信" size="large" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-checkbox v-model="privacyForm.blog" label="是否公开展示展示我的博客" size="large" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-button type="success" :icon="Select">保存隐私设置</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
::v-deep(.el-form-item) {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,53 @@
|
||||
<script setup>
|
||||
import {reactive} from "vue";
|
||||
import {Lock, Message, Select} from "@element-plus/icons-vue";
|
||||
|
||||
const securityForm = reactive({
|
||||
email: '',
|
||||
password_old: '',
|
||||
password_new: '',
|
||||
password_new_repeat: '',
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<div>
|
||||
<h1><el-icon><Message/></el-icon> 邮箱设置</h1>
|
||||
<el-form
|
||||
label-position="top"
|
||||
label-width="100px"
|
||||
:model="securityForm"
|
||||
style="max-width: 460px">
|
||||
<el-form-item label="邮箱地址">
|
||||
<el-input v-model="securityForm.email" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-button type="success" :icon="Select">保存邮件地址</el-button>
|
||||
</div>
|
||||
<el-divider/>
|
||||
<div>
|
||||
<h1><el-icon><Lock/></el-icon> 密码设置</h1>
|
||||
<el-form
|
||||
label-position="top"
|
||||
label-width="100px"
|
||||
:model="securityForm"
|
||||
style="max-width: 460px">
|
||||
<el-form-item label="原密码">
|
||||
<el-input v-model="securityForm.password_old" />
|
||||
</el-form-item>
|
||||
<el-form-item label="新密码">
|
||||
<el-input v-model="securityForm.password_old" />
|
||||
</el-form-item>
|
||||
<el-form-item label="重复新密码">
|
||||
<el-input v-model="securityForm.password_old" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-button type="success" :icon="Select">修改密码</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
@ -12,15 +12,15 @@ const router = createRouter({
|
||||
{
|
||||
path: '',
|
||||
name: 'welcome-login',
|
||||
component: () => import('@/components/welcome/LoginPage.vue')
|
||||
component: () => import('@/views/welcome/LoginPage.vue')
|
||||
}, {
|
||||
path: 'register',
|
||||
name: 'welcome-register',
|
||||
component: () => import('@/components/welcome/RegisterPage.vue')
|
||||
component: () => import('@/views/welcome/RegisterPage.vue')
|
||||
}, {
|
||||
path: 'forget',
|
||||
name: 'welcome-forget',
|
||||
component: () => import('@/components/welcome/ForgetPage.vue')
|
||||
component: () => import('@/views/welcome/ForgetPage.vue')
|
||||
}
|
||||
]
|
||||
}, {
|
||||
@ -31,11 +31,11 @@ const router = createRouter({
|
||||
{
|
||||
path: '',
|
||||
name: 'index-list',
|
||||
component: () => import('@/components/index/PostList.vue')
|
||||
component: () => import('@/views/index/PostList.vue')
|
||||
}, {
|
||||
path: 'settings',
|
||||
name: 'index-settings',
|
||||
component: () => import('@/components/index/Settings.vue')
|
||||
component: () => import('@/views/index/Settings.vue')
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -74,7 +74,9 @@
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main style="padding: 0">
|
||||
<router-view/>
|
||||
<el-scrollbar style="height: 100%">
|
||||
<router-view/>
|
||||
</el-scrollbar>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-container>
|
||||
|
58
study-project-frontend/src/views/index/Settings.vue
Normal file
58
study-project-frontend/src/views/index/Settings.vue
Normal file
@ -0,0 +1,58 @@
|
||||
<script setup>
|
||||
import {ref} from "vue";
|
||||
import {useStore} from "@/stores";
|
||||
import InfoSettings from "@/components/settings/InfoSettings.vue";
|
||||
import SecuritySettings from "@/components/settings/SecuritySettings.vue";
|
||||
import PrivacySettings from "@/components/settings/PrivacySettings.vue";
|
||||
|
||||
const store = useStore()
|
||||
const activeName = ref('info')
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div style="display: flex;padding: 20px 30px">
|
||||
<div style="flex: 1">
|
||||
<el-tabs v-model="activeName">
|
||||
<el-tab-pane label="个人信息设置" name="info">
|
||||
<info-settings/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="账号安全设置" name="security">
|
||||
<security-settings/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="隐私设置" name="privacy">
|
||||
<privacy-settings/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
<div style="width: 300px">
|
||||
<div class="user-card" style="margin: 15px 0 0 30px">
|
||||
<div style="text-align: right;padding: 5px 15px 0 15px">
|
||||
<div style="width: 70px;display: inline-block">
|
||||
<el-avatar :size="70" src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png"/>
|
||||
<div style="text-align: center;font-weight: bold">{{store.auth.user.username}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="padding: 10px;font-size: 13px">
|
||||
还打算登记卡手动滑稽啊扩大合计阿卡手打啊世纪大厦健康大厦登记卡
|
||||
撒谎登记卡手动滑稽卡死打卡机阿萨高大上科技大厦打撒黑科技
|
||||
撒活动卡萨丁卡仕达酱啊受打击卡萨
|
||||
大萨达哈萨克大豪科技啊打卡机阿萨达
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.user-card {
|
||||
height: 300px;
|
||||
width: 260px;
|
||||
border-radius: 5px;
|
||||
border: solid 1px lightgrey;
|
||||
}
|
||||
|
||||
.user-card > div {
|
||||
border-bottom: solid 1px lightgrey;
|
||||
}
|
||||
</style>
|
Loading…
x
Reference in New Issue
Block a user