info.vue 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <template>
  2. <div class="info-page">
  3. <div class="title">个人信息管理</div>
  4. <el-form
  5. ref="form"
  6. class="form-box"
  7. :model="form"
  8. label-width="80px"
  9. placeholder="请输入名称"
  10. >
  11. <el-form-item label="名称">
  12. <el-input v-model="form.name" placeholder="请输入名称"></el-input>
  13. </el-form-item>
  14. <el-form-item label="密码">
  15. <el-input
  16. type="password"
  17. placeholder="请输入密码"
  18. v-model="form.password"
  19. ></el-input>
  20. </el-form-item>
  21. <el-form-item label="性别">
  22. <el-select v-model="form.sex" placeholder="请选择性别">
  23. <el-option label="保密" value="other"></el-option>
  24. <el-option label="男" value="man"></el-option>
  25. <el-option label="女" value="woman"></el-option>
  26. </el-select>
  27. </el-form-item>
  28. <el-form-item label="电话">
  29. <el-input v-model="form.mobile" placeholder="请输入电话"></el-input>
  30. </el-form-item>
  31. <el-form-item>
  32. <el-button>取消</el-button>
  33. <el-button type="primary" @click="onSubmit">立即更新</el-button>
  34. </el-form-item>
  35. </el-form>
  36. </div>
  37. </template>
  38. <script>
  39. import { updateUserInfo } from "../../../../api/index";
  40. export default {
  41. name: "info",
  42. props: {
  43. userInfo: {
  44. type: Object,
  45. default: () => {},
  46. },
  47. },
  48. data() {
  49. return {
  50. form: {
  51. name: "",
  52. sex: "",
  53. mobile: "",
  54. },
  55. };
  56. },
  57. mounted() {
  58. this.pageInit();
  59. },
  60. methods: {
  61. pageInit() {
  62. if (this.userInfo?.id) {
  63. this.form.name = this.userInfo.name;
  64. this.form.sex = this.userInfo.sex;
  65. this.form.mobile = this.userInfo.mobile;
  66. }
  67. },
  68. async onSubmit() {
  69. const res = await updateUserInfo({
  70. userId: this.userInfo?.id,
  71. ...this.form,
  72. });
  73. console.log(res);
  74. },
  75. },
  76. };
  77. </script>
  78. <style lang="less" scoped>
  79. .info-page {
  80. //margin-left: 0;
  81. //width: 100vw;
  82. background-color: #f8f9fb;
  83. padding: 24px;
  84. .title {
  85. text-align: left;
  86. margin-bottom: 24px;
  87. }
  88. //margin-top: 350px;
  89. .form-box {
  90. //margin-left: 24px;
  91. width: 500px;
  92. }
  93. }
  94. </style>