<template>
  <view class="ss-m-x-20">
    <!-- 招聘会 -->
    <view v-if="props.showJobFairEntrance" class="ss-p-t-20" style="position: relative" @click="handleToJobFair">
      <image
        src="https://minio.menduner.com/dev/menduner/miniProgram/Grand-Mercure.jpg"
        style="width: 100%; height: 100px; border-radius: 8px"
      ></image>
      <view
        style="position: absolute; top: 20rpx; width: 100%; text-align: center; height: 100px; line-height: 100px; font-size: 46px; color: #fff; font-weight: bold;"
      >
        招 聘 会
      </view>
    </view>
    <!-- 岗位列表 -->
    <view v-if="list.length > 0" class="ss-p-b-30 ss-p-t-20">
      <view v-for="(item, index) in list" :key="index" class="mList" :class="{ 'disable': !jobFairId && item.job?.status === '1'}" @click="toDetail(item)">
        <!-- 职位信息 -->
        <view class="list-shape" :style="`border-radius: ${props.showEntInfo ? '12px 12px 0 0' : '12px'};`">
          <!-- 职位 -->
          <view class="titleBox my-5">
            <view style="display: flex;align-items: center;">
              <view v-if="item.job?.hire" class="iconfont icon-a-1_zhaopin ss-m-r-10" style="color: #e03506; font-size: 25px;"></view>
              <image v-if="props.jobFairId" src="/static/svg/jobFair.svg" class=" ss-m-r-10" style="width: 20px; height: 20px;"></image>
              <rich-text v-if="item.job?.name?.indexOf('style') !== -1" class="job-name" :nodes="item.job.name"></rich-text>
              <view v-else class="job-name">{{ formatName(item.job?.name) }}</view>
            </view>
          </view>
          <!-- 薪酬、工作地、学历、工作经验 -->
          <view class="d-flex align-center justify-space-between">
            <view class="font-size-13 ellipsis" :style="{'max-width': !item.job?.payFrom && !item.job?.payTo ? '78%' : '56%'}">
              <span class="tag-gap" style="color: #808080;">
                <span>{{item.job?.area?.str ?? '全国' }}</span>
                <span class="divider-mx" v-if="item.job?.eduName">|</span>
                <span>{{item.job?.eduName }}</span>
                <span class="divider-mx" v-if="item.job?.expName">|</span>
                <span>{{item.job?.expName }}</span>
              </span>
            </view>
            <view>
              <span v-if="!item.job?.payFrom && !item.job?.payTo" class="salary-text">面议</span>
              <span v-else class="salary-text">{{ item.job?.payFrom }}-{{ item.job?.payTo }}{{ item.job?.payName ? '/' + item.job?.payName : '' }}</span>
            </view>
          </view>
          <!-- 岗位tag  -->
          <view class="mt" v-if="showWelfareTag">
            <uni-tag 
              v-for="(tag,i) in item.job?.tagList || []"
              :key="i"
              class="tag-gap"
              :text="tag"
              inverted="false"
              size="mini"
              custom-style="background-color: #ececec;color:#666;border-color:#ececec;display: inline-block;"
            />
          </view>
          <view style="text-align: end;" v-if="item.job?.hire">
            <uni-tag
              class="ss-m-l-10"
              v-if="item?.job?.hirePrice && item?.job?.hirePrice > 0" 
              :text="`赏金：${commissionCalculation(item.job.hirePrice / 100, 1)}元`"
              inverted="false"
              size="default"
              custom-style="background-color: #e2f0ef; color:#00B760; border-color:#e2f0ef;"
            />
          </view>
          <view v-if="props.showUpdateTime" class="font-size-13 color-999 ss-m-t-10" :style="`text-align: ${props.updateTimeAlign};`">更新时间：{{ timesTampChange(item?.job?.refreshTime || item.job?.updateTime, 'Y-M-D h:m') }}</view>
        </view>
        <!-- 企业信息 -->
        <view v-if="props.showEntInfo" class="sub-li-bottom">
          <view class="avatarBox">
            <image class="enterAvatar ml" :src="item.enterprise?.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'"></image>
          </view>
          <view class="ss-m-l-35">
            <view class="mr">{{ formatName(item.enterprise?.anotherName || item.enterprise.name) }}</view>
            <span class="color-999">{{ item.enterprise?.industryName || '' }}</span>
            <span class="divider tag-gap1" v-if="item.enterprise?.industryName && item.enterprise?.scaleName"> | </span>
            <span class="mr color-999">{{ item.enterprise?.scaleName || '' }}</span>
          </view>
        </view>
      </view>
      <view v-if="props.noMore" class="noMore">暂无更多数据</view>
    </view>
    <view v-else>
      <image src="https://minio.citupro.com/dev/static/nodata.png" mode="widthFix" style="width: 100vw;height: 100vh;"></image>
      <view style="color: gray; text-align: center;">暂无数据</view>
    </view>
  </view>
</template>

<script setup>
import { commissionCalculation } from '@/utils/position'
import { timesTampChange } from '@/utils/date'
import { formatName } from '@/utils/getText'

const props = defineProps({
  list: { type: Array, default: () => [] },
  jobFairId: { type: [String, Number], default: '' }, // 招聘会id
  showJobFairEntrance: { type: Boolean, default: false }, // 招聘会
  showEntInfo: { type: Boolean, default: true },
  updateTimeAlign: { type: String, default: 'end' },
  showUpdateTime: { type: Boolean, default: true },
  noMore: { type: Boolean, default: false },
  showWelfareTag: { type: Boolean, default: true }
})

//岗位详情
const toDetail = (item) =>{
  if (!item?.job?.id) return
  let url = `/pagesB/positionDetail/index?id=${item.job.id}&area=${item.job.areaName}`
  if (props.jobFairId) url += `&jobFairId=${props.jobFairId}`
  uni.navigateTo({ url })
}

//招聘会
const handleToJobFair = () => {
	uni.navigateTo({
		url: '/pagesB/jobFair/index'
	})
}

</script>

<style scoped lang="scss">
.noMore{
  margin: 20px 0;
}

.date-time{
  color:#d9d0d2;
  float: right;
}

.divided-line {
  width: 100%;
  height: 1px;
  background-color: #f0f2f7;
  margin: 20px 0;

}
.enterAvatar{
	width: 40px;
	height: 40px;
	// border-radius: 50%;
	margin: auto;
}

.job-name {
  font-size: 16px;
  font-weight: 700;
  color: #0E100F;
  max-width: 80vw;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.sub-li-bottom {
  display: flex;
  align-items: center;
  background-color: #fff;
  font-size: 13px;
  padding: 5px;
  border-radius: 0 0 12px 12px;
  .avatarBox {
    max-width: 40px;
    max-height: 40px;
  }
}

.salary-text {
	float: right;
	color: #00B760;
  font-weight: 700;
}
.list-shape {
	padding: 10px 30rpx 10px;
  background-color: #fff;
  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;
}
.show-more{
	width: 26vw;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.mList {
  margin-bottom: 20rpx;
}
/* 列表触底暂无更多 */
.noMore{ text-align:center; color:grey; }
.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);
  }
}
</style>
