index.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <template>
  2. <div class="companyVerifyInput">
  3. <div class="titleArea">
  4. <p>企业认证</p>
  5. </div>
  6. <div class="bodyArea">
  7. <div class="selectList">
  8. <div class="topTips">
  9. <p>认证优势:</p>
  10. <p>·同方向同时5次的预约机会(未认证企业只有1次)</p>
  11. <p>·能预约全部展示的优质开发者</p>
  12. <p>·全国最大中高端程序员共享工作台,独享展示标签</p>
  13. <p>·提升企业技术水平公信力,提高约单转化率</p>
  14. <!--<p>·认证需完善企业信息并支付认证费用58元</p>-->
  15. </div>
  16. <div class="inputArea">
  17. <div class="inputBox" v-for="item in inputList" :key="item.name">
  18. <p class="name">{{item.title}}</p>
  19. <input type="text" placeholder="请输入" v-model="item.value">
  20. </div>
  21. </div>
  22. <div class="uploadFile">
  23. <p class="name">请上传 <span>加盖公章</span> 的营业执照</p>
  24. <el-upload
  25. class="avatar-uploader"
  26. action="#"
  27. :show-file-list="false"
  28. :multiple="false"
  29. accept="image/png, image/jpeg"
  30. :before-upload="handleFileChange"
  31. >
  32. <i v-if="imageUrl" class="el-icon-delete avatar-uploader-icon" @click.stop="handleDeleteFile"></i>
  33. <img v-if="imageUrl" :src="imageUrl" class="avatar"/>
  34. <div v-else class="noneImage">
  35. <i class="el-icon-plus avatar-uploader-icon"></i>
  36. <span class="title">上传照片</span>
  37. </div>
  38. </el-upload>
  39. </div>
  40. </div>
  41. <div class="submitButton">
  42. <div class="left"></div>
  43. <div class="right" @click="submitForm">
  44. <p>确认提交</p>
  45. </div>
  46. </div>
  47. </div>
  48. </div>
  49. </template>
  50. <script>
  51. export default {
  52. name: 'companyVerifyInput',
  53. data() {
  54. return {
  55. typeList: [],
  56. inputList: [
  57. { name: 'name', title: '企业名称', value: '' },
  58. { name: 'creditCode', title: '工商执照注册号/统一社会信用代码', value: '' },
  59. { name: 'phone', title: '联系方式', value: '' },
  60. ],
  61. imageUrl: ''
  62. }
  63. },
  64. async created() {
  65. },
  66. async mounted() {
  67. await this.needLogin()
  68. this.getTypeList()
  69. },
  70. methods: {
  71. /** 获取展示状态 */
  72. getTypeList() {
  73. this.$axios.get('/api/report/get_report_type').then(res => {
  74. if (res.data.status === 1) {
  75. //处理将 data数组转换一下
  76. let typeListData = [ ...(res && res.data && res.data.data || []) ]
  77. }
  78. })
  79. },
  80. /** 提交 **/
  81. submitForm() {
  82. const { typeList } = this
  83. this.$message.success('未接入!')
  84. return
  85. let typeData = []
  86. typeList.forEach(item => {
  87. if (item.selected) {
  88. typeData.push(item.name)
  89. }
  90. })
  91. this.$axios.post('/api/report/create', p).then(res => {
  92. let data = res.data
  93. if (data.status === 1) {
  94. this.$message.success('提交成功')
  95. setTimeout(() => {
  96. history.back()
  97. }, 1000)
  98. } else {
  99. this.$message.error('提交失败')
  100. }
  101. }).catch(e => {
  102. console.log(e)
  103. this.$message.error('提交失败')
  104. })
  105. },
  106. handleFileChange(file) {
  107. const formData = new FormData();
  108. formData.append("file", file);
  109. formData.append("original_filename", file.name);
  110. this.uploading = true;
  111. this.$axios
  112. .$post(`/upload_image`, formData, {
  113. headers: { "Content-Type": "multipart/form-data" }
  114. })
  115. .then(res => {
  116. console.log(res)
  117. this.imageUrl = res.filename
  118. })
  119. .finally(() => {
  120. this.uploading = false;
  121. });
  122. }
  123. },
  124. }
  125. </script>
  126. <style lang="scss" scoped>
  127. @import '../../../assets/css/otherpage/companyVerifyInput.scss';
  128. </style>
  129. <style lang="scss">
  130. .el-upload {
  131. width: 184px;
  132. height: 136px;
  133. border: 1px dashed #409eff;
  134. border-radius: 6px;
  135. cursor: pointer;
  136. position: relative;
  137. overflow: hidden;
  138. img {
  139. width: 100%;
  140. height: auto;
  141. object-fit: contain;
  142. object-position: top left;
  143. }
  144. &:hover {
  145. border-color: #409eff;
  146. .el-icon-delete {
  147. display: block;
  148. }
  149. }
  150. }
  151. </style>