jobDetails.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <!--
  2. * @title 职位详情
  3. * @author Rockery(1113269755@qq.com)
  4. -->
  5. <template>
  6. <view class="jobdetails">
  7. <view class="jobdetails-head">
  8. <u-card :border="false" :head-border-bottom="false" :foot-border-top="false" :padding="0" :border-radius="0" class="jobdetails-head-card">
  9. <view slot="head">
  10. <view class="jobdetails-head-cardhead">
  11. <view class="content">
  12. <view class="left">
  13. <view>{{ recruitmentData.postName }}</view>
  14. <view>经验{{ recruitmentData.workYear }}年 / {{ recruitmentData.educationBg }}</view>
  15. </view>
  16. <view class="right">{{ recruitmentData.salary }}</view>
  17. </view>
  18. </view>
  19. </view>
  20. <view slot="body">
  21. <view class="jobdetails-head-cardbody">
  22. <view class="container" @tap="tapHeadCardBody(recruitmentData)">
  23. <view class="container-image">
  24. <image :src="recruitmentData.companyLogoUrl" mode="aspectFill" class="image"></image>
  25. </view>
  26. <view class="content">
  27. <view class="content-left">
  28. <view >{{ recruitmentData.companyName }}</view>
  29. <view >快递和运输 · 199-499人</view>
  30. </view>
  31. <view class="content-right">
  32. <u-icon name="arrow-right" color="#000000" size="48"></u-icon>
  33. </view>
  34. </view>
  35. </view>
  36. </view>
  37. </view>
  38. <view slot="foot">
  39. <view class="jobdetails-head-cardfoot">
  40. <view class="content">
  41. <view class="content-left">
  42. <view >{{ recruitmentData.companyAddress }})</view>
  43. </view>
  44. <view class="content-right" @tap="tapHeadCardFoot(recruitmentData)">
  45. <u-icon name="map-fill" color="#028DFE" size="30" class="content-right-icon"></u-icon>
  46. <view class="content-right-text">查看位置</view>
  47. </view>
  48. </view>
  49. </view>
  50. </view>
  51. </u-card>
  52. </view>
  53. <view class="jobdetails-content">
  54. <u-card :border="false" :head-border-bottom="false" :foot-border-top="false" :padding="0" :border-radius="0" class="jobdetails-content-card">
  55. <view slot="head">
  56. <view class="jobdetails-content-cardhead">
  57. <view class="container">
  58. <view class="title">职位描述</view>
  59. <view class="content">
  60. <!-- <u-input :disabled="true" v-model="detailsInfo.description" type="textarea" class="content-textarea" /> -->
  61. <u-parse :html="recruitmentData.description"></u-parse>
  62. </view>
  63. </view>
  64. </view>
  65. </view>
  66. <!-- <view slot="body">
  67. <view class="jobdetails-content-cardbody">
  68. <view class="container">
  69. <view class="title">职位要求</view>
  70. <view class="content">
  71. <u-input :disabled="true" v-model="detailsInfo.jobRequire" type="textarea" class="content-textarea" />
  72. </view>
  73. </view>
  74. </view>
  75. </view> -->
  76. </u-card>
  77. </view>
  78. <view class="jobdetails-bottom" v-if="!isSubmit">
  79. <u-button type="primary" @click="handleResumeClick">提交简历</u-button>
  80. </view>
  81. <u-toast ref="uToast" />
  82. </view>
  83. </template>
  84. <script>
  85. export default {
  86. data() {
  87. return {
  88. recruitmentData: {},
  89. detailsInfo: {
  90. jobDesc: `1、规划产品发展方向,制定产品计划和竞争策略;\n2、编写产品需求文档,对产品需求进行评估及确认项目开发周期;\n3、跟踪项目进度,协调各方资源,产品培训和产品演示;\n4、对产品的设计、开发、包装、渠道、定价、上市、维护等过程进行全程监控;\n5、协助营销市场部门,参与各类市场活动等`,
  91. jobRequire: `1. 大专学历,2年以上蓝牙耳机产品经理岗位经验;\n2. 英语听说读写能力强,能熟练用英语与国外客户沟通交流;\n3、熟悉产品设计、研发流程,有完整的项目管理经验;\n4、有创造性、规划产品,有较强的市场敏锐性和超前意识。`
  92. },
  93. isSubmit: false
  94. };
  95. },
  96. onLoad(param) {
  97. if (param.id) {
  98. this.getPostDetails(param.id)
  99. this.judgeIsSubmit(param.id)
  100. }
  101. if (param.isSubmit) {
  102. this.isSubmit = param.isSubmit
  103. }
  104. },
  105. onShow() {
  106. },
  107. methods: {
  108. /**
  109. * 通过职位id获取详情
  110. * @param { String } id 职位id
  111. */
  112. getPostDetails(id) {
  113. this.$u.api.company.getPostDetails({ id }).then(res => {
  114. if (res.code === 200) {
  115. this.recruitmentData = res.data
  116. } else {
  117. this.$refs.uToast.show({
  118. title: res.msg,
  119. type: 'error'
  120. })
  121. }
  122. }).catch(() => {
  123. this.$refs.uToast.show({
  124. title: '系统异常!',
  125. type: 'error'
  126. })
  127. })
  128. },
  129. judgeIsSubmit(id) {
  130. this.$u.api.company.judgeIsSubmit({ id }).then(res => {
  131. if (res.code === 200) {
  132. if (res.data === 0) {
  133. this.isSubmit = false
  134. } else {
  135. this.isSubmit = true
  136. }
  137. } else {
  138. this.$refs.uToast.show({
  139. title: res.msg,
  140. type: 'error'
  141. })
  142. }
  143. }).catch(() => {
  144. this.$refs.uToast.show({
  145. title: '系统异常!',
  146. type: 'error'
  147. })
  148. })
  149. },
  150. /**
  151. * 企业信息事件
  152. */
  153. tapHeadCardBody(param){
  154. this.$u.route({
  155. url: 'pages/businessDetails/businessDetails',
  156. params: {
  157. id: param.companyId
  158. }
  159. });
  160. },
  161. /**
  162. * 企业位置事件
  163. */
  164. tapHeadCardFoot(param){
  165. },
  166. /**
  167. * 提交简历按钮事件
  168. */
  169. handleResumeClick(){
  170. this.$u.api.company.deliveryResume({ postId: this.recruitmentData.id }).then(res => {
  171. if (res.code === 200) {
  172. this.$u.route({
  173. url: 'pages/resumeDeliveryResults/resumeDeliveryResults',
  174. params: {
  175. // item: JSON.stringify(param)
  176. }
  177. });
  178. } else {
  179. this.$refs.uToast.show({
  180. title: res.msg,
  181. type: 'error'
  182. })
  183. }
  184. }).catch(() => {
  185. this.$refs.uToast.show({
  186. title: '系统异常!',
  187. type: 'error'
  188. })
  189. })
  190. }
  191. }
  192. }
  193. </script>
  194. <style lang="scss" scoped>
  195. @import './scss/jobDetails.scss';
  196. </style>