SecurityVerify.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <template>
  2. <div>
  3. <div class='card'>
  4. <h3><strong>个人资料</strong></h3>
  5. <van-cell-group>
  6. <van-field
  7. v-model="phone"
  8. required
  9. clearable
  10. label="手机号"
  11. placeholder="请输入手机号"
  12. />
  13. <van-field
  14. v-model="sms"
  15. center
  16. clearable
  17. label="短信验证码"
  18. placeholder="请输入短信验证码"
  19. required
  20. >
  21. <van-button slot="button" size="small" type="primary">发送验证码</van-button>
  22. </van-field>
  23. <van-field
  24. v-model="username"
  25. required
  26. clearable
  27. label="昵称"
  28. placeholder="请输入昵称"
  29. />
  30. <van-field
  31. v-model="password"
  32. type="password"
  33. label="密码"
  34. placeholder="请输入密码"
  35. required
  36. />
  37. <van-field
  38. v-model="passverify"
  39. type="password"
  40. label="密码"
  41. placeholder="请再次输入密码"
  42. required
  43. />
  44. </van-cell-group>
  45. <p>性别</p>
  46. <van-radio-group v-model="radio">
  47. <van-radio name="0" checked-color="#fd6740" style="float: left; margin-right: 20px">男</van-radio>
  48. <van-radio name="1" checked-color="#fd6740">女</van-radio>
  49. </van-radio-group>
  50. <p>宿舍区</p>
  51. <van-button size="large" @click="show = true">{{dormitory}}</van-button>
  52. <van-actionsheet
  53. v-model="show"
  54. :actions="actions"
  55. cancel-text="取消"
  56. @select="onSelect"
  57. @cancel="onCancel"
  58. />
  59. </div>
  60. <div class="card">
  61. <p>上传礼物照片</p>
  62. <add-photo @upload-photo="onRead"/>
  63. </div>
  64. <van-button size="large" type="primary" @click="next" class="next">下一步</van-button>
  65. </div>
  66. </template>
  67. <script>
  68. import {
  69. Uploader, Icon,
  70. CellGroup, Field,
  71. RadioGroup, Radio,
  72. Picker,
  73. Button,
  74. Actionsheet
  75. } from 'vant'
  76. import AddPhoto from "../components/addPhoto";
  77. export default {
  78. name: "SecurityVerify",
  79. components: {
  80. AddPhoto,
  81. [Uploader.name]: Uploader, [Icon.name]: Icon,
  82. [CellGroup.name]: CellGroup, [Field.name]: Field,
  83. [RadioGroup.name]: RadioGroup, [Radio.name]: Radio,
  84. [Picker.name]: Picker,
  85. [Button.name]: Button,
  86. [Actionsheet.name]: Actionsheet
  87. },
  88. data() {
  89. return {
  90. phone: '',
  91. sms: '',
  92. password: '',
  93. passverify: '',
  94. radio: '1',
  95. show: false,
  96. dormitory: '点击选择宿舍区',
  97. actions: [
  98. {name: '斋区'},
  99. {name: '西南'},
  100. {name: '南区'},
  101. {name: '西丽'}
  102. ]
  103. };
  104. },
  105. props: {
  106. photo: {
  107. type: Object,
  108. default: null
  109. }
  110. },
  111. methods: {
  112. next() {
  113. // 检查输入
  114. this.$router.push('presentRegister');
  115. // this.$router.push('index');
  116. },
  117. onRead(file) {
  118. this.photo = file;
  119. },
  120. onSelect(item) {
  121. // 点击选项时默认不会关闭菜单,可以手动关闭
  122. this.show = false;
  123. this.dormitory = item.name;
  124. }
  125. }
  126. }
  127. </script>
  128. <style scoped>
  129. p, h3 {
  130. color: #fd6740;
  131. }
  132. h3 {
  133. padding: 5px;
  134. border-bottom: solid 1px #e4e4e4;
  135. }
  136. .card {
  137. background-color: white;
  138. margin: 20px 20px;
  139. border: solid 1px #e4e4e4;
  140. padding: 15px;
  141. text-align: left;
  142. }
  143. .next {
  144. background-color: #fd6740;
  145. border-color: #fd6740;
  146. margin: 10px 0 10px;
  147. width: 85%;
  148. }
  149. </style>