userInfo.vue 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <template>
  2. <el-form ref="userRef" :model="form" :rules="rules" label-width="80px">
  3. <el-form-item label="用户昵称" prop="nickName">
  4. <el-input v-model="form.nickName" maxlength="30" />
  5. </el-form-item>
  6. <!-- <el-form-item label="手机号码" prop="phonenumber">-->
  7. <!-- <el-input v-model="form.phonenumber" maxlength="11" />-->
  8. <!-- </el-form-item>-->
  9. <!-- <el-form-item label="邮箱" prop="email">-->
  10. <!-- <el-input v-model="form.email" maxlength="50" />-->
  11. <!-- </el-form-item>-->
  12. <el-form-item label="性别">
  13. <el-radio-group v-model="form.sex">
  14. <el-radio value="0">男</el-radio>
  15. <el-radio value="1">女</el-radio>
  16. </el-radio-group>
  17. </el-form-item>
  18. <el-form-item>
  19. <el-button type="primary" @click="submit">保存</el-button>
  20. <el-button type="danger" @click="close">关闭</el-button>
  21. </el-form-item>
  22. </el-form>
  23. </template>
  24. <script setup>
  25. import { updateUserProfile } from "@/api/system/user"
  26. const props = defineProps({
  27. user: {
  28. type: Object
  29. }
  30. })
  31. const { proxy } = getCurrentInstance()
  32. const form = ref({})
  33. const rules = ref({
  34. nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
  35. email: [{ required: true, message: "邮箱地址不能为空", trigger: "blur" }, { type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
  36. phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }],
  37. })
  38. /** 提交按钮 */
  39. function submit() {
  40. proxy.$refs.userRef.validate(valid => {
  41. if (valid) {
  42. updateUserProfile(form.value).then(response => {
  43. proxy.$modal.msgSuccess("修改成功")
  44. props.user.phonenumber = form.value.phonenumber
  45. props.user.email = form.value.email
  46. })
  47. }
  48. })
  49. }
  50. /** 关闭按钮 */
  51. function close() {
  52. proxy.$tab.closePage()
  53. }
  54. // 回显当前登录用户信息
  55. watch(() => props.user, user => {
  56. if (user) {
  57. form.value = { nickName: user.nickName, phonenumber: user.phonenumber, email: user.email, sex: user.sex }
  58. }
  59. },{ immediate: true })
  60. </script>