Files
basic/src/views/personal/setting.vue
T

194 lines
5.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<route lang="yaml">
name: personalSetting
meta:
title: 个人设置
cache: personal-edit.password
</route>
<script lang="ts" setup name="PersonalSetting">
import type { UploadProps } from 'element-plus'
import { ElMessage } from 'element-plus'
const router = useRouter()
const form = ref({
headimg: '',
mobile: '',
name: '',
qq: '',
wechat: '',
})
const handleSuccess: UploadProps['onSuccess'] = (res) => {
if (res.error === '') {
form.value.headimg = res.data.path
}
else {
ElMessage.warning(res.error)
}
}
const editPassword = () => {
router.push({
name: 'personalEditPassword',
})
}
</script>
<template>
<div>
<page-main>
<el-tabs tab-position="left" style="height: 600px;">
<el-tab-pane label="基本设置" class="basic">
<h2>基本设置</h2>
<el-row :gutter="20">
<el-col :span="16">
<el-form ref="formRef" :model="form" label-width="120px" label-suffix=":">
<el-form-item label="名 称">
<el-input v-model="form.name" placeholder="请输入你的名称" />
</el-form-item>
<el-form-item label="手机号">
<el-input v-model="form.mobile" placeholder="请输入你的手机号" />
</el-form-item>
<el-form-item label="QQ 号">
<el-input v-model="form.qq" placeholder="请输入你的 QQ 号" />
</el-form-item>
<el-form-item label="微信号">
<el-input v-model="form.wechat" placeholder="请输入你的微信号" />
</el-form-item>
<el-form-item>
<el-button type="primary">
保存
</el-button>
</el-form-item>
</el-form>
</el-col>
<el-col :span="8">
<image-upload v-model:url="form.headimg" action="http://scrm.1daas.com/api/upload/upload" name="image" :data="{ token: 'TKD628431923530324' }" notip class="headimg-upload" @on-success="handleSuccess" />
</el-col>
</el-row>
</el-tab-pane>
<el-tab-pane label="安全设置" class="security">
<h2>安全设置</h2>
<div class="setting-list">
<div class="item">
<div class="content">
<div class="title">
账户密码
</div>
<div class="desc">
当前密码强度:强
</div>
</div>
<div class="action">
<el-button type="primary" text @click="editPassword">
修改
</el-button>
</div>
</div>
<div class="item">
<div class="content">
<div class="title">
密保手机
</div>
<div class="desc">
已绑定手机:187****3441
</div>
</div>
<div class="action">
<el-button type="primary" text>
修改
</el-button>
</div>
</div>
<div class="item">
<div class="content">
<div class="title">
备用邮箱
</div>
<div class="desc">
当前未绑定备用邮箱
</div>
</div>
<div class="action">
<el-button type="primary" text>
绑定
</el-button>
</div>
</div>
</div>
</el-tab-pane>
</el-tabs>
</page-main>
</div>
</template>
<style lang="scss" scoped>
:deep(.el-tabs) {
.el-tabs__header .el-tabs__nav {
.el-tabs__active-bar {
z-index: 0;
width: 100%;
background-color: var(--el-color-primary-light-9);
border-right: 2px solid var(--el-color-primary);
transition: transform 0.3s, background-color 0.3s, var(--el-transition-border);
}
.el-tabs__item {
text-align: left;
padding-right: 100px;
}
}
.el-tab-pane {
padding: 0 20px 0 30px;
}
}
h2 {
margin: 0;
margin-bottom: 30px;
font-weight: normal;
}
.basic {
:deep(.headimg-upload) {
text-align: center;
.el-upload-dragger {
border-radius: 50%;
}
}
}
.security {
.setting-list {
.item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 0;
border-bottom: 1px solid var(--el-border-color-lighter);
transition: var(--el-transition-border);
.content {
.title {
margin-bottom: 5px;
color: var(--el-text-color-primary);
transition: var(--el-transition-color);
}
.desc {
font-size: 14px;
color: var(--el-text-color-secondary);
transition: var(--el-transition-color);
}
}
&:last-child {
border-bottom: 0;
}
}
}
}
</style>