| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- <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>
|