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/JobApplicationCard.vue |  125 ++++++++++++++++++++++++-----------------
 1 files changed, 72 insertions(+), 53 deletions(-)

diff --git a/packages/components/src/Card/JobApplicationCard.vue b/packages/components/src/Card/JobApplicationCard.vue
index 5800a9e..2b77b39 100644
--- a/packages/components/src/Card/JobApplicationCard.vue
+++ b/packages/components/src/Card/JobApplicationCard.vue
@@ -1,27 +1,40 @@
 <template>
   <div class="job-application-card-wrapper">
     <div class="job-application-card-title-wrapper">
-      <div class="job-application-card-title">瀹㈡埧鏈嶅姟鍛�</div>
-      <div class="job-application-card-title-more" @click.stop="handleMore">
+      <div class="job-application-card-title">{{ taskName }}</div>
+      <TaskPrice :value="fee" :unit="unit" v-if="mode === 'taskManage'" />
+      <div v-else class="job-application-card-title-more" @click.stop="handleMore">
         <img :src="IconMore" class="more-btn-icon" />
       </div>
     </div>
     <div class="job-application-card-line">
-      <div class="job-application-card-time">{{ `${'2025骞�2鏈�5鏃�'}鑷�${'2025骞�3鏈�5鏃�'}` }}</div>
-      <div class="job-application-card-status">{{ '鐢熸晥涓�' }}</div>
+      <div class="job-application-card-time">
+        {{
+          `${dayjs(startDate).format('YYYY骞碝M鏈圖D鏃�')}鑷�${dayjs(endDate).format('YYYY骞碝M鏈圖D鏃�')}`
+        }}
+      </div>
+      <div class="job-application-card-status" v-if="mode === 'normal'">
+        {{ FlexTaskReleaseStatusEnumText[releaseStatus] }}
+      </div>
     </div>
     <div class="job-application-card-line">
       <div class="job-application-card-company">
         <div class="job-application-card-company-tag">H</div>
-        <div class="job-application-card-company-address">瀹佹尝闆疯开妫厭搴�</div>
+        <div class="job-application-card-company-address">{{ address }}</div>
       </div>
-      <div class="job-application-card-people">{{ `鎶ュ悕浜烘暟锛�${5}` }}</div>
+      <div class="job-application-card-people" v-if="mode === 'normal'">
+        {{ `鎶ュ悕浜烘暟锛�${applyWorkerCount}` }}
+      </div>
     </div>
     <div class="job-application-card-line">
-      <div class="job-application-card-publish-time">{{ `鍙戝竷鏃ユ湡锛�${'2022骞�12鏈�25鏃�'}` }}</div>
-      <div class="job-application-card-fee">
-        <TaskPrice :value="212" />
+      <div class="job-application-card-publish-time">
+        {{ `鍙戝竷鏃ユ湡锛�${dayjs(creationTime).format('YYYY-MM-DD')}` }}
       </div>
+      <slot name="footer-actions">
+        <div class="job-application-card-fee">
+          <TaskPrice :value="fee" :unit="unit" />
+        </div>
+      </slot>
     </div>
   </div>
 </template>
@@ -33,6 +46,7 @@
 import { ActionSheet } from '@nutui/nutui-taro';
 import { Portal } from 'senin-mini/components';
 import { TaskPrice } from '@12333/components';
+import dayjs from 'dayjs';
 
 defineOptions({
   name: 'JobApplicationCard',
@@ -47,40 +61,41 @@
   Delete,
 }
 
-enum ResourceStatus {
+enum FlexTaskReleaseStatusEnum {
   /**
-   * 宸查┏鍥�
+   * 鍙戝竷涓�
    */
-  Reject = -10,
+  Releasing = 10,
   /**
-   * 鏈彁浜�
+   * 宸插仠姝�
    */
-  Draft = 10,
-  /**
-   * 寰呭鏍�
-   */
-  WaitAudit = 20,
-  /**
-   * 杩涜涓�
-   */
-  Running = 30,
-  /**
-   * 宸蹭笅鏋�
-   */
-  OffShelf = 40,
-  /**
-   * 绯荤粺涓嬫灦
-   */
-  SystemOffShelf = 50,
+  Stoping = 20,
 }
+
+const FlexTaskReleaseStatusEnumText = {
+  [FlexTaskReleaseStatusEnum.Releasing]: '鍙戝竷涓�',
+  [FlexTaskReleaseStatusEnum.Stoping]: '宸插仠姝�',
+};
 
 type Props = CommonTaskCardProps & {
   showActions?: boolean;
-  status?: ResourceStatus;
+  status?: FlexTaskReleaseStatusEnum;
+  mode?: 'taskManage' | 'normal';
+
+  taskName?: string;
+  startDate?: string;
+  endDate?: string;
+  address?: string;
+  creationTime?: string;
+  fee?: number;
+  applyWorkerCount?: number;
+  unit?: string;
+  releaseStatus?: API.FlexTaskReleaseStatusEnum;
 };
 
 const props = withDefaults(defineProps<Props>(), {
   showActions: true,
+  mode: 'normal',
 });
 
 const emit = defineEmits<{
@@ -94,40 +109,38 @@
 
 const menuList = computed(() => {
   let _menuList = [];
-  if (props.status !== ResourceStatus.WaitAudit) {
-    _menuList.push({
+  _menuList.push(
+    {
       name: '缂栬緫',
       value: ManageActions.Edit,
-    });
-  }
-  _menuList.push({
-    name: '鏌ョ湅璇︽儏',
-    value: ManageActions.Detail,
-  });
-  if (props.status === ResourceStatus.OffShelf) {
+    },
+    {
+      name: '鏌ョ湅璇︽儏',
+      value: ManageActions.Detail,
+    }
+  );
+  if (props.releaseStatus === FlexTaskReleaseStatusEnum.Stoping) {
     _menuList.push({
       name: '鍙戝竷',
       value: ManageActions.Publish,
     });
   }
-  if (props.status === ResourceStatus.Running) {
+  if (props.releaseStatus === FlexTaskReleaseStatusEnum.Releasing) {
     _menuList.push({
       name: '鍋滄鍙戝竷',
       value: ManageActions.Stop,
     });
   }
-  if (props.status !== ResourceStatus.WaitAudit) {
-    _menuList.push(
-      {
-        name: '澶嶅埗',
-        value: ManageActions.Copy,
-      },
-      {
-        name: '鍒犻櫎',
-        value: ManageActions.Delete,
-      }
-    );
-  }
+  _menuList.push(
+    {
+      name: '澶嶅埗',
+      value: ManageActions.Copy,
+    },
+    {
+      name: '鍒犻櫎',
+      value: ManageActions.Delete,
+    }
+  );
 
   return _menuList;
 });
@@ -265,6 +278,12 @@
     .job-application-card-publish-time {
       color: boleGetCssVar('text-color', 'regular');
     }
+
+    .nut-button {
+      min-width: 144rpx;
+      height: 52rpx;
+      font-size: 24rpx;
+    }
   }
 }
 </style>

--
Gitblit v1.9.1