83 lines
2.5 KiB
Vue
83 lines
2.5 KiB
Vue
<template>
|
|
<a-form
|
|
ref="formRef"
|
|
:model="formData"
|
|
:rules="formRules"
|
|
v-bind="layout"
|
|
:label-col="{ ...layout.labelCol, offset: 0 }"
|
|
:wrapper-col="{ ...layout.wrapperCol, offset: 0 }"
|
|
>
|
|
<a-form-item label="账号:" name="account">
|
|
<span>{{ formData.account }}</span>
|
|
</a-form-item>
|
|
<a-form-item label="姓名:" name="name">
|
|
<a-input v-model:value="formData.name" placeholder="请输入姓名" allow-clear />
|
|
</a-form-item>
|
|
<a-form-item label="手机:" name="phone">
|
|
<a-input v-model:value="formData.phone" placeholder="请输入手机" allow-clear />
|
|
</a-form-item>
|
|
<a-form-item label="昵称:" name="nickname">
|
|
<a-input v-model:value="formData.nickname" placeholder="请输入昵称" allow-clear />
|
|
</a-form-item>
|
|
<a-form-item label="性别:" name="sex">
|
|
<a-radio-group v-model:value="formData.gender" :options="genderOptions" />
|
|
</a-form-item>
|
|
<a-form-item label="生日:" name="birthday">
|
|
<a-date-picker v-model:value="formData.birthday" value-format="YYYY-MM-DD" style="width: 100%" />
|
|
</a-form-item>
|
|
<a-form-item label="邮箱:" name="email">
|
|
<a-input v-model:value="formData.email" placeholder="请输入邮箱" allow-clear />
|
|
</a-form-item>
|
|
|
|
<a-form-item :wrapper-col="{ ...layout.wrapperCol, offset: 4 }">
|
|
<a-button type="primary" :loading="submitLoading" @click="onSubmit">保存基本信息</a-button>
|
|
</a-form-item>
|
|
</a-form>
|
|
</template>
|
|
|
|
<script setup name="AccountBasic">
|
|
import { required } from '@/utils/formRules'
|
|
import userCenterApi from '@/api/sys/userCenterApi'
|
|
import tool from '@/utils/tool'
|
|
import store from '@/store'
|
|
const formRef = ref()
|
|
// 获取用户信息
|
|
const userInfo = tool.data.get('USER_INFO')
|
|
let formData = ref({})
|
|
formData.value = userInfo
|
|
const submitLoading = ref(false)
|
|
// 默认要校验的
|
|
const formRules = {
|
|
name: [required('请输入姓名')],
|
|
gender: [required('请选择性别')]
|
|
}
|
|
const genderOptions = tool.dictList('GENDER')
|
|
// 验证并提交数据
|
|
const onSubmit = () => {
|
|
formRef.value
|
|
.validate()
|
|
.then(() => {
|
|
submitLoading.value = true
|
|
userCenterApi.userUpdateUserInfo(formData.value).then(() => {
|
|
submitLoading.value = false
|
|
// 更新前端缓存
|
|
store.commit('SET_userInfo', formData.value)
|
|
tool.data.set('USER_INFO', formData.value)
|
|
})
|
|
})
|
|
.catch(() => {
|
|
submitLoading.value = false
|
|
})
|
|
}
|
|
const layout = {
|
|
labelCol: {
|
|
span: 4
|
|
},
|
|
wrapperCol: {
|
|
span: 12
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped></style>
|