0d3f37947b900e466e1d0733ab366de304098a8e..b7426e2384b85e92ec1b59061bdada9b4f5c69ec
2025-04-23 wupengfei
feat: 接口
b7426e 对比 | 目录
2025-04-23 wupengfei
feat: 接口
e94488 对比 | 目录
2025-04-21 wupengfei
feat: 接口
524b1f 对比 | 目录
2025-04-18 wupengfei
feat: 页面
7c24e0 对比 | 目录
2025-04-17 wupengfei
feat: 页面
404a61 对比 | 目录
20个文件已修改
2个文件已添加
1 文件已复制
1 文件已重命名
1227 ■■■■ 已修改文件
src/components/commonView/DetailView.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/commonView/FourStreamsBatchMaterialFileDialog.vue 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/commonView/FourStreamsMaterialFileDialog.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/commonView/FourStreamsMaterialFileTable.vue 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/commonView/MaterialInfoView.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/commonView/SettlementMaterialInfoView.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/commonView/types.ts 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/commonView/utils/index.ts 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/reward.ts 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/ParkBountyApply.ts 176 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/User.ts 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 273 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseInfo/EnterpriseInfo.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseInfo/EnterpriseInfoDetail.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseInfo/components/EnterpriseBasicInfoView.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseInfo/components/RewardConsumeRecordView.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseInfo/components/RewardGrantRecordView.vue 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Home/Home.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/MaterialReview/MaterialReviewAudit.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/MaterialReview/MaterialReviewDetail.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Reward/RewardDeclareDetail.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Reward/RewardGrant.vue 192 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Reward/components/FinancialDialog.vue 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Reward/components/PlateformDialog.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/commonView/DetailView.vue
@@ -36,6 +36,7 @@
    enterpriseOperateFileUrl: UploadUserFile[];
    bountyAssignFileUlr: UploadUserFile[];
    bountyCollectFileUrl: UploadUserFile[];
    enterpriseRelateFileUrl: UploadUserFile[];
  };
};
src/components/commonView/FourStreamsBatchMaterialFileDialog.vue
New file
@@ -0,0 +1,169 @@
<template>
  <ProDialog
    title="文件列表"
    v-model="visible"
    destroy-on-close
    draggable
    width="35%"
    :close-on-click-modal="false"
    :close-on-press-escape="false"
    :top="'22vh'"
  >
    <ProDialogTableWrapper :height="400">
      <ProTableQueryFilterBar :show-reset-btn="false">
        <template #query>
          <QueryFilterItem>
            <span class="query-label">{{ name }}</span>
          </QueryFilterItem>
        </template>
        <template #btn>
          <el-button type="primary" @click="handleBatchDownload">批量下载</el-button>
        </template>
      </ProTableQueryFilterBar>
      <ProTableV2
        :tableData="fileList"
        :columns="columns"
        :operationBtns="operationBtns"
        show-column-check
        ref="proTable"
      >
        <template #extension="{ row }">
          <img :src="getExtensionIconByUrl(row.url)" alt="" style="margin: 0 auto" />
        </template>
        <template #size="{ row }">
          {{ formatFileSize(row.size) }}
        </template>
      </ProTableV2>
    </ProDialogTableWrapper>
  </ProDialog>
</template>
<script setup lang="ts">
import {
  ProDialog,
  ProTableQueryFilterBar,
  QueryFilterItem,
  UploadUserFile,
  ProDialogTableWrapper,
  ProTableV2,
  defineColumns,
  defineOperationBtns,
  bolePreview,
  getExtensionIconByUrl,
} from '@bole-core/components';
import { format, downloadFileByUrl, formatFileSize } from '@/utils';
import { downloadWithZip, Message, isFileCanPreview } from '@bole-core/core';
defineOptions({
  name: 'FourStreamsBatchMaterialFileDialog',
});
type Props = {
  name?: string;
  zipName?: string;
  showDeleteBtn?: boolean;
};
const props = withDefaults(defineProps<Props>(), {
  showDeleteBtn: true,
});
const visible = defineModel<boolean>('visible');
const fileList = defineModel<UploadUserFile[]>('fileList');
const proTable = ref<InstanceType<typeof ProTableV2>>();
const columns = defineColumns([
  {
    id: '1',
    enCode: 'extension',
    name: '文件类型',
  },
  {
    id: '2',
    enCode: 'name',
    name: '文件名称',
  },
]);
const operationBtns = defineOperationBtns([
  // {
  //   data: {
  //     enCode: 'detailBtn',
  //     name: '查看',
  //   },
  //   emits: {
  //     onClick: (row) => handlePreview(row),
  //   },
  //   extraProps: {
  //     hide: (row: UploadUserFile) => !isFileCanPreview(row.path),
  //   },
  // },
  {
    data: {
      enCode: 'downloadBtn',
      name: '查看',
    },
    emits: {
      onClick: (row) => handleDownload(row),
    },
  },
  {
    data: {
      enCode: 'delBtn',
      name: '删除',
    },
    props: {
      type: 'danger',
    },
    emits: {
      onClick: (row) => handleDelete(row),
    },
    extraProps: {
      hide: (row) => !props.showDeleteBtn,
    },
  },
]);
async function handleDelete(row: UploadUserFile) {
  try {
    await Message.deleteMessage();
    fileList.value = fileList.value.filter((item) => item.uid !== row.uid);
  } catch (error) {}
}
function handleDownload(row: UploadUserFile) {
  downloadFileByUrl(row.url);
}
function handlePreview(row: UploadUserFile) {
  bolePreview({
    fileUrl: row.url,
  });
}
function handleBatchDownload() {
  if (fileList.value.length) {
    const res: UploadUserFile[] = proTable.value.innerTableRef.getSelectionRows();
    if (res.length > 0) {
      downloadWithZip(
        res.map((item) => ({ data: item.url })),
        props.zipName
      );
    } else {
      Message.errorMessage('未选择数据');
    }
  } else {
    Message.errorMessage('暂无数据');
  }
}
</script>
<style lang="scss" scoped>
@use '@/style/common.scss' as *;
.query-label {
  font-size: 16px;
  line-height: 40px;
}
</style>
src/components/commonView/FourStreamsMaterialFileDialog.vue
New file
@@ -0,0 +1,49 @@
<template>
  <ProDialog :title="title" v-model="visible" destroy-on-close draggable width="800px">
    <FourStreamsMaterialFileTable v-model:list="form.list" v-bind="props" />
    <template #footer>
      <span class="dialog-footer">
        <el-button type="primary" @click="handleConfirm">确 定</el-button>
      </span>
    </template>
  </ProDialog>
</template>
<script setup lang="ts" generic="T">
import { ProDialog } from '@bole-core/components';
import FourStreamsMaterialFileTable from './FourStreamsMaterialFileTable.vue';
import { FourStreamsMaterialFileTableProps, BaseMaterialFileTableItem } from './types';
defineOptions({
  name: 'FourStreamsMaterialFileDialog',
});
type Props = FourStreamsMaterialFileTableProps & {
  title?: string;
};
const props = withDefaults(defineProps<Props>(), {
  showUploadBtn: true,
  showCheckBtn: true,
  showDownloadBtn: true,
  showDeleteBtn: true,
  title: '材料详情',
});
const visible = defineModel({ type: Boolean });
type Form = {
  list: BaseMaterialFileTableItem<T>[];
};
const form = defineModel<Form>('form');
const emit = defineEmits<{
  (e: 'onConfirm'): void;
  (e: 'onCancel'): void;
}>();
function handleConfirm() {
  emit('onConfirm');
}
</script>
src/components/commonView/FourStreamsMaterialFileTable.vue
@@ -9,7 +9,7 @@
      :showTableColumnSetting="false"
    >
      <template #fileBusinessType="{ row }">
        {{ FourStreamsMaterialFileBusinessTypeEnumText[row.fileBusinessType] }}
        {{ BusinessTypeEnumText[row.fileBusinessType] }}
      </template>
      <template #operationBtn-uploadBtn="{ data, row }">
        <BlFileUpload
@@ -25,13 +25,20 @@
        </BlFileUpload>
      </template>
    </ProTableV2>
    <FourStreamsBatchMaterialFileDialog
      v-bind="dialogProps"
      :name="''"
      :zipName="`${BusinessTypeEnumText[currentFourStreamsMaterialFileTableItem.fileBusinessType as any]}`"
      v-model:fileList="currentFourStreamsMaterialFileTableItem.fileList"
      :showDeleteBtn="showDeleteBtn"
    />
  </div>
</template>
<script setup lang="ts">
<script setup lang="ts" generic="T">
import {
  FourStreamsMaterialFileTableProps,
  FourStreamsMaterialFileTableItem,
  BaseMaterialFileTableItem,
  FourStreamsMaterialFileBusinessTypeEnumText,
} from './types';
import {
@@ -40,10 +47,12 @@
  defineOperationBtns,
  BlFileUpload,
  bolePreview,
  useDialog,
} from '@bole-core/components';
import { downloadFileByUrl } from '@/utils';
import { Message, isFileCanPreview } from '@bole-core/core';
import { Message, isFileCanPreview, downloadWithZip } from '@bole-core/core';
import { useDefineColumns } from '@/hooks';
import FourStreamsBatchMaterialFileDialog from './FourStreamsBatchMaterialFileDialog.vue';
defineOptions({
  name: 'FourStreamsMaterialFileTable',
@@ -55,9 +64,10 @@
  showDownloadBtn: true,
  showDeleteBtn: true,
  downloadBtnText: '下载',
  BusinessTypeEnumText: () => FourStreamsMaterialFileBusinessTypeEnumText,
});
const list = defineModel<FourStreamsMaterialFileTableItem[]>('list');
const list = defineModel<BaseMaterialFileTableItem<T>[]>('list');
const columns = defineColumns([
  {
@@ -75,7 +85,7 @@
        name: '上传',
      },
      extraProps: {
        hide: (row: FourStreamsMaterialFileTableItem) => {
        hide: (row: BaseMaterialFileTableItem<T>) => {
          if (!props.showUploadBtn) return true;
          let fileList = row?.fileList?.filter?.((item) => item.status === 'success');
          return fileList?.length > 0;
@@ -91,7 +101,7 @@
        onClick: (row) => handlePreview(row),
      },
      extraProps: {
        hide: (row: FourStreamsMaterialFileTableItem) => {
        hide: (row: BaseMaterialFileTableItem<T>) => {
          if (!props.showCheckBtn) return true;
          let fileList = row?.fileList?.filter?.((item) => item.status === 'success');
          if (!fileList?.length) {
@@ -115,7 +125,7 @@
        onClick: (row) => handleBatchDownload(row),
      },
      extraProps: {
        hide: (row: FourStreamsMaterialFileTableItem) => {
        hide: (row: BaseMaterialFileTableItem<T>) => {
          return (
            !props.showDownloadBtn ||
            !row?.fileList?.filter?.((item) => item.status === 'success')?.length
@@ -135,7 +145,7 @@
        onClick: (row) => handleDelete(row),
      },
      extraProps: {
        hide: (row: FourStreamsMaterialFileTableItem) => {
        hide: (row: BaseMaterialFileTableItem<T>) => {
          if (!props.showDeleteBtn) return true;
          let fileList = row?.fileList?.filter?.((item) => item.status === 'success');
          return !fileList?.length;
@@ -145,18 +155,24 @@
  ],
});
async function handleDelete(row: FourStreamsMaterialFileTableItem) {
async function handleDelete(row: BaseMaterialFileTableItem<T>) {
  try {
    await Message.deleteMessage();
    row.fileList = [];
  } catch (error) {}
}
async function handlePreview(row: FourStreamsMaterialFileTableItem) {
const currentFourStreamsMaterialFileTableItem = ref<BaseMaterialFileTableItem<T>>({
  fileBusinessType: 0 as any,
  fileList: [],
});
const { dialogProps, dialogState } = useDialog();
async function handlePreview(row: BaseMaterialFileTableItem<T>) {
  if (row.fileList.length > 1) {
    // currentEnterpriseMaterialFileTableItem.value = row;
    // await nextTick();
    // dialogState.dialogVisible = true;
    currentFourStreamsMaterialFileTableItem.value = row;
    await nextTick();
    dialogState.dialogVisible = true;
  } else {
    bolePreview({
      fileUrl: row.fileList[0].url,
@@ -164,7 +180,7 @@
  }
}
function handleBatchDownload(row: FourStreamsMaterialFileTableItem) {
async function handleBatchDownload(row: BaseMaterialFileTableItem<T>) {
  const successFileList = row.fileList.filter((item) => item.status === 'success');
  if (successFileList.length === 0) {
    Message.errorMessage('没有可下载的文件');
@@ -175,8 +191,11 @@
  } else {
    // downloadWithZip(
    //   successFileList.map((item) => ({ data: item.url })),
    //   `${AllEnterpriseMaterialFileBusinessTypeEnumText[row.fileBusinessType]}材料文件`
    //   `${props.BusinessTypeEnumText[row.fileBusinessType as any]}`
    // );
    currentFourStreamsMaterialFileTableItem.value = row;
    await nextTick();
    dialogState.dialogVisible = true;
  }
}
</script>
src/components/commonView/MaterialInfoView.vue
@@ -12,8 +12,19 @@
  </ProFormCol>
  <ProFormCol>
    <ProFormColItem :span="12">
      <ProFormItemV2 label="企业营收汇总表:" prop="enterpriseOperateFileUrl">
      <ProFormItemV2
        label="企业营收汇总表:"
        prop="enterpriseOperateFileUrl"
        style="margin-bottom: 22px"
      >
        <ProFormUpload v-model:file-url="form.enterpriseOperateFileUrl"></ProFormUpload>
      </ProFormItemV2>
    </ProFormColItem>
  </ProFormCol>
  <ProFormCol>
    <ProFormColItem :span="12">
      <ProFormItemV2 label="入驻情况关联说明:" prop="enterpriseRelateFileUrl">
        <ProFormUpload v-model:file-url="form.enterpriseRelateFileUrl"></ProFormUpload>
      </ProFormItemV2>
    </ProFormColItem>
  </ProFormCol>
@@ -36,6 +47,7 @@
  form: {
    enterpriseTaxSubFileUrl: UploadUserFile[];
    enterpriseOperateFileUrl: UploadUserFile[];
    enterpriseRelateFileUrl: UploadUserFile[];
  };
};
src/components/commonView/SettlementMaterialInfoView.vue
@@ -2,7 +2,7 @@
  <ProFormCol>
    <ProFormColItem :span="12">
      <ProFormItemV2 label="本次申报奖励金总额:" prop="applySumAmount">
        <ProFormInputNumber v-model="form.applySumAmount" unit="元" />
        <ProFormInputNumber v-model="form.applySumAmount" formatValue="money" unit="元" />
      </ProFormItemV2>
    </ProFormColItem>
  </ProFormCol>
src/components/commonView/types.ts
@@ -1,4 +1,3 @@
import { EnterpriseMaterialFileBusinessTypeEnum } from '@/constants';
import { UploadUserFile } from '@bole-core/components';
export type FourStreamsMaterialFileTableProps = {
@@ -7,12 +6,22 @@
  showDownloadBtn?: boolean;
  showDeleteBtn?: boolean;
  downloadBtnText?: string;
  BusinessTypeEnumText?: { [key: number]: string };
};
export type FourStreamsMaterialFileTableItem = {
  fileBusinessType: FourStreamsMaterialFileBusinessTypeEnum;
export type BaseMaterialFileTableItem<T> = {
  fileBusinessType: T;
  fileList: UploadUserFile[];
};
export type FourStreamsMaterialFileTableItem =
  BaseMaterialFileTableItem<FourStreamsMaterialFileBusinessTypeEnum>;
export type ApplyTransferMaterialFileTableItem =
  BaseMaterialFileTableItem<ApplyTransferFileBusinessTypeEnum>;
export type TransferFileEnumInRewardGrandTableItem =
  BaseMaterialFileTableItem<TransferFileEnumInRewardGrand>;
export enum EnterpriseTypeEnum {
  /**
@@ -49,18 +58,25 @@
  TaxSubFileUrl = 30,
  /** 企业营收利润表 */
  OperateProfitesUrl = 40,
  /** 入驻关联说明 */
  /**
   * 入驻关联说明
   * @deprecated 已经不用了
   */
  EnterRelateUrl = 50,
  /** C端个税完税情况说明 */
  /** C端个税完税证明 */
  PersonTaxRatePayUrl = 60,
  /** C端完税说明 */
  PersonTaxInstructUrl = 70,
}
export const FourStreamsMaterialFileBusinessTypeEnumText = {
  [FourStreamsMaterialFileBusinessTypeEnum.ParkEnterPactUrl]: '园区入驻协议',
  [FourStreamsMaterialFileBusinessTypeEnum.RatePaymentFileUrl]: '企业完税证明(盖章)',
  [FourStreamsMaterialFileBusinessTypeEnum.TaxSubFileUrl]: '企业缴税明细汇总表(盖章)',
  [FourStreamsMaterialFileBusinessTypeEnum.OperateProfitesUrl]: '企业营收利润表',
  [FourStreamsMaterialFileBusinessTypeEnum.EnterRelateUrl]: '入驻关联说明',
  [FourStreamsMaterialFileBusinessTypeEnum.PersonTaxRatePayUrl]: 'C端个税完税情况说明',
  [FourStreamsMaterialFileBusinessTypeEnum.PersonTaxRatePayUrl]: 'C端个税完税证明',
  [FourStreamsMaterialFileBusinessTypeEnum.PersonTaxInstructUrl]: 'C端完税情况说明',
};
export const FourStreamsMaterialFileBusinessTypeEnumKey = {
@@ -70,4 +86,39 @@
  [FourStreamsMaterialFileBusinessTypeEnum.OperateProfitesUrl]: 'operateProfitesUrl',
  [FourStreamsMaterialFileBusinessTypeEnum.EnterRelateUrl]: 'enterRelateUrl',
  [FourStreamsMaterialFileBusinessTypeEnum.PersonTaxRatePayUrl]: 'personTaxRatePayUrl',
  [FourStreamsMaterialFileBusinessTypeEnum.PersonTaxInstructUrl]: 'personTaxInstructUrl',
} as const;
export enum ApplyTransferFileBusinessTypeEnum {
  /** 拨付凭证*/
  FinanceToFileUrl = 100,
  /** 充值凭证*/
  TransferToFileUrl = 110,
}
export const ApplyTransferFileBusinessTypeEnumText = {
  [ApplyTransferFileBusinessTypeEnum.FinanceToFileUrl]: '拨付凭证',
  [ApplyTransferFileBusinessTypeEnum.TransferToFileUrl]: '充值凭证',
};
export const ApplyTransferFileBusinessTypeEnumKey = {
  [ApplyTransferFileBusinessTypeEnum.FinanceToFileUrl]: 'financeToFileUrl',
  [ApplyTransferFileBusinessTypeEnum.TransferToFileUrl]: 'transferToFileUrl',
} as const;
export enum TransferFileEnumInRewardGrand {
  /** 拨付凭证*/
  FinanceFileUrl = 200,
  /** 充值凭证*/
  SettleFileUrl = 210,
}
export const TransferFileEnumInRewardGrandText = {
  [TransferFileEnumInRewardGrand.FinanceFileUrl]: '拨付凭证',
  [TransferFileEnumInRewardGrand.SettleFileUrl]: '充值凭证',
};
export const TransferFileEnumInRewardGrandKey = {
  [TransferFileEnumInRewardGrand.FinanceFileUrl]: 'financeFileUrl',
  [TransferFileEnumInRewardGrand.SettleFileUrl]: 'settleFileUrl',
} as const;
src/components/commonView/utils/index.ts
@@ -1,8 +1,14 @@
import { convertApi2FormUrlOnlyOne } from '@/utils';
import { convertApi2FormUrl, convertApi2FormUrlOnlyOne } from '@/utils';
import {
  ApplyTransferFileBusinessTypeEnum,
  ApplyTransferFileBusinessTypeEnumKey,
  ApplyTransferMaterialFileTableItem,
  FourStreamsMaterialFileBusinessTypeEnum,
  FourStreamsMaterialFileBusinessTypeEnumKey,
  FourStreamsMaterialFileTableItem,
  TransferFileEnumInRewardGrand,
  TransferFileEnumInRewardGrandKey,
  TransferFileEnumInRewardGrandTableItem,
} from '../types';
export class FourStreamsMaterialUtils {
@@ -17,11 +23,24 @@
  /**数字经济园材料 */
  static DigitIndustrialParkMaterialFile = [
    FourStreamsMaterialFileBusinessTypeEnum.ParkEnterPactUrl,
    FourStreamsMaterialFileBusinessTypeEnum.EnterRelateUrl,
    // FourStreamsMaterialFileBusinessTypeEnum.EnterRelateUrl,
    FourStreamsMaterialFileBusinessTypeEnum.RatePaymentFileUrl,
    FourStreamsMaterialFileBusinessTypeEnum.TaxSubFileUrl,
    FourStreamsMaterialFileBusinessTypeEnum.OperateProfitesUrl,
    FourStreamsMaterialFileBusinessTypeEnum.PersonTaxRatePayUrl,
    FourStreamsMaterialFileBusinessTypeEnum.PersonTaxInstructUrl,
  ];
  /**财政拨付和平台充值凭证 */
  static ApplyTransferMaterialFile = [
    ApplyTransferFileBusinessTypeEnum.FinanceToFileUrl,
    ApplyTransferFileBusinessTypeEnum.TransferToFileUrl,
  ];
  /**财政拨付和平台充值凭证  奖励金发放*/
  static TransferFileEnumInRewardGrandFile = [
    TransferFileEnumInRewardGrand.FinanceFileUrl,
    TransferFileEnumInRewardGrand.SettleFileUrl,
  ];
  static isFourStreamsParkType(parkTypeName) {
@@ -55,6 +74,34 @@
      ])
    );
  }
  static initApplyTransferMaterialFileList<
    T extends { financeToFileUrl?: string; transferToFileUrl?: string }
  >(data: T) {
    return this.ApplyTransferMaterialFile.map((item) => {
      const filePathList = data[ApplyTransferFileBusinessTypeEnumKey[item]]
        ? data[ApplyTransferFileBusinessTypeEnumKey[item]].split('|')
        : [];
      return {
        fileBusinessType: item,
        fileList: filePathList.map(convertApi2FormUrl),
      } as ApplyTransferMaterialFileTableItem;
    });
  }
  static initApplyRewardGrandFileList<
    T extends { financeFileUrl?: string; settleFileUrl?: string }
  >(data: T) {
    return this.TransferFileEnumInRewardGrandFile.map((item) => {
      const filePathList = data[TransferFileEnumInRewardGrandKey[item]]
        ? data[TransferFileEnumInRewardGrandKey[item]].split('|')
        : [];
      return {
        fileBusinessType: item,
        fileList: filePathList.map(convertApi2FormUrl),
      } as TransferFileEnumInRewardGrandTableItem;
    });
  }
}
export class ParkTypeUtils {
src/constants/reward.ts
@@ -38,18 +38,34 @@
export enum SettleStatusEnum {
  /**
   * 待发放
   * 待充值
   */
  WaitForSettle = 1,
  /**
   * 已发放
   * 已充值
   */
  HasSettle = 2,
}
export const SettleStatusEnumText = {
  [SettleStatusEnum.WaitForSettle]: '待发放',
  [SettleStatusEnum.HasSettle]: '已发放',
  [SettleStatusEnum.WaitForSettle]: '待充值',
  [SettleStatusEnum.HasSettle]: '已充值',
};
export enum FinanceStatusEnum {
  /**
   * 待拨付
   */
  WaitForIncome = 1,
  /**
   * 已拨付
   */
  HasIncome = 2,
}
export const FinanceStatusEnumText = {
  [FinanceStatusEnum.WaitForIncome]: '待拨付',
  [FinanceStatusEnum.HasIncome]: '已拨付',
};
export enum IncomeStatusEnum {
src/services/api/ParkBountyApply.ts
@@ -32,6 +32,21 @@
  });
}
/** 预充值审核 POST /api/ParkBountyApply/CheckUserEnterpriseRecharge */
export async function checkUserEnterpriseRecharge(
  body: API.CheckUserEnterpriseRechargeInput,
  options?: API.RequestConfig
) {
  return request<number>('/api/ParkBountyApply/CheckUserEnterpriseRecharge', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 继续申报 POST /api/ParkBountyApply/EditParkBountyApply */
export async function editParkBountyApply(
  body: API.EditParkBountyApplyStepOneInput,
@@ -75,6 +90,57 @@
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 获取企业最后一次上传的园区入驻协议文件 GET /api/ParkBountyApply/GetEnterpriseLastUploadEnterPactFile */
export async function getEnterpriseLastUploadEnterPactFile(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetEnterpriseLastUploadEnterPactFileParams,
  options?: API.RequestConfig
) {
  return request<string>('/api/ParkBountyApply/GetEnterpriseLastUploadEnterPactFile', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
/** 获取企业充值审核列表 POST /api/ParkBountyApply/GetEnterprisePreChargeCheckList */
export async function getEnterprisePreChargeCheckList(
  body: API.GetEnterprisePreChargeCheckListInput,
  options?: API.RequestConfig
) {
  return request<API.GetEnterprisePreChargeCheckListOutputPageOutput>(
    '/api/ParkBountyApply/GetEnterprisePreChargeCheckList',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 获取预充值详情 GET /api/ParkBountyApply/GetEnterpriseRechargeDetail */
export async function getEnterpriseRechargeDetail(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetEnterpriseRechargeDetailParams,
  options?: API.RequestConfig
) {
  return request<API.GetEnterpriseRechargeDetail>(
    '/api/ParkBountyApply/GetEnterpriseRechargeDetail',
    {
      method: 'GET',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
@@ -191,6 +257,24 @@
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 获取批量入账中未财政拨付的企业 GET /api/ParkBountyApply/GetParkBountyApplyBatchFinanceEnterprise */
export async function getParkBountyApplyBatchFinanceEnterprise(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetParkBountyApplyBatchFinanceEnterpriseParams,
  options?: API.RequestConfig
) {
  return request<API.GetNotTransferCompanyNameListOutput[]>(
    '/api/ParkBountyApply/GetParkBountyApplyBatchFinanceEnterprise',
    {
      method: 'GET',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
@@ -409,6 +493,21 @@
  );
}
/** 导入奖励金入账 POST /api/ParkBountyApply/ImportParkBountyData */
export async function importParkBountyData(
  body: API.ImportBountyApplyDataInput,
  options?: API.RequestConfig
) {
  return request<API.ImportBountyApplyDataOutput>('/api/ParkBountyApply/ImportParkBountyData', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 内部审核 POST /api/ParkBountyApply/IncheckParkBountyApply */
export async function incheckParkBountyApply(
  body: API.IncheckParkBountyApplyInput,
@@ -439,6 +538,21 @@
  });
}
/** 批量财政入账 POST /api/ParkBountyApply/ParkBountyApplyBatchFinance */
export async function parkBountyApplyBatchFinance(
  body: API.ParkBountyApplyBatchFinanceInput,
  options?: API.RequestConfig
) {
  return request<number>('/api/ParkBountyApply/ParkBountyApplyBatchFinance', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 运营端—入账-批量入账 POST /api/ParkBountyApply/ParkBountyApplyBatchTransfer */
export async function parkBountyApplyBatchTransfer(
  body: API.ParkBountyApplyBatchTransferInput,
@@ -454,7 +568,52 @@
  });
}
/** 政务端—奖励金发放—上传凭证 POST /api/ParkBountyApply/ParkBountyApplySettle */
/** 财政入账 POST /api/ParkBountyApply/ParkBountyApplyFinance */
export async function parkBountyApplyFinance(
  body: API.ParkBountyApplyRechargeInput,
  options?: API.RequestConfig
) {
  return request<number>('/api/ParkBountyApply/ParkBountyApplyFinance', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 政务端—奖励金发放—上传财政拨付凭证 POST /api/ParkBountyApply/ParkBountyApplyFinanceBill */
export async function parkBountyApplyFinanceBill(
  body: API.ParkBountyApplyFinanceFileInput,
  options?: API.RequestConfig
) {
  return request<number>('/api/ParkBountyApply/ParkBountyApplyFinanceBill', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 财政入账上传凭证 POST /api/ParkBountyApply/ParkBountyApplyFinanceFile */
export async function parkBountyApplyFinanceFile(
  body: API.ParkBountyApplyRechargeFileInput,
  options?: API.RequestConfig
) {
  return request<number>('/api/ParkBountyApply/ParkBountyApplyFinanceFile', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 政务端—奖励金发放—上传充值凭证 POST /api/ParkBountyApply/ParkBountyApplySettle */
export async function parkBountyApplySettle(
  body: API.ParkBountyApplySettleInput,
  options?: API.RequestConfig
@@ -561,3 +720,18 @@
    }
  );
}
/** 用户充值 POST /api/ParkBountyApply/UserEnterpiseRecharge */
export async function userEnterpiseRecharge(
  body: API.UserEnterpiseRechargeInput,
  options?: API.RequestConfig
) {
  return request<number>('/api/ParkBountyApply/UserEnterpiseRecharge', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
src/services/api/User.ts
@@ -371,6 +371,14 @@
  });
}
/** 获取平台银行账户信息 GET /api/User/GetPlatIncomeRechargeAccount */
export async function getPlatIncomeRechargeAccount(options?: API.RequestConfig) {
  return request<API.GetPlatIncomeRechargeAccountOutput>('/api/User/GetPlatIncomeRechargeAccount', {
    method: 'GET',
    ...(options || {}),
  });
}
/** 获取平台用户详情 GET /api/User/GetPlatUserAttestationInfo */
export async function getPlatUserAttestationInfo(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
src/services/api/typings.d.ts
@@ -1326,9 +1326,17 @@
    transactionDetailId?: string;
  }
  interface APIgetEnterpriseLastUploadEnterPactFileParams {
    companyId?: string;
  }
  interface APIgetEnterpriseMaterialIdByUserIdParams {
    userId?: string;
    materialType?: EnterpriseMaterialTypeEnum;
  }
  interface APIgetEnterpriseRechargeDetailParams {
    id?: string;
  }
  interface APIgetFirstCurrentUserModuleListCacheByModuleIdParams {
@@ -1554,6 +1562,10 @@
  interface APIgetParams {
    id?: string;
  }
  interface APIgetParkBountyApplyBatchFinanceEnterpriseParams {
    parkBountyApplyId?: string;
  }
  interface APIgetParkBountyApplyBatchTransferEnterpriseParams {
@@ -3031,6 +3043,12 @@
    verificationCode?: string;
  }
  interface CheckUserEnterpriseRechargeInput {
    id?: string;
    checkStatus?: EnterpriseRechargeStatusEnum;
    remark?: string;
  }
  interface CheckUserWalletBalanceInfoOutput {
    acctNo?: string;
    acctName?: string;
@@ -4418,7 +4436,7 @@
    description?: string;
    parkCustomersCount?: ParkCustomersCountTypeEnum;
    /** 成立年份 */
    setUpDate: number;
    setUpDate?: number;
    serveSetting?: string[];
    workOfType?: string[];
    parkStyle?: ParkStyleDto[];
@@ -5644,6 +5662,8 @@
  type EnterpriseMaterialTypeEnum = 10 | 11 | 20;
  type EnterpriseRechargeStatusEnum = 10 | 20 | 30;
  interface EnterpriseRegVerifyInput {
    /** 用户Id */
    userId?: string;
@@ -5735,6 +5755,23 @@
  interface EntityExtensionDto {
    properties?: Record<string, any>;
    configuration?: Record<string, any>;
  }
  interface ExportBountyApplyData {
    /** 企业名称 */
    enterpriseName: string;
    /** 信用代码 */
    societyCreditCode: string;
    /** 财政拨付金额 */
    financeToAmountStr?: string;
    /** 平台充值金额 */
    transferToAmountStr?: string;
    /** 财政拨付金额 */
    financeToAmount?: number;
    /** 平台充值金额 */
    transferToAmount?: number;
    /** 备注 */
    remark?: string;
  }
  interface ExportInsStaffInput {
@@ -5851,6 +5888,10 @@
    subMsg?: string;
    fileId?: string;
  }
  type FinanceStatusEnum = 1 | 2;
  type FinanceTypeEnum = 10 | 20;
  interface FirstPartyCompanyAuditDatilOutput {
    id?: string;
@@ -6633,6 +6674,7 @@
    remianAmount?: number;
    payRemark?: string;
    fileUrl?: string;
    financeType?: FinanceTypeEnum;
    payFileUrls?: string[];
  }
@@ -6663,6 +6705,66 @@
    errmsg?: string;
    cost?: string;
    data?: GetEnterpriseCredentialDataResponse;
  }
  interface GetEnterprisePreChargeCheckListInput {
    pageModel?: Pagination;
    keyWord?: string;
    beginDateTime?: string;
    endDateTime?: string;
    checkStatus?: EnterpriseRechargeStatusEnum;
  }
  interface GetEnterprisePreChargeCheckListOutput {
    id?: string;
    /** 登录账号 */
    userName?: string;
    /** 银行账户 */
    outBankNum?: string;
    /** 企业名称 */
    enterpriseName?: string;
    /** 出款企业账户名称 */
    outEnterpriseName?: string;
    /** 充值金额 */
    prechargeAmount?: number;
    /** 出账所属银行 */
    outBankName?: string;
    /** 充值流水号 */
    rechargeSerialNo?: string;
    /** 提交日期 */
    creationTime?: string;
    checkStatus?: EnterpriseRechargeStatusEnum;
  }
  interface GetEnterprisePreChargeCheckListOutputPageOutput {
    pageModel?: Pagination;
    objectData?: any;
    data?: GetEnterprisePreChargeCheckListOutput[];
  }
  interface GetEnterpriseRechargeDetail {
    id?: string;
    /** 充值账号 */
    incomeBankNum?: string;
    /** 企业名称 */
    incomeEnterpriseName?: string;
    /** 出款账号 */
    outBankNum?: string;
    /** 出款企业名称 */
    outEnterpriseName?: string;
    /** 充值金额 */
    prechargeAmount?: number;
    /** 出账所属银行 */
    outBankName?: string;
    /** 出账支行名称 */
    outBankResumeName?: string;
    /** 出账回单 */
    outReceiptFileUrl?: string;
    /** 审核备注 */
    checkRemark?: string;
    checkStatus?: EnterpriseRechargeStatusEnum;
    /** 提交日期 */
    creationTime?: string;
  }
  interface GetFeatureListResultDto {
@@ -7864,7 +7966,7 @@
    /** 企业经营利润表 */
    operateProfitesUrl?: string;
    /** 入驻关联说明 */
    enterRelateUrl?: string;
    personTaxInstructUrl?: string;
    /** C端个税完税情况说明 */
    personTaxRatePayUrl?: string;
  }
@@ -7892,6 +7994,10 @@
    settleTimeBegin?: string;
    /** 发放结束日期 */
    settleTimeEnd?: string;
    /** 拨付起始日期 */
    financeTimeBegin?: string;
    /** 拨付结束日期 */
    financeTimeEnd?: string;
    /** 入账起始日期 */
    incomeTimeBegin?: string;
    /** 入账结束日期 */
@@ -7904,6 +8010,7 @@
    inCheckStatus?: BountyCheckStatusEnum;
    settleStatus?: SettleStatusEnum;
    incomeStatus?: IncomeStatusEnum;
    financeStatus?: FinanceStatusEnum;
  }
  interface GetParkBountyApplyListOutput {
@@ -7936,6 +8043,15 @@
    outCheckTime?: string;
    /** 发放凭证 */
    settleFileUrl?: string;
    financeStatus?: FinanceStatusEnum;
    /** 财政发放时间 */
    financeTime?: string;
    /** 财政发放凭证 */
    financeFileUrl?: string;
    /** 充值金额 */
    settleSumAmount?: number;
    /** 财政发放金额 */
    financeSumAmount?: number;
  }
  interface GetParkBountyApplyListOutputPageOutput {
@@ -7950,6 +8066,7 @@
    /** 企业名/信用代码 */
    searchKeyWord?: string;
    transferToStatus?: TransferToStatusEnum;
    financeToStatus?: FinanceStatusEnum;
  }
  interface GetParkBountyTradeDetailByIdInput {
@@ -7979,6 +8096,7 @@
    tradeTime?: string;
    /** 奖励金余额 */
    remianAmount?: number;
    financeType?: FinanceTypeEnum;
  }
  interface GetParkBountyTradeDetailOutputPageOutput {
@@ -8075,15 +8193,26 @@
    id?: string;
    /** 申请批次号 */
    batchNo?: string;
    /** 发放日期 */
    settleTime?: string;
    /** 入账时间 */
    incomeTime?: string;
    incomeStatus?: TransferToStatusEnum;
    /** 发放金额 */
    /** 申报总额 */
    applySumAmount?: number;
    /** 入账凭证 */
    /** 平台充值入账时间 */
    transferToTime?: string;
    transferToStatus?: TransferToStatusEnum;
    /** 平台充值金额 */
    transferToAmount?: number;
    /** 平台充值入账凭证 */
    transferToFileUrl?: string;
    /** 财政拨付金额 */
    financeToAmount?: number;
    /** 财政拨付入账时间 */
    financeToTime?: string;
    /** 财政拨付发放日期 */
    financeTime?: string;
    /** 平台充值发放日期 */
    settleTime?: string;
    financeToStatus?: FinanceStatusEnum;
    /** 拨付入账凭证 */
    financeToFileUrl?: string;
  }
  interface GetParkCustomerBountyGrantOutputPageOutput {
@@ -8150,6 +8279,8 @@
    payCount?: number;
    /** 最近发放时间 */
    lastPayTime?: string;
    /** 发放总额 */
    bountySumAmount?: number;
    /** 奖励金余额 */
    bountyAmount?: number;
  }
@@ -8253,6 +8384,13 @@
    maxAmount?: number;
    /** 查询条件:买家名称/卖家名称/产品名称 */
    queryCondition?: string;
  }
  interface GetPlatIncomeRechargeAccountOutput {
    bankNumber?: string;
    bankName?: string;
    bankBranchName?: string;
    bankAccountName?: string;
  }
  interface GetProductAdvertiseByCategoryInput {
@@ -8639,6 +8777,8 @@
  interface GetUserBaseEnterpriseInfoOutput {
    /** 奖励金余额 */
    bountyAmount?: number;
    /** 充值余额 */
    rechargeAmount?: number;
    enterpriseName?: string;
    societyCreditCode?: string;
    licenseUrl?: string;
@@ -9477,6 +9617,18 @@
  interface IdentityUserUpdateRolesDto {
    roleNames: string[];
  }
  interface ImportBountyApplyDataInput {
    /** 导入地址 */
    url?: string;
    /** 奖励金申请Id */
    parkBountyApplyId?: string;
  }
  interface ImportBountyApplyDataOutput {
    /** 错误数据列表 */
    error?: ExportBountyApplyData[];
  }
  interface ImportIdentityCardInput {
@@ -14222,12 +14374,22 @@
    bountyAssignFileUlr?: string;
    /** 奖励金汇总表 */
    bountyCollectFileUrl?: string;
    /** 入驻关联说明 */
    enterpriseRelateFileUrl?: string;
    outCheckStatus?: BountyCheckStatusEnum;
    /** 外部审核原因 */
    outCheckRemark?: string;
    /** 内部审核原因 */
    inCheckRemark?: string;
    inCheckStatus?: BountyCheckStatusEnum;
    /** 财政拨付总额 */
    financeSumAmount?: number;
    /** 平台充值总额 */
    settleSumAmount?: number;
    /** 发放凭证 */
    settleFileUrl?: string;
    /** 财政发放凭证 */
    financeFileUrl?: string;
  }
  interface OutcheckParkBountyApplyInput {
@@ -14289,12 +14451,30 @@
    bountyAssignFileUlr?: string;
    /** 奖励金汇总表 */
    bountyCollectFileUrl?: string;
    /** 入驻关联说明 */
    enterpriseRelateFileUrl?: string;
    /** 发放凭证 */
    settleFileUrl?: string;
    /** 财政发放凭证 */
    financeFileUrl?: string;
    /** 充值金额 */
    settleSumAmount?: number;
    /** 财政发放金额 */
    financeSumAmount?: number;
  }
  interface ParkBountyApplyBatchFinanceInput {
    parkBountyApplyDetailId?: string[];
    /** 充值金额 */
    financeToAmount?: number;
    parkBountyApplyId?: string;
  }
  interface ParkBountyApplyBatchTransferInput {
    parkBountyApplyDetailId?: string[];
    /** 入账金额 */
    transferToAmount?: number;
    parkBountyApplyId?: string;
  }
  interface ParkBountyApplyDetailInfo {
@@ -14320,8 +14500,8 @@
    taxSubFileUrl?: string;
    /** 企业经营利润表 */
    operateProfitesUrl?: string;
    /** 入驻关联说明 */
    enterRelateUrl?: string;
    /** C端完善情况说明 */
    personTaxInstructUrl?: string;
    /** C端个税完税情况说明 */
    personTaxRatePayUrl?: string;
    authType?: EnterpriseTypeEnum;
@@ -14331,6 +14511,15 @@
    enterpriseIsVerify?: boolean;
    /** 文件完整度 */
    fileCompleteRate?: string;
    financeToStatus?: FinanceStatusEnum;
    /** 财政入账金额 */
    financeToAmount?: number;
    /** 财政入账时间 */
    financeToTime?: string;
    /** 财政入账凭证 */
    financeToFileUrl?: string;
    /** 财政入账操作用户 */
    financeToUserId?: string;
  }
  interface ParkBountyApplyDetailInfoPageOutput {
@@ -14339,10 +14528,33 @@
    data?: ParkBountyApplyDetailInfo[];
  }
  interface ParkBountyApplyFinanceFileInput {
    parkBountyApplyId?: string;
    /** 发放凭证 */
    financeFileUrl?: string;
    /** 发放金额 */
    financeSumAmount?: number;
  }
  interface ParkBountyApplyRechargeFileInput {
    parkBountyApplyDetailId?: string;
    /** 平台充值凭证 */
    rechargeToFileUrl?: string;
  }
  interface ParkBountyApplyRechargeInput {
    parkBountyApplyDetailId?: string;
    /** 财政拨付 */
    bountyAmount?: number;
    parkBountyApplyId?: string;
  }
  interface ParkBountyApplySettleInput {
    parkBountyApplyId?: string;
    /** 发放凭证 */
    settleFileUrl?: string;
    /** 发放金额 */
    settleSumAmount?: number;
  }
  interface ParkBountyApplyTransferDetailInfo {
@@ -14368,8 +14580,8 @@
    taxSubFileUrl?: string;
    /** 企业经营利润表 */
    operateProfitesUrl?: string;
    /** 入驻关联说明 */
    enterRelateUrl?: string;
    /** C端完税情况说明 */
    personTaxInstructUrl?: string;
    /** C端个税完税情况说明 */
    personTaxRatePayUrl?: string;
    authType?: EnterpriseTypeEnum;
@@ -14381,6 +14593,15 @@
    parkBountyApplyDetailId?: string;
    /** 入账凭证 */
    transferToFileUrl?: string;
    financeToStatus?: FinanceStatusEnum;
    /** 财政入账金额 */
    financeToAmount?: number;
    /** 财政入账时间 */
    financeToTime?: string;
    /** 财政入账凭证 */
    financeToFileUrl?: string;
    /** 财政入账操作用户 */
    financeToUserId?: string;
  }
  interface ParkBountyApplyTransferDetailInfoPageOutput {
@@ -14399,6 +14620,7 @@
    parkBountyApplyDetailId?: string;
    /** 入账金额 */
    transferToAmount?: number;
    parkBountyApplyId?: string;
  }
  type ParkCustomersCountTypeEnum = 10 | 50 | 100;
@@ -17679,6 +17901,8 @@
    enterpriseOperateFileUrl?: string;
    /** 企业缴税明细表 */
    enterpriseTaxSubFileUrl?: string;
    /** 入驻关联说明 */
    enterpriseRelateFileUrl?: string;
  }
  interface SaveWalletPayChannelFeeSettingInput {
@@ -19891,8 +20115,8 @@
    taxSubFileUrl?: string;
    /** 企业经营利润表 */
    operateProfitesUrl?: string;
    /** 入驻关联说明 */
    enterRelateUrl?: string;
    /** C端完税情况说明 */
    personTaxInstructUrl?: string;
    /** C端个税完税情况说明 */
    personTaxRatePayUrl?: string;
  }
@@ -20532,6 +20756,25 @@
    data?: UserDto[];
  }
  interface UserEnterpiseRechargeInput {
    /** 收款账号 */
    incomeBankNum?: string;
    /** 收款企业名称 */
    incomeEnterpriseName?: string;
    /** 出款账号 */
    outBankNum?: string;
    /** 出款企业名称 */
    outEnterpriseName?: string;
    /** 充值金额 */
    prechargeAmount?: number;
    /** 出账所属银行 */
    outBankName?: string;
    /** 出账支行名称 */
    outBankResumeName?: string;
    /** 出账回单 */
    outReceiptFileUrl?: string;
  }
  type UserFollowStatusEnum = 10 | 20 | 30 | 40;
  interface UserGetContractEnterpriseFaceSignInput {
src/views/EnterpriseInfo/EnterpriseInfo.vue
@@ -100,7 +100,7 @@
  {
    id: '6',
    enCode: 'applyCount',
    name: '奖励金申报次数',
    name: '申报次数',
    width: 150,
  },
  {
@@ -112,7 +112,7 @@
  {
    id: '8',
    enCode: 'payCount',
    name: '奖励金发放次数',
    name: '发放次数',
    width: 150,
  },
  {
@@ -123,14 +123,14 @@
  },
  {
    id: '10',
    enCode: 'bountyAmount',
    name: '奖励金发放总额',
    enCode: 'bountySumAmount',
    name: '发放总额',
    width: 150,
  },
  {
    id: '11',
    enCode: 'bountyAmount',
    name: '奖励金余额',
    name: '平台充值余额',
    width: 150,
  },
];
@@ -196,6 +196,7 @@
    columnsRenderProps: {
      lastApplyTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      lastPayTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      bountySumAmount: { type: 'money' },
      bountyAmount: { type: 'money' },
      enterpriseType: { type: 'enum', valueEnum: EnterpriseTypeText },
    },
src/views/EnterpriseInfo/EnterpriseInfoDetail.vue
@@ -8,10 +8,10 @@
        <ProTabPane lazy label="企业申报记录" name="enterpriseDeclareRecord">
          <EnterpriseDeclareRecordView></EnterpriseDeclareRecordView>
        </ProTabPane>
        <ProTabPane lazy label="奖励金发放记录" name="rewardGrantRecord">
        <ProTabPane lazy label="发放记录" name="rewardGrantRecord">
          <RewardGrantRecordView></RewardGrantRecordView>
        </ProTabPane>
        <ProTabPane lazy label="奖励金消费记录" name="rewardConsumeRecord">
        <ProTabPane lazy label="消费记录" name="rewardConsumeRecord">
          <RewardConsumeRecordView></RewardConsumeRecordView>
        </ProTabPane>
      </ProTabs>
src/views/EnterpriseInfo/components/EnterpriseBasicInfoView.vue
@@ -42,6 +42,11 @@
              </ProFormItemV2>
            </ProFormColItem>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="开户支行:" prop="bankBranchName">
                <ProFormText v-model.trim="detail.bankBranchName" />
              </ProFormItemV2>
            </ProFormColItem>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="银行帐号:" prop="bankCardNumber">
                <ProFormText v-model.trim="detail.bankCardNumber" />
              </ProFormItemV2>
src/views/EnterpriseInfo/components/RewardConsumeRecordView.vue
@@ -50,7 +50,7 @@
  {
    id: '4',
    enCode: 'remianAmount',
    name: '奖励金余额',
    name: '资金余额',
  },
];
src/views/EnterpriseInfo/components/RewardGrantRecordView.vue
@@ -2,14 +2,16 @@
  <LoadingLayout :loading="state.loading">
    <AppContainer>
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
        <template #operationBtn-checkBtn="{ data, row }">
          <PreviewBtnV2
            class="pro-table-operation-btn"
            :url="convertApi2FormUrlBySeparator(row.transferToFileUrl ?? '')"
            preview-btn-text="查看凭证"
          />
        </template>
      </ProTableV2>
      <FourStreamsMaterialFileDialog
        v-bind="dialogMaterialFileProps"
        :show-upload-btn="false"
        :show-delete-btn="false"
        :show-check-btn="false"
        downloadBtnText="查看"
        title="查看凭证"
        :BusinessTypeEnumText="ApplyTransferFileBusinessTypeEnumText"
      />
    </AppContainer>
  </LoadingLayout>
</template>
@@ -20,12 +22,14 @@
  useTable,
  ProTableV2,
  defineOperationBtns,
  PreviewBtnV2,
  useFormDialog,
} from '@bole-core/components';
import { convertApi2FormUrlBySeparator } from '@/utils';
import { OrderInputType } from '@bole-core/core';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import { IncomeStatusEnumText } from '@/constants';
import { ApplyTransferFileBusinessTypeEnumText } from '@/components/commonView/types';
import { FourStreamsMaterialUtils } from '@/components/commonView/utils';
import { ApplyTransferMaterialFileTableItem } from '@/components/commonView/types';
defineOptions({
  name: 'RewardGrantRecordView',
@@ -39,23 +43,28 @@
  },
  {
    id: '2',
    enCode: 'settleTime',
    name: '奖励金发放日期',
    enCode: 'applySumAmount',
    name: '申报总额',
  },
  {
    id: '3',
    enCode: 'incomeTime',
    name: '奖励金到账日期',
    enCode: 'financeToAmount',
    name: '财政拨付金额',
  },
  {
    id: '4',
    enCode: 'applySumAmount',
    name: '发放金额',
    enCode: 'financeTime',
    name: '财政拨付日期',
  },
  {
    id: '5',
    enCode: 'incomeStatus',
    name: '到账确认结果',
    enCode: 'transferToAmount',
    name: '平台充值金额',
  },
  {
    id: '6',
    enCode: 'settleTime',
    name: '平台充值日期',
  },
];
@@ -64,6 +73,9 @@
    data: {
      enCode: 'checkBtn',
      name: '查看凭证',
    },
    emits: {
      onClick: (row) => openMaterialFileDialog(row),
    },
  },
]);
@@ -106,14 +118,25 @@
    },
    columnsRenderProps: {
      settleTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      incomeTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      financeTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      applySumAmount: { type: 'money' },
      incomeStatus: { type: 'enum', valueEnum: IncomeStatusEnumText },
      financeToAmount: { type: 'money' },
      transferToAmount: { type: 'money' },
    },
  }
);
function handlePreview(row: API.InsureBatchBillDto) {}
function openMaterialFileDialog(row: API.GetParkCustomerBountyGrantOutput) {
  handleMaterialFileAdd({
    list: FourStreamsMaterialUtils.initApplyTransferMaterialFileList(row),
  });
}
const { dialogProps: dialogMaterialFileProps, handleAdd: handleMaterialFileAdd } = useFormDialog({
  defaultFormParams: {
    list: [] as ApplyTransferMaterialFileTableItem[],
  },
});
onMounted(async () => {
  await getList();
src/views/Home/Home.vue
@@ -46,16 +46,16 @@
              unit="家"
            />
          </DataBoardCard>
          <DataBoardCard title="累计已发放奖励金">
          <DataBoardCard title="累计已发放">
            <DataBoardCardPrice :value="detail?.accumulatedHasSettleRewardAmount ?? 0" unit="元" />
          </DataBoardCard>
          <DataBoardCard title="累计待发放奖励金">
          <DataBoardCard title="累计待发放">
            <DataBoardCardPrice
              :value="detail?.accumulatedWaitForSettleRewardAmount ?? 0"
              unit="元"
            />
          </DataBoardCard>
          <DataBoardCard title="累计已使用奖励金">
          <DataBoardCard title="累计已使用">
            <DataBoardCardPrice :value="detail?.accumulatedUsedRewardAmount ?? 0" unit="元" />
          </DataBoardCard>
        </div>
src/views/MaterialReview/MaterialReviewAudit.vue
@@ -116,6 +116,7 @@
  enterpriseOperateFileUrl: [] as UploadUserFile[],
  bountyAssignFileUlr: [] as UploadUserFile[],
  bountyCollectFileUrl: [] as UploadUserFile[],
  enterpriseRelateFileUrl: [] as UploadUserFile[],
  status: '' as any as BountyCheckStatusEnum,
  remark: '',
@@ -142,6 +143,7 @@
    form.enterpriseOperateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseOperateFileUrl);
    form.bountyAssignFileUlr = convertApi2FormUrlOnlyOne(data?.bountyAssignFileUlr);
    form.bountyCollectFileUrl = convertApi2FormUrlOnlyOne(data?.bountyCollectFileUrl);
    form.enterpriseRelateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseRelateFileUrl);
    getList();
  },
src/views/MaterialReview/MaterialReviewDetail.vue
@@ -89,6 +89,7 @@
  enterpriseOperateFileUrl: [] as UploadUserFile[],
  bountyAssignFileUlr: [] as UploadUserFile[],
  bountyCollectFileUrl: [] as UploadUserFile[],
  enterpriseRelateFileUrl: [] as UploadUserFile[],
  outCheckStatus: '' as any as BountyCheckStatusEnum,
  outCheckRemark: '',
@@ -119,6 +120,7 @@
    form.enterpriseOperateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseOperateFileUrl);
    form.bountyAssignFileUlr = convertApi2FormUrlOnlyOne(data?.bountyAssignFileUlr);
    form.bountyCollectFileUrl = convertApi2FormUrlOnlyOne(data?.bountyCollectFileUrl);
    form.enterpriseRelateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseRelateFileUrl);
    getList();
  },
@@ -153,14 +155,6 @@
    },
    columnsRenderProps: {
      authType: { type: 'enum', valueEnum: EnterpriseTypeText },
      // licenseUrl: {
      //   type: 'url',
      //   formatter: (row: API.UserCertificationAuditListDto) => setOSSLink(row.licenseUrl),
      //   modal: true,
      //   showDownloadBtn: true,
      //   showPreviewBtn: false,
      //   downloadBtnText: '查看',
      // },
    },
  }
);
src/views/Reward/RewardDeclareDetail.vue
@@ -68,6 +68,7 @@
  enterpriseOperateFileUrl: [] as UploadUserFile[],
  bountyAssignFileUlr: [] as UploadUserFile[],
  bountyCollectFileUrl: [] as UploadUserFile[],
  enterpriseRelateFileUrl: [] as UploadUserFile[],
});
const { data: detail, isLoading } = useQuery({
@@ -80,7 +81,7 @@
      }
    );
  },
  placeholderData: () => ({} as API.ParkBountyApplyBaseInfo),
  placeholderData: () => ({} as API.OutCheckParkBountyApplyBaseInfo),
  onSuccess(data) {
    form.batchNo = data.batchNo;
    form.parkName = data.parkName;
@@ -91,6 +92,7 @@
    form.enterpriseOperateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseOperateFileUrl);
    form.bountyAssignFileUlr = convertApi2FormUrlOnlyOne(data?.bountyAssignFileUlr);
    form.bountyCollectFileUrl = convertApi2FormUrlOnlyOne(data?.bountyCollectFileUrl);
    form.enterpriseRelateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseRelateFileUrl);
    getList();
  },
src/views/Reward/RewardGrant.vue
@@ -14,7 +14,18 @@
              @change="getList()"
            ></FieldDatePicker>
          </QueryFilterItem>
          <QueryFilterItem tip-content="发放日期">
          <QueryFilterItem tip-content="拨付日期">
            <FieldDatePicker
              v-model="extraParamState.financeTime"
              type="daterange"
              range-separator="~"
              start-placeholder="开始日期"
              end-placeholder="结束日期"
              clearable
              @change="getList()"
            ></FieldDatePicker>
          </QueryFilterItem>
          <QueryFilterItem tip-content="充值日期">
            <FieldDatePicker
              v-model="extraParamState.settleTime"
              type="daterange"
@@ -25,7 +36,16 @@
              @change="getList()"
            ></FieldDatePicker>
          </QueryFilterItem>
          <QueryFilterItem>
          <QueryFilterItem tip-content="财政拨付状态">
            <FieldRadio
              v-model="extraParamState.financeStatus"
              :value-enum="FinanceStatusEnumText"
              buttonStyle
              showAllBtn
              @change="getList()"
            />
          </QueryFilterItem>
          <QueryFilterItem tip-content="平台充值状态">
            <FieldRadio
              v-model="extraParamState.settleStatus"
              :value-enum="SettleStatusEnumText"
@@ -47,15 +67,18 @@
      </ProTableQueryFilterBar>
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
        <template #operationBtn-checkBtn="{ data, row }">
          <PreviewBtnV2
            class="pro-table-operation-btn"
            :url="convertApi2FormUrlBySeparator(row.settleFileUrl ?? '')"
            preview-btn-text="查看凭证"
          />
        </template>
      </ProTableV2>
      <RewardGrantDialog v-bind="dialogProps"></RewardGrantDialog>
      <FourStreamsMaterialFileDialog
        v-bind="dialogMaterialFileProps"
        :show-upload-btn="false"
        :show-delete-btn="false"
        :show-check-btn="false"
        downloadBtnText="查看"
        title="查看凭证"
        :BusinessTypeEnumText="TransferFileEnumInRewardGrandText"
      />
      <FinancialDialog v-bind="dialogFinancialProps"></FinancialDialog>
      <PlateformDialog v-bind="dialogPlateformProps"></PlateformDialog>
    </AppContainer>
  </LoadingLayout>
</template>
@@ -74,21 +97,26 @@
  FieldDatePicker,
  useFormDialog,
  UploadUserFile,
  PreviewBtnV2,
} from '@bole-core/components';
import { Message, OrderInputType } from '@bole-core/core';
import { format } from '@/utils';
import {
  convertApi2FormUrl,
  convertApi2FormUrlBySeparator,
  downloadFileByUrl,
  format,
} from '@/utils';
import { SettleStatusEnum, SettleStatusEnumText } from '@/constants';
  SettleStatusEnum,
  SettleStatusEnumText,
  FinanceStatusEnum,
  FinanceStatusEnumText,
} from '@/constants';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import RewardGrantDialog from './components/RewardGrantDialog.vue';
import FinancialDialog from './components/FinancialDialog.vue';
import PlateformDialog from './components/PlateformDialog.vue';
import _ from 'lodash';
import { ModelValueType } from 'element-plus';
import { useQueryClient } from '@tanstack/vue-query';
import { FourStreamsMaterialUtils } from '@/components/commonView/utils';
import {
  TransferFileEnumInRewardGrandText,
  TransferFileEnumInRewardGrandTableItem,
} from '@/components/commonView/types';
defineOptions({
  name: 'RewardGrant',
@@ -113,12 +141,12 @@
  {
    id: '4',
    enCode: 'applyMonth',
    name: '申请奖励金月份',
    name: '申请平台奖励月份',
  },
  {
    id: '5',
    enCode: 'applySumAmount',
    name: '奖励金汇总金额(元)',
    name: '平台奖励汇总金额(元)',
  },
  {
    id: '6',
@@ -127,13 +155,23 @@
  },
  {
    id: '7',
    enCode: 'settleStatus',
    name: '发放状态',
    enCode: 'financeStatus',
    name: '财政拨付状态',
  },
  {
    id: '8',
    enCode: 'financeTime',
    name: '拨付日期',
  },
  {
    id: '9',
    enCode: 'settleStatus',
    name: '平台充值状态',
  },
  {
    id: '10',
    enCode: 'settleTime',
    name: '发放日期',
    name: '充值日期',
  },
];
@@ -149,11 +187,24 @@
  },
  {
    data: {
      enCode: 'grantBtn',
      name: '发放',
      enCode: 'financialBtn',
      name: '财政拨付',
    },
    emits: {
      onClick: (role) => openDialog(role),
      onClick: (role) => openFinancialDialog(role),
    },
    extraProps: {
      hide: (row: API.GetParkBountyApplyListOutput) =>
        row.financeStatus === FinanceStatusEnum.HasIncome,
    },
  },
  {
    data: {
      enCode: 'plateformBtn',
      name: '平台充值',
    },
    emits: {
      onClick: (role) => openPlateformDialog(role),
    },
    extraProps: {
      hide: (row: API.GetParkBountyApplyListOutput) =>
@@ -165,9 +216,13 @@
      enCode: 'checkBtn',
      name: '查看凭证',
    },
    emits: {
      onClick: (row) => openMaterialFileDialog(row),
    },
    extraProps: {
      hide: (row: API.GetParkBountyApplyListOutput) =>
        row.settleStatus === SettleStatusEnum.WaitForSettle,
        row.settleStatus === SettleStatusEnum.WaitForSettle &&
        row.financeStatus === FinanceStatusEnum.WaitForIncome,
    },
  },
]);
@@ -201,10 +256,13 @@
        },
        batchNo: extraParamState.batchNo,
        settleStatus: extraParamState.settleStatus,
        financeStatus: extraParamState.financeStatus,
        creationTimeBegin: format(extraParamState.creationTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
        creationTimeEnd: format(extraParamState.creationTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
        settleTimeBegin: format(extraParamState.settleTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
        settleTimeEnd: format(extraParamState.settleTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
        financeTimeBegin: format(extraParamState.financeTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
        financeTimeEnd: format(extraParamState.financeTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
      };
      let res = await parkBountyApplyServices.getParkBountyApplyList(params, {
        showLoading: !state.loading,
@@ -216,21 +274,25 @@
    defaultExtraParams: {
      batchNo: '',
      settleStatus: '' as any as SettleStatusEnum,
      financeStatus: '' as any as FinanceStatusEnum,
      creationTime: [] as unknown as ModelValueType,
      settleTime: [] as unknown as ModelValueType,
      financeTime: [] as unknown as ModelValueType,
      orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
    },
    columnsRenderProps: {
      applyMonth: { type: 'date', format: 'YYYY年MM月' },
      creationTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      settleTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      financeTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      applySumAmount: { type: 'money' },
      settleStatus: { type: 'enum', valueEnum: SettleStatusEnumText },
      financeStatus: { type: 'enum', valueEnum: FinanceStatusEnumText },
    },
  }
);
function goDetail(row: any) {
function goDetail(row: API.GetParkBountyApplyListOutput) {
  router.push({
    name: 'RewardDeclareDetail',
    params: {
@@ -239,26 +301,84 @@
  });
}
const { dialogProps, handleAdd, handleEdit, editForm } = useFormDialog({
  onConfirm: handleAddOrEdit,
function openMaterialFileDialog(row: API.GetParkBountyApplyListOutput) {
  handleMaterialFileAdd({
    list: FourStreamsMaterialUtils.initApplyRewardGrandFileList(row),
  });
}
const { dialogProps: dialogMaterialFileProps, handleAdd: handleMaterialFileAdd } = useFormDialog({
  defaultFormParams: {
    list: [] as TransferFileEnumInRewardGrandTableItem[],
  },
});
const queryClient = useQueryClient();
const {
  dialogProps: dialogFinancialProps,
  handleEdit: handleFinancialEdit,
  editForm: editFinancialForm,
} = useFormDialog({
  onConfirm: handleFinancial,
  defaultFormParams: {
    parkBountyApplyId: '',
    financeSumAmount: 0,
    financeFileUrl: [] as UploadUserFile[],
  },
});
function openFinancialDialog(row?: API.GetParkBountyApplyListOutput) {
  handleFinancialEdit({
    parkBountyApplyId: row.id,
    financeSumAmount: 0,
    financeFileUrl: [] as UploadUserFile[],
  });
}
async function handleFinancial() {
  try {
    let params: API.ParkBountyApplyFinanceFileInput = {
      parkBountyApplyId: editFinancialForm.parkBountyApplyId,
      financeSumAmount: editFinancialForm.financeSumAmount,
      financeFileUrl: editFinancialForm.financeFileUrl.map((x) => x.path).join('|'),
    };
    let res = await parkBountyApplyServices.parkBountyApplyFinanceBill(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
      queryClient.invalidateQueries({
        queryKey: ['parkBountyApplyServices/getGoverDataBoard'],
      });
    }
  } catch (error) {}
}
const {
  dialogProps: dialogPlateformProps,
  handleEdit: handlePlateformEdit,
  editForm: editPlateformForm,
} = useFormDialog({
  onConfirm: handlePlateform,
  defaultFormParams: {
    parkBountyApplyId: '',
    settleSumAmount: 0,
    settleFileUrl: [] as UploadUserFile[],
  },
});
function openDialog(row?: API.GetParkBountyApplyListOutput) {
  handleEdit({
function openPlateformDialog(row?: API.GetParkBountyApplyListOutput) {
  handlePlateformEdit({
    parkBountyApplyId: row.id,
    settleSumAmount: 0,
    settleFileUrl: [] as UploadUserFile[],
  });
}
const queryClient = useQueryClient();
async function handleAddOrEdit() {
async function handlePlateform() {
  try {
    let params: API.ParkBountyApplySettleInput = {
      parkBountyApplyId: editForm.parkBountyApplyId,
      settleFileUrl: editForm.settleFileUrl.map((x) => x.path).join('|'),
      parkBountyApplyId: editPlateformForm.parkBountyApplyId,
      settleSumAmount: editPlateformForm.settleSumAmount,
      settleFileUrl: editPlateformForm.settleFileUrl.map((x) => x.path).join('|'),
    };
    let res = await parkBountyApplyServices.parkBountyApplySettle(params);
    if (res) {
src/views/Reward/components/FinancialDialog.vue
copy from src/views/Reward/components/RewardGrantDialog.vue copy to src/views/Reward/components/FinancialDialog.vue
File was copied from src/views/Reward/components/RewardGrantDialog.vue
@@ -1,6 +1,6 @@
<template>
  <ProDialog
    title="奖励金发放"
    title="财政拨付"
    v-model="innerVisible"
    destroy-on-close
    draggable
@@ -10,12 +10,24 @@
  >
    <ProForm :model="innerForm" ref="dialogForm" label-width="120px">
      <ProFormItemV2
        label="上传发放凭证:"
        prop="settleFileUrl"
        label="拨付总额:"
        prop="financeSumAmount"
        :check-rules="[{ message: '请输入拨付总额', type: 'number' }]"
      >
        <ProFormInputNumber
          v-model="innerForm.financeSumAmount"
          :controls="false"
          :min="0"
          :precision="2"
        />
      </ProFormItemV2>
      <ProFormItemV2
        label="上传拨付凭证:"
        prop="financeFileUrl"
        :check-rules="[{ message: '请上传发放凭证', type: 'upload' }]"
      >
        <ProFormUpload
          v-model:file-url="innerForm.settleFileUrl"
          v-model:file-url="innerForm.financeFileUrl"
          :limitFileSize="50"
          accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
        >
@@ -44,14 +56,15 @@
import { FormInstance } from 'element-plus';
defineOptions({
  name: 'RewardGrantDialog',
  name: 'FinancialDialog',
});
type Props = {
  modelValue: boolean;
  form?: {
    parkBountyApplyId: string;
    settleFileUrl: UploadUserFile[];
    financeSumAmount: number;
    financeFileUrl: UploadUserFile[];
  };
};
src/views/Reward/components/PlateformDialog.vue
File was renamed from src/views/Reward/components/RewardGrantDialog.vue
@@ -1,6 +1,6 @@
<template>
  <ProDialog
    title="奖励金发放"
    title="平台充值"
    v-model="innerVisible"
    destroy-on-close
    draggable
@@ -10,7 +10,19 @@
  >
    <ProForm :model="innerForm" ref="dialogForm" label-width="120px">
      <ProFormItemV2
        label="上传发放凭证:"
        label="充值总额:"
        prop="settleSumAmount"
        :check-rules="[{ message: '请输入充值总额', type: 'number' }]"
      >
        <ProFormInputNumber
          v-model="innerForm.settleSumAmount"
          :controls="false"
          :min="0"
          :precision="2"
        />
      </ProFormItemV2>
      <ProFormItemV2
        label="上传充值凭证:"
        prop="settleFileUrl"
        :check-rules="[{ message: '请上传发放凭证', type: 'upload' }]"
      >
@@ -37,20 +49,20 @@
  UploadUserFile,
  ProForm,
  ProFormItemV2,
  ProFormSelect,
  ProFormInputNumber,
  ProFormUpload,
  ProFormInputNumber,
} from '@bole-core/components';
import { FormInstance } from 'element-plus';
defineOptions({
  name: 'RewardGrantDialog',
  name: 'PlateformDialog',
});
type Props = {
  modelValue: boolean;
  form?: {
    parkBountyApplyId: string;
    settleSumAmount: number;
    settleFileUrl: UploadUserFile[];
  };
};