wupengfei
3 天以前 07e6a938f7993abf056dc4b106d4ad4fc6354bb5
feat: 接口
10个文件已修改
200 ■■■■ 已修改文件
src/services/api/ParkBountyApply.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/common/common.ts 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Reward/FinancialApproval.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Reward/RewardApplyTradeCheck.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Reward/RewardGrantRegister.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Reward/components/BatchRegisterDialog.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Reward/components/RegisterGrantDialog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Reward/components/RewardApplyTradeCheckDialog.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Reward/constants/columns.ts 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/ParkBountyApply.ts
@@ -457,6 +457,24 @@
  );
}
/** 获取批量登记中未财政拨付的企业 GET /api/ParkBountyApply/GetParkBountyApplyBatchFinanceRegEnterprise */
export async function getParkBountyApplyBatchFinanceRegEnterprise(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetParkBountyApplyBatchFinanceRegEnterpriseParams,
  options?: API.RequestConfig
) {
  return request<API.GetNotTransferCompanyNameListOutput[]>(
    '/api/ParkBountyApply/GetParkBountyApplyBatchFinanceRegEnterprise',
    {
      method: 'GET',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
}
/** 运营端-奖励金发放-入账-获取批量入账中未入账的企业 GET /api/ParkBountyApply/GetParkBountyApplyBatchTransferEnterprise */
export async function getParkBountyApplyBatchTransferEnterprise(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
@@ -465,6 +483,24 @@
) {
  return request<API.GetNotTransferCompanyNameListOutput[]>(
    '/api/ParkBountyApply/GetParkBountyApplyBatchTransferEnterprise',
    {
      method: 'GET',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
}
/** 获取批量登记中未登记的企业 GET /api/ParkBountyApply/GetParkBountyApplyBatchTransferRegEnterprise */
export async function getParkBountyApplyBatchTransferRegEnterprise(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetParkBountyApplyBatchTransferRegEnterpriseParams,
  options?: API.RequestConfig
) {
  return request<API.GetNotTransferCompanyNameListOutput[]>(
    '/api/ParkBountyApply/GetParkBountyApplyBatchTransferRegEnterprise',
    {
      method: 'GET',
      params: {
@@ -1042,6 +1078,14 @@
  });
}
/** 修复数据3.4.2.6 POST /api/ParkBountyApply/RepairData3_4_2_6 */
export async function repairData3426(options?: API.RequestConfig) {
  return request<any>('/api/ParkBountyApply/RepairData3_4_2_6', {
    method: 'POST',
    ...(options || {}),
  });
}
/** 保存奖金分配表、奖励金汇总表、奖励总额 POST /api/ParkBountyApply/SaveParkBountyApplyCollectFile */
export async function saveParkBountyApplyCollectFile(
  body: API.SaveParkBountyApplyCollectFileInput,
src/services/api/typings.d.ts
@@ -87,6 +87,8 @@
    bankName?: string;
    bankBranchName?: string;
    bankCardNumber?: string;
    /** 密码 */
    password?: string;
  }
  interface AddEnterpriseMaterialFileInput {
@@ -1638,7 +1640,15 @@
    parkBountyApplyId?: string;
  }
  interface APIgetParkBountyApplyBatchFinanceRegEnterpriseParams {
    parkBountyApplyId?: string;
  }
  interface APIgetParkBountyApplyBatchTransferEnterpriseParams {
    parkBountyApplyId?: string;
  }
  interface APIgetParkBountyApplyBatchTransferRegEnterpriseParams {
    parkBountyApplyId?: string;
  }
@@ -8992,8 +9002,15 @@
    transferTimeBegin?: string;
    /** 出账结束日期 */
    transferTimeEnd?: string;
    /** 审核起始日期 */
    auditTimeBegin?: string;
    /** 审核结束日期 */
    auditTimeEnd?: string;
    /** 园区Id */
    parkId?: string;
    enterpriseId?: string;
    auditStatus?: EnumParkBountyTradeDetailAuditStatus;
    financeAuditStatus?: EnumParkBountyTradeDetailAuditStatus;
  }
  interface GetParkBountyTradeDetailOutput {
@@ -9007,6 +9024,8 @@
    /** 社会统一信用代码 */
    societyCreditCode?: string;
    authType?: EnterpriseTypeEnum;
    /** 园区Id */
    parkId?: string;
    /** 申请园区 */
    parkName?: string;
    /** 申请园区类型 */
@@ -9024,11 +9043,17 @@
    /** 奖励金余额 */
    remianAmount?: number;
    financeType?: FinanceTypeEnum;
    showAuditStatus?: EnumParkBountyTradeDetailAuditStatus;
    auditStatus?: EnumParkBountyTradeDetailAuditStatus;
    /** 审核备注 */
    auditRemark?: string;
    /** 审核时间 */
    auditTime?: string;
    financeAuditStatus?: EnumParkBountyTradeDetailAuditStatus;
    /** 财务审核备注 */
    financeAuditRemark?: string;
    /** 财务审核时间 */
    financeAuditTime?: string;
    /** 审核凭证 */
    payAuditFileUrl?: string;
  }
@@ -9051,6 +9076,10 @@
    transferTimeBegin?: string;
    /** 出账结束日期 */
    transferTimeEnd?: string;
    /** 审核起始日期 */
    auditTimeBegin?: string;
    /** 审核结束日期 */
    auditTimeEnd?: string;
  }
  interface GetParkBountyTradeOutput {
@@ -10879,6 +10908,12 @@
  }
  interface ImportBountyApplyDataOutput {
    /** 平台拨付总额 */
    settleSumAmount?: number;
    /** 财政拨付总额 */
    financeSumAmount?: number;
    /** 申报总额 */
    applySumAmount?: number;
    /** 错误数据列表 */
    error?: ExportBountyApplyData[];
  }
@@ -19852,6 +19887,10 @@
    bountyCollectFileUrl?: string;
    /** 申报总额 */
    applySumAmount?: number;
    /** 平台拨付总额 */
    settleSumAmount?: number;
    /** 财政拨付总额 */
    financeSumAmount?: number;
    listFiles?: CustomerUploadMonthApplyFileTypeDto[];
  }
src/utils/common/common.ts
@@ -1,5 +1,5 @@
import dayjs from 'dayjs';
import { BoleRegExp } from '@bole-core/core';
import { BoleRegExp, Message } from '@bole-core/core';
import { round, floor, omitBy } from 'lodash';
export function format(date: string | Date, fmt = 'YYYY-MM-DD') {
@@ -115,3 +115,33 @@
  }
  return roleName;
}
export function copyTextToClipboard(text: string) {
  if (navigator.clipboard && window.isSecureContext) {
    // navigator clipboard 向剪贴板写文本
    navigator.clipboard
      .writeText(text)
      .then(() => {
        Message.successMessage('已复制');
      })
      .catch((error) => {
        console.error('Failed to copy text to clipboard:', error);
      });
  } else {
    // 创建text area
    let textArea = document.createElement('textarea');
    textArea.value = text;
    // 使text area不在viewport,同时设置不可见
    textArea.style.position = 'absolute';
    textArea.style.opacity = 0 as any;
    textArea.style.left = '-999999px';
    textArea.style.top = '-999999px';
    document.body.appendChild(textArea);
    textArea.select();
    let res = document.execCommand('copy');
    if (res) {
      Message.successMessage('已复制');
    }
    textArea.remove();
  }
}
src/views/Reward/FinancialApproval.vue
@@ -16,7 +16,7 @@
          </QueryFilterItem>
          <QueryFilterItem tip-content="审核状态">
            <FieldRadio
              v-model="extraParamState.auditStatus"
              v-model="extraParamState.financeAuditStatus"
              :value-enum="EnumParkBountyTradeDetailAuditStatusText"
              buttonStyle
              showAllBtn
@@ -37,8 +37,8 @@
          <QueryFilterItem>
            <SearchInput
              v-model="extraParamState.searchKeyWord"
              style="width: 200px"
              placeholder="企业名称/信用代码"
              style="width: 300px"
              placeholder="企业名/信用代码/联系人/联系方式"
              @on-click-search="getList"
            >
            </SearchInput>
@@ -102,7 +102,7 @@
    },
    extraProps: {
      hide: (row: API.GetParkBountyTradeDetailOutput) =>
        row.auditStatus === EnumParkBountyTradeDetailAuditStatus.Wait,
        row.financeAuditStatus === EnumParkBountyTradeDetailAuditStatus.Wait,
    },
  },
  {
@@ -115,7 +115,7 @@
    },
    extraProps: {
      hide: (row: API.GetParkBountyTradeDetailOutput) =>
        row.auditStatus !== EnumParkBountyTradeDetailAuditStatus.Wait,
        row.financeAuditStatus !== EnumParkBountyTradeDetailAuditStatus.Wait,
    },
  },
]);
@@ -152,12 +152,10 @@
          orderInput: extraParamState.orderInput,
        },
        searchKeyWord: extraParamState.searchKeyWord,
        // transferTimeBegin: format(extraParamState.transferTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
        // transferTimeEnd: format(extraParamState.transferTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
        creationTimeBegin: format(extraParamState.creationTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
        creationTimeEnd: format(extraParamState.creationTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
        // "enterpriseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        // "auditStatus": 10
        parkId: extraParamState.enterpriseId,
        financeAuditStatus: extraParamState.financeAuditStatus,
        auditTimeBegin: format(extraParamState.creationTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
        auditTimeEnd: format(extraParamState.creationTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
      };
      let res = await parkBountyApplyServices.getParkBountyTradeDetailList(params, {
        showLoading: !state.loading,
@@ -169,16 +167,17 @@
    defaultExtraParams: {
      searchKeyWord: '',
      enterpriseId: '',
      auditStatus: '' as any as EnumParkBountyTradeDetailAuditStatus,
      financeAuditStatus: '' as any as EnumParkBountyTradeDetailAuditStatus,
      creationTime: [] as unknown as ModelValueType,
      orderInput: [{ property: 'tradeTime', order: OrderInputType.Desc }],
    },
    columnsRenderProps: {
      authType: { type: 'enum', valueEnum: EnterpriseTypeText },
      tradeTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      financeAuditTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      tradeAmount: { type: 'money' },
      remianAmount: { type: 'money' },
      auditStatus: {
      financeAuditStatus: {
        type: 'tag',
        valueEnum: EnumParkBountyTradeDetailAuditStatusText,
        tagTypeEnum: EnumParkBountyTradeDetailAuditStatusTag,
@@ -192,11 +191,13 @@
    id: row.id,
    isCheck,
    auditStatus:
      row.auditStatus === EnumParkBountyTradeDetailAuditStatus.Reject
      row.financeAuditStatus === EnumParkBountyTradeDetailAuditStatus.Reject
        ? EnumParkBountyTradeDetailAuditStatus.Reject
        : EnumParkBountyTradeDetailAuditStatus.Pass,
    auditRemark: row.auditRemark,
    payAuditFileUrl: convertApi2FormUrlOnlyOne(row.payAuditFileUrl),
    auditRemark: row.financeAuditRemark,
    payAuditFileUrl: isCheck
      ? convertApi2FormUrlOnlyOne(row.payAuditFileUrl)
      : ([] as UploadUserFile[]),
    userName: row.userName,
    enterpriseName: row.enterpriseName,
    societyCreditCode: row.societyCreditCode,
@@ -207,9 +208,10 @@
    tradeAmount: row.tradeAmount,
    remianAmount: row.remianAmount,
    tradeTime: row.tradeTime,
    auditTime: row.auditTime,
    auditTime: row.financeAuditTime,
    payRemark: row.payRemark,
    payFileUrl: convertApi2FormUrlOnlyOne(row.payFileUrl),
    title: isCheck ? '详情' : '财务审批',
  });
}
@@ -234,6 +236,7 @@
    auditTime: '',
    payRemark: '',
    payFileUrl: [] as UploadUserFile[],
    title: '',
  },
});
@@ -247,7 +250,7 @@
      /** 审核凭证 */
      payAuditFileUrl: editForm.payAuditFileUrl?.[0]?.path ?? '',
    };
    let res = await parkBountyApplyServices.auditParkBountyApplyTrade(params);
    let res = await parkBountyApplyServices.financeAuditParkBountyApplyTrade(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
src/views/Reward/RewardApplyTradeCheck.vue
@@ -37,8 +37,8 @@
          <QueryFilterItem>
            <SearchInput
              v-model="extraParamState.searchKeyWord"
              style="width: 200px"
              placeholder="企业名称/信用代码"
              style="width: 300px"
              placeholder="企业名/信用代码/联系人/联系方式"
              @on-click-search="getList"
            >
            </SearchInput>
@@ -152,12 +152,10 @@
          orderInput: extraParamState.orderInput,
        },
        searchKeyWord: extraParamState.searchKeyWord,
        // transferTimeBegin: format(extraParamState.transferTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
        // transferTimeEnd: format(extraParamState.transferTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
        parkId: extraParamState.enterpriseId,
        creationTimeBegin: format(extraParamState.creationTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
        creationTimeEnd: format(extraParamState.creationTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
        // "enterpriseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        // "auditStatus": 10
        auditStatus: extraParamState.auditStatus,
      };
      let res = await parkBountyApplyServices.getParkBountyTradeDetailList(params, {
        showLoading: !state.loading,
@@ -176,6 +174,7 @@
    columnsRenderProps: {
      authType: { type: 'enum', valueEnum: EnterpriseTypeText },
      tradeTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      auditTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      tradeAmount: { type: 'money' },
      remianAmount: { type: 'money' },
      auditStatus: {
@@ -210,6 +209,7 @@
    auditTime: row.auditTime,
    payRemark: row.payRemark,
    payFileUrl: convertApi2FormUrlOnlyOne(row.payFileUrl),
    title: isCheck ? '详情' : '出账审批',
  });
}
@@ -234,6 +234,7 @@
    auditTime: '',
    payRemark: '',
    payFileUrl: [] as UploadUserFile[],
    title: '',
  },
});
src/views/Reward/RewardGrantRegister.vue
@@ -174,7 +174,7 @@
  },
});
function openMaterialFileDialog(row: API.GetParkBountyApplyListOutput) {
function openMaterialFileDialog(row: API.ParkBountyApplyTransferDetailInfo) {
  handleMaterialFileAdd({
    list: FourStreamsMaterialUtils.initApplyRewardGrandFileList(row),
  });
@@ -235,7 +235,7 @@
async function parkBountyApplyTransferReg() {
  try {
    let params: API.ParkBountyApplyTransferInput = {
      parkBountyApplyDetailId: id,
      parkBountyApplyDetailId: editRegisterForm.parkBountyApplyDetailId,
      transferToAmount: editRegisterForm.amount,
      parkBountyApplyId: editRegisterForm.parkBountyApplyId,
      transferToFileUrl: convertFormUrl2ApiBySeparator(editRegisterForm.fileUrl),
src/views/Reward/components/BatchRegisterDialog.vue
@@ -131,7 +131,7 @@
async function getParkBountyApplyBatchTransferEnterprise() {
  try {
    let res = await parkBountyApplyServices.getParkBountyApplyBatchTransferEnterprise({
    let res = await parkBountyApplyServices.getParkBountyApplyBatchTransferRegEnterprise({
      parkBountyApplyId: form.value.parkBountyApplyId,
    });
    if (res) {
@@ -144,7 +144,7 @@
async function getParkBountyApplyBatchFinanceEnterprise() {
  try {
    let res = await parkBountyApplyServices.getParkBountyApplyBatchFinanceEnterprise({
    let res = await parkBountyApplyServices.getParkBountyApplyBatchFinanceRegEnterprise({
      parkBountyApplyId: form.value.parkBountyApplyId,
    });
    if (res) {
src/views/Reward/components/RegisterGrantDialog.vue
@@ -64,7 +64,7 @@
  ProFormUpload,
  UploadUserFile,
} from '@bole-core/components';
import { IncomeTypeEnumText, IncomeTypeEnum, FinanceStatusEnum } from '@/constants';
import { IncomeTypeEnumText, IncomeTypeEnum } from '@/constants';
defineOptions({
  name: 'RegisterGrantDialog',
src/views/Reward/components/RewardApplyTradeCheckDialog.vue
@@ -1,5 +1,11 @@
<template>
  <ProDialog title="出账审批" v-model="visible" @close="onDialogClose" destroy-on-close draggable>
  <ProDialog
    :title="form.title"
    v-model="visible"
    @close="onDialogClose"
    destroy-on-close
    draggable
  >
    <PortraitTableWithAttachment v-bind="portraitTableWithAttachmentProps">
      <template #title>
        <el-row class="portrait-table-with-attachment-title">
@@ -109,15 +115,12 @@
  ProFormDatePicker,
  UploadUserFile,
} from '@bole-core/components';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import { copyTextToClipboard, usePortraitTableWithAttachment } from '@/hooks';
import { convertApi2FormUrl, convertApi2FormUrlOnlyOne } from '@/utils';
import { useQuery } from '@tanstack/vue-query';
import { usePortraitTableWithAttachment } from '@/hooks';
import { copyTextToClipboard } from '@/utils';
import {
  EnumParkBountyTradeDetailAuditStatus,
  EnumParkBountyTradeDetailAuditStatusTextForAdudit,
  EnterpriseType,
  EnterpriseTypeText,
} from '@/constants';
defineOptions({
@@ -243,7 +246,7 @@
function handleApply() {
  copyTextToClipboard(
    `开户名称:${form.value?.societyCreditCode}\n开户银行:${form.value?.contactPhone}\n开户账号:${form.value?.userName}`
    `开户名称:${'太平财产保险有限公司抚州中心支公司'}\n开户银行:${'中国工商银行股份有限公司抚州赣东支行'}\n开户账号:${'1511 2001 2920 0156 069'}`
  );
}
</script>
src/views/Reward/constants/columns.ts
@@ -75,7 +75,7 @@
  },
  {
    id: '13',
    enCode: 'a',
    enCode: 'auditTime',
    name: '审核时间',
    width: 180,
  },
@@ -158,13 +158,13 @@
  },
  {
    id: '12',
    enCode: 'auditStatus',
    enCode: 'financeAuditStatus',
    name: '财务审核状态',
    width: 160,
  },
  {
    id: '13',
    enCode: 'a',
    enCode: 'financeAuditTime',
    name: '审核时间',
    width: 180,
  },