company.vue 4.1 KB

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