From 9dd95cc0cde6664d1cfcb4e14f402981c57c2585 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期四, 30 十月 2025 17:58:25 +0800
Subject: [PATCH] fix: s

---
 src/services/api/LgGigWorkerCustomerTemplateParam.ts            |    9 +
 src/services/api/ElectronSign.ts                                |   63 +++++++
 src/services/api/typings.d.ts                                   |  166 ++++++++++++++++++++
 src/services/api/LgGigWorker.ts                                 |   15 +
 src/services/api/ParkBountyApply.ts                             |   15 +
 src/views/EnterpriseInfo/components/RewardConsumeRecordView.vue |   35 ++++
 src/views/Reward/components/ParkBountyTradeDetailFileDialog.vue |  123 +++++++++++++++
 7 files changed, 422 insertions(+), 4 deletions(-)

diff --git a/src/services/api/ElectronSign.ts b/src/services/api/ElectronSign.ts
index db7da6f..9f88cd0 100644
--- a/src/services/api/ElectronSign.ts
+++ b/src/services/api/ElectronSign.ts
@@ -14,6 +14,36 @@
   });
 }
 
+/** 鎵归噺绛剧害 POST /api/ElectronSign/BatchSignContract */
+export async function batchSignContract(
+  body: API.BatchSignContractInput,
+  options?: API.RequestConfig
+) {
+  return request<API.BatchSignContractOutput>('/api/ElectronSign/BatchSignContract', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鎵归噺鏇存柊鍚堝悓鍙傛暟鐘舵�� POST /api/ElectronSign/BatchUpdateContractParamterStatus */
+export async function batchUpdateContractParamterStatus(
+  body: API.BatchUpdateContractParamterStatusInput,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/ElectronSign/BatchUpdateContractParamterStatus', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鍒涘缓鎴栨洿鏂版ā鏉� POST /api/ElectronSign/CreateOrUpdateContractTemplate */
 export async function createOrUpdateContractTemplate(
   body: API.CreateOrUpdateContractTemplateInput,
@@ -95,6 +125,24 @@
     data: body,
     ...(options || {}),
   });
+}
+
+/** 鑾峰彇鍚堝悓鍙傛暟鍒楄〃 POST /api/ElectronSign/GetContractParamterList */
+export async function getContractParamterList(
+  body: API.GetContractParamterListInput,
+  options?: API.RequestConfig
+) {
+  return request<API.GetContractParamterListItemPageOutput>(
+    '/api/ElectronSign/GetContractParamterList',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
 }
 
 /** 鑾峰彇鍚堝悓妯℃澘鍒楄〃 POST /api/ElectronSign/GetContractTemplateList */
@@ -217,6 +265,21 @@
   });
 }
 
+/** 淇濆瓨鍚堝悓鍙傛暟 POST /api/ElectronSign/SaveContractParamter */
+export async function saveContractParamter(
+  body: API.SaveContractTemplateParamterInput,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/ElectronSign/SaveContractParamter', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鍙戣捣绛剧害 POST /api/ElectronSign/SendContract */
 export async function sendContract(body: API.SendContractInput, options?: API.RequestConfig) {
   return request<API.SendContractOutput>('/api/ElectronSign/SendContract', {
diff --git a/src/services/api/LgGigWorker.ts b/src/services/api/LgGigWorker.ts
index 4abe72c..df2e5f6 100644
--- a/src/services/api/LgGigWorker.ts
+++ b/src/services/api/LgGigWorker.ts
@@ -515,6 +515,21 @@
   });
 }
 
+/** 鏇存柊鍚堝悓妯℃澘鑷畾涔夊唴瀹瑰�� POST /api/LgGigWorker/UpdateCustomerContractTemplateCustomContentValue */
+export async function updateCustomerContractTemplateCustomContentValue(
+  body: API.UpdateCustomerContractTemplateCustomContentValueInput,
+  options?: API.RequestConfig
+) {
+  return request<any>('/api/LgGigWorker/UpdateCustomerContractTemplateCustomContentValue', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鏇存柊浜哄憳淇℃伅 POST /api/LgGigWorker/UpdateLgGigWorkerUserInfo */
 export async function updateLgGigWorkerUserInfo(
   body: API.UpdateLgGigWorkerUserInfoInput,
diff --git a/src/services/api/LgGigWorkerCustomerTemplateParam.ts b/src/services/api/LgGigWorkerCustomerTemplateParam.ts
index 6241c06..f88ad6a 100644
--- a/src/services/api/LgGigWorkerCustomerTemplateParam.ts
+++ b/src/services/api/LgGigWorkerCustomerTemplateParam.ts
@@ -21,11 +21,18 @@
 }
 
 /** 鑾峰彇鎵�鏈夌郴缁� 妯℃澘鏁版嵁鍙傛暟瀛楀吀 POST /api/LgGigWorkerCustomerTemplateParam/GetAllSystemTemplateDataParamSettingList */
-export async function getAllSystemTemplateDataParamSettingList(options?: API.RequestConfig) {
+export async function getAllSystemTemplateDataParamSettingList(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetAllSystemTemplateDataParamSettingListParams,
+  options?: API.RequestConfig
+) {
   return request<API.SystemTemplateDataParamSettingOutput[]>(
     '/api/LgGigWorkerCustomerTemplateParam/GetAllSystemTemplateDataParamSettingList',
     {
       method: 'POST',
+      params: {
+        ...params,
+      },
       ...(options || {}),
     }
   );
diff --git a/src/services/api/ParkBountyApply.ts b/src/services/api/ParkBountyApply.ts
index 6ea1239..8a815b0 100644
--- a/src/services/api/ParkBountyApply.ts
+++ b/src/services/api/ParkBountyApply.ts
@@ -1182,6 +1182,21 @@
   );
 }
 
+/** 鍚屾鏇存柊娑堣垂璁板綍閲岀殑淇濆崟鏂囦欢 POST /api/ParkBountyApply/SyncUpdateParkBountyApplyTradeInsuranceBillFile */
+export async function syncUpdateParkBountyApplyTradeInsuranceBillFile(
+  body: API.UpdateParkBountyApplyTradeInsuranceBillFile,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/ParkBountyApply/SyncUpdateParkBountyApplyTradeInsuranceBillFile', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 涓婁紶浼佷笟琛ュ厖鏉愭枡 POST /api/ParkBountyApply/UploadParkBountyApplyCompanyExtraFile */
 export async function uploadParkBountyApplyCompanyExtraFile(
   body: API.UploadParkApplyCustomerFilesInput,
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 7e5461e..267af50 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -510,6 +510,12 @@
     signChannel?: SignChannelEnum;
     /** 妯℃澘缂栬緫鏁版嵁 */
     templateEditData?: string;
+    /** 鏄惁鑷姩绛� */
+    isAutoSign?: boolean;
+    /** 鑷姩绛炬巿鏉冧功 */
+    autoSignPowerAttorneyUrl?: string;
+    /** 鑷畾涔夊唴瀹� */
+    customContentIds?: string[];
   }
 
   interface AddUpdateCustomerInput {
@@ -1286,6 +1292,13 @@
 
   interface APIgetAllSubModuleParams {
     moduleId?: string;
+  }
+
+  interface APIgetAllSystemTemplateDataParamSettingListParams {
+    /** 鏄惁榛樿 */
+    isDefault?: boolean;
+    /** 妯℃澘Id */
+    lgGigWorkerCustomerTemplateId?: string;
   }
 
   interface APIgetBatchBillStaffListParams {
@@ -2812,6 +2825,32 @@
     userIds?: string[];
     /** 鏈嶅姟浜哄憳Id */
     serviceStaffId?: string;
+  }
+
+  interface BatchSignContractInput {
+    /** 瀵瑰鐢ㄦ埛Id */
+    outUserId?: string;
+    /** 瀵瑰鍚堝悓Id */
+    outContractIds?: string[];
+  }
+
+  interface BatchSignContractOutput {
+    /** 鎴愬姛鍚堝悓Id */
+    successIds?: string[];
+    errors?: BatchSignContractOutputError[];
+  }
+
+  interface BatchSignContractOutputError {
+    /** 瀵瑰鍚堝悓Id */
+    outContractId?: string;
+    /** 閿欒娑堟伅 */
+    errorMessages?: string;
+  }
+
+  interface BatchUpdateContractParamterStatusInput {
+    /** 鍙傛暟Id */
+    ids?: string[];
+    status?: EnumElectronSignContractParameterStatus;
   }
 
   interface BestSignDownloadImageDataResponse {
@@ -4984,6 +5023,10 @@
     name: string;
     /** 妯℃澘缂栧彿 */
     templateCode: string;
+    /** 鏄惁鑷姩绛� */
+    isAutoSign?: boolean;
+    /** 鑷姩绛炬巿鏉冧功 */
+    autoSignPowerAttorneyUrl?: string;
     /** 妯℃澘鍙橀噺 */
     values: CreateOrUpdateContractTemplateValueInput[];
   }
@@ -4998,6 +5041,12 @@
     name?: string;
     /** 鏄惁蹇呭~ */
     required?: boolean;
+    /** 鍧愭爣X */
+    x?: number;
+    /** 鍧愭爣Y */
+    y?: number;
+    /** 椤电爜 */
+    page?: number;
   }
 
   interface CreateOrUpdateCooperationApplyInput {
@@ -5196,6 +5245,9 @@
     incomeBankName?: string;
     enterpriseId?: string;
     selfAuditStatus?: EnumParkBountyTradeDetailAuditStatus;
+    auditType?: EnumParkBountyTradeDetailAuditType;
+    /** 姹熺淇濊嚜涓诲嚭璐﹀叧鑱斾繚鍗昳d */
+    insurancePolicyId?: string;
   }
 
   interface CreateParkOrHRAdvertiseInput {
@@ -6227,6 +6279,8 @@
     configuration?: Record<string, any>;
   }
 
+  type EnumElectronSignContractParameterStatus = 10 | 20;
+
   type EnumElectronSignContractStatus = 1 | 2 | 3 | 4 | 5 | 9 | 99;
 
   type EnumElectronSignContractSupplier = 10 | 20;
@@ -6248,6 +6302,8 @@
   type EnumPagedListOrder = 0 | 1;
 
   type EnumParkBountyTradeDetailAuditStatus = 10 | 20 | 30;
+
+  type EnumParkBountyTradeDetailAuditType = 10 | 100;
 
   type EnumParkRewardStatisticsDetailScene = 1 | 2 | 3 | 4 | 5;
 
@@ -7171,6 +7227,35 @@
     completedEndDate?: string;
   }
 
+  interface GetContractParamterListInput {
+    pageModel?: Pagination;
+    /** 鍏抽敭瀛� */
+    keywords?: string;
+    status?: EnumElectronSignContractParameterStatus;
+  }
+
+  interface GetContractParamterListItem {
+    /** 鍙傛暟Id */
+    id?: string;
+    /** 鏁版嵁鍙傛暟鍚嶇О */
+    dataParamName?: string;
+    /** 鏁版嵁鍙傛暟瀛楁鍚嶇О */
+    dataParamNameFieldName?: string;
+    /** 鏁版嵁鍙傛暟榛樿鍊� */
+    dataParamDefaultValue?: string;
+    /** 鏄惁 涓嶆槸鏁板�煎弬鏁帮紝鍗虫棤闇�鍊� */
+    isNotValueParam?: boolean;
+    /** 鏄惁榛樿 */
+    isDefault?: boolean;
+    status?: EnumElectronSignContractParameterStatus;
+  }
+
+  interface GetContractParamterListItemPageOutput {
+    pageModel?: Pagination;
+    objectData?: any;
+    data?: GetContractParamterListItem[];
+  }
+
   interface GetContractTemplateDto {
     /** Id */
     id?: string;
@@ -7183,6 +7268,10 @@
     name?: string;
     /** 妯℃澘缂栧彿 */
     templateCode?: string;
+    /** 鏄惁鑷姩绛� */
+    isAutoSign?: boolean;
+    /** 鑷姩绛炬巿鏉冧功 */
+    autoSignPowerAttorneyUrl?: string;
     /** 妯℃澘鍙橀噺 */
     values?: GetContractTemplateValueDto[];
   }
@@ -7211,6 +7300,12 @@
     name?: string;
     /** 鏄惁蹇呭~ */
     required?: boolean;
+    /** 鍧愭爣X */
+    x?: number;
+    /** 鍧愭爣Y */
+    y?: number;
+    /** 椤电爜 */
+    page?: number;
   }
 
   interface GetCooperationApplyInput {
@@ -7402,6 +7497,23 @@
     creatorId?: string;
     /** 鏄惁鍙互缂栬緫鍚嶇О */
     isCanEditName?: boolean;
+    /** 鏄惁鑷姩绛� */
+    isAutoSign?: boolean;
+    /** 鑷姩绛炬巿鏉冧功锛堥�夋嫨鑷姩绛炬椂鏄剧ず锛� */
+    autoSignPowerAttorneyUrl?: string;
+    /** 鑷畾涔夊唴瀹� */
+    customContents?: GetCustomerTemplateDetailOutputCustomContent[];
+  }
+
+  interface GetCustomerTemplateDetailOutputCustomContent {
+    /** 妯℃澘Id */
+    templateId?: string;
+    /** Id */
+    id?: string;
+    /** 鏁版嵁鍙傛暟鍚嶇О */
+    dataParamName?: string;
+    /** 鍊� */
+    value?: string;
   }
 
   interface GetCustomerTemplateListOutput {
@@ -7419,6 +7531,10 @@
     platedTime?: string;
     /** 鎿嶄綔浜� */
     operator?: string;
+    /** 鏄惁鑷姩绛� */
+    isAutoSign?: boolean;
+    /** 鑷畾涔夊唴瀹� */
+    customContents?: GetCustomerTemplateDetailOutputCustomContent[];
   }
 
   interface GetCustomerUploadApplyFilesByTypeInput {
@@ -9186,6 +9302,8 @@
     selfAuditOperator?: string;
     /** 浼佷笟鑷韩鎿嶄綔浜篒d */
     selfAuditOperatorId?: string;
+    /** 姹熺淇濅笂浼犵殑淇濆崟鏂囦欢 */
+    insureBillUrl?: string;
   }
 
   interface GetParkBountyTradeDetailOutputPageOutput {
@@ -9286,6 +9404,10 @@
     financeType?: FinanceTypeEnum;
     /** 杩涜处鍗曚綅 */
     incomeCompanyName?: string;
+    /** 浼佷笟鑷韩瀹℃牳鍑瘉 */
+    selfAuditFileUrl?: string;
+    /** 姹熺淇濅笂浼犵殑淇濆崟鏂囦欢 */
+    insureBillUrl?: string;
   }
 
   interface GetParkCustomerBountyConsumptionOutputPageOutput {
@@ -14251,6 +14373,8 @@
     compayId?: string;
     /** 闇�瑕佺绾︾殑鐢ㄦ埛绛剧害id */
     listLgWorkerSignId?: string[];
+    /** 鏉ヨ嚜鑷姩绛� */
+    fromAutoSign?: boolean;
   }
 
   interface LgGigWorkerBussinessAutoSignOutput {
@@ -18031,6 +18155,8 @@
     userInfoEmailAddress?: string;
     /** 娉ㄥ唽鏃ユ湡 */
     registDate?: string;
+    /** 浜т笟鍥尯id */
+    industrialParkId?: string;
   }
 
   interface PriceInfo {
@@ -20185,6 +20311,20 @@
     receiptName?: string;
   }
 
+  interface SaveContractTemplateParamterInput {
+    /** 鍙傛暟Id */
+    id?: string;
+    /** 鏁版嵁鍙傛暟鍚嶇О */
+    dataParamName?: string;
+    /** 鏁版嵁鍙傛暟瀛楁鍚嶇О */
+    dataParamNameFieldName?: string;
+    /** 鏁版嵁鍙傛暟榛樿鍊� */
+    dataParamDefaultValue?: string;
+    /** 鏄惁 涓嶆槸鏁板�煎弬鏁帮紝鍗虫棤闇�鍊� */
+    isNotValueParam?: boolean;
+    status?: EnumElectronSignContractParameterStatus;
+  }
+
   interface SaveCustomerTemplateParamInput {
     /** 妯℃澘id */
     lgGigWorkerCustomerTemplateId?: string;
@@ -21628,6 +21768,9 @@
     selfAuditFileUrl?: string;
     /** 濂栧姳閲戜綑棰� */
     bountyAmount?: number;
+    auditType?: EnumParkBountyTradeDetailAuditType;
+    /** 姹熺淇濊嚜涓诲嚭璐﹀叧鑱斾繚鍗昳d */
+    insurancePolicyId?: string;
   }
 
   interface SysOrgDetailOutput {
@@ -22216,6 +22359,20 @@
     id?: string;
   }
 
+  interface UpdateCustomerContractTemplateCustomContentValueInput {
+    /** 鍚堝悓妯℃澘Id */
+    templateId?: string;
+    /** 鑷畾涔夊唴瀹� */
+    customContents?: UpdateCustomerContractTemplateCustomContentValueInputItem[];
+  }
+
+  interface UpdateCustomerContractTemplateCustomContentValueInputItem {
+    /** Id */
+    id?: string;
+    /** 鍊� */
+    value?: string;
+  }
+
   interface UpdateEnterpriseMaterialInput {
     /** 骞� */
     year?: number;
@@ -22648,6 +22805,13 @@
     id?: string;
   }
 
+  interface UpdateParkBountyApplyTradeInsuranceBillFile {
+    /** 姹熺淇濊嚜涓诲嚭璐﹀叧鑱斾繚鍗昳d */
+    insurancePolicyId?: string;
+    /** 姹熺淇濅笂浼犵殑淇濆崟鏂囦欢 */
+    insureBillUrl?: string;
+  }
+
   interface UpdatePassWordInput {
     id?: string;
     passWord?: string;
@@ -22925,6 +23089,8 @@
     enterpriseName?: string;
     /** 濮撳悕 */
     contacter?: string;
+    /** 浜т笟鍥尯id */
+    industrialParkId?: string;
   }
 
   interface UpdateUserOrderContactStatusInput {
diff --git a/src/views/EnterpriseInfo/components/RewardConsumeRecordView.vue b/src/views/EnterpriseInfo/components/RewardConsumeRecordView.vue
index 3b093dd..fb4195a 100644
--- a/src/views/EnterpriseInfo/components/RewardConsumeRecordView.vue
+++ b/src/views/EnterpriseInfo/components/RewardConsumeRecordView.vue
@@ -3,13 +3,14 @@
     <AppContainer>
       <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
         <template #operationBtn-checkBtn="{ data, row }">
-          <PreviewBtnV2
+          <!-- <PreviewBtnV2
             class="pro-table-operation-btn"
             :url="convertApi2FormUrlBySeparator(row.payFileUrl ?? '')"
             preview-btn-text="鏌ョ湅鍑瘉"
-          />
+          /> -->
         </template>
       </ProTableV2>
+      <ParkBountyTradeDetailFileDialog v-bind="dialogProps" />
     </AppContainer>
   </LoadingLayout>
 </template>
@@ -21,11 +22,18 @@
   ProTableV2,
   defineOperationBtns,
   PreviewBtnV2,
+  useFormDialog,
+  UploadUserFile,
 } from '@bole-core/components';
-import { convertApi2FormUrlBySeparator } from '@/utils';
+import {
+  convertApi2FormUrlBySeparator,
+  convertApi2FormUrlObjectBySeparator,
+  convertApi2FormUrlOnlyOne,
+} from '@/utils';
 import { OrderInputType } from '@bole-core/core';
 import * as parkRewardServices from '@/services/api/ParkReward';
 import { EnterpriseBountyPayTypeEnumText } from '@/constants';
+import ParkBountyTradeDetailFileDialog from '../../Reward/components/ParkBountyTradeDetailFileDialog.vue';
 
 defineOptions({
   name: 'RewardConsumeRecordView',
@@ -60,6 +68,7 @@
       enCode: 'checkBtn',
       name: '鏌ョ湅鍑瘉',
     },
+    emits: { onClick: (role) => openDialog(role) },
   },
 ]);
 
@@ -111,6 +120,26 @@
   await getList();
   state.loading = false;
 });
+
+function openDialog(row: API.GetParkCustomerBountyConsumptionOutput) {
+  handleAdd({
+    payAuditFileUrl: convertApi2FormUrlObjectBySeparator(row.payAuditFileUrl),
+    financeAuditFileUrl: convertApi2FormUrlObjectBySeparator(row.financeAuditFileUrl),
+    selfAuditFileUrl: convertApi2FormUrlObjectBySeparator(row.selfAuditFileUrl),
+    payFileUrl: convertApi2FormUrlObjectBySeparator(row.payFileUrl),
+    insureBillUrl: convertApi2FormUrlObjectBySeparator(row.insureBillUrl),
+  });
+}
+
+const { dialogProps, handleAdd } = useFormDialog({
+  defaultFormParams: {
+    payAuditFileUrl: [] as UploadUserFile[],
+    financeAuditFileUrl: [] as UploadUserFile[],
+    selfAuditFileUrl: [] as UploadUserFile[],
+    payFileUrl: [] as UploadUserFile[],
+    insureBillUrl: [] as UploadUserFile[],
+  },
+});
 </script>
 
 <style lang="scss" scoped>
diff --git a/src/views/Reward/components/ParkBountyTradeDetailFileDialog.vue b/src/views/Reward/components/ParkBountyTradeDetailFileDialog.vue
new file mode 100644
index 0000000..d6ba211
--- /dev/null
+++ b/src/views/Reward/components/ParkBountyTradeDetailFileDialog.vue
@@ -0,0 +1,123 @@
+<template>
+  <ProDialog title="鏂囦欢鍒楄〃" v-model="visible" @close="onDialogClose" destroy-on-close draggable>
+    <ProForm :model="form" ref="dialogForm" label-width="110px" is-read class="audit-file-form">
+      <ProFormItemV2
+        label="骞冲彴瀹℃壒鍑瘉:"
+        prop="selfAuditFileUrl"
+        v-if="form?.selfAuditFileUrl?.length > 0"
+      >
+        <ProFormUpload
+          v-model:file-url="form.selfAuditFileUrl"
+          :limitFileSize="50"
+          accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
+        ></ProFormUpload>
+      </ProFormItemV2>
+      <ProFormItemV2
+        label="鍑鸿处瀹℃壒鍑瘉:"
+        prop="payAuditFileUrl"
+        v-if="form?.payAuditFileUrl?.length > 0"
+      >
+        <ProFormUpload
+          v-model:file-url="form.payAuditFileUrl"
+          :limitFileSize="50"
+          accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
+        ></ProFormUpload>
+      </ProFormItemV2>
+      <ProFormItemV2
+        label="璐㈡斂瀹℃壒鍑瘉:"
+        prop="financeAuditFileUrl"
+        v-if="form?.financeAuditFileUrl?.length > 0"
+      >
+        <ProFormUpload
+          v-model:file-url="form.financeAuditFileUrl"
+          :limitFileSize="50"
+          accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
+        ></ProFormUpload>
+      </ProFormItemV2>
+      <ProFormItemV2 label="鍑鸿处鍑瘉:" prop="payFileUrl" v-if="form?.payFileUrl?.length > 0">
+        <ProFormUpload
+          v-model:file-url="form.payFileUrl"
+          :limitFileSize="50"
+          accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
+        ></ProFormUpload>
+      </ProFormItemV2>
+      <ProFormItemV2 label="淇濆崟鏂囦欢:" prop="insureBillUrl" v-if="form?.insureBillUrl?.length > 0">
+        <ProFormUpload
+          v-model:file-url="form.insureBillUrl"
+          :limitFileSize="50"
+          accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
+        ></ProFormUpload>
+      </ProFormItemV2>
+    </ProForm>
+    <template #footer>
+      <span class="dialog-footer">
+        <el-button @click="emit('onCancel')">鍙� 娑�</el-button>
+        <el-button type="primary" @click="handleConfirm">纭� 瀹�</el-button>
+      </span>
+    </template>
+  </ProDialog>
+</template>
+
+<script setup lang="ts">
+import { FormInstance } from 'element-plus';
+import {
+  ProDialog,
+  ProForm,
+  ProFormItemV2,
+  ProFormText,
+  UploadUserFile,
+  ProFormUpload,
+} from '@bole-core/components';
+
+defineOptions({
+  name: 'ParkBountyTradeDetailFileDialog',
+});
+
+// type Props = {};
+
+// const props = withDefaults(defineProps<Props>(), {});
+
+const visible = defineModel({ type: Boolean });
+
+type Form = {
+  title?: string;
+  payAuditFileUrl: UploadUserFile[];
+  financeAuditFileUrl: UploadUserFile[];
+  selfAuditFileUrl: UploadUserFile[];
+  payFileUrl: UploadUserFile[];
+  insureBillUrl: UploadUserFile[];
+};
+
+const form = defineModel<Form>('form');
+
+const emit = defineEmits<{
+  (e: 'onConfirm'): void;
+  (e: 'onCancel'): void;
+}>();
+
+const dialogForm = ref<FormInstance>();
+
+function onDialogClose() {
+  if (!dialogForm.value) return;
+  dialogForm.value.resetFields();
+}
+
+function handleConfirm() {
+  if (!dialogForm.value) return;
+  dialogForm.value.validate((valid) => {
+    if (valid) {
+      emit('onConfirm');
+    } else {
+      return;
+    }
+  });
+}
+</script>
+
+<style lang="scss" scoped>
+.audit-file-form {
+  .el-form-item {
+    margin-bottom: 22px;
+  }
+}
+</style>

--
Gitblit v1.9.1