|
@@ -0,0 +1,226 @@
|
|
|
|
+<template>
|
|
|
|
+ <view v-if="list?.length" class="ss-p-b-30 ss-p-t-20">
|
|
|
|
+ <view v-for="(item, index) in list" :key="index" class="mList">
|
|
|
|
+ <view v-if="item?.hrName" class="d-flex align-center item-top">
|
|
|
|
+ <view class="avatarBox">
|
|
|
|
+ <image class="enterAvatar" :src="getUserAvatar(item.hrHeadImg)"></image>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="ss-m-l-20 label-text">{{ item?.hrName }}</view>
|
|
|
|
+ </view>
|
|
|
|
+ <!-- 职位信息 -->
|
|
|
|
+ <view class="list-shape" style="border-radius: 12px;">
|
|
|
|
+ <!-- 职位 -->
|
|
|
|
+ <view class="titleBox my-5">
|
|
|
|
+ <view style="display: flex;align-items: center;">
|
|
|
|
+ <image v-if="item.jobFairIds?.length" src="/static/svg/jobFair.svg" class=" ss-m-r-10" style="width: 20px; height: 20px;"></image>
|
|
|
|
+ <rich-text v-if="item.name?.indexOf('style') !== -1" class="job-name" :nodes="item.name"></rich-text>
|
|
|
|
+ <view v-else class="job-name">{{ formatName(item.name) }}</view>
|
|
|
|
+ </view>
|
|
|
|
+ <image v-if="item.top && tab === 1" src="/static/svg/topUp.svg" class="TopUpSvg"></image>
|
|
|
|
+ </view>
|
|
|
|
+ <!-- 职位类型 -->
|
|
|
|
+ <view class="font-size-13 ellipsis ss-m-5" style="color: #808080;">
|
|
|
|
+ <span>{{item.positionName }}</span>
|
|
|
|
+ </view>
|
|
|
|
+ <!-- 薪酬、工作地、学历、工作经验 -->
|
|
|
|
+ <view class="d-flex align-center justify-space-between">
|
|
|
|
+ <view class="font-size-13 ellipsis" style="flex: 1;">
|
|
|
|
+ <span class="tag-gap" style="color: #808080;">
|
|
|
|
+ <span>{{item.area?.str ?? '全国' }}</span>
|
|
|
|
+ <span class="divider-mx" v-if="item.eduName">|</span>
|
|
|
|
+ <span>{{item.eduName }}</span>
|
|
|
|
+ <span class="divider-mx" v-if="item.expName">|</span>
|
|
|
|
+ <span>{{item.expName }}</span>
|
|
|
|
+ <span class="divider-mx">|</span>
|
|
|
|
+ <span>{{!item.payFrom && !item.payTo ? '面议' : `${item.payFrom}-${item.payTo}${item.payName ? '/' + item.payName : ''}` }}</span>
|
|
|
|
+ </span>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="d-flex font-size-13 color-666 ss-m-t-10">
|
|
|
|
+ <!-- <view class="ss-m-t-10 ss-m-r-15">到期时间:{{ item.expireTime ? timesTampChange(item.expireTime, 'Y-M-D') : '长期有效' }}</view> -->
|
|
|
|
+ <view class="ss-m-t-10">刷新时间:{{ item.refreshTime ? timesTampChange(item.refreshTime, 'Y-M-D h:m') : '暂无' }}</view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="sub-li-bottom ss-m-t-20">
|
|
|
|
+ <view class="sub-li-bottom-item color-primary" style="width: 100%;" @tap.stop="handleDetail(item)">查看详情</view>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+</template>
|
|
|
|
+<script setup>
|
|
|
|
+import { timesTampChange } from '@/utils/date'
|
|
|
|
+import { formatName } from '@/utils/getText'
|
|
|
|
+import { getUserAvatar } from '@/utils/avatar'
|
|
|
|
+
|
|
|
|
+const props = defineProps({
|
|
|
|
+ list: { type: Array, default: () => [] },
|
|
|
|
+})
|
|
|
|
+
|
|
|
|
+// 职位详情
|
|
|
|
+const handleDetail = (item) => {
|
|
|
|
+ if (!item.id) return
|
|
|
|
+ let url = `/pagesB/positionDetail/index?jobId=${item.id}&isEdit=${item.edit}`
|
|
|
|
+ uni.navigateTo({ url })
|
|
|
|
+}
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style scoped lang="scss">
|
|
|
|
+.avatarBox {
|
|
|
|
+ max-width: 60rpx;
|
|
|
|
+ max-height: 60rpx;
|
|
|
|
+}
|
|
|
|
+.item-top {
|
|
|
|
+ padding: 20rpx 30rpx;
|
|
|
|
+ background: linear-gradient(90deg,#f5fcfc,#fcfbfa);
|
|
|
|
+ border-radius: 12px 12px 0 0;
|
|
|
|
+ font-size: 28rpx;
|
|
|
|
+ color: #0E100F;
|
|
|
|
+ .label-text {
|
|
|
|
+ max-width: 100%;
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
+ white-space: nowrap;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.date-time{
|
|
|
|
+ color:#d9d0d2;
|
|
|
|
+ float: right;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.divided-line {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 1px;
|
|
|
|
+ background-color: #f0f2f7;
|
|
|
|
+ margin: 20px 0;
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+.enterAvatar{
|
|
|
|
+ width: 60rpx;
|
|
|
|
+ height: 60rpx;
|
|
|
|
+ margin: auto;
|
|
|
|
+ border-radius: 50%;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.job-name {
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ font-weight: 700;
|
|
|
|
+ color: #0E100F;
|
|
|
|
+ max-width: 80vw;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ white-space: nowrap;
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+.salary-text {
|
|
|
|
+ float: right;
|
|
|
|
+ color: #00B760;
|
|
|
|
+ font-weight: 700;
|
|
|
|
+}
|
|
|
|
+.list-shape {
|
|
|
|
+ padding: 10px 30rpx 10px;
|
|
|
|
+ border-radius: 12px 12px 0 0;
|
|
|
|
+ .titleBox {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+.tag-gap{
|
|
|
|
+ margin: 10rpx 10rpx 10rpx 0;
|
|
|
|
+}
|
|
|
|
+.tag-gap1{
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
+}
|
|
|
|
+.divider-mx{
|
|
|
|
+ margin: 0 10rpx;
|
|
|
|
+}
|
|
|
|
+.divider {
|
|
|
|
+ color:#e4d4d2;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//公司名称
|
|
|
|
+.cer-end{
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: 85%;
|
|
|
|
+ right: 16%;
|
|
|
|
+}
|
|
|
|
+.cer-text{
|
|
|
|
+ text-decoration: underline;
|
|
|
|
+ margin: 0 5rpx;
|
|
|
|
+}
|
|
|
|
+//一行展示不全...
|
|
|
|
+.dis{
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+}
|
|
|
|
+.mList {
|
|
|
|
+ margin-bottom: 20rpx;
|
|
|
|
+ margin-left: 20rpx;
|
|
|
|
+ margin-right: 20rpx;
|
|
|
|
+ position: relative;
|
|
|
|
+ box-shadow: 1px 2px 12px rgba(0, 0, 0, 0.17);
|
|
|
|
+ border-radius: 20rpx;
|
|
|
|
+ background-color: #fbfbfb;
|
|
|
|
+}
|
|
|
|
+/* 列表触底暂无更多 */
|
|
|
|
+.mt { margin-top: 15rpx; }
|
|
|
|
+.mb { margin-bottom: 10rpx; }
|
|
|
|
+.ml { margin-left: 20rpx; }
|
|
|
|
+.mr { margin-right: 20rpx; }
|
|
|
|
+.mr-10{ margin-right: 10rpx; }
|
|
|
|
+.my-5{ margin: 5px 0; }
|
|
|
|
+.disable {
|
|
|
|
+ position: relative;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ &::after {
|
|
|
|
+ content: '已失效';
|
|
|
|
+ position: absolute;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ font-size: 1.2em;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ color: #fc796f;
|
|
|
|
+ top: 0;
|
|
|
|
+ border-radius: 12px;
|
|
|
|
+ left: 0;
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 100%;
|
|
|
|
+ background-color: rgba(255, 255, 255, 0.75);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+.resumeCount {
|
|
|
|
+ color: #00B760;
|
|
|
|
+ font-size: 12px;
|
|
|
|
+ margin: 0 10px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.sub-li-bottom {
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: flex-end;
|
|
|
|
+ margin-top: 10px;
|
|
|
|
+ font-size: 13px;
|
|
|
|
+ color: #666;
|
|
|
|
+ &-item {
|
|
|
|
+ width: 25%;
|
|
|
|
+ height: 35px;
|
|
|
|
+ line-height: 35px;
|
|
|
|
+ text-align: center;
|
|
|
|
+ margin-right: 15px;
|
|
|
|
+ background-color: #f7f8fa;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ &:last-child {
|
|
|
|
+ margin-right: 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+.TopUpSvg {
|
|
|
|
+ width: 45px;
|
|
|
|
+ height: 45px;
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: -3px;
|
|
|
|
+ right: -4px;
|
|
|
|
+}
|
|
|
|
+</style>
|