index.vue 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <template>
  2. <view class="page LiJiBaoMing">
  3. <!-- 表单 -->
  4. <view class="Form">
  5. <view class="flex-h">
  6. <text>姓名</text>
  7. <view class="flex-item">
  8. <input type="text" placeholder="请输入" v-model="Name" />
  9. </view>
  10. </view>
  11. <view class="flex-h">
  12. <text>手机号</text>
  13. <view class="flex-item">
  14. <input type="number" placeholder="请输入" v-model="Phone" />
  15. </view>
  16. </view>
  17. <view class="flex-h">
  18. <text>人数</text>
  19. <view class="flex-item">
  20. <input type="number" placeholder="请输入" v-model="Num" />
  21. </view>
  22. </view>
  23. </view>
  24. <text @tap="ToJoin">提交</text>
  25. </view>
  26. </template>
  27. <script>
  28. import { getCurrentInstance } from '@tarojs/taro'
  29. import { createNamespacedHelpers } from 'vuex'
  30. const { mapState: mapUserState, mapActions: mapUserActions, mapMutations: mapUserMutations } = createNamespacedHelpers('user')
  31. export default {
  32. name: 'LiJiBaoMing',
  33. data () {
  34. return {
  35. Name: '',
  36. Phone: '',
  37. Num: '',
  38. CurrnetId: null,
  39. DataLock: false
  40. }
  41. },
  42. computed: {
  43. ...mapUserState({
  44. UserInfo: x => x.UserInfo // 用户信息
  45. })
  46. },
  47. components: {
  48. },
  49. created () {
  50. this.CurrnetId = getCurrentInstance().router.params.id
  51. this.$authed(() => {
  52. this.Init()
  53. })
  54. },
  55. methods: {
  56. ...mapUserActions([
  57. 'GetUserPhone',
  58. 'PostActivityJoin',
  59. 'MainSignIn' // 获取用户信息
  60. ]),
  61. ...mapUserMutations([
  62. 'EditUserInfo' // 编辑用户信息
  63. ]),
  64. Init () {
  65. },
  66. ToJoin () { // 去报名
  67. if (this.DataLock) return
  68. this.DataLock = true
  69. this.PostActivityJoin({
  70. urlData: { id: this.CurrnetId },
  71. data: { data: { enrollName: this.Name, enrollPhone: this.Phone, enrollNum: this.Num } }
  72. }).then((res) => {
  73. this.DataLock = false
  74. wx.showToast({
  75. title: '报名成功',
  76. icon: 'none',
  77. duration: 2000
  78. })
  79. }).catch(() => {
  80. this.DataLock = false
  81. })
  82. }
  83. }
  84. }
  85. </script>
  86. <style lang="scss">
  87. @import "page.scss";
  88. </style>