管理系统PC端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

info.vue 3.8 KiB

3 kuukautta sitten
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <template>
  2. <div class="home_wrapper">
  3. <van-nav-bar
  4. title="用户信息维护"
  5. left-arrow
  6. placeholder
  7. safe-area-inset-top
  8. @click-left="onClickLeft"
  9. />
  10. <van-form @submit="onSubmit">
  11. <div class="main">
  12. <p class="title"><i></i>用户信息</p>
  13. <van-field
  14. required
  15. :rules="[{ required: true }]"
  16. v-model="form.nickName"
  17. label="用户昵称"
  18. placeholder="请输入"
  19. input-align="right"
  20. label-width="auto"
  21. />
  22. <van-field
  23. required
  24. :rules="[
  25. { required: true },
  26. {
  27. pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
  28. message: '请输入正确的手机号码',
  29. trigger: 'blur'
  30. }
  31. ]"
  32. v-model="form.phonenumber"
  33. label="手机号码"
  34. placeholder="请输入"
  35. input-align="right"
  36. label-width="auto"
  37. />
  38. <van-field
  39. required
  40. :rules="[
  41. { required: true },
  42. {
  43. type: 'email',
  44. message: '请输入正确的邮箱地址',
  45. trigger: ['blur', 'change']
  46. }
  47. ]"
  48. v-model="form.email"
  49. label="邮箱"
  50. placeholder="请输入"
  51. input-align="right"
  52. label-width="auto"
  53. />
  54. <van-field
  55. required
  56. :rules="[{ required: true }]"
  57. label="性别"
  58. input-align="right"
  59. label-width="auto"
  60. >
  61. <van-radio-group slot="input" v-model="form.sex" direction="horizontal">
  62. <van-radio name="0">男</van-radio>
  63. <van-radio name="1">女</van-radio>
  64. </van-radio-group>
  65. </van-field>
  66. </div>
  67. <van-button round block type="primary" native-type="submit" class="subClass">提交</van-button>
  68. </van-form>
  69. </div>
  70. </template>
  71. <script>
  72. // import { getMenuApp } from "@/api/app/index";
  73. import Cookies from "js-cookie";
  74. import { getUserProfile } from "@/api/system/user"
  75. import { updateUserProfile } from "@/api/system/user"
  76. export default {
  77. name: "appUserInfo",
  78. data() {
  79. return {
  80. form: {},
  81. user: {},
  82. };
  83. },
  84. created() {
  85. this.getUser()
  86. },
  87. methods: {
  88. onClickLeft(){
  89. history.back(-1);
  90. },
  91. getUser() {
  92. getUserProfile().then(response => {
  93. this.form = response.data
  94. this.roleGroup = response.roleGroup
  95. this.postGroup = response.postGroup
  96. })
  97. },
  98. onSubmit() {
  99. updateUserProfile(this.form).then(response => {
  100. this.$modal.msgSuccess("修改成功")
  101. setTimeout(function(){
  102. history.back(-1);
  103. },2000)
  104. })
  105. },
  106. },
  107. };
  108. </script>
  109. <style scoped lang="scss">
  110. p{margin: 0;}
  111. .home_wrapper{
  112. width: 100vw;
  113. min-height: 100vh;
  114. background: #F6F9FB;
  115. padding-bottom: 5vh;
  116. }
  117. .van-nav-bar{
  118. background: linear-gradient( 173deg, #91E2D3 0%, #CDFCF0 100%);
  119. ::v-deep.van-icon{
  120. color: #000000;
  121. }
  122. }
  123. .main{
  124. width: 94%;
  125. margin: 3vw auto;
  126. padding: 3vw;
  127. background-color: #ffffff;
  128. border-radius: 10px;
  129. overflow: hidden;
  130. }
  131. .title{
  132. display: flex;
  133. align-items: center;
  134. font-size: 20px;
  135. font-weight: bold;
  136. margin-bottom: 10px;
  137. i{
  138. width: 5px;
  139. height: 20px;
  140. display: block;
  141. background-color: #29D2AF;
  142. margin-right: 10px;
  143. }
  144. }
  145. .subClass{
  146. background: linear-gradient( 270deg, #53E4A5 0%, #24DBDB 100%);
  147. border-radius: 50px 50px 50px 50px;
  148. border: none;
  149. width: 90%;
  150. margin: 3vw auto;
  151. height: 50px;
  152. display: flex;
  153. align-items: center;
  154. justify-content: center;
  155. color: #ffffff;
  156. font-size: 18px;
  157. }
  158. </style>