From c2463c02a17f92df55ec77ed2da3fb724290c072 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 20 十月 2025 17:34:30 +0800
Subject: [PATCH] fix: bug
---
packages/components/src/Card/FlexJobTopView.vue | 82 +++++++++++++++++++++++++++++++++++++---
1 files changed, 75 insertions(+), 7 deletions(-)
diff --git a/packages/components/src/Card/FlexJobTopView.vue b/packages/components/src/Card/FlexJobTopView.vue
index 4f938b6..2c9fa45 100644
--- a/packages/components/src/Card/FlexJobTopView.vue
+++ b/packages/components/src/Card/FlexJobTopView.vue
@@ -1,16 +1,35 @@
<template>
<div :class="['flexJob-card-top-wrapper', size]">
- <UserAvatar :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">{{ '娲嬫磱' }}</div>
- <div class="flexJob-card-top-info-gender">
- <img v-if="1" :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">{{ '宸插疄鍚�' }}</div>
+ <div class="flexJob-card-top-info-item-right">
+ <slot name="time"></slot>
+ </div>
</div>
- <div class="flexJob-card-top-info-detail">{{ '26宀� | 闈炲鐢� | 鏈 | 涓婂矖121娆�' }}</div>
+ <slot name="detail">
+ <div class="flexJob-card-top-info-detail">
+ {{ infoDetail }}
+ </div>
+ </slot>
</div>
</div>
</template>
@@ -18,6 +37,10 @@
<script setup lang="ts">
import IconMale from '@/assets/mine/icon-male.png';
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',
@@ -25,11 +48,34 @@
type Props = {
size?: 'normal' | 'small';
+
+ avatar?: string;
+ name?: string;
+ gender?: EnumUserGender;
+ age?: number;
+ isReal?: boolean;
+ personalIdentityContent?: string;
+ educationalBackgroundContent?: string;
+ taskCount?: number;
};
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">
@@ -46,16 +92,32 @@
.flexJob-card-top-info {
display: flex;
flex-direction: column;
+ 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;
font-weight: bold;
color: boleGetCssVar('text-color', 'primary');
+ @include ellipsis;
}
.flexJob-card-top-info-gender {
@@ -63,6 +125,7 @@
align-items: center;
height: 34px;
margin: 0 10px;
+ flex-shrink: 0;
.flexJob-card-top-info-gender-icon {
width: 24px;
@@ -73,6 +136,11 @@
.flexJob-card-top-info-auth {
font-size: 28px;
line-height: 34px;
+ flex-shrink: 0;
+
+ &.is-real-name {
+ color: #2a9e1b;
+ }
}
}
--
Gitblit v1.9.1