zhengyiming
3 天以前 92b51e47eb0e53e1e8e13aa0f9135603e1bb03a0
packages/components/src/Card/FlexJobTopView.vue
@@ -1,28 +1,33 @@
<template>
  <div :class="['flexJob-card-top-wrapper', size]">
    <Avatar :src="avatar" :size="size === 'small' ? 50 : 60" class="flexJob-card-top-avatar" />
    <Avatar
      :src="setOSSLink(avatar)"
      :size="size === 'small' ? 50 : 60"
      class="flexJob-card-top-avatar"
    />
    <div class="flexJob-card-top-info">
      <div class="flexJob-card-top-info-item">
        <div class="flexJob-card-top-info-name">{{ name }}</div>
        <div class="flexJob-card-top-info-gender">
          <img
            v-if="gender === EnumUserGender.Male"
            :src="IconMale"
            class="flexJob-card-top-info-gender-icon"
          />
          <img v-else :src="IconFemale" class="flexJob-card-top-info-gender-icon" />
        <div class="flexJob-card-top-info-item-w">
          <div class="flexJob-card-top-info-name">{{ name }}</div>
          <div class="flexJob-card-top-info-gender">
            <img
              v-if="gender === EnumUserGender.Male"
              :src="IconMale"
              class="flexJob-card-top-info-gender-icon"
            />
            <img v-else :src="IconFemale" class="flexJob-card-top-info-gender-icon" />
          </div>
          <div class="flexJob-card-top-info-auth" :class="{ 'is-real-name': isReal }">
            {{ isReal ? '已实名' : '未实名' }}
          </div>
        </div>
        <div class="flexJob-card-top-info-auth" :class="{ 'is-real-name': isReal }">
          {{ isReal ? '已实名' : '未实名' }}
        <div class="flexJob-card-top-info-item-right">
          <slot name="time"></slot>
        </div>
      </div>
      <slot name="detail">
        <div class="flexJob-card-top-info-detail">
          {{
            `${age ? '' : `${age}岁|`}${personalIdentityContent ?? ''} |  ${
              educationalBackgroundContent ?? ''
            } | 上岗${taskCount ?? 0}次`
          }}
          {{ infoDetail }}
        </div>
      </slot>
    </div>
@@ -34,6 +39,8 @@
import IconFemale from '@/assets/mine/icon-female.png';
import { AvatarImage, EnumUserGender } from '@12333/constants';
import { Avatar } from '@12333/components';
import { computed } from 'vue';
import { setOSSLink } from '@12333/utils';
defineOptions({
  name: 'FlexJobTopView',
@@ -55,7 +62,20 @@
const props = withDefaults(defineProps<Props>(), {
  size: 'normal',
  avatar: AvatarImage,
  personalIdentityContent: '',
  educationalBackgroundContent: '',
});
const infoDetail = computed(() =>
  [
    props.age > 0 ? `${props.age}岁` : '',
    props.personalIdentityContent,
    props.educationalBackgroundContent,
    props.taskCount > 0 ? `上岗${props.taskCount ?? 0}次` : '',
  ]
    .filter(Boolean)
    .join('|')
);
</script>
<style lang="scss">
@@ -75,10 +95,23 @@
    flex: 1;
    min-width: 0;
    .flexJob-card-top-info-item-w {
      display: flex;
      align-items: center;
      flex: 1;
      min-width: 0;
    }
    .flexJob-card-top-info-item {
      display: flex;
      align-items: center;
      .flexJob-card-top-info-item-right {
        font-size: 28px;
        line-height: 34px;
        color: boleGetCssVar('text-color', 'secondary');
      }
      .flexJob-card-top-info-name {
        font-size: 34px;
        line-height: 34px;