pay.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439
  1. <template>
  2. <view>
  3. <view class="remarks flex justify-center" v-if="info.status==3">
  4. <view class="remarks-box flex justify-between align-center">
  5. <text>拒绝原因:</text>
  6. <text>{{info.auditContent}}</text>
  7. </view>
  8. </view>
  9. <view class="remarks flex justify-center">
  10. <view class="remarks-box flex justify-between align-center">
  11. <text style="color: #00B88F;font-weight: bold;">{{info.status==1?'待审核':(info.status==2?'进行中':(info.status==3?'已拒绝':(info.status==4?'已取消':'已关闭')))}}</text>
  12. <text style="color: #cccccc;font-size: 24rpx;">{{info.createTime}}</text>
  13. </view>
  14. </view>
  15. <view class="remarks flex justify-center" v-if="info.isOverdue==1">
  16. <view class="remarks-box flex justify-between align-center">
  17. <text style="color: #000000;font-weight: bold;">已到期</text>
  18. <text style="color: #000000;font-size: 24rpx;">{{info.overdueTime}}</text>
  19. </view>
  20. </view>
  21. <!-- 岗位要求 -->
  22. <view class="job flex justify-center">
  23. <view class="job-info flex justify-center">
  24. <view class="job-info-c">
  25. <view class="job-info-c-title">
  26. {{info.stationName}}
  27. </view>
  28. <view class="job-info-c-label flex align-center flex-wrap">
  29. <view class="job-info-c-label-item">
  30. {{info.county}}
  31. </view>
  32. <view class="job-info-c-label-item">
  33. {{info.experience}}
  34. </view>
  35. <view class="job-info-c-label-item">
  36. {{info.education}}
  37. </view>
  38. </view>
  39. <view class="job-info-c-price">
  40. {{info.salaryRange}}
  41. </view>
  42. </view>
  43. </view>
  44. </view>
  45. <!-- 岗位介绍 -->
  46. <view class="jobRemarks flex justify-center">
  47. <view class="jobRemarks-box flex justify-center">
  48. <view class="jobRemarks-box-c">
  49. <view class="jobRemarks-box-c-title">
  50. 岗位介绍
  51. </view>
  52. <view class="jobRemarks-box-c-label flex align-center flex-wrap" v-if="info.tag">
  53. <view class="jobRemarks-box-c-label-item" v-for="(item,index) in info.tag.split(',')" :key="index">
  54. {{item}}
  55. </view>
  56. </view>
  57. <view class="jobRemarks-box-c-con" v-if="info.positionDetails">
  58. <view class="jobRemarks-box-c-con-item" v-html="info.positionDetails">
  59. </view>
  60. </view>
  61. <view class="jobRemarks-box-c-line"></view>
  62. <view class="jobRemarks-box-c-title" style="margin-top: 25rpx;">
  63. 岗位福利
  64. </view>
  65. <view class="jobRemarks-box-c-label flex align-center flex-wrap" v-if="info.positionWelfare">
  66. <view class="jobRemarks-box-c-label-item" v-for="(item,index) in info.positionWelfare?info.positionWelfare.split(','):[]" :key="index">
  67. {{item}}
  68. </view>
  69. </view>
  70. <view class="jobRemarks-box-c-label flex align-center flex-wrap" v-else>
  71. <view class="jobRemarks-box-c-label-item">
  72. 暂无
  73. </view>
  74. </view>
  75. </view>
  76. </view>
  77. </view>
  78. <!-- 企业简介 -->
  79. <view class="enterprise flex justify-center">
  80. <view class="enterprise-box flex justify-center">
  81. <view class="enterprise-box-c">
  82. <view class="enterprise-box-c-info flex align-center">
  83. <image :src="info.company?info.company.companyLogo:'../../../static/logo.png'" style="width: 95rpx;height: 95rpx;border-radius: 50%;" mode=""></image>
  84. <view class="enterprise-box-c-info-n">
  85. <view class="">
  86. {{info.company.companyName}}
  87. </view>
  88. <view class="">
  89. {{info.company.companyScope}}
  90. </view>
  91. </view>
  92. </view>
  93. <view class="enterprise-box-c-bto flex align-center justify-between" @click.stop="gotoMap()">
  94. <view class="enterprise-box-c-bto-l flex align-center">
  95. <u-icon name="map" color="#00B88F" style="margin-left: 20rpx;margin-right: 10rpx;" size="28"></u-icon>
  96. {{info.province}}{{info.city}}{{info.county}}{{info.address}}
  97. </view>
  98. <view class="enterprise-box-c-bto-r">
  99. <u-icon name="arrow-right" color="#00B88F" style="margin-right: 20rpx;" size="28"></u-icon>
  100. </view>
  101. </view>
  102. </view>
  103. </view>
  104. </view>
  105. <!-- 底部操作 -->
  106. <view class="btn flex justify-center" v-if="info.status==1">
  107. <view class="btn-box bgBox flex justify-center align-center" @click="cancelProject">
  108. 取消招聘
  109. </view>
  110. </view>
  111. <view class="btn flex justify-center" v-if="info.status==4 || info.isOverdue==1" @click="updataServeType(info.postPushId,'save')">
  112. <view class="btn-box bgBox flex justify-center align-center">
  113. 重新发布
  114. </view>
  115. </view>
  116. <view class="btn flex justify-center" v-if="info.status==3 && info.isOverdue==0">
  117. <view class="btn-box bgBox flex justify-center align-center" @click="updataServeType(info.postPushId,'updata')">
  118. 修改内容
  119. </view>
  120. </view>
  121. <view class="btn flex justify-center" v-if="info.status==2 && info.isOverdue == 0">
  122. <view class="btn-box flex justify-between">
  123. <view class="btn-box bgBox btn-boxs flex justify-center align-center" @click="closeOpenJob('close')">
  124. 关闭岗位
  125. </view>
  126. <view class="btn-box bgBox btn-boxs flex justify-center align-center" @click="updataServeType(info.postPushId,'updata')">
  127. 修改内容
  128. </view>
  129. </view>
  130. </view>
  131. <view class="btn flex justify-center" v-if="info.status==5 && info.isOverdue == 0">
  132. <view class="btn-box flex justify-between">
  133. <view class="btn-box bgBox btn-boxs flex justify-center align-center" @click="closeOpenJob('open')">
  134. 开启岗位
  135. </view>
  136. <view class="btn-box bgBox btn-boxs flex justify-center align-center" @click="updataServeType(info.postPushId,'updata')">
  137. 修改内容
  138. </view>
  139. </view>
  140. </view>
  141. </view>
  142. </template>
  143. <script>
  144. export default {
  145. data() {
  146. return {
  147. postPushId:'',
  148. info:{},//岗位详情
  149. };
  150. },
  151. onLoad(option) {
  152. this.postPushId = option.postPushId
  153. this.getInfo()
  154. },
  155. methods:{
  156. //修改岗位
  157. updataServeType(postPushId,type) {
  158. let companyStatus = uni.getStorageSync('companyStatus')
  159. if(companyStatus==1){
  160. uni.showToast({
  161. title:'企业认证审核中,请审核通过后操作!',
  162. icon:'none'
  163. })
  164. return
  165. }
  166. if(companyStatus==3){
  167. uni.showToast({
  168. title:'企业认证审核未通过,请重新认证!',
  169. icon:'none'
  170. })
  171. return
  172. }
  173. uni.navigateTo({
  174. url: '/package/addJob/addJob?postPushId=' + postPushId+'&type='+type
  175. })
  176. },
  177. //取消招聘
  178. cancelProject() {
  179. let that = this
  180. uni.showModal({
  181. content: '确认取消该招聘?',
  182. title: '提示',
  183. confirmColor:'#00B88F',
  184. success(iet) {
  185. if (iet.confirm) {
  186. let data = {
  187. postPushId: that.postPushId
  188. }
  189. that.$Request.postT('/app/postPush/cancelPostPush', data).then(res => {
  190. if (res.code == 0) {
  191. uni.showToast({
  192. title: '取消成功',
  193. duration: 1500,
  194. complete() {
  195. that.getInfo()
  196. }
  197. })
  198. } else {
  199. uni.showToast({
  200. title: res.msg,
  201. icon: 'none'
  202. })
  203. }
  204. uni.hideLoading()
  205. })
  206. }
  207. }
  208. })
  209. },
  210. //关闭/开启岗位
  211. closeOpenJob(type){
  212. let that = this
  213. uni.showModal({
  214. title:'提示',
  215. content:type=='close'?'关闭岗位后,该岗位不会再推荐给用户,是否关闭?':'开启岗位后,该岗位会重新推荐给用户,是否开启?',
  216. complete(ret) {
  217. if(ret.confirm){
  218. that.$Request.getT('/app/postPush/closeOrOpen',{postPushId:that.postPushId}).then(res => {
  219. if (res.code == 0) {
  220. uni.showToast({
  221. title:type=='close'?'已关闭':'已开启',
  222. duration: 1500,
  223. complete() {
  224. that.getInfo()
  225. }
  226. })
  227. }else{
  228. uni.showToast({
  229. title:res.msg,
  230. icon:'none'
  231. })
  232. }
  233. })
  234. }
  235. }
  236. })
  237. },
  238. //拉起地图导航
  239. gotoMap(){
  240. let that = this
  241. uni.openLocation({
  242. latitude:that.info.lat,
  243. longitude:that.info.lng,
  244. address:that.info.province+''+that.info.city+''+that.info.county+''+that.info.address,
  245. name:that.info.address,
  246. // complete(ret) {
  247. // }
  248. })
  249. },
  250. /**
  251. * 获取岗位详情
  252. */
  253. getInfo(){
  254. this.$Request.getT("/app/postPush/selectPostPushDetails",{
  255. // userId:uni.getStorageSync('userId'),
  256. postPushId:this.postPushId
  257. }).then(res => {
  258. if(res.code==0){
  259. this.info = res.data
  260. }
  261. })
  262. },
  263. }
  264. }
  265. </script>
  266. <style lang="scss">
  267. page{
  268. background-color: #F2F2F7;
  269. padding-bottom: 200rpx;
  270. }
  271. .remarks{
  272. width: 100%;
  273. margin-top: 30rpx;
  274. .remarks-box{
  275. width: 686rpx;
  276. border-radius: 24rpx;
  277. background-color: #ffffff;
  278. padding: 30rpx 20rpx;
  279. color: red;
  280. }
  281. }
  282. .job{
  283. width: 100%;
  284. margin-top: 30rpx;
  285. .job-info{
  286. width: 686rpx;
  287. height: 100%;
  288. border-radius: 24rpx;
  289. background-color: #ffffff;
  290. .job-info-c{
  291. width: 626rpx;
  292. height: 100%;
  293. padding-top: 30rpx;
  294. padding-bottom: 30rpx;
  295. }
  296. .job-info-c-title{
  297. color: #333333;
  298. font-size: 38rpx;
  299. font-weight: 800;
  300. }
  301. .job-info-c-label{
  302. margin-top: 30rpx;
  303. .job-info-c-label-item{
  304. margin-right: 30rpx;
  305. color: #999999;
  306. font-size: 28rpx;
  307. margin-bottom: 10rpx;
  308. }
  309. }
  310. .job-info-c-price{
  311. color: #00B88F;
  312. font-size: 38rpx;
  313. font-weight: bold;
  314. margin-top: 30rpx;
  315. }
  316. }
  317. }
  318. .jobRemarks{
  319. width: 100%;
  320. margin-top: 20rpx;
  321. .jobRemarks-box{
  322. width: 686rpx;
  323. height: 100%;
  324. background-color: #ffffff;
  325. border-radius: 24rpx;
  326. .jobRemarks-box-c{
  327. width: 628rpx;
  328. height: 100%;
  329. padding-top: 30rpx;
  330. padding-bottom: 30rpx;
  331. }
  332. .jobRemarks-box-c-title{
  333. color: #333333;
  334. font-size: 32rpx;
  335. font-weight: 800;
  336. }
  337. .jobRemarks-box-c-label{
  338. width: 100%;
  339. margin-top: 25rpx;
  340. .jobRemarks-box-c-label-item{
  341. color: #666666;
  342. font-size: 24rpx;
  343. padding: 10rpx 15rpx;
  344. background-color: #F6F6F6;
  345. border-radius: 8rpx;
  346. margin-right: 20rpx;
  347. margin-bottom: 10rpx;
  348. }
  349. }
  350. .jobRemarks-box-c-con{
  351. width: 100%;
  352. margin-top: 25rpx;
  353. .jobRemarks-box-c-con-item{
  354. margin-bottom: 10rpx;
  355. color: #141414;
  356. font-size: 28rpx;
  357. font-weight: 500;
  358. }
  359. }
  360. .jobRemarks-box-c-line{
  361. width: 100%;
  362. border: 1rpx solid #E6E6E6;
  363. margin-top: 25rpx;
  364. }
  365. }
  366. }
  367. .enterprise{
  368. width: 100%;
  369. // height: 256rpx;
  370. margin-top: 25rpx;
  371. .enterprise-box{
  372. width: 686rpx;
  373. background-color: #ffffff;
  374. height: 100%;
  375. border-radius: 24rpx;
  376. padding-bottom: 25rpx;
  377. .enterprise-box-c{
  378. width: 626rpx;
  379. height: 100%;
  380. }
  381. .enterprise-box-c-info{
  382. width: 100%;
  383. height: 95rpx;
  384. margin-top: 40rpx;
  385. .enterprise-box-c-info-n{
  386. margin-left: 18rpx;
  387. view:nth-of-type(1){
  388. color: #333333;
  389. font-size: 32rpx;
  390. font-weight: 800;
  391. }
  392. view:nth-of-type(2){
  393. color: #999999;
  394. font-size: 24rpx;
  395. font-weight: 500;
  396. margin-top: 10rpx;
  397. }
  398. }
  399. }
  400. .enterprise-box-c-bto{
  401. width: 100%;
  402. // height: 60rpx;
  403. padding-top: 15rpx;
  404. padding-bottom: 15rpx;
  405. background-color: #EDFFFB;
  406. border-radius: 30rpx;
  407. margin-top: 20rpx;
  408. color: #00B88F;
  409. font-size: 24rpx;
  410. font-weight: 500;
  411. }
  412. }
  413. }
  414. .bgBox{
  415. color: #ffffff;
  416. background-color: #00B88F;
  417. font-weight: bold;
  418. border-radius: 40rpx;
  419. }
  420. .btn{
  421. width: 100%;
  422. height: 88rpx;
  423. margin-top: 30rpx;
  424. .btn-boxs{
  425. width: 45% !important;
  426. }
  427. .btn-box{
  428. width: 686rpx;
  429. height: 100%;
  430. }
  431. }
  432. </style>