From a8c0f3a72c24c756bc2c7493144bce717dc13ff4 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期二, 16 九月 2025 10:23:46 +0800
Subject: [PATCH] feat: 接口对接

---
 packages/constants/task.ts                                   |   44 ++++++
 apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue |   43 ++++--
 packages/services/apiV2/task.ts                              |   78 +++++++++--
 packages/services/apiV2/typings.d.ts                         |  229 +++++++++++++++++++++++---------
 4 files changed, 300 insertions(+), 94 deletions(-)

diff --git a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
index d71bf5a..b95cbea 100644
--- a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
@@ -36,7 +36,11 @@
         required
         label-width="90px"
       >
-        <nut-radio-group v-model="form.settlementCycle" direction="horizontal">
+        <nut-radio-group
+          v-model="form.settlementCycle"
+          direction="horizontal"
+          @change="settleTypeChange"
+        >
           <BlRadio :label="Number(key)" v-for="(val, key) in EnumSettlementCycleText" :key="key">{{
             val
           }}</BlRadio>
@@ -45,14 +49,15 @@
       <nut-form-item
         label="缁撶畻鏃ユ湡:"
         class="bole-form-item"
-        prop="settlementCycleDate"
+        prop="settlementDate"
         label-width="90px"
         required
+        v-if="form.settlementCycle !== EnumSettlementCycle.Day"
       >
         <ChooseInputWithPicker
-          v-model="form.genderLimit"
+          v-model="form.settlementDate"
           placeholder="璇疯缃粨绠楁棩鏈�"
-          :value-enum="[]"
+          :value-enum="settlementDateList"
         />
       </nut-form-item>
       <nut-form-item label="绂忓埄:" class="bole-form-item" prop="benefits" label-width="90px">
@@ -114,11 +119,6 @@
       </nut-form-item>
       <nut-form-item label="浠诲姟鍦扮偣" class="bole-form-item" prop="weMapInfo" required>
         <ChooseLocationInput placeholder="璇烽�夋嫨浠诲姟鍦扮偣" v-model="form.weMapInfo" />
-        <!-- <ChooseInputWithAreaPicker
-          :columns="areaTreeList"
-          v-model="form.areaList"
-          placeholder="璇烽�夋嫨鎵�鍦ㄥ湴鍖�"
-        ></ChooseInputWithAreaPicker> -->
       </nut-form-item>
       <nut-form-item
         label="璇︾粏鍦板潃:"
@@ -168,6 +168,8 @@
   EnumSettlementCycleText,
   BillingMethodEnumUnit,
   EnumUserGenderTextOptions,
+  EnumSettlementCycleDateWeekArray,
+  EnumSettlementCycleDateMonthArray,
 } from '@12333/constants';
 import {
   ChooseInputWithPicker,
@@ -198,7 +200,6 @@
 const taskId = router.params?.id ?? '';
 const isEdit = !!taskId;
 const isCopy = router.params?.isCopy === 'true';
-console.log('isCopy: ', router.params?.isCopy);
 
 const nowDate = dayjs().toDate();
 
@@ -207,6 +208,16 @@
 });
 const { dictionaryDataList: CertificateTypeList } = useDictionaryDataSelect({
   categoryCode: CategoryCode.CertificateType,
+});
+
+const settlementDateList = computed(() => {
+  if (form.settlementCycle === EnumSettlementCycle.Month) {
+    return EnumSettlementCycleDateMonthArray;
+  }
+  if (form.settlementCycle === EnumSettlementCycle.Week) {
+    return EnumSettlementCycleDateWeekArray;
+  }
+  return [];
 });
 
 const form = reactive({
@@ -219,10 +230,9 @@
   ageMaxLimit: '' as any as number,
   genderLimit: 0 as any as EnumUserGender,
   credentialLimits: [] as string[],
-  // address: '',
   beginTime: '',
   endTime: '',
-  // areaList: [] as number[],
+  settlementDate: null as number,
 
   weMapInfo: {} as WeMapModel,
   addressDetail: '',
@@ -251,9 +261,6 @@
   weMapInfo: [
     { required: true, message: '璇疯缃伐浣滃湴鐐�', validator: FormValidator.validatorWeMap },
   ],
-  // areaList: [
-  //   { required: true, message: '璇锋坊鍔犲伐浣滃湴鐐�', validator: FormValidator.validatorArray },
-  // ],
 
   ageMinLimit: [
     {
@@ -316,6 +323,7 @@
     form.billingMethod = data.billingMethod;
     form.serviceFee = data.serviceFee;
     form.settlementCycle = data.settlementCycle;
+    form.settlementDate = data.settlementDate;
     form.benefits = (data.benefits ?? []).map((item) => item.benefitCode);
     form.ageMinLimit = data.ageMinLimit;
     form.ageMaxLimit = data.ageMaxLimit;
@@ -353,6 +361,7 @@
       billingMethod: form.billingMethod,
       serviceFee: form.serviceFee,
       settlementCycle: form.settlementCycle,
+      settlementDate: form.settlementDate,
       benefits: form.benefits,
       ageMinLimit: form.ageMinLimit,
       ageMaxLimit: form.ageMaxLimit,
@@ -384,6 +393,10 @@
   } catch (error) {}
 }
 
+function settleTypeChange() {
+  form.settlementDate = null as number;
+}
+
 function handleCancel() {
   goBack();
 }
diff --git a/packages/constants/task.ts b/packages/constants/task.ts
index c03f939..fd41f55 100644
--- a/packages/constants/task.ts
+++ b/packages/constants/task.ts
@@ -46,6 +46,50 @@
   [EnumBillingMethod.Piece]: '鍏�/浠�',
 };
 
+export const EnumSettlementCycleDateWeekArray = [
+  { label: '鏄熸湡涓�', value: 1 },
+  { label: '鏄熸湡浜�', value: 2 },
+  { label: '鏄熸湡涓�', value: 3 },
+  { label: '鏄熸湡鍥�', value: 4 },
+  { label: '鏄熸湡浜�', value: 5 },
+  { label: '鏄熸湡鍏�', value: 6 },
+  { label: '鏄熸湡鏃�', value: 7 },
+];
+
+export const EnumSettlementCycleDateMonthArray = [
+  { label: '1鏃�', value: 1 },
+  { label: '2鏃�', value: 2 },
+  { label: '3鏃�', value: 3 },
+  { label: '4鏃�', value: 4 },
+  { label: '5鏃�', value: 5 },
+  { label: '6鏃�', value: 6 },
+  { label: '7鏃�', value: 7 },
+  { label: '8鏃�', value: 8 },
+  { label: '9鏃�', value: 9 },
+  { label: '10鏃�', value: 10 },
+  { label: '11鏃�', value: 11 },
+  { label: '12鏃�', value: 12 },
+  { label: '13鏃�', value: 13 },
+  { label: '14鏃�', value: 14 },
+  { label: '15鏃�', value: 15 },
+  { label: '16鏃�', value: 16 },
+  { label: '17鏃�', value: 17 },
+  { label: '18鏃�', value: 18 },
+  { label: '19鏃�', value: 19 },
+  { label: '20鏃�', value: 20 },
+  { label: '21鏃�', value: 21 },
+  { label: '22鏃�', value: 22 },
+  { label: '23鏃�', value: 23 },
+  { label: '24鏃�', value: 24 },
+  { label: '25鏃�', value: 25 },
+  { label: '26鏃�', value: 26 },
+  { label: '27鏃�', value: 27 },
+  { label: '28鏃�', value: 28 },
+  { label: '29鏃�', value: 29 },
+  { label: '30鏃�', value: 30 },
+  { label: '31鏃�', value: 31 },
+];
+
 export const EnumTaskReleaseStatusText = {
   [EnumTaskReleaseStatus.InProcess]: '鍙戝竷涓�',
   [EnumTaskReleaseStatus.Stopped]: '宸插仠姝�',
diff --git a/packages/services/apiV2/task.ts b/packages/services/apiV2/task.ts
index 06e974f..0f797ab 100644
--- a/packages/services/apiV2/task.ts
+++ b/packages/services/apiV2/task.ts
@@ -14,6 +14,36 @@
   });
 }
 
+/** 缂栬緫缁撶畻鍚嶅崟 POST /api/flexjob/task/editTaskSettlementOrderRoster */
+export async function editTaskSettlementOrderRoster(
+  body: API.EditTaskSettlementOrderRosterCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/flexjob/task/editTaskSettlementOrderRoster', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 瀵煎嚭缁撶畻鍚嶅崟 POST /api/flexjob/task/exportTaskSettlementOrderRosters */
+export async function exportTaskSettlementOrderRosters(
+  body: API.ExportTaskSettlementOrderRostersCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/flexjob/task/exportTaskSettlementOrderRosters', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鏌ヨ寮�鏀句换鍔″垎椤靛垪琛� POST /api/flexjob/task/getOpenTaskInfos */
 export async function getOpenTaskInfos(
   body: API.GetOpenTaskInfosQuery,
@@ -173,6 +203,39 @@
   );
 }
 
+/** 鏌ヨ浠诲姟缁撶畻鏃� GET /api/flexjob/task/getTaskSettlementDates */
+export async function getTaskSettlementDates(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetTaskSettlementDatesParams,
+  options?: API.RequestConfig
+) {
+  return request<string[]>('/api/flexjob/task/getTaskSettlementDates', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
+
+/** 瀵煎叆缁撶畻鍚嶅崟 POST /api/flexjob/task/importTaskSettlementOrderRosters */
+export async function importTaskSettlementOrderRosters(
+  body: API.ImportTaskSettlementOrderRostersCommand,
+  options?: API.RequestConfig
+) {
+  return request<API.ImportTaskSettlementOrderRostersCommandResult>(
+    '/api/flexjob/task/importTaskSettlementOrderRosters',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
 /** 鎾ゅ洖缁撶畻 POST /api/flexjob/task/revokeTaskSettlementOrder */
 export async function revokeTaskSettlementOrder(
   body: API.RevokeTaskSettlementOrderCommand,
@@ -236,21 +299,6 @@
   options?: API.RequestConfig
 ) {
   return request<string>('/api/flexjob/task/sureTaskSettlement', {
-    method: 'POST',
-    headers: {
-      'Content-Type': 'application/json-patch+json',
-    },
-    data: body,
-    ...(options || {}),
-  });
-}
-
-/** 纭缁撶畻鍗� POST /api/flexjob/task/sureTaskSettlementOrder */
-export async function sureTaskSettlementOrder(
-  body: API.SureTaskSettlementOrderCommand,
-  options?: API.RequestConfig
-) {
-  return request<string>('/api/flexjob/task/sureTaskSettlementOrder', {
     method: 'POST',
     headers: {
       'Content-Type': 'application/json-patch+json',
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
index c3ea930..64d7946 100644
--- a/packages/services/apiV2/typings.d.ts
+++ b/packages/services/apiV2/typings.d.ts
@@ -207,10 +207,8 @@
   }
 
   interface APIgetSettlementTaskUsersParams {
-    /** 浠诲姟Id */
-    taskInfoId?: string;
-    /** 缁撶畻鍗曞湴鍧� */
-    settlementOrderUrl?: string;
+    /** 缁撶畻璁㈠崟Id */
+    id?: string;
   }
 
   interface APIgetTaskEnterpriseParams {
@@ -226,6 +224,17 @@
   interface APIgetTaskSelectParams {
     /** 鍏抽敭瀛� */
     keywords?: string;
+  }
+
+  interface APIgetTaskSettlementDatesParams {
+    /** 浠诲姟寮�濮嬫椂闂� */
+    beginTime?: string;
+    /** 浠诲姟缁撴潫鏃堕棿 */
+    endTime?: string;
+    /** 缁撶畻鏂瑰紡 */
+    settlementCycle?: EnumSettlementCycle;
+    /** 缁撶畻鏃ユ湡 */
+    settlementDate?: number;
   }
 
   interface APIgetTaskUserHireStatusParams {
@@ -429,6 +438,21 @@
     identityBackImg?: string;
     /** Id */
     id?: string;
+  }
+
+  interface EditTaskSettlementOrderRosterCommand {
+    /** 鍚嶅崟Id */
+    id?: string;
+    /** 缁撶畻閲戦 */
+    settlementAmount: number;
+    /** 瀹炲彂閲戦 */
+    actualSettlementAmount: number;
+    /** 鏀舵璐︽埛 */
+    receiveAccount: string;
+    /** 鎵�灞為摱琛� */
+    bank: string;
+    /** 寮�鎴锋敮琛屽悕绉� */
+    bankBranch?: string;
   }
 
   interface ElectronSignCallbackCommand {
@@ -979,6 +1003,11 @@
 
   interface ExportTaskCheckReceiveTaskUsersCommand {
     /** 浠诲姟Id */
+    id?: string;
+  }
+
+  interface ExportTaskSettlementOrderRostersCommand {
+    /** 缁撶畻璁㈠崟Id */
     id?: string;
   }
 
@@ -2064,6 +2093,24 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultImportTaskSettlementOrderRostersCommandResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: ImportTaskSettlementOrderRostersCommandResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultInt32 {
     /** 璺熻釜Id */
     traceId?: string;
@@ -2073,6 +2120,25 @@
     errorCode?: string;
     /** 鏁版嵁 */
     data?: number;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultListDateTime {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: string[];
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -4236,6 +4302,10 @@
     keywords?: string;
     settlementOrderStatus?: EnumTaskSettlementOrderStatus;
     settlementStatus?: EnumTaskSettlementStatus;
+    /** 缁撶畻鏃堕棿-璧峰 */
+    settlementTimeBegin?: string;
+    /** 缁撶畻鏃堕棿-鎴 */
+    settlementTimeEnd?: string;
     pageModel?: PagedListQueryPageModel;
   }
 
@@ -4247,6 +4317,40 @@
 
   interface GetSettlementTasksQueryResultItem {
     /** 浠诲姟Id */
+    id?: string;
+    /** 鎵�灞炰换鍔� */
+    name?: string;
+    /** 浠诲姟鍗曞彿 */
+    code?: string;
+    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
+    settlementOrderStatus?: EnumTaskSettlementOrderStatus;
+    /** 缁撶畻鍗曞悕绉� */
+    settlementOrderName?: string;
+    /** 涓婁紶鏃堕棿 */
+    settlementOrderTime?: string;
+    /** 瀹炲彂閲戦 */
+    actualSettlementAmount?: number;
+    /** 缁撶畻閲戦 */
+    settlementAmount?: number;
+    settlementStatus?: EnumTaskSettlementStatus;
+    /** 鍒涘缓鏃堕棿 */
+    createdTime?: string;
+    /** 缁撶畻鏃堕棿 */
+    settlementTime?: string;
+    /** 澶囨敞 */
+    settlementRemark?: string;
+    /** 缁撶畻浜烘暟 */
+    settlementUserCount?: number;
+  }
+
+  interface GetSettlementTaskUsersQueryResult {
+    detail?: GetSettlementTaskUsersQueryResultDetail;
+    /** 缁撶畻鍚嶅崟 */
+    data?: GetSettlementTaskUsersQueryResultItem[];
+  }
+
+  interface GetSettlementTaskUsersQueryResultDetail {
+    /** 缁撶畻璁㈠崟Id */
     id?: string;
     /** 浠诲姟鍚嶇О */
     name?: string;
@@ -4266,41 +4370,10 @@
     settlementTime?: string;
     /** 澶囨敞 */
     settlementRemark?: string;
-    /** 缁撶畻浜烘暟 */
-    settlementUserCount?: number;
-  }
-
-  interface GetSettlementTaskUsersQueryResult {
-    detail?: GetSettlementTaskQueryResult;
-    /** 缁撶畻鍚嶅崟 */
-    data?: GetSettlementTaskUsersQueryResultItem[];
-    /** 閿欒淇℃伅 */
-    errors?: GetSettlementTaskUsersQueryResultError[];
-  }
-
-  interface GetSettlementTaskUsersQueryResultError {
-    /** 閿欒淇℃伅 */
-    errorMessage?: string;
-    /** 濮撳悕 */
-    name?: string;
-    /** 韬唤璇佸彿 */
-    identity?: string;
-    /** 缁撶畻閲戦 */
-    settlementAmount?: number;
-    /** 瀹炲彂閲戦 */
-    actualSettlementAmount?: number;
-    /** 鏀舵璐︽埛 */
-    receiveAccount?: string;
-    /** 鎵�灞為摱琛� */
-    bank?: string;
-    /** 寮�鎴锋敮琛屽悕绉� */
-    bankBranch?: string;
-    /** 浠诲姟鍚嶇О */
-    taskName?: string;
   }
 
   interface GetSettlementTaskUsersQueryResultItem {
-    /** 浠诲姟鐢ㄦ埛Id */
+    /** 缁撶畻鍚嶅崟Id */
     id?: string;
     /** 濮撳悕 */
     name?: string;
@@ -4308,7 +4381,6 @@
     identity?: string;
     /** 鎵嬫満鍙� */
     contactPhoneNumber?: string;
-    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
     settlementStatus?: EnumTaskSettlementStatus;
     /** 鎵�灞為摱琛� */
     bank?: string;
@@ -4368,6 +4440,8 @@
     /** 鏈嶅姟璐� */
     serviceFee?: number;
     settlementCycle?: EnumSettlementCycle;
+    /** 缁撶畻鏃ユ湡 */
+    settlementDate?: number;
     /** 绂忓埄 */
     benefits?: GetTaskInfoQueryResultBenefit[];
     /** 骞撮緞鑼冨洿鏈�灏� */
@@ -4520,7 +4594,6 @@
     endTime?: string;
     releaseStatus?: EnumTaskReleaseStatus;
     checkReceiveStatus?: EnumTaskCheckReceiveStatus;
-    settlementStatus?: EnumTaskSettlementStatus;
     recommendStatus?: EnumTaskRecommendStatus;
     /** 鎺ㄨ崘鏃堕棿 */
     recommendTime?: string;
@@ -4909,6 +4982,58 @@
     contactPhoneNumber?: string;
     /** 韬唤璇佸彿 */
     identity?: string;
+  }
+
+  interface ImportTaskSettlementOrderRostersCommand {
+    /** 缁撶畻璁㈠崟Id */
+    id?: string;
+    /** 瀵煎叆鏂囦欢鍦板潃 */
+    url: string;
+  }
+
+  interface ImportTaskSettlementOrderRostersCommandResult {
+    /** Id */
+    id?: string;
+    /** 浠诲姟鍚嶇О */
+    name?: string;
+    /** 浠诲姟鍗曞彿 */
+    code?: string;
+    settlementOrderStatus?: EnumTaskSettlementOrderStatus;
+    /** 缁撶畻鍗曞悕绉� */
+    settlementOrderName?: string;
+    /** 涓婁紶鏃堕棿 */
+    settlementOrderTime?: string;
+    /** 瀹炲彂閲戦 */
+    actualSettlementAmount?: number;
+    /** 缁撶畻閲戦 */
+    settlementAmount?: number;
+    settlementStatus?: EnumTaskSettlementStatus;
+    /** 缁撶畻鏃堕棿 */
+    settlementTime?: string;
+    /** 澶囨敞 */
+    settlementRemark?: string;
+    errors?: ImportTaskSettlementOrderRostersCommandResultError[];
+  }
+
+  interface ImportTaskSettlementOrderRostersCommandResultError {
+    /** 閿欒淇℃伅 */
+    errorMessage?: string;
+    /** 濮撳悕 */
+    name?: string;
+    /** 韬唤璇佸彿 */
+    identity?: string;
+    /** 缁撶畻閲戦 */
+    settlementAmount?: number;
+    /** 瀹炲彂閲戦 */
+    actualSettlementAmount?: number;
+    /** 鏀舵璐︽埛 */
+    receiveAccount?: string;
+    /** 鎵�灞為摱琛� */
+    bank?: string;
+    /** 寮�鎴锋敮琛屽悕绉� */
+    bankBranch?: string;
+    /** 浠诲姟鍚嶇О */
+    taskName?: string;
   }
 
   interface InviteElectronSignCommand {
@@ -5386,6 +5511,8 @@
     /** 鏈嶅姟璐� */
     serviceFee: number;
     settlementCycle: EnumSettlementCycle;
+    /** 缁撶畻鏃ユ湡 */
+    settlementDate: number;
     /** 绂忓埄缂栧彿 */
     benefits?: string[];
     /** 骞撮緞鑼冨洿鏈�灏� */
@@ -5642,32 +5769,6 @@
   interface SureTaskSettlementCommand {
     /** 浠诲姟Id */
     taskInfoId?: string;
-  }
-
-  interface SureTaskSettlementOrderCommand {
-    /** 浠诲姟Id */
-    taskInfoId?: string;
-    /** 缁撶畻鍗曞湴鍧� */
-    settlementOrderUrl?: string;
-    /** 缁撶畻鍚嶅崟 */
-    taskInfoUsers?: SureTaskSettlementOrderCommandUser[];
-  }
-
-  interface SureTaskSettlementOrderCommandUser {
-    /** 浠诲姟鐢ㄦ埛Id */
-    id?: string;
-    /** 濮撳悕 */
-    name?: string;
-    /** 鎵�灞為摱琛� */
-    bank?: string;
-    /** 寮�鎴锋敮琛屽悕绉� */
-    bankBranch?: string;
-    /** 鏀舵璐︽埛 */
-    receiveAccount: string;
-    /** 缁撶畻閲戦 */
-    settlementAmount: number;
-    /** 瀹炲彂閲戦 */
-    actualSettlementAmount: number;
   }
 
   type SyncDatabaseCommand = Record<string, any>;

--
Gitblit v1.9.1