|
@@ -1,51 +1,53 @@
|
|
<template>
|
|
<template>
|
|
<div style="position: relative;">
|
|
<div style="position: relative;">
|
|
<div class="banner px-6" id="share" :class="{'default-width': defaultWidth}">
|
|
<div class="banner px-6" id="share" :class="{'default-width': defaultWidth}">
|
|
- <div class="banner-title d-flex justify-space-between align-center">
|
|
|
|
- <div class="d-flex align-center justify-between">
|
|
|
|
- <svg-icon v-if="info?.hire" class="mr-5" name="pin" size="50"></svg-icon>
|
|
|
|
- <svg-icon v-if="jobFairId" name="jobFair" class="mr-1" size="35"></svg-icon>
|
|
|
|
- <h1>{{ formatName(info.name) }}</h1>
|
|
|
|
|
|
+ <div class="sticky">
|
|
|
|
+ <div class="banner-title d-flex justify-space-between align-center pt-5">
|
|
|
|
+ <div class="d-flex align-center justify-between">
|
|
|
|
+ <svg-icon v-if="info?.hire" class="mr-5" name="pin" size="50"></svg-icon>
|
|
|
|
+ <svg-icon v-if="jobFairId" name="jobFair" class="mr-1" size="35"></svg-icon>
|
|
|
|
+ <h1>{{ formatName(info.name) }}</h1>
|
|
|
|
+ </div>
|
|
|
|
+ <v-btn v-if="showContentRight && !jobFairId" color="primary" variant="text" size="large" @click.stop="handleReturn" prepend-icon="mdi-chevron-triple-left">返回上一页</v-btn>
|
|
</div>
|
|
</div>
|
|
- <v-btn v-if="showContentRight && !jobFairId" color="primary" variant="text" size="large" @click.stop="handleReturn" prepend-icon="mdi-chevron-triple-left">返回上一页</v-btn>
|
|
|
|
- </div>
|
|
|
|
- <div class="d-flex mt-1 justify-space-between align-center">
|
|
|
|
- <div class="banner-tags">
|
|
|
|
- <span v-for="k in desc" :key="k.mdi">
|
|
|
|
- <span v-if="positionInfo[k.value] || k.value === 'areaName'" class="mr-10">
|
|
|
|
- <v-icon color="var(--color-666)" size="20">{{ k.mdi }}</v-icon>
|
|
|
|
- <span class="ml-1">
|
|
|
|
- {{ k.value === 'areaName' ? !positionInfo.areaId ? '全国' : positionInfo.area?.str : positionInfo[k.value] }}
|
|
|
|
|
|
+ <div class="d-flex mt-1 justify-space-between align-center">
|
|
|
|
+ <div class="banner-tags">
|
|
|
|
+ <span v-for="k in desc" :key="k.mdi">
|
|
|
|
+ <span v-if="positionInfo[k.value] || k.value === 'areaName'" class="mr-10">
|
|
|
|
+ <v-icon color="var(--color-666)" size="20">{{ k.mdi }}</v-icon>
|
|
|
|
+ <span class="ml-1">
|
|
|
|
+ {{ k.value === 'areaName' ? !positionInfo.areaId ? '全国' : positionInfo.area?.str : positionInfo[k.value] }}
|
|
|
|
+ </span>
|
|
</span>
|
|
</span>
|
|
</span>
|
|
</span>
|
|
- </span>
|
|
|
|
|
|
+ </div>
|
|
|
|
+ <div>
|
|
|
|
+ <span v-if="!info.payFrom && !info.payTo" class="salary font-size-20 text-end">面议</span>
|
|
|
|
+ <span v-else class="salary font-size-20">{{ info.payFrom ? info.payFrom + '-' : ''}}{{ info.payTo }}{{ positionInfo.payName ? '/' + positionInfo.payName : '' }}</span>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <div>
|
|
|
|
- <span v-if="!info.payFrom && !info.payTo" class="salary font-size-20 text-end">面议</span>
|
|
|
|
- <span v-else class="salary font-size-20">{{ info.payFrom ? info.payFrom + '-' : ''}}{{ info.payTo }}{{ positionInfo.payName ? '/' + positionInfo.payName : '' }}</span>
|
|
|
|
|
|
+ <div class="refresh-time text-end">{{ timesTampChange(info.refreshTime || info.updateTime) }} {{ $t('common.refresh') }} <v-icon color="primary" size="20">mdi-circle-medium</v-icon></div>
|
|
|
|
+ <div class="banner-tools my-4">
|
|
|
|
+ <v-chip size="small" label v-for="(k, i) in info.tagList" :key="i" class="mr-1" color="primary">{{ k }}</v-chip>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- <div class="refresh-time text-end">{{ timesTampChange(info.refreshTime || info.updateTime) }} {{ $t('common.refresh') }} <v-icon color="primary" size="20">mdi-circle-medium</v-icon></div>
|
|
|
|
- <div class="banner-tools my-4">
|
|
|
|
- <v-chip size="small" label v-for="(k, i) in info.tagList" :key="i" class="mr-1" color="primary">{{ k }}</v-chip>
|
|
|
|
- </div>
|
|
|
|
- <div class="d-flex justify-space-between mb-5">
|
|
|
|
- <div>
|
|
|
|
|
|
+ <div class="d-flex justify-space-between mb-5">
|
|
<div>
|
|
<div>
|
|
- <v-chip v-if="info.hire && info.hirePrice && info.hirePrice > 0" label color="primary">赏金:{{ commissionCalculation(info.hirePrice / 100, 1) }}元</v-chip>
|
|
|
|
- <v-chip v-if="info.hire && info.hirePoint && info.hirePoint > 0" label color="primary" class="ml-1">积分:{{ commissionCalculation(info.hirePoint / 100, 1) }}点</v-chip>
|
|
|
|
|
|
+ <div>
|
|
|
|
+ <v-chip v-if="info.hire && info.hirePrice && info.hirePrice > 0" label color="primary">赏金:{{ commissionCalculation(info.hirePrice / 100, 1) }}元</v-chip>
|
|
|
|
+ <v-chip v-if="info.hire && info.hirePoint && info.hirePoint > 0" label color="primary" class="ml-1">积分:{{ commissionCalculation(info.hirePoint / 100, 1) }}点</v-chip>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-if="info?.hire" class="font-size-14 mt-3 color-error">推荐好友入职成功即可获得赏金</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="banner-tools-btns" v-if="props.showOperateBtn">
|
|
|
|
+ <v-btn v-if="info?.hire" class="radius mr-2 button-item" variant="outlined" color="error" prepend-icon="mdi-share-outline" @click="handleShare">我要赏金</v-btn>
|
|
|
|
+ <v-btn v-else class="radius mr-2 button-item" variant="outlined" color="error" prepend-icon="mdi-share-outline" @click="handleShare">{{ $t('position.rewardsShared') }}</v-btn>
|
|
|
|
+ <v-btn class="button-item radius" color="warning" variant="outlined" :prepend-icon="isCollection ? 'mdi-heart' : 'mdi-heart-outline'" @click="handleCollection">{{ isCollection ? $t('position.cancelFavorite') : $t('position.collection') }}</v-btn>
|
|
|
|
+ <v-btn class="button-item mx-2 radius" color="success" variant="outlined" @click="toDetails(info)">{{ $t('position.communicate') }}</v-btn>
|
|
|
|
+ <v-btn class="button-item radius" :disabled="delivery" color="primary" variant="outlined" @click="handleDelivery">{{ delivery ? $t('position.delivered') : $t('position.submitResume') }}</v-btn>
|
|
</div>
|
|
</div>
|
|
- <div v-if="info?.hire" class="font-size-14 mt-3 color-error">推荐好友入职成功即可获得赏金</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="banner-tools-btns" v-if="props.showOperateBtn">
|
|
|
|
- <v-btn v-if="info?.hire" class="radius mr-2 button-item" variant="outlined" color="error" prepend-icon="mdi-share-outline" @click="handleShare">我要赏金</v-btn>
|
|
|
|
- <v-btn v-else class="radius mr-2 button-item" variant="outlined" color="error" prepend-icon="mdi-share-outline" @click="handleShare">{{ $t('position.rewardsShared') }}</v-btn>
|
|
|
|
- <v-btn class="button-item radius" color="warning" variant="outlined" :prepend-icon="isCollection ? 'mdi-heart' : 'mdi-heart-outline'" @click="handleCollection">{{ isCollection ? $t('position.cancelFavorite') : $t('position.collection') }}</v-btn>
|
|
|
|
- <v-btn class="button-item mx-2 radius" color="success" variant="outlined" @click="toDetails(info)">{{ $t('position.communicate') }}</v-btn>
|
|
|
|
- <v-btn class="button-item radius" :disabled="delivery" color="primary" variant="outlined" @click="handleDelivery">{{ delivery ? $t('position.delivered') : $t('position.submitResume') }}</v-btn>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
+ <v-divider></v-divider>
|
|
</div>
|
|
</div>
|
|
- <v-divider></v-divider>
|
|
|
|
<div class="d-flex">
|
|
<div class="d-flex">
|
|
<div class="content-left">
|
|
<div class="content-left">
|
|
<div v-if="Object.keys(info).length">
|
|
<div v-if="Object.keys(info).length">
|
|
@@ -549,5 +551,12 @@ const toDetails = async (info) => {
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
|
|
+.sticky {
|
|
|
|
+ position: sticky;
|
|
|
|
+ top: 50px;
|
|
|
|
+ background-color: #fff;
|
|
|
|
+ z-index: 1;
|
|
|
|
+}
|
|
|
|
+
|
|
@import '@/styles/recruit/position/index.scss'
|
|
@import '@/styles/recruit/position/index.scss'
|
|
</style>
|
|
</style>
|