jobDetails.vue 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  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.lowestSalary || ''} ~ ${recruitmentData.highestSalary || ''}k` }}</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="jobdetailsbtn" v-if="!isSubmit">
  79. <view class="jobdetailsbtn-container">
  80. <view class="jobdetailsbtn-content">
  81. <view>
  82. <u-button type="primary"
  83. @click="handleResumeClick"
  84. class="jobdetailsubmitbtn">提交简历</u-button>
  85. </view>
  86. </view>
  87. </view>
  88. </view>
  89. <u-toast ref="uToast" />
  90. </view>
  91. </template>
  92. <script>
  93. export default {
  94. data() {
  95. return {
  96. recruitmentData: {},
  97. detailsInfo: {
  98. jobDesc: `1、规划产品发展方向,制定产品计划和竞争策略;\n2、编写产品需求文档,对产品需求进行评估及确认项目开发周期;\n3、跟踪项目进度,协调各方资源,产品培训和产品演示;\n4、对产品的设计、开发、包装、渠道、定价、上市、维护等过程进行全程监控;\n5、协助营销市场部门,参与各类市场活动等`,
  99. jobRequire: `1. 大专学历,2年以上蓝牙耳机产品经理岗位经验;\n2. 英语听说读写能力强,能熟练用英语与国外客户沟通交流;\n3、熟悉产品设计、研发流程,有完整的项目管理经验;\n4、有创造性、规划产品,有较强的市场敏锐性和超前意识。`
  100. },
  101. isSubmit: false
  102. };
  103. },
  104. onLoad(param) {
  105. if (param.id) {
  106. this.getPostDetails(param.id)
  107. this.judgeIsSubmit(param.id)
  108. }
  109. if (param.isSubmit) {
  110. this.isSubmit = param.isSubmit
  111. }
  112. },
  113. onShow() {
  114. },
  115. methods: {
  116. /**
  117. * 通过职位id获取详情
  118. * @param { String } id 职位id
  119. */
  120. getPostDetails(id) {
  121. this.$u.api.company.getPostDetails({ id }).then(res => {
  122. if (res.code === 200) {
  123. this.recruitmentData = res.data
  124. } else {
  125. this.$refs.uToast.show({
  126. title: res.msg,
  127. type: 'error'
  128. })
  129. }
  130. }).catch(() => {
  131. this.$refs.uToast.show({
  132. title: '系统异常!',
  133. type: 'error'
  134. })
  135. })
  136. },
  137. judgeIsSubmit(id) {
  138. this.$u.api.company.judgeIsSubmit({ id }).then(res => {
  139. if (res.code === 200) {
  140. if (res.data === 0) {
  141. this.isSubmit = false
  142. } else {
  143. this.isSubmit = true
  144. }
  145. } else {
  146. this.$refs.uToast.show({
  147. title: res.msg,
  148. type: 'error'
  149. })
  150. }
  151. }).catch(() => {
  152. this.$refs.uToast.show({
  153. title: '系统异常!',
  154. type: 'error'
  155. })
  156. })
  157. },
  158. /**
  159. * 企业信息事件
  160. */
  161. tapHeadCardBody(param){
  162. this.$u.route({
  163. url: 'pages/businessDetails/businessDetails',
  164. params: {
  165. id: param.companyId
  166. }
  167. });
  168. },
  169. /**
  170. * 企业位置事件
  171. */
  172. tapHeadCardFoot(param){
  173. },
  174. /**
  175. * 提交简历按钮事件
  176. */
  177. handleResumeClick(){
  178. this.$u.api.company.deliveryResume({ postId: this.recruitmentData.id }).then(res => {
  179. if (res.code === 200) {
  180. this.$u.route({
  181. url: 'pages/resumeDeliveryResults/resumeDeliveryResults',
  182. params: {
  183. // item: JSON.stringify(param)
  184. }
  185. });
  186. } else {
  187. this.$refs.uToast.show({
  188. title: res.msg,
  189. type: 'error'
  190. })
  191. }
  192. }).catch(() => {
  193. this.$refs.uToast.show({
  194. title: '系统异常!',
  195. type: 'error'
  196. })
  197. })
  198. }
  199. }
  200. }
  201. </script>
  202. <style lang="scss" scoped>
  203. @import './scss/jobDetails.scss';
  204. </style>