特易招,招聘小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

339 lines
6.8 KiB

11 months ago
8 months ago
11 months ago
10 months ago
11 months ago
8 months ago
11 months ago
10 months ago
11 months ago
8 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
8 months ago
11 months ago
8 months ago
8 months ago
11 months ago
10 months ago
11 months ago
10 months ago
8 months ago
10 months ago
8 months ago
11 months ago
8 months ago
11 months ago
11 months ago
8 months ago
11 months ago
8 months ago
8 months ago
11 months ago
8 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
10 months ago
11 months ago
8 months ago
11 months ago
8 months ago
10 months ago
11 months ago
8 months ago
11 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
8 months ago
11 months ago
8 months ago
10 months ago
8 months ago
10 months ago
11 months ago
8 months ago
11 months ago
11 months ago
8 months ago
10 months ago
8 months ago
10 months ago
8 months ago
10 months ago
8 months ago
8 months ago
8 months ago
10 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
  1. <template>
  2. <view class="page">
  3. <navbar title="工作详情" leftClick @leftClick="$utils.navigateBack" />
  4. <view class="box">
  5. <view class="title">
  6. {{ detail.title }}
  7. </view>
  8. <view class="price">
  9. {{ detail.salaryLow }}-{{ detail.salaryUp }}
  10. </view>
  11. <view class="line">
  12. <!-- <view>
  13. <image src="../static/work/address.png" mode=""></image>
  14. {{ detail.workAge }}
  15. </view> -->
  16. <view>
  17. <image src="../static/work/g.png" mode=""></image>
  18. {{ detail.workAge }}
  19. </view>
  20. <view>
  21. <image src="../static/work/x.png" mode=""></image>
  22. {{ detail.qulification }}
  23. </view>
  24. </view>
  25. <view class="line">
  26. 该职位发布{{ $dayjs(detail.createTime).format('YYYY-MM-DD') }}
  27. </view>
  28. <view class="userHead" v-if="hanHaiMember">
  29. <userHead :image="hanHaiMember.headImage" :tips="personInfo.phone" :name="personInfo.name"
  30. :phoneCall="personInfo.phone" />
  31. </view>
  32. <view class="address"
  33. @click="openLocation(detail.latitude, detail.longitude)">
  34. <view class="title2">
  35. 工作地址
  36. </view>
  37. <!--
  38. 深圳罗湖区深圳市百货广场大厦罗湖区百货广场大厦东深圳罗湖区深圳市百货广场大厦罗湖区百货广场大厦东
  39. -->
  40. <view class="line" style="justify-content: space-between;">
  41. {{ detail.workAddress }}
  42. <uv-icon size="30rpx" color="666" name="arrow-right"></uv-icon>
  43. </view>
  44. <!-- <view class="tag-list">
  45. <view>
  46. 距您14.6千米
  47. </view>
  48. </view> -->
  49. </view>
  50. <view class="info">
  51. <view class="title2">
  52. <text>职位详情</text>
  53. <view v-if="collectionFlag == false" @click="addJobCollection">
  54. <uv-icon size="30rpx" color="666" name="star"></uv-icon>
  55. 收藏
  56. </view>
  57. <view v-else @click="addJobCollection" style="color: #f40;">
  58. <uv-icon size="30rpx" color="666" name="star-fill"></uv-icon>
  59. 已收藏
  60. </view>
  61. </view>
  62. <view class="tag-list">
  63. <view :key="i" v-for="(t, i) in detail.tab && detail.tab.split('、')">
  64. {{ t }}
  65. </view>
  66. </view>
  67. <view class="text">
  68. <uv-parse :content="detail.workDetail"></uv-parse>
  69. </view>
  70. </view>
  71. </view>
  72. <view class="boss-box"
  73. v-if="companyInfo"
  74. @click="$utils.navigateTo('/pages_order/work/bossDetail?id=' + hanHaiMember.id)">
  75. <view class="image">
  76. <image :src="companyInfo.logo" mode=""></image>
  77. </view>
  78. <view class="shop-box">
  79. <view class="title">
  80. {{companyInfo.companyName}}
  81. </view>
  82. <view class="desc">
  83. {{companyInfo.financing}}*{{companyInfo.industry}}*{{companyInfo.number}}
  84. </view>
  85. </view>
  86. <view class="arrow-right">
  87. <uv-icon name="arrow-right" size="40rpx" color="#5baaff"></uv-icon>
  88. </view>
  89. </view>
  90. <view class="list-work">
  91. <view class="text">
  92. 推荐职位<text>{{total}}</text>
  93. </view>
  94. <view style="margin: 20rpx;"
  95. @click="$utils.navigateTo('/pages_order/work/workDetail?id=' + item.id)"
  96. :key="index" v-for="(item, index) in list">
  97. <workItem :item="item" />
  98. </view>
  99. </view>
  100. </view>
  101. </template>
  102. <script>
  103. import userHead from '../components/user/userHead.vue'
  104. import mixinList from '@/mixins/list.js'
  105. import workItem from '@/components/list/workList/workItem.vue'
  106. export default {
  107. mixins: [mixinList],
  108. components: {
  109. userHead,
  110. workItem,
  111. },
  112. data() {
  113. return {
  114. text: '',
  115. id: 0,
  116. detail: {},
  117. personInfo: {},
  118. companyInfo: {},
  119. hanHaiMember: {},
  120. total: 0,
  121. collectionFlag: false,
  122. mixinsListApi: '',
  123. }
  124. },
  125. onLoad({
  126. id
  127. }) {
  128. this.id = id
  129. this.queryParams.id = id;
  130. },
  131. onShow() {
  132. this.getDetail()
  133. },
  134. methods: {
  135. getDetail() {
  136. let data = {
  137. jobId: this.id
  138. }
  139. if (uni.getStorageSync('token')) {
  140. data.token = uni.getStorageSync('token')
  141. }
  142. this.$api('employeeQueryJobById', data, res => {
  143. if (res.code == 200) {
  144. this.detail = res.result.jobInfo
  145. this.collectionFlag = res.result.collectionFlag
  146. this.personInfo = res.result.personInfo
  147. this.companyInfo = res.result.companyInfo
  148. this.hanHaiMember = res.result.hanHaiMember
  149. this.mixinsListApi = 'employeeQueryJobList'
  150. this.queryParams.typeId = this.detail.typeId
  151. this.queryParams.areaId = this.detail.areaId
  152. this.getData()
  153. }
  154. })
  155. },
  156. addJobCollection() {
  157. let data = {
  158. jobId: this.id
  159. }
  160. if (uni.getStorageSync('token')) {
  161. data.token = uni.getStorageSync('token')
  162. }
  163. this.$api('addJobCollection', data, res => {
  164. this.getDetail();
  165. if (res.code == 200) {
  166. uni.showToast({
  167. title: res.message,
  168. icon: 'none'
  169. })
  170. }
  171. })
  172. },
  173. }
  174. }
  175. </script>
  176. <style scoped lang="scss">
  177. .page {
  178. min-height: 100vh;
  179. .box {
  180. padding: 30rpx;
  181. background-color: #fff;
  182. .title {
  183. font-size: 34rpx;
  184. font-weight: 900;
  185. padding-bottom: 20rpx;
  186. }
  187. .title2 {
  188. font-size: 28rpx;
  189. font-weight: 900;
  190. display: flex;
  191. justify-content: space-between;
  192. align-items: center;
  193. view {
  194. display: flex;
  195. align-items: center;
  196. justify-content: center;
  197. }
  198. }
  199. .price {
  200. font-size: 30rpx;
  201. font-weight: 900;
  202. color: $uni-color;
  203. }
  204. .line {
  205. display: flex;
  206. font-size: 24rpx;
  207. color: #666666;
  208. margin-top: 30rpx;
  209. image {
  210. width: 30rpx;
  211. height: 30rpx;
  212. }
  213. &>view {
  214. margin-right: 50rpx;
  215. display: flex;
  216. justify-content: center;
  217. align-items: center;
  218. }
  219. }
  220. .userHead {
  221. padding: 50rpx 0;
  222. border-bottom: 1px solid #00000011;
  223. }
  224. .address {
  225. padding: 30rpx 0;
  226. .line {
  227. margin-top: 20rpx;
  228. }
  229. }
  230. .info {
  231. .text {
  232. font-size: 24rpx;
  233. color: #666666;
  234. line-height: 44rpx;
  235. }
  236. }
  237. }
  238. .boss-box {
  239. margin: 10rpx 0;
  240. padding: 30rpx;
  241. background-color: #fff;
  242. display: flex;
  243. align-items: center;
  244. .image {
  245. width: 90rpx;
  246. height: 90rpx;
  247. margin-right: 10rpx;
  248. flex-shrink: 0;
  249. image {
  250. width: 100%;
  251. height: 100%;
  252. border-radius: 10rpx;
  253. }
  254. }
  255. .shop-box {
  256. flex: 1;
  257. width: calc(100% - 220rpx);
  258. .title {
  259. font-size: 28rpx;
  260. overflow: hidden; //超出的文本隐藏
  261. text-overflow: ellipsis; //溢出用省略号显示
  262. white-space: nowrap; //溢出不换行
  263. }
  264. .desc {
  265. margin-top: 10rpx;
  266. font-size: 24rpx;
  267. overflow: hidden; //超出的文本隐藏
  268. text-overflow: ellipsis; //溢出用省略号显示
  269. white-space: nowrap; //溢出不换行
  270. }
  271. }
  272. .arrow-right {
  273. flex-shrink: 0;
  274. margin-left: auto;
  275. display: flex;
  276. align-items: center;
  277. font-size: 26rpx;
  278. }
  279. }
  280. .list-work {
  281. .text {
  282. background-color: #fff;
  283. padding: 26rpx;
  284. font-weight: 900;
  285. text {
  286. font-weight: 500;
  287. color: #666666;
  288. font-size: 26rpx;
  289. margin-left: 20rpx;
  290. }
  291. }
  292. }
  293. }
  294. </style>