From 186234cb3833e620aa0ae46212fe337eb2d6e77d Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 13 三月 2025 13:07:02 +0800
Subject: [PATCH] feat: 接口对接

---
 packages/components/src/Card/FlexJobCard.vue |  121 +++++++++++++++------------------------
 1 files changed, 47 insertions(+), 74 deletions(-)

diff --git a/packages/components/src/Card/FlexJobCard.vue b/packages/components/src/Card/FlexJobCard.vue
index 9f30459..bcdc7ac 100644
--- a/packages/components/src/Card/FlexJobCard.vue
+++ b/packages/components/src/Card/FlexJobCard.vue
@@ -1,39 +1,36 @@
 <template>
   <div class="flexJob-card-wrapper">
-    <div class="flexJob-card-top-wrapper">
-      <UserAvatar :size="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>
-          <div class="flexJob-card-top-info-auth">{{ '宸插疄鍚�' }}</div>
-        </div>
-        <div class="flexJob-card-top-info-detail">{{ '26宀� | 闈炲鐢� | 鏈 | 涓婂矖121娆�' }}</div>
-      </div>
-    </div>
+    <FlexJobTopView
+      :name="name"
+      :age="age"
+      :genderType="genderType"
+      :isRealName="isRealName"
+      :arrangeCount="arrangeCount"
+      :educationalLevel="educationalLevel"
+    />
     <div class="flexJob-card-done-list">
-      {{
-        '鍋氳繃锛氬鎴挎湇鍔″憳銆佸鎴挎湇鍔″憳銆佸鎴垮鎴挎湇鍔″憳銆佸鎴垮仛杩囷細瀹㈡埧鏈嶅姟鍛樸�佸鎴挎湇鍔″憳銆佸鎴垮鎴挎湇鍔″憳銆佸鎴�'
-      }}
+      {{ workExperience }}
     </div>
-    <div class="flexJob-card-done-detail">
+    <div class="flexJob-card-done-detail" v-if="showDoneDetail">
       <div class="flexJob-card-done-detail-item">
         {{ '鍦ㄣ�屽畞娉㈤浄杩.閰掑簵銆嶏紝鍋氳繃瀹㈡埧鏈嶅姟鍛樺湪銆屽畞娉㈤浄杩.閰掑簵銆嶏紝鍋氳繃瀹㈡埧鏈嶅姟鍛�' }}
       </div>
       <div class="flexJob-card-done-detail-item">{{ '鍦ㄣ�屽畞娉㈤浄杩.閰掑簵銆嶏紝鍋氳繃瀹㈡埧鏈嶅姟鍛�' }}</div>
     </div>
     <div class="flexJob-card-footer">
-      <div class="flexJob-card-footer-left" v-if="showFooterLeft">
-        <slot name="footerLeft">
-          <div class="flexJob-card-footer-text">鍙栨秷鏀惰棌</div>
-        </slot>
+      <div class="flexJob-card-footer-left-wrapper">
+        <div class="flexJob-card-footer-left" v-if="showFooterLeft">
+          <slot name="footerLeft">
+            <div class="flexJob-card-footer-text" @click.stop="emit('cancelCollection')">
+              鍙栨秷鏀惰棌
+            </div>
+          </slot>
+        </div>
       </div>
+
       <div class="flexJob-card-footer-right" v-if="showFooterRight">
         <slot name="footerRight">
-          <nut-button type="primary">绔嬪嵆鑱旂郴</nut-button>
+          <nut-button type="primary" @click.stop="emit('contact')">绔嬪嵆鑱旂郴</nut-button>
         </slot>
       </div>
     </div>
@@ -41,9 +38,9 @@
 </template>
 
 <script setup lang="ts">
-import IconMale from '@/assets/mine/icon-male.png';
-import IconFemale from '@/assets/mine/icon-female.png';
 import { CommonTaskCardProps } from './card';
+import FlexJobTopView from './FlexJobTopView.vue';
+import { Gender } from '@12333/constants';
 
 defineOptions({
   name: 'FlexJobCard',
@@ -52,12 +49,27 @@
 type Props = CommonTaskCardProps & {
   showFooterLeft?: boolean;
   showFooterRight?: boolean;
+  showDoneDetail?: boolean;
+
+  name?: string;
+  genderType?: Gender;
+  age?: number;
+  isRealName?: boolean;
+  educationalLevel?: string;
+  workExperience?: string;
+  arrangeCount?: number;
 };
 
 const props = withDefaults(defineProps<Props>(), {
   showFooterLeft: true,
   showFooterRight: true,
+  showDoneDetail: true,
 });
+
+const emit = defineEmits<{
+  (e: 'cancelCollection'): void;
+  (e: 'contact'): void;
+}>();
 </script>
 
 <style lang="scss">
@@ -74,55 +86,7 @@
   }
 
   .flexJob-card-top-wrapper {
-    display: flex;
-    align-items: center;
     margin-bottom: 38px;
-
-    .flexJob-card-top-avatar {
-      margin-right: 30px;
-    }
-
-    .flexJob-card-top-info {
-      display: flex;
-      flex-direction: column;
-
-      .flexJob-card-top-info-item {
-        display: flex;
-        align-items: center;
-
-        .flexJob-card-top-info-name {
-          font-size: 34px;
-          line-height: 34px;
-          font-weight: bold;
-          color: boleGetCssVar('text-color', 'primary');
-        }
-
-        .flexJob-card-top-info-gender {
-          display: inline-flex;
-          align-items: center;
-          height: 34px;
-          margin: 0 10px;
-
-          .flexJob-card-top-info-gender-icon {
-            width: 24px;
-            height: 24px;
-          }
-        }
-
-        .flexJob-card-top-info-auth {
-          font-size: 28px;
-          line-height: 34px;
-        }
-      }
-
-      .flexJob-card-top-info-detail {
-        font-size: 24px;
-        font-weight: 400;
-        line-height: 28px;
-        margin-top: 12px;
-        color: boleGetCssVar('text-color', 'secondary');
-      }
-    }
   }
 
   .flexJob-card-done-list {
@@ -153,10 +117,14 @@
   .flexJob-card-footer {
     display: flex;
     align-items: center;
-    justify-content: space-between;
     border-top: #d9d9d9 1px solid;
     padding-top: 24px;
     margin-top: 18px;
+
+    .flexJob-card-footer-left-wrapper {
+      flex: 1;
+      min-width: 0;
+    }
 
     .flexJob-card-footer-left {
       .flexJob-card-footer-text {
@@ -169,6 +137,11 @@
     .flexJob-card-footer-right {
       --nut-button-default-font-size: 24px;
       --nut-button-default-height: 52px;
+      --nut-button-default-line-height: 49px;
+
+      .nut-button {
+        min-width: 144rpx;
+      }
     }
   }
 }

--
Gitblit v1.9.1