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