sex-change.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <template>
  2. <view class="gender-selection-page">
  3. <!-- 页面标题 -->
  4. <view class="title">请选择您的性别</view>
  5. <!-- 性别选项 -->
  6. <view class="gender-options">
  7. <view class="gender-option" :class="{ 'selected': selectedGender === 1}" @click="selectGender(1)">
  8. 男性
  9. </view>
  10. <view class="gender-option" :class="{ 'selected': selectedGender ===0 }" @click="selectGender(0)">
  11. 女性
  12. </view>
  13. </view>
  14. <!-- 确认按钮 -->
  15. <button class="save-button" @click="ack">保存</button>
  16. </view>
  17. </template>
  18. <script>
  19. import {
  20. memberUpdate,
  21. memberDetail
  22. } from '@/config/api.js';
  23. export default {
  24. data() {
  25. return {
  26. // 存储选中的性别,初始值为空
  27. selectedGender: '',
  28. user: {}
  29. };
  30. },
  31. onLoad(op) {
  32. this.detail()
  33. },
  34. methods: {
  35. async detail() {
  36. const data = await memberDetail()
  37. if (data.code == 200) {
  38. this.user = data.data
  39. this.selectedGender = this.user.sex
  40. }
  41. },
  42. // 选择性别
  43. selectGender(gender) {
  44. this.selectedGender = gender;
  45. },
  46. ack() {
  47. this.user.sex = this.selectedGender
  48. memberUpdate(this.user).then((res) => {
  49. if (res.code == 200) {
  50. uni.$u.toast("操作成功")
  51. uni.navigateBack({
  52. delta: 1 // delta 表示返回的页面数,1 表示返回上一页
  53. });
  54. uni.setStorageSync('user', null)
  55. console.log(12)
  56. }
  57. })
  58. },
  59. }
  60. };
  61. </script>
  62. <style scoped>
  63. .gender-selection-page {
  64. padding: 30px;
  65. background-color: white;
  66. min-height: 100vh;
  67. text-align: center;
  68. }
  69. .title {
  70. font-size: 20px;
  71. font-weight: bold;
  72. margin-bottom: 20px;
  73. }
  74. .gender-options {
  75. display: flex;
  76. justify-content: center;
  77. margin-bottom: 20px;
  78. flex-wrap: nowrap;
  79. }
  80. .gender-option {
  81. width: 100px;
  82. padding: 10px 20px;
  83. border: 1px solid #ccc;
  84. margin: 0 10px;
  85. cursor: pointer;
  86. border-radius: 5px;
  87. box-sizing: border-box;
  88. /* 明确设置高度 */
  89. height: 40px;
  90. line-height: 20px;
  91. /* 使文字垂直居中 */
  92. }
  93. .gender-option.selected {
  94. background-color: #007aff;
  95. color: white;
  96. border-color: #007aff;
  97. /* 确保边框颜色与背景颜色一致 */
  98. }
  99. .save-button {
  100. background-color: #007aff;
  101. color: white;
  102. margin-top: 50rpx;
  103. border: none;
  104. border-radius: 10rpx;
  105. padding: 10rpx;
  106. font-size: 16px;
  107. }
  108. </style>