jobSearchDetails.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616
  1. <template>
  2. <view>
  3. <u-navbar back-text="求职详情" back-icon-size="28" back-icon-color="#ffffff"
  4. :background="{backgroundColor: '#2795FD',}" :back-text-style="{color: '#ffffff'}"></u-navbar>
  5. <view class="content">
  6. <!-- 职位 -->
  7. <view class="position">
  8. {{info.intendedIndustriesN}}
  9. </view>
  10. <!-- 薪水 -->
  11. <view class="saraly">
  12. {{info.hopeSalary}}<text>元/天</text>
  13. </view>
  14. <!-- 发布日期和浏览量 -->
  15. <view class="date-views">
  16. <view class="date">
  17. 更新时间:{{getTime(info)}}
  18. </view>
  19. <view class="views">
  20. 浏览量:1
  21. </view>
  22. </view>
  23. </view>
  24. <view class="content">
  25. <view class="job-information">
  26. 求职信息
  27. </view>
  28. <!-- 意向岗位 -->
  29. <view class="intention">
  30. <view class="title">
  31. 意向岗位:
  32. </view>
  33. <view class="details">
  34. {{info.intendedPosition}}
  35. </view>
  36. </view>
  37. <!-- 服务描述 -->
  38. <view class="describe">
  39. 服务描述
  40. </view>
  41. <view class="describe-details">
  42. {{info.serviceDesc}}
  43. </view>
  44. </view>
  45. <view class="content">
  46. <!-- 联系方式 -->
  47. <view class="contact-information">
  48. <view class="title">
  49. 联系方式
  50. </view>
  51. <view class="details">
  52. <!-- 照片 -->
  53. <view class="photo">
  54. <img :src="personInfo.photo" alt="">
  55. </view>
  56. <view class="linkman-infos">
  57. <!-- 姓名电话 -->
  58. <view class="name-tel">
  59. <view class="name">
  60. {{personInfo.realName}}
  61. </view>
  62. <view class="tel">
  63. {{personInfo.phone}}
  64. </view>
  65. </view>
  66. <!-- 标签 -->
  67. <view class="tags">
  68. <view class="tag-item">
  69. </view>
  70. <view class="tag-item">
  71. 21岁
  72. </view>
  73. <view class="tag-item">
  74. 2年以上
  75. </view>
  76. <view class="tag-item">
  77. 高中
  78. </view>
  79. </view>
  80. </view>
  81. </view>
  82. </view>
  83. </view>
  84. <!-- 底部按钮 -->
  85. <view class="bottom">
  86. <!-- 分享 -->
  87. <view >
  88. <button class="share" open-type="share">
  89. <view class="icon">
  90. <img src="@/assets/img/riFill-share-circle-fill@1x.png" alt="">
  91. </view>
  92. <view class="text">
  93. 分享
  94. </view>
  95. </button>
  96. </view>
  97. <view class="btn">
  98. <button class="dialing" @click="showPhone=true" >一键拨号</button>
  99. <button class="invite" :class="{
  100. isJoin:isJoin
  101. }" @click="isJoinBtn"
  102. >{{isJoin?'已邀请':'立即邀请'}}</button>
  103. </view>
  104. <u-modal v-model="showPhone" @confirm="confirmPhone" :confirm-text="confirmText" confirm-color="#606266"
  105. :show-cancel-button="true" ref="uModal" :asyncClose="true" title="联系电话" :content="personInfo.phone"
  106. :content-style="{fontSize: '24px',color: '#101010'}"></u-modal>
  107. <!-- 筛选框 -->
  108. <u-popup v-model="popupShow" @open="popupShowOpen" mode="bottom" border-radius="20" :closeable="true">
  109. <view class="popup-content">
  110. <view class="headline">
  111. 选择岗位
  112. </view>
  113. <!-- 工作经验 -->
  114. <view class="work-experience">
  115. <!-- 选项 -->
  116. <view class="options">
  117. <view :class="{item,checked:workChecked==index}" v-for="(item,index) in workList" :key="index"
  118. @click="workChecked=index">
  119. {{item.positionName}}-{{item.salary}}元/天
  120. </view>
  121. </view>
  122. </view>
  123. <view class="button">
  124. <button class="reset" @click="popupShow=false">关闭</button>
  125. <button class="confirm" @click="isJoinMethodBtn()" >发出邀请</button>
  126. </view>
  127. </view>
  128. </u-popup>
  129. </view>
  130. </view>
  131. </template>
  132. <script>
  133. import * as API from '@/apis/pagejs/packages.js'
  134. export default {
  135. data() {
  136. return {
  137. id: "",
  138. workList:[],
  139. popupShow:false,
  140. showPhone: false,
  141. confirmText: '拨打电话',
  142. content: "",
  143. isJoin: false,
  144. share: 0,
  145. personInfo:{},
  146. workChecked:-1,
  147. info: {
  148. "id": "",
  149. "personId": "",
  150. "photo": "",
  151. "serviceDesc": "5",
  152. "intendedIndustries": "2",
  153. "intendedPosition": "1",
  154. "hopeSalary": 2,
  155. "method": "1",
  156. "workExperience": "1",
  157. "education": "2",
  158. "status": "0",
  159. "createBy": "",
  160. "createTime": "",
  161. "updateBy": "",
  162. "updateTime": "",
  163. "delFlag": false,
  164. "personName": null,
  165. "intendedIndustriesN": null,
  166. "methodN": null,
  167. "workExperienceN": null,
  168. "educationN": null
  169. }
  170. }
  171. },
  172. onShareAppMessage(res) {
  173. if (res.from === 'button') { // 来自页面内分享按钮
  174. console.log(res.target)
  175. }
  176. return {
  177. title: this.showTitle,
  178. path: '/?shareMP=1&t=jobSearchDetails&id=' + this.id
  179. }
  180. },
  181. onLoad(op) {
  182. //uni.showShareMenu()
  183. this.id = op.id
  184. if (op.shareMP) {
  185. this.share = op.shareMP
  186. }
  187. this.getInfo()
  188. },
  189. methods: {
  190. getTime(item){
  191. var time=item.updateTime?item.updateTime:item.createTime;
  192. if(time){
  193. return time.substring(0,10)
  194. }
  195. return ''
  196. },
  197. confirmPhone() {
  198. this.showPhone = false;
  199. uni.makePhoneCall({
  200. phoneNumber: this.personInfo.phone
  201. });
  202. },
  203. isJoinMethodBtn() {
  204. if(this.workChecked==-1){
  205. uni.showToast({icon: 'none',
  206. title:"请选择邀请岗位"
  207. })
  208. return
  209. }
  210. var jobId =this.workList[this.workChecked].id
  211. uni.showLoading({
  212. title: "加载中",
  213. mask: true,
  214. })
  215. API.inviteJob({
  216. recruitId:jobId,
  217. jobId: this.id,
  218. }).then((res) => {
  219. this.isJoin = true;
  220. this.popupShow=false
  221. //this.info=res.data.recruitInformationInfo;
  222. uni.showModal({
  223. title: '提示',
  224. content: '邀请成功',
  225. showCancel: false,
  226. success: function(res) {
  227. if (res.confirm) {
  228. //uni.navigateBack()
  229. } else if (res.cancel) {
  230. console.log('用户点击取消');
  231. }
  232. }
  233. });
  234. uni.hideLoading();
  235. }).catch(error => {
  236. uni.showToast({icon: 'none',
  237. title: error,
  238. icon: "none"
  239. })
  240. })
  241. },
  242. popupShowOpen(){
  243. if(this.workList.length==0){
  244. uni.showLoading({
  245. title: "加载中",
  246. mask: true,
  247. })
  248. API.myEmployment({
  249. pageIndex: 1,
  250. pageSize: 200,
  251. status: 1
  252. }).then((res) => {
  253. uni.hideLoading();
  254. this.workList=res.data.data
  255. }).catch(error => {
  256. uni.showToast({icon: 'none',
  257. title: error
  258. })
  259. //this.getPhone()
  260. })
  261. }
  262. },
  263. isJoinBtn() {
  264. if (this.isJoin) {
  265. return
  266. }
  267. var user=this.carhelp.getPersonInfo();
  268. var enterpriseInfo=this.carhelp.getPersonInfoPlus().enterpriseInfo;
  269. if (!user) {
  270. uni.showModal({
  271. title: '提示',
  272. content: '登录并企业认证后可以邀请',
  273. confirmText:"前往登录",
  274. showCancel: true,
  275. success: function(res) {
  276. if (res.confirm) {
  277. uni.navigateTo({
  278. url:'/pages/tab/mine/mine'
  279. })
  280. } else if (res.cancel) {
  281. console.log('用户点击取消');
  282. }
  283. }
  284. });
  285. return
  286. }
  287. if (!enterpriseInfo||enterpriseInfo.status!=1) {
  288. uni.showModal({
  289. title: '提示',
  290. content: '企业认证后可以邀请',
  291. confirmText:"企业认证",
  292. showCancel: true,
  293. success: function(res) {
  294. if (res.confirm) {
  295. uni.navigateTo({
  296. url:'/pages/packages/mine/otherServices/authentication'
  297. })
  298. } else if (res.cancel) {
  299. console.log('用户点击取消');
  300. }
  301. }
  302. });
  303. return
  304. }
  305. this.popupShow=true
  306. },
  307. getInfo() {
  308. uni.showLoading({
  309. title: "加载中",
  310. mask: true,
  311. })
  312. API.jobHuntDetail({
  313. id: this.id,
  314. }).then((res) => {
  315. this.isJoin = res.data.isInvite;
  316. this.info = res.data.jobInformationInfo;
  317. this.personInfo = res.data.personInfo;
  318. uni.hideLoading();
  319. }).catch(error => {
  320. uni.showToast({icon: 'none',
  321. title: error,
  322. icon: "none"
  323. })
  324. })
  325. }
  326. }
  327. }
  328. </script>
  329. <style>
  330. page {
  331. background: #F0F0F2;
  332. padding-bottom: 50px;
  333. }
  334. </style>
  335. <style lang="scss" scoped>
  336. .content{
  337. padding: 32rpx;
  338. background-color: #fff;
  339. margin-bottom: 24rpx;
  340. // 职位
  341. .position{
  342. color: rgba(16, 16, 16, 1);
  343. font-size: 24px;
  344. font-family: 'PingFangSC-medium';
  345. }
  346. // 薪水
  347. .saraly{
  348. margin-top: 16rpx;
  349. color: rgba(255, 61, 0, 1);
  350. font-size: 48rpx;
  351. text{
  352. font-size: 14px;
  353. margin-left: 4rpx;
  354. }
  355. }
  356. // 发布日期和浏览量
  357. .date-views{
  358. display: flex;
  359. justify-content: space-between;
  360. align-items: center;
  361. margin-top: 40rpx;
  362. .date{
  363. color: rgba(119, 119, 119, 1);
  364. font-size: 24rpx;
  365. }
  366. .views{
  367. color: rgba(119, 119, 119, 1);
  368. font-size: 24rpx;
  369. }
  370. }
  371. // 求职信息
  372. .job-information{
  373. color: rgba(16, 16, 16, 1);
  374. font-size: 18px;
  375. font-family: 'PingFangSC-medium';
  376. }
  377. // 意向岗位
  378. .intention{
  379. display: flex;
  380. align-items: center;
  381. margin-top: 24rpx;
  382. .title{
  383. color: rgba(119, 119, 119, 1);
  384. }
  385. .datails{
  386. color: rgba(16, 16, 16, 1);
  387. }
  388. }
  389. // 服务描述
  390. .describe{
  391. font-size: 36rpx;
  392. text-align: left;
  393. font-family: 'PingFangSC-medium';
  394. margin-top: 64rpx;
  395. color: rgba(16, 16, 16, 1);
  396. }
  397. .describe-details{
  398. color: rgba(51, 51, 51, 1);
  399. font-size: 32rpx;
  400. margin-top: 24rpx;
  401. }
  402. // 联系方式
  403. .contact-information{
  404. .title{
  405. color: rgba(16, 16, 16, 1);
  406. font-size: 36rpx;
  407. }
  408. .details{
  409. display: flex;
  410. margin-top: 24rpx;
  411. .photo{
  412. width: 112rpx;
  413. height: 112rpx;
  414. border-radius: 50rpx;
  415. border: 1px solid rgba(255, 255, 255, 1);
  416. overflow: hidden;
  417. img{
  418. width: 100%;
  419. height: 100%;
  420. }
  421. }
  422. .linkman-infos{
  423. margin-left: 24rpx;
  424. // 姓名电话
  425. .name-tel{
  426. display: flex;
  427. align-items: center;
  428. .name{
  429. color: rgba(16, 16, 16, 1);
  430. font-size: 36rpx;
  431. font-family: 'PingFangSC-medium';
  432. }
  433. .tel{
  434. color: rgba(119, 119, 119, 1);
  435. font-size: 36rpx;
  436. margin-left: 16rpx;
  437. }
  438. }
  439. // 标签
  440. .tags{
  441. display: flex;
  442. margin-top: 16rpx;
  443. .tag-item{
  444. line-height: 40rpx;
  445. padding: 0 8rpx;
  446. border-radius: 4px;
  447. background-color: rgba(241, 241, 247, 1);
  448. color: rgba(129, 127, 153, 1);
  449. font-size: 24rpx;
  450. text-align: center;
  451. margin-right: 16rpx;
  452. }
  453. }
  454. }
  455. }
  456. }
  457. }
  458. // 底部按钮
  459. .bottom{
  460. background-color: #fff;
  461. padding: 24rpx 44rpx;
  462. display: flex;
  463. align-items: center;
  464. position: fixed;
  465. bottom: 0;
  466. left: 0;
  467. right: 0;
  468. .share {
  469. background-color: #fff;
  470. }
  471. // 分享
  472. .icon{
  473. width: 48rpx;
  474. height: 48rpx;
  475. img{
  476. width: 100%;
  477. height: 100%;
  478. }
  479. }
  480. .text{
  481. color: rgba(39, 149, 253, 1);
  482. font-size:24rpx;
  483. }
  484. .btn{
  485. display: flex;
  486. margin-left: auto;
  487. .dialing{
  488. width: 240rpx;
  489. height: 88rpx;
  490. line-height: 88rpx;
  491. border-radius: 50px;
  492. background-color: #fff;
  493. color: rgba(39, 149, 253, 1);
  494. font-size: 36rpx;
  495. text-align: center;
  496. border: 1px solid rgba(39, 149, 253, 1);
  497. margin-right: 24rpx;
  498. }
  499. .invite{
  500. width: 280rpx;
  501. height: 88rpx;
  502. line-height: 88rpx;
  503. border-radius: 50px;
  504. background-color: rgba(34, 149, 255, 1);
  505. color: rgba(255, 255, 255, 1);
  506. font-size: 36rpx;
  507. text-align: center;
  508. }
  509. .isJoin{
  510. background-color: #19be6d;
  511. }
  512. }
  513. }
  514. // 筛选框
  515. .popup-content {
  516. padding: 32rpx;
  517. .headline {
  518. color: #101010;
  519. font-size: 40rpx;
  520. text-align: center;
  521. }
  522. // 薪资待遇
  523. .salary-package,
  524. .work-experience {
  525. margin-top: 16rpx;
  526. .title {
  527. font-size: 32rpx;
  528. color: #111111;
  529. }
  530. // 选项
  531. .options {
  532. display: flex;
  533. flex-wrap: wrap;
  534. justify-content: flex-start;
  535. margin-top: 24rpx;
  536. .item {
  537. height: 56rpx;
  538. line-height: 56rpx;
  539. min-width: 210rpx;
  540. text-align: center;
  541. margin-bottom: 16rpx;
  542. margin-right: 16rpx;
  543. color: #999999;
  544. background-color: #F3F3F4;
  545. border-radius: 4px;
  546. padding: 0 6rpx;
  547. }
  548. .checked {
  549. background-color: #2795FD;
  550. color: #fff;
  551. }
  552. }
  553. }
  554. .button {
  555. display: flex;
  556. margin-top: 8rpx;
  557. .reset {
  558. color: #999999;
  559. background-color: #F3F3F4;
  560. width: 200rpx;
  561. height: 72rpx;
  562. line-height: 72rpx;
  563. border-radius: 8px;
  564. }
  565. .confirm {
  566. width: 440rpx;
  567. background-color: #2795FD;
  568. color: #fff;
  569. height: 72rpx;
  570. line-height: 72rpx;
  571. border-radius: 8px;
  572. }
  573. }
  574. }
  575. </style>