company.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <template>
  2. <view class="box">
  3. <view class="fromData">
  4. <u-form :model="form" ref="uForm">
  5. <u-form-item label="姓名"><u-input placeholder="请输入姓名" v-model="form.name" /></u-form-item>
  6. <u-form-item label="电话"><u-input placeholder="请输入手机号码" v-model="form.phone" /></u-form-item>
  7. <u-form-item label="地址"><u-input placeholder="请输入详细地址" v-model="form.address" /></u-form-item>
  8. <u-form-item label="企业"><u-input placeholder="请输入企业名称" v-model="form.company" /></u-form-item>
  9. <u-form-item label="职业"><u-input v-model="form.occupation" type="select" :select-open="showOccupation" @click="showOccupation = !showOccupation" /></u-form-item>
  10. <u-form-item label="简介"><u-input placeholder="请输入简介" maxlength='200' type="textarea" v-model="form.detail" /></u-form-item>
  11. <u-form-item label="头像"><u-upload max-count="1" :action="upUrl" :header="upHeader" @on-uploaded="setImg"></u-upload></u-form-item>
  12. </u-form>
  13. </view>
  14. <u-action-sheet :list="occupationList" v-model="showOccupation" @click="changeOccupation"></u-action-sheet>
  15. <view class="upButtom" @click="submit">提交申请</view>
  16. </view>
  17. </template>
  18. <script>
  19. import { pushJoin } from '@/api/tp.js';
  20. import { mapState } from 'vuex';
  21. export default {
  22. data() {
  23. return {
  24. form: {
  25. name: '', //姓名
  26. phone: '', //联系方式
  27. address: '', //地址
  28. occupation: '产康师', //职业
  29. upImg: '' ,//上传头像
  30. detail:'',//简介
  31. company:''//企业
  32. },
  33. // 是否显示职业选择弹窗
  34. showOccupation: false,
  35. //职业类型选择
  36. occupationList: [
  37. {
  38. text: '产康师'
  39. },
  40. {
  41. text: '母乳喂养指导师'
  42. }
  43. ],
  44. fileList: [
  45. {
  46. url: 'http://pics.sc.chinaz.com/files/pic/pic9/201912/hpic1886.jpg'
  47. }
  48. ]
  49. };
  50. },
  51. computed: {
  52. ...mapState(['baseURL']),
  53. // 上传图片地址
  54. upUrl() {
  55. return this.baseURL + '/api/upload/image';
  56. },
  57. upHeader() {
  58. return {
  59. 'Authori-zation': 'Bearer ' + uni.getStorageSync('token') || ''
  60. };
  61. }
  62. },
  63. onLoad() {},
  64. onShow() {},
  65. methods: {
  66. // 选中切换
  67. changeOccupation(e) {
  68. console.log(this.occupationList[e].text);
  69. this.form.occupation = this.occupationList[e].text
  70. console.log(e);
  71. },
  72. submit() {
  73. uni.showLoading({
  74. title: '提交报名中...',
  75. mask: true
  76. });
  77. const data = this.form
  78. pushJoin({
  79. type: 2,
  80. job:data.occupation ,
  81. name:data.name ,
  82. phone:data.phone ,
  83. address:data.address ,
  84. avatar:data.upImg ,
  85. detail:data.detail ,
  86. company:data.company
  87. })
  88. .then(e => {
  89. uni.hideLoading();
  90. uni.showToast({
  91. title: '报名成功'
  92. });
  93. uni.showModal({
  94. title: '提示',
  95. content: '是否返回活动页?',
  96. success: res => {
  97. if(res.confirm){
  98. uni.navigateBack()
  99. }
  100. },
  101. });
  102. console.log(e);
  103. })
  104. .catch(e => {
  105. uni.hideLoading();
  106. console.log(e);
  107. });
  108. },
  109. setImg(data, index, lists, name) {
  110. console.log(data);
  111. this.form.upImg = data[0].response.data.url;
  112. console.log(this.form.upImg);
  113. }
  114. }
  115. };
  116. </script>
  117. <style>
  118. .fromData {
  119. background-color: #ffffff;
  120. border-radius: 10rpx;
  121. margin: 30rpx;
  122. padding: 0 20rpx;
  123. }
  124. .upButtom {
  125. background: #d7272b;
  126. color: #ffffff;
  127. font-size: 32rpx;
  128. font-weight: bold;
  129. text-align: center;
  130. padding: 20rpx 0;
  131. position: fixed;
  132. bottom: 0;
  133. left: 0;
  134. right: 0;
  135. }
  136. </style>