wupengfei
2025-04-09 1b0bbe7fbe3d62779356f0729f086ceb3901e17b
feat: 接口
18个文件已修改
1个文件已添加
1157 ■■■■ 已修改文件
src/components/commonView/DeclareEnterpriseTableView.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/enterpriseMaterial.ts 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/reward.ts 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/Customer.ts 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/ParkBountyApply.ts 295 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/ParkReward.ts 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 337 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Account/AccountManageList.vue 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Account/components/AddOrEditAccountDialog.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Account/components/ResetPasswordDialog.vue 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseInfo/EnterpriseInfo.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseInfo/components/EnterpriseBasicInfoView.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseInfo/components/EnterpriseDeclareRecordView.vue 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseInfo/components/RewardConsumeRecordView.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseInfo/components/RewardGrantRecordView.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/MaterialReview/MaterialReviewAudit.vue 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/MaterialReview/MaterialReviewDetail.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Reward/RewardDeclareDetail.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Reward/RewardGrant.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/commonView/DeclareEnterpriseTableView.vue
@@ -3,7 +3,7 @@
    <template #query>
      <QueryFilterItem>
        <SearchInput
          v-model="extraParamState.title"
          v-model="extraParamState.searchKeyWord"
          style="width: 250px"
          placeholder="企业名/信用代码"
          @on-click-search="getList"
@@ -39,7 +39,7 @@
import MateriaDetailDialog from './MateriaDetailDialog.vue';
import { FourStreamsMaterialFileTableItem } from './types';
import { OrderInputType } from '@bole-core/core';
import * as informationServices from '@/services/api/Information';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
defineOptions({
  name: 'DeclareEnterpriseTableView',
@@ -108,22 +108,22 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetInformationForManageInput = {
      let params: API.GetParkBountyApplyInfoInput = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        title: extraParamState.title,
        searchKeyWord: extraParamState.searchKeyWord,
      };
      let res = await informationServices.getInformationForManage(params);
      let res = await parkBountyApplyServices.getParkBountyApplyDetailList(params);
      return res;
    } catch (error) {}
  },
  {
    defaultExtraParams: {
      orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
      title: '',
      searchKeyWord: '',
    },
  }
);
@@ -134,7 +134,7 @@
  },
});
function openDialog(row?: API.IncentivePaymentsManageListOutput) {
function openDialog(row?: API.ParkBountyApplyDetailInfo) {
  handleEdit({
    list: [],
  });
src/constants/enterpriseMaterial.ts
@@ -109,3 +109,29 @@
  ...EnterpriseMaterialFileBusinessTypeEnumText,
  ...DutiableFileBusinessTypeEnumText,
};
export enum AuthType {
  /**
   * 人资公司
   */
  HumanResourceCompany = 10,
  /**
   * 行业配套服务公司
   */
  IndustryMating = 20,
  /**
   * 用工单位
   */
  Employers = 30,
  /**
   * 行业机构
   */
  IndustryBody = 40,
}
export const AuthTypeText = {
  [AuthType.HumanResourceCompany]: '人资公司',
  [AuthType.IndustryMating]: '配套服务商',
  [AuthType.Employers]: '甲方单位',
  [AuthType.IndustryBody]: '行业机构',
};
src/constants/reward.ts
@@ -50,3 +50,15 @@
  [IncomeStatusEnum.WaitForIncome]: '待入账',
  [IncomeStatusEnum.HasIncome]: '已入账',
};
export enum EnterpriseBountyPayTypeEnum {
  /**出金 */
  PayOut = 1,
  /**入金 */
  PayIn = 2,
}
export const EnterpriseBountyPayTypeEnumText = {
  [EnterpriseBountyPayTypeEnum.PayOut]: '出金',
  [EnterpriseBountyPayTypeEnum.PayIn]: '入金',
};
src/services/api/Customer.ts
@@ -47,6 +47,24 @@
  });
}
/** 运营端-政务端一园区客户管理企业基本信息 GET /api/Customer/GetParkCustomerManageBaseDetail */
export async function getParkCustomerManageBaseDetail(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetParkCustomerManageBaseDetailParams,
  options?: API.RequestConfig
) {
  return request<API.GetParkCustomerManageDetailOutput>(
    '/api/Customer/GetParkCustomerManageBaseDetail',
    {
      method: 'GET',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
}
/** 获取服务人员分页列表 POST /api/Customer/GetServiceStaffPage */
export async function getServiceStaffPage(
  body: API.QueryServiceStaffListInput,
src/services/api/ParkBountyApply.ts
@@ -2,13 +2,58 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 获取申报详情 POST /api/ParkBountyApply/GetParkBountyApplyDetail */
export async function getParkBountyApplyDetail(
  body: API.GetParkBountyApplyInfoInput,
/** 新增申报(第一步) POST /api/ParkBountyApply/AddParkBountyApply */
export async function addParkBountyApply(
  body: API.AddParkBountyApplyStepOneInput,
  options?: API.RequestConfig
) {
  return request<API.GetParkBountyApplyInfoOutput>(
    '/api/ParkBountyApply/GetParkBountyApplyDetail',
  return request<string>('/api/ParkBountyApply/AddParkBountyApply', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 继续申报 POST /api/ParkBountyApply/EditParkBountyApply */
export async function editParkBountyApply(
  body: API.EditParkBountyApplyStepOneInput,
  options?: API.RequestConfig
) {
  return request<number>('/api/ParkBountyApply/EditParkBountyApply', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 获取可选择公司和已剔除公司 POST /api/ParkBountyApply/GetCompanyNameList */
export async function getCompanyNameList(
  body: API.GetCompanyNameListInput,
  options?: API.RequestConfig
) {
  return request<API.GetBatchChooseCompanyOutput>('/api/ParkBountyApply/GetCompanyNameList', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 获取已申报企业列表 含可选择、已剔除 POST /api/ParkBountyApply/GetHasApplyCompanyNameList */
export async function getHasApplyCompanyNameList(
  body: API.GetHasApplyCompanyNameListInput,
  options?: API.RequestConfig
) {
  return request<API.GetBatchChooseCompanyOutput>(
    '/api/ParkBountyApply/GetHasApplyCompanyNameList',
    {
      method: 'POST',
      headers: {
@@ -20,7 +65,94 @@
  );
}
/** 获取奖励金发放列表 POST /api/ParkBountyApply/GetParkBountyApplyList */
/** 跟进园区查询公司分页列表 POST /api/ParkBountyApply/GetParkApplyCompanyList */
export async function getParkApplyCompanyList(
  body: API.GetApplyCompanyListInput,
  options?: API.RequestConfig
) {
  return request<API.GetParkApplyCompanyListOutputPageOutput>(
    '/api/ParkBountyApply/GetParkApplyCompanyList',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 查询奖励金申报企业公司列表 POST /api/ParkBountyApply/GetParkApplyCompanyStepTwoList */
export async function getParkApplyCompanyStepTwoList(
  body: API.GetParkApplyCompanyStepTwoListInput,
  options?: API.RequestConfig
) {
  return request<API.ParkBountyApplyDetailInfoPageOutput>(
    '/api/ParkBountyApply/GetParkApplyCompanyStepTwoList',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 运营端-政务端—获取申报详情-申报详情基础信息 POST /api/ParkBountyApply/GetParkBountyApplyDetailBaseInfo */
export async function getParkBountyApplyDetailBaseInfo(
  body: API.GetParkBountyApplyInfoInput,
  options?: API.RequestConfig
) {
  return request<API.ParkBountyApplyBaseInfo>(
    '/api/ParkBountyApply/GetParkBountyApplyDetailBaseInfo',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 运营端-政务端—获取申报详情—申报企业名单列表 POST /api/ParkBountyApply/GetParkBountyApplyDetailList */
export async function getParkBountyApplyDetailList(
  body: API.GetParkBountyApplyInfoInput,
  options?: API.RequestConfig
) {
  return request<API.ParkBountyApplyDetailInfoPageOutput>(
    '/api/ParkBountyApply/GetParkBountyApplyDetailList',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 获取申报企业上传的文件 POST /api/ParkBountyApply/GetParkBountyApplyFile */
export async function getParkBountyApplyFile(
  body: API.GetParkBountyApplyFileInput,
  options?: API.RequestConfig
) {
  return request<API.GetParkBountyApplyFileOutput>('/api/ParkBountyApply/GetParkBountyApplyFile', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 运营端-政务端—获取奖励金发放列表 POST /api/ParkBountyApply/GetParkBountyApplyList */
export async function getParkBountyApplyList(
  body: API.GetParkBountyApplyListInput,
  options?: API.RequestConfig
@@ -38,13 +170,13 @@
  );
}
/** 获取入账详情 POST /api/ParkBountyApply/GetParkBountyApplyTransferDetail */
export async function getParkBountyApplyTransferDetail(
/** 运营端—入账—奖励金入账详情基础信息 POST /api/ParkBountyApply/GetParkBountyApplyTransferDetailInfo */
export async function getParkBountyApplyTransferDetailInfo(
  body: API.GetParkBountyApplyTransferInfoInput,
  options?: API.RequestConfig
) {
  return request<API.GetParkBountyApplyTransferInfoOutput>(
    '/api/ParkBountyApply/GetParkBountyApplyTransferDetail',
  return request<API.ParkBountyApplyBaseInfo>(
    '/api/ParkBountyApply/GetParkBountyApplyTransferDetailInfo',
    {
      method: 'POST',
      headers: {
@@ -56,7 +188,94 @@
  );
}
/** 批量入账 POST /api/ParkBountyApply/ParkBountyApplyBatchTransfer */
/** 运营端—入账—申报企业名单 POST /api/ParkBountyApply/GetParkBountyApplyTransferDetailList */
export async function getParkBountyApplyTransferDetailList(
  body: API.GetParkBountyApplyTransferInfoInput,
  options?: API.RequestConfig
) {
  return request<API.ParkBountyApplyTransferDetailInfoPageOutput>(
    '/api/ParkBountyApply/GetParkBountyApplyTransferDetailList',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 运营端-政务端一园区客户管理详情一企业申报记录 POST /api/ParkBountyApply/GetParkCustomerBountyApplyList */
export async function getParkCustomerBountyApplyList(
  body: API.QueryParkCustomerBountyApplyInput,
  options?: API.RequestConfig
) {
  return request<API.GetParkCustomerBountyApplyOutputPageOutput>(
    '/api/ParkBountyApply/GetParkCustomerBountyApplyList',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 运营端一园区客户管理详情一奖励金发放记录 POST /api/ParkBountyApply/GetParkCustomerBountyGrantList */
export async function getParkCustomerBountyGrantList(
  body: API.QueryParkCustomerBountyApplyInput,
  options?: API.RequestConfig
) {
  return request<API.GetParkCustomerBountyGrantOutputPageOutput>(
    '/api/ParkBountyApply/GetParkCustomerBountyGrantList',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 运营端-政务端一园区客户管理列表 POST /api/ParkBountyApply/GetParkCustomerManagePage */
export async function getParkCustomerManagePage(
  body: API.QueryParkCustomerManageInput,
  options?: API.RequestConfig
) {
  return request<API.GetParkCustomerManageOutputPageOutput>(
    '/api/ParkBountyApply/GetParkCustomerManagePage',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 内部审核 POST /api/ParkBountyApply/IncheckParkBountyApply */
export async function incheckParkBountyApply(
  body: API.IncheckParkBountyApplyInput,
  options?: API.RequestConfig
) {
  return request<number>('/api/ParkBountyApply/IncheckParkBountyApply', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 运营端—入账-批量入账 POST /api/ParkBountyApply/ParkBountyApplyBatchTransfer */
export async function parkBountyApplyBatchTransfer(
  body: API.ParkBountyApplyBatchTransferInput,
  options?: API.RequestConfig
@@ -71,7 +290,7 @@
  });
}
/** 上传发票凭证 POST /api/ParkBountyApply/ParkBountyApplySettle */
/** 运营端—入账—上传凭证 POST /api/ParkBountyApply/ParkBountyApplySettle */
export async function parkBountyApplySettle(
  body: API.ParkBountyApplySettleInput,
  options?: API.RequestConfig
@@ -86,7 +305,7 @@
  });
}
/** 奖励金入账 POST /api/ParkBountyApply/ParkBountyApplyTransfer */
/** 运营端—入账—奖励金入账 POST /api/ParkBountyApply/ParkBountyApplyTransfer */
export async function parkBountyApplyTransfer(
  body: API.ParkBountyApplyTransferInput,
  options?: API.RequestConfig
@@ -101,7 +320,7 @@
  });
}
/** 上传凭证 POST /api/ParkBountyApply/ParkBountyApplyTransferFile */
/** 政务端—奖励金上传凭证 POST /api/ParkBountyApply/ParkBountyApplyTransferFile */
export async function parkBountyApplyTransferFile(
  body: API.ParkBountyApplyTransferFileInput,
  options?: API.RequestConfig
@@ -115,3 +334,51 @@
    ...(options || {}),
  });
}
/** 保存奖金分配表、奖励金汇总表、奖励总额 POST /api/ParkBountyApply/SaveParkBountyApplyCollectFile */
export async function saveParkBountyApplyCollectFile(
  body: API.SaveParkBountyApplyCollectFileInput,
  options?: API.RequestConfig
) {
  return request<number>('/api/ParkBountyApply/SaveParkBountyApplyCollectFile', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 保存企业缴税明细、营收汇总 POST /api/ParkBountyApply/SaveParkBountyApplyGatherFile */
export async function saveParkBountyApplyGatherFile(
  body: API.SaveParkBountyApplyGatherFileInput,
  options?: API.RequestConfig
) {
  return request<number>('/api/ParkBountyApply/SaveParkBountyApplyGatherFile', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 上传企业材料 POST /api/ParkBountyApply/UploadParkBountyApplyCompanyFile */
export async function uploadParkBountyApplyCompanyFile(
  body: API.UploadParkBountyApplyCompanyFileInput,
  options?: API.RequestConfig
) {
  return request<API.UploadParkBountyApplyCompanyFileOutput>(
    '/api/ParkBountyApply/UploadParkBountyApplyCompanyFile',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
src/services/api/ParkReward.ts
@@ -95,6 +95,24 @@
  });
}
/** 运营端一园区客户管理详情一奖励金消费记录 POST /api/ParkReward/GetParkCustomerBountyConsumptionList */
export async function getParkCustomerBountyConsumptionList(
  body: API.QueryParkCustomerBountyApplyInput,
  options?: API.RequestConfig
) {
  return request<API.GetParkCustomerBountyConsumptionOutputPageOutput>(
    '/api/ParkReward/GetParkCustomerBountyConsumptionList',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 获取奖励申请跟踪列表 POST /api/ParkReward/GetParkRewardApplyFollowList */
export async function getParkRewardApplyFollowList(
  body: API.GetParkRewardApplyFollowInput,
src/services/api/typings.d.ts
@@ -426,6 +426,13 @@
    userId?: string;
  }
  interface AddParkBountyApplyStepOneInput {
    batchNo?: string;
    parkId?: string;
    applyMonth?: string;
    removeCompanyIds?: string[];
  }
  interface AddSysOrgInput {
    /** 组织名称 */
    orgName: string;
@@ -1542,6 +1549,10 @@
  }
  interface APIgetParams {
    id?: string;
  }
  interface APIgetParkCustomerManageBaseDetailParams {
    id?: string;
  }
@@ -2671,7 +2682,7 @@
    userId?: string;
  }
  type BountyCheckStatusEnum = 10 | 20 | 30;
  type BountyCheckStatusEnum = 10 | 20 | 30 | -10;
  type BusinessSettingTypeEnum = 10;
@@ -5389,6 +5400,11 @@
    listParams?: Record<string, any>;
  }
  interface EditParkBountyApplyStepOneInput {
    parkBountyApplyId?: string;
    removeCompanyIds?: string[];
  }
  interface EDZ001Input {
    recvLength?: number;
    tradeDate?: number;
@@ -6218,6 +6234,18 @@
    endRegistDate?: string;
  }
  interface GetApplyCompanyListInput {
    pageModel?: Pagination;
    parkId?: string;
    searchKeyWord?: string;
    /** 基本户是否已完善 */
    bankIsVerify?: boolean;
    /** 营业执照是否已完善 */
    enterpriseIsVerify?: boolean;
    /** 选择公司Id */
    removeCompanyIds?: string[];
  }
  interface GetAreaListInput {
    /** 1省 2市 3区 4镇 */
    layer?: number;
@@ -6256,6 +6284,11 @@
    delList?: InsureInsStaffList[];
    updateList?: InsureInsStaffList[];
    remainList?: InsureInsStaffList[];
  }
  interface GetBatchChooseCompanyOutput {
    listCanChooseCompany?: GetCompanyNameListOutput[];
    listDeleteChooseCompany?: GetCompanyNameListOutput[];
  }
  interface GetBusinessPayInfoInput {
@@ -6407,6 +6440,17 @@
    message?: string;
    /** 保险签约认证连接二维码Base64 */
    insureQrCode?: string;
  }
  interface GetCompanyNameListInput {
    parkId?: string;
    /** 选择公司Id */
    removeCompanyIds?: string[];
  }
  interface GetCompanyNameListOutput {
    companyId?: string;
    name?: string;
  }
  interface GetCooperationApplyInput {
@@ -6701,6 +6745,12 @@
    signName?: string;
    status?: LgGigWorkerSignStatus;
    settingStatus?: LgGigWorkerSignSettingStatus;
  }
  interface GetHasApplyCompanyNameListInput {
    parkBountyApplyId?: string;
    /** 选择公司Id */
    removeCompanyIds?: string[];
  }
  interface GetHeadlineInformationInput {
@@ -7707,15 +7757,73 @@
    enterinessName?: string;
  }
  interface GetParkApplyCompanyListOutput {
    id?: string;
    userName?: string;
    enterpriseName?: string;
    bankIsVerify?: boolean;
    /** 营业执照文件地址 */
    licenseUrl?: string;
    /** 统一社会信用代码 */
    societyCreditCode?: string;
    /** 企业信息是否已完善 */
    enterpriseIsVerify?: boolean;
    authType?: EnterpriseTypeEnum;
    /** 企业类型 10人力资源公司 20甲方企业 30行业配套 40行业机构 */
    type?: number;
    /** 用户手机号 */
    phoneNumber?: string;
    /** 创建时间 */
    creationTime?: string;
  }
  interface GetParkApplyCompanyListOutputPageOutput {
    pageModel?: Pagination;
    objectData?: any;
    data?: GetParkApplyCompanyListOutput[];
  }
  interface GetParkApplyCompanyStepTwoListInput {
    pageModel?: Pagination;
    parkBountyApplyId?: string;
    searchKeyWord?: string;
    /** 基本户是否已完善 */
    bankIsVerify?: boolean;
    /** 营业执照是否已完善 */
    enterpriseIsVerify?: boolean;
  }
  interface GetParkBountyApplyFileInput {
    parkBountyApplyId?: string;
    companyId?: string;
  }
  interface GetParkBountyApplyFileOutput {
    /** 园区类型 */
    parkType?: string;
    /** 园区入驻协议 */
    parkEnterPactUrl?: string;
    /** 完税证明 */
    ratePaymentFileUrl?: string;
    /** 企业缴税明细汇总表 */
    taxSubFileUrl?: string;
    /** 企业经营利润表 */
    operateProfitesUrl?: string;
    /** 入驻关联说明 */
    enterRelateUrl?: string;
    /** C端个税完税情况说明 */
    personTaxRatePayUrl?: string;
  }
  interface GetParkBountyApplyInfoInput {
    pageModel?: Pagination;
    parkBountyApplyId?: string;
    /** 企业名/信用代码 */
    searchKeyWord?: string;
  }
  interface GetParkBountyApplyInfoOutput {
    parkBountyApplyBaseInfo?: ParkBountyApplyBaseInfo;
    parkBountyApplyDetailInfoList?: ParkBountyApplyDetailInfo[];
    /** 基本户是否已完善 */
    bankIsVerify?: boolean;
    /** 营业执照是否已完善 */
    enterpriseIsVerify?: boolean;
  }
  interface GetParkBountyApplyListInput {
@@ -7748,6 +7856,8 @@
    id?: string;
    /** 申请批次号 */
    batchNo?: string;
    /** 入账时间 */
    incomeTime?: string;
    /** 申请园区Id */
    parkId?: string;
    /** 申请园区 */
@@ -7764,8 +7874,6 @@
    /** 发放日期 */
    settleTime?: string;
    incomeStatus?: IncomeStatusEnum;
    /** 入账日期 */
    incomeTime?: string;
    outCheckStatus?: BountyCheckStatusEnum;
    /** 外部审核日期 */
    outCheckTime?: string;
@@ -7778,15 +7886,135 @@
  }
  interface GetParkBountyApplyTransferInfoInput {
    pageModel?: Pagination;
    parkBountyApplyId?: string;
    /** 企业名/信用代码 */
    searchKeyWord?: string;
    transferToStatus?: TransferToStatusEnum;
  }
  interface GetParkBountyApplyTransferInfoOutput {
    parkBountyApplyBaseInfo?: ParkBountyApplyBaseInfo;
    parkBountyApplyTransferDetailInfoList?: ParkBountyApplyTransferDetailInfo[];
  interface GetParkCustomerBountyApplyOutput {
    id?: string;
    /** 申请批次号 */
    batchNo?: string;
    /** 申请日期 */
    creationTime?: string;
    inCheckStatus?: BountyCheckStatusEnum;
    /** 内部审核日期 */
    inCheckTime?: string;
    outCheckStatus?: BountyCheckStatusEnum;
    /** 外部审核日期 */
    outCheckTime?: string;
  }
  interface GetParkCustomerBountyApplyOutputPageOutput {
    pageModel?: Pagination;
    objectData?: any;
    data?: GetParkCustomerBountyApplyOutput[];
  }
  interface GetParkCustomerBountyConsumptionOutput {
    id?: string;
    /** 奖励金消费日期 */
    payDateTime?: string;
    /** 消费金额 */
    amount?: number;
    payType?: EnterpriseBountyPayTypeEnum;
    /** 奖励金余额 */
    remianAmount?: number;
    /** 凭证 */
    payFileUrl?: string;
  }
  interface GetParkCustomerBountyConsumptionOutputPageOutput {
    pageModel?: Pagination;
    objectData?: any;
    data?: GetParkCustomerBountyConsumptionOutput[];
  }
  interface GetParkCustomerBountyGrantOutput {
    id?: string;
    /** 申请批次号 */
    batchNo?: string;
    /** 发放日期 */
    settleTime?: string;
    /** 入账时间 */
    incomeTime?: string;
    incomeStatus?: IncomeStatusEnum;
    /** 发放金额 */
    applySumAmount?: number;
    /** 入账凭证 */
    transferToFileUrl?: string;
  }
  interface GetParkCustomerBountyGrantOutputPageOutput {
    pageModel?: Pagination;
    objectData?: any;
    data?: GetParkCustomerBountyGrantOutput[];
  }
  interface GetParkCustomerManageDetailOutput {
    id?: string;
    /** 企业名称 */
    enterpriseName?: string;
    /** 信用代码 */
    societyCreditCode?: string;
    enterpriseType?: EnterpriseTypeEnum;
    industrialParkId?: string;
    /** 所属园区 */
    industrialParkName?: string;
    /** 园区类型 */
    parkTypeId?: string;
    /** 园区类型名称 */
    parkTypName?: string;
    /** 营业执照 */
    licenseUrl?: string;
    /** 银行总行名称 */
    bankName?: string;
    /** 银行支行名称 */
    bankBranchName?: string;
    /** 银行卡号 */
    bankCardNumber?: string;
  }
  interface GetParkCustomerManageOutput {
    id?: string;
    /** 帐号 */
    userName?: string;
    /** 企业名称 */
    enterpriseName?: string;
    /** 信用代码 */
    societyCreditCode?: string;
    /** 电话 */
    phoneNumber?: string;
    enterpriseType?: EnterpriseTypeEnum;
    industrialParkId?: string;
    /** 所属园区 */
    industrialParkName?: string;
    /** 园区类型 */
    parkTypeId?: string;
    /** 园区类型名称 */
    parkTypName?: string;
    /** 营业执照是否已完善 */
    licenseIsVerify?: boolean;
    /** 企业信息是否已完善 */
    enterpriseIsVerify?: boolean;
    /** 申报次数 */
    applyCount?: number;
    /** 最近申报 */
    lastApplyTime?: string;
    /** 发放次数 */
    payCount?: number;
    /** 最近发放时间 */
    lastPayTime?: string;
    /** 奖励金余额 */
    bountyAmount?: number;
  }
  interface GetParkCustomerManageOutputPageOutput {
    pageModel?: Pagination;
    objectData?: any;
    data?: GetParkCustomerManageOutput[];
  }
  interface GetParkOrHRInfoByUserInput {
@@ -9230,6 +9458,13 @@
    pageModel?: Pagination;
    objectData?: any;
    data?: IncentivePaymentsManageListOutput[];
  }
  interface IncheckParkBountyApplyInput {
    parkBountyApplyId?: string;
    inCheckStatus?: BountyCheckStatusEnum;
    /** 备注 */
    remark?: string;
  }
  type IncomeExpenseTypeEnum = 10 | 20;
@@ -13905,6 +14140,20 @@
    /** C端个税完税情况说明 */
    personTaxRatePayUrl?: string;
    authType?: EnterpriseTypeEnum;
    /** 企业类型 10人力资源公司 20甲方企业 30行业配套 40行业机构 */
    type?: number;
    /** 银行信息号是否已完善 */
    bankIsVerify?: boolean;
    /** 企业信息是否已完善 */
    enterpriseIsVerify?: boolean;
    /** 文件完整度 */
    fileCompleteRate?: string;
  }
  interface ParkBountyApplyDetailInfoPageOutput {
    pageModel?: Pagination;
    objectData?: any;
    data?: ParkBountyApplyDetailInfo[];
  }
  interface ParkBountyApplySettleInput {
@@ -13940,7 +14189,8 @@
    enterRelateUrl?: string;
    /** C端个税完税情况说明 */
    personTaxRatePayUrl?: string;
    authType?: EnterpriseTypeEnum;
    /** 企业类型 10人力资源公司 20甲方企业 30行业配套 40行业机构 */
    type?: number;
    transferToStatus?: TransferToStatusEnum;
    /** 入账金额 */
    transferToAmount?: number;
@@ -13948,6 +14198,12 @@
    transferToTime?: string;
    /** 入账凭证 */
    transferToFileUrl?: string;
  }
  interface ParkBountyApplyTransferDetailInfoPageOutput {
    pageModel?: Pagination;
    objectData?: any;
    data?: ParkBountyApplyTransferDetailInfo[];
  }
  interface ParkBountyApplyTransferFileInput {
@@ -16140,6 +16396,23 @@
    operateHistoryType?: OperateHistoryTypeEnum;
  }
  interface QueryParkCustomerBountyApplyInput {
    pageModel?: Pagination;
    id?: string;
  }
  interface QueryParkCustomerManageInput {
    pageModel?: Pagination;
    /** 企业名/信用代码 */
    keywords?: string;
    /** 营业执照是否已完善 */
    licenseIsVerify?: boolean;
    /** 企业信息是否已完善 */
    enterpriseIsVerify?: boolean;
    /** 所属园区 */
    industrialParkId?: string;
  }
  interface QueryParkOrHRAuditPageInput {
    pageModel?: Pagination;
    auditStatus?: ParkOrHRAuditStatusEnum;
@@ -17196,6 +17469,24 @@
    templateParamValue?: string;
    /** 模板参数额外数据 */
    templateParamExtraData?: string;
  }
  interface SaveParkBountyApplyCollectFileInput {
    parkBountyApplyId?: string;
    /** 奖励金分配表 */
    bountyAssignFileUlr?: string;
    /** 奖励金汇总表 */
    bountyCollectFileUrl?: string;
    /** 申报总额 */
    applySumAmount?: number;
  }
  interface SaveParkBountyApplyGatherFileInput {
    parkBountyApplyId?: string;
    /** 企业营收汇总表 */
    enterpriseOperateFileUrl?: string;
    /** 企业缴税明细表 */
    enterpriseTaxSubFileUrl?: string;
  }
  interface SaveWalletPayChannelFeeSettingInput {
@@ -19380,6 +19671,28 @@
    insureBillUrl?: string;
  }
  interface UploadParkBountyApplyCompanyFileInput {
    parkBountyApplyId?: string;
    companyId?: string;
    /** 园区入驻协议 */
    parkEnterPactUrl?: string;
    /** 完税证明 */
    ratePaymentFileUrl?: string;
    /** 企业缴税明细汇总表 */
    taxSubFileUrl?: string;
    /** 企业经营利润表 */
    operateProfitesUrl?: string;
    /** 入驻关联说明 */
    enterRelateUrl?: string;
    /** C端个税完税情况说明 */
    personTaxRatePayUrl?: string;
  }
  interface UploadParkBountyApplyCompanyFileOutput {
    companyId?: string;
    fileCompleteRate?: string;
  }
  interface UploadVoucherUrlInput {
    /** 投保批次编号 */
    insurePolicyId?: string;
src/views/Account/AccountManageList.vue
@@ -5,7 +5,7 @@
        <template #query>
          <QueryFilterItem>
            <SearchInput
              v-model="extraParamState.keyword"
              v-model="extraParamState.queryCondition"
              style="width: 200px"
              placeholder="账号/姓名/手机号"
              @on-click-search="getList"
@@ -21,6 +21,7 @@
      </ProTableV2>
    </AppContainer>
    <AddOrEditAccountDialog v-bind="dialogProps" />
    <ResetPasswordDialog v-bind="resetPasswordDialogProps"></ResetPasswordDialog>
  </LoadingLayout>
</template>
@@ -36,9 +37,10 @@
  useFormDialog,
  defineOperationBtns,
} from '@bole-core/components';
import * as accountServices from '@/services/api/Account';
import * as userRoleServices from '@/services/api/UserRole';
import { Message, OrderInputType } from '@bole-core/core';
import AddOrEditAccountDialog from './components/AddOrEditAccountDialog.vue';
import ResetPasswordDialog from './components/ResetPasswordDialog.vue';
import { formatRoleName } from '@/utils';
defineOptions({
@@ -84,7 +86,7 @@
      name: '重置密码',
    },
    emits: {
      onClick: (role) => handleResetPassword(),
      onClick: (role) => handleResetPasswordAdd(),
    },
  },
]);
@@ -108,45 +110,39 @@
  reset,
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    // try {
    //   let params: API.QueryUserPageInput = {
    //     pageModel: {
    //       rows: pageSize,
    //       page: pageIndex,
    //       orderInput: extraParamState.orderInput,
    //     },
    //     searchKey: extraParamState.keyword,
    //   };
    //   let res = await userServices.getUserPage(params, {
    //     showLoading: !state.loading,
    //   });
    //   return res;
    // } catch (error) {}
    try {
      let params: API.GetBackClientUsersInput = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        queryCondition: extraParamState.queryCondition,
      };
      let res = await userRoleServices.getGovermentClientUsers(params, {
        showLoading: !state.loading,
      });
      return res;
    } catch (error) {}
  },
  {
    defaultExtraParams: {
      orderInput: [{ property: 'id', order: OrderInputType.Desc }],
      keyword: '',
      queryCondition: '',
    },
    columnsRenderProps: {},
  }
);
function openDialog(row?: any) {
function openDialog(row?: API.UserDto) {
  if (row) {
    handleEdit({
      id: row.id,
      userName: row.userName,
      name: row.name,
      phoneNumber: row.phoneNumber,
      channel: row.channel,
      password: '',
      roleName: row.roleNames?.[0] ?? '',
      remark: row.remark,
      isSendMessage: row?.isSendMessage ?? false,
      sendClaimMessage: row?.sendClaimMessage ?? false,
      sendBillExpireMessage: row?.sendBillExpireMessage ?? false,
    });
  } else {
    handleAdd();
@@ -160,14 +156,8 @@
    userName: '',
    name: '',
    phoneNumber: '',
    channel: '',
    password: '',
    roleName: '',
    remark: '',
    isSendMessage: false,
    sendClaimMessage: false,
    sendBillExpireMessage: false,
  },
});
@@ -198,5 +188,15 @@
  // } catch (error) {}
}
function handleResetPassword() {}
const {
  dialogProps: resetPasswordDialogProps,
  handleAdd: handleResetPasswordAdd,
  editForm: resetPasswordEditForm,
} = useFormDialog({
  onConfirm: handleAddOrEdit,
  defaultFormParams: {
    id: '',
    password: '',
  },
});
</script>
src/views/Account/components/AddOrEditAccountDialog.vue
@@ -30,6 +30,7 @@
        <ProFormText placeholder="请输入手机号" v-model.trim="form.phoneNumber"></ProFormText>
      </ProFormItemV2>
      <ProFormItemV2
        v-if="isEdit"
        label="密码:"
        prop="password"
        :check-rules="[{ message: '请输入密码', required: !form.id }]"
@@ -65,9 +66,7 @@
  ProForm,
  ProFormItemV2,
  ProFormText,
  ProFormRadio,
  ProFormTextArea,
  ProFormCheckbox,
} from '@bole-core/components';
import { BooleanOptions } from '@/constants';
@@ -87,17 +86,12 @@
  userName: string;
  name: string;
  phoneNumber: string;
  channel: string;
  password: string;
  roleName: string;
  remark: string;
  isSendMessage?: boolean;
  sendClaimMessage?: boolean;
  sendBillExpireMessage?: boolean;
};
const form = defineModel<Form>('form');
const isEdit = computed(() => !!form.value?.id);
const emit = defineEmits<{
  (e: 'onConfirm'): void;
  (e: 'onCancel'): void;
src/views/Account/components/ResetPasswordDialog.vue
New file
@@ -0,0 +1,75 @@
<template>
  <ProDialog
    :title="form.title"
    v-model="visible"
    @close="onDialogClose"
    destroy-on-close
    draggable
    :width="800"
  >
    <ProForm :model="form" ref="dialogForm" label-width="120px">
      <ProFormItemV2
        label="密码:"
        prop="password"
        :check-rules="[{ message: '请输入密码', required: !form.id }]"
      >
        <ProFormText
          placeholder="请输入密码"
          v-model.trim="form.password"
          :maxlength="30"
        ></ProFormText>
      </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 } from '@bole-core/components';
defineOptions({
  name: 'ResetPasswordDialog',
});
// type Props = {};
// const props = withDefaults(defineProps<Props>(), {});
const visible = defineModel({ type: Boolean });
type Form = {
  title?: string;
  id: string;
  password: string;
};
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>
src/views/EnterpriseInfo/EnterpriseInfo.vue
@@ -57,9 +57,10 @@
} from '@bole-core/components';
import { OrderInputType } from '@bole-core/core';
import { format } from '@/utils';
import * as informationServices from '@/services/api/Information';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import _ from 'lodash';
import { ModelValueType } from 'element-plus';
import { AuthTypeText } from '@/constants';
defineOptions({
  name: 'EnterpriseInfo',
@@ -68,57 +69,57 @@
const column: API.CustomModuleColumnDto[] = [
  {
    id: '1',
    enCode: 'changeFlag',
    enCode: 'enterpriseName',
    name: '企业名',
  },
  {
    id: '2',
    enCode: 'name',
    enCode: 'societyCreditCode',
    name: '统一社会信用代码',
  },
  {
    id: '3',
    enCode: 'idNumber',
    enCode: 'enterpriseType',
    name: '企业类型',
  },
  {
    id: '4',
    enCode: 'workType',
    enCode: 'industrialParkName',
    name: '所属园区',
  },
  {
    id: '5',
    enCode: 'gender',
    enCode: 'parkTypName',
    name: '园区类型',
  },
  {
    id: '6',
    enCode: 'age',
    enCode: 'applyCount',
    name: '奖励金申报次数',
  },
  {
    id: '7',
    enCode: 'birthDay',
    enCode: 'lastApplyTime',
    name: '最近申报日期',
  },
  {
    id: '8',
    enCode: 'phoneNumber',
    enCode: 'payCount',
    name: '奖励金发放次数',
  },
  {
    id: '9',
    enCode: 'phoneNumber',
    enCode: 'lastPayTime',
    name: '最近发放日期',
  },
  {
    id: '10',
    enCode: 'phoneNumber',
    enCode: 'bountyAmount',
    name: '奖励金发放总额',
  },
  {
    id: '11',
    enCode: 'phoneNumber',
    enCode: 'bountyAmount',
    name: '奖励金余额',
  },
];
@@ -156,7 +157,7 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetInformationForManageInput = {
      let params: API.QueryParkCustomerManageInput = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
@@ -165,7 +166,7 @@
        publishStartDate: format(extraParamState.date?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
        publishEndDate: format(extraParamState.date?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
      };
      let res = await informationServices.getInformationForManage(params, {
      let res = await parkBountyApplyServices.getParkCustomerManagePage(params, {
        showLoading: !state.loading,
      });
      return res;
@@ -177,6 +178,12 @@
      date: [] as unknown as ModelValueType,
      orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
    },
    columnsRenderProps: {
      lastApplyTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      lastPayTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      bountyAmount: { type: 'money' },
      enterpriseType: { type: 'enum', valueEnum: AuthTypeText },
    },
  }
);
src/views/EnterpriseInfo/components/EnterpriseBasicInfoView.vue
@@ -2,52 +2,52 @@
  <LoadingLayout :loading="isLoading">
    <AppContainer>
      <PageFormLayout>
        <ProForm :model="detail" ref="formRef" label-width="140px">
        <ProForm :model="detail" ref="formRef" label-width="140px" is-read>
          <ProFormCol>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="企业名称:" prop="serveName" mode="read">
                <ProFormText v-model.trim="detail.categoryName" />
              <ProFormItemV2 label="企业名称:" prop="enterpriseName">
                <ProFormText v-model.trim="detail.enterpriseName" />
              </ProFormItemV2>
            </ProFormColItem>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="统一社会信用代码:" prop="serveName" mode="read">
                <ProFormText v-model.trim="detail.categoryName" />
              <ProFormItemV2 label="统一社会信用代码:" prop="societyCreditCode">
                <ProFormText v-model.trim="detail.societyCreditCode" />
              </ProFormItemV2>
            </ProFormColItem>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="企业类型:" prop="serveName" mode="read">
                <ProFormText v-model.trim="detail.categoryName" />
              <ProFormItemV2 label="企业类型:" prop="enterpriseType">
                <ProFormRadio v-model.trim="detail.enterpriseType" :value-enum="AuthTypeText" />
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="所属园区:" prop="serveName" mode="read">
                <ProFormText v-model.trim="detail.categoryName" />
              <ProFormItemV2 label="所属园区:" prop="industrialParkName">
                <ProFormText v-model.trim="detail.industrialParkName" />
              </ProFormItemV2>
            </ProFormColItem>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="园区类型:" prop="serveName" mode="read">
                <ProFormText v-model.trim="detail.categoryName" />
              <ProFormItemV2 label="园区类型:" prop="parkTypName">
                <ProFormText v-model.trim="detail.parkTypName" />
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="开户银行:" prop="serveName" mode="read">
                <ProFormText v-model.trim="detail.categoryName" />
              <ProFormItemV2 label="开户银行:" prop="bankName">
                <ProFormText v-model.trim="detail.bankName" />
              </ProFormItemV2>
            </ProFormColItem>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="银行帐号:" prop="serveName" mode="read">
                <ProFormText v-model.trim="detail.categoryName" />
              <ProFormItemV2 label="银行帐号:" prop="bankCardNumber">
                <ProFormText v-model.trim="detail.bankCardNumber" />
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="营业执照:" prop="serveName" mode="read">
                <!-- <ProFormUpload v-model:file-url="detail.covers"></ProFormUpload> -->
              <ProFormItemV2 label="营业执照:" prop="serveName">
                <ProFormUpload v-model:file-url="_licenseUrl"></ProFormUpload>
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
@@ -70,7 +70,9 @@
  ProFormUpload,
} from '@bole-core/components';
import { useQuery } from '@tanstack/vue-query';
import * as informationServices from '@/services/api/Information';
import * as customerServices from '@/services/api/Customer';
import { AuthTypeText } from '@/constants';
import { convertApi2FormUrlOnlyOne } from '@/utils';
defineOptions({
  name: 'EnterpriseBasicInfoView',
@@ -80,16 +82,21 @@
const id = route.params?.id as string;
const { data: detail, isLoading } = useQuery({
  queryKey: ['informationServices/getInformationShowDetail', id],
  queryKey: ['customerServices/getParkCustomerManageBaseDetail', id],
  queryFn: async () => {
    return await informationServices.getInformationShowDetail(
    return await customerServices.getParkCustomerManageBaseDetail(
      { id: id },
      {
        showLoading: false,
      }
    );
  },
  placeholderData: () => ({} as API.InformationShowDetailDto),
  placeholderData: () => ({} as API.GetParkCustomerManageDetailOutput),
  enabled: !!id,
});
const _licenseUrl = computed(() => {
  return detail.value?.licenseUrl ? convertApi2FormUrlOnlyOne(detail.value.licenseUrl) : [];
});
</script>
src/views/EnterpriseInfo/components/EnterpriseDeclareRecordView.vue
@@ -10,7 +10,8 @@
<script setup lang="ts">
import { AppContainer, useTable, ProTableV2, defineOperationBtns } from '@bole-core/components';
import { OrderInputType } from '@bole-core/core';
import * as informationServices from '@/services/api/Information';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import { BountyCheckStatusEnumText } from '@/constants';
defineOptions({
  name: 'EnterpriseDeclareRecordView',
@@ -19,33 +20,23 @@
const column: API.CustomModuleColumnDto[] = [
  {
    id: '1',
    enCode: 'batchBillNo',
    enCode: 'batchNo',
    name: '申报批次号',
  },
  {
    id: '2',
    enCode: 'changeType',
    enCode: 'creationTime',
    name: '申报日期',
  },
  {
    id: '3',
    enCode: 'creationTime',
    name: '内部审核日期',
    enCode: 'outCheckTime',
    name: '审核日期',
  },
  {
    id: '4',
    enCode: 'effectTime',
    name: '内部审核结果',
  },
  {
    id: '5',
    enCode: 'insurePersonNumber',
    name: '外部审核日期',
  },
  {
    id: '6',
    enCode: 'orginInsurePersonNumber',
    name: '外部审核结果',
    enCode: 'outCheckStatus',
    name: '审核结果',
  },
];
@@ -79,14 +70,15 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetInformationForManageInput = {
      let params: API.QueryParkCustomerBountyApplyInput = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        id: id,
      };
      let res = await informationServices.getInformationForManage(params, {
      let res = await parkBountyApplyServices.getParkCustomerBountyApplyList(params, {
        showLoading: !state.loading,
      });
      return res;
@@ -94,7 +86,12 @@
  },
  {
    defaultExtraParams: {
      orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
      orderInput: [{ property: 'id', order: OrderInputType.Desc }],
    },
    columnsRenderProps: {
      outCheckTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      creationTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      outCheckStatus: { type: 'enum', valueEnum: BountyCheckStatusEnumText },
    },
  }
);
src/views/EnterpriseInfo/components/RewardConsumeRecordView.vue
@@ -10,7 +10,8 @@
<script setup lang="ts">
import { AppContainer, useTable, ProTableV2, defineOperationBtns } from '@bole-core/components';
import { OrderInputType } from '@bole-core/core';
import * as informationServices from '@/services/api/Information';
import * as parkRewardServices from '@/services/api/ParkReward';
import { EnterpriseBountyPayTypeEnumText } from '@/constants';
defineOptions({
  name: 'RewardConsumeRecordView',
@@ -19,22 +20,22 @@
const column: API.CustomModuleColumnDto[] = [
  {
    id: '1',
    enCode: 'batchBillNo',
    enCode: 'payDateTime',
    name: '奖励金消费日期',
  },
  {
    id: '2',
    enCode: 'changeType',
    enCode: 'payType',
    name: '消费类型',
  },
  {
    id: '3',
    enCode: 'creationTime',
    enCode: 'amount',
    name: '消费金额',
  },
  {
    id: '4',
    enCode: 'effectTime',
    enCode: 'remianAmount',
    name: '奖励金余额',
  },
];
@@ -69,14 +70,15 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetInformationForManageInput = {
      let params: API.QueryParkCustomerBountyApplyInput = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        id: id,
      };
      let res = await informationServices.getInformationForManage(params, {
      let res = await parkRewardServices.getParkCustomerBountyConsumptionList(params, {
        showLoading: !state.loading,
      });
      return res;
@@ -86,6 +88,12 @@
    defaultExtraParams: {
      orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
    },
    columnsRenderProps: {
      payDateTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      amount: { type: 'money' },
      remianAmount: { type: 'money' },
      payType: { type: 'enum', valueEnum: EnterpriseBountyPayTypeEnumText },
    },
  }
);
src/views/EnterpriseInfo/components/RewardGrantRecordView.vue
@@ -10,7 +10,8 @@
<script setup lang="ts">
import { AppContainer, useTable, ProTableV2, defineOperationBtns } from '@bole-core/components';
import { OrderInputType } from '@bole-core/core';
import * as informationServices from '@/services/api/Information';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import { IncomeStatusEnumText } from '@/constants';
defineOptions({
  name: 'RewardGrantRecordView',
@@ -19,27 +20,27 @@
const column: API.CustomModuleColumnDto[] = [
  {
    id: '1',
    enCode: 'batchBillNo',
    enCode: 'batchNo',
    name: '申报批次号',
  },
  {
    id: '2',
    enCode: 'changeType',
    enCode: 'settleTime',
    name: '奖励金发放日期',
  },
  {
    id: '3',
    enCode: 'creationTime',
    enCode: 'incomeTime',
    name: '奖励金到账日期',
  },
  {
    id: '4',
    enCode: 'effectTime',
    enCode: 'applySumAmount',
    name: '发放金额',
  },
  {
    id: '5',
    enCode: 'insurePersonNumber',
    enCode: 'incomeStatus',
    name: '到账确认结果',
  },
];
@@ -74,14 +75,15 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetInformationForManageInput = {
      let params: API.QueryParkCustomerBountyApplyInput = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        id: id,
      };
      let res = await informationServices.getInformationForManage(params, {
      let res = await parkBountyApplyServices.getParkCustomerBountyGrantList(params, {
        showLoading: !state.loading,
      });
      return res;
@@ -91,6 +93,12 @@
    defaultExtraParams: {
      orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
    },
    columnsRenderProps: {
      settleTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      incomeTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      applySumAmount: { type: 'money' },
      incomeStatus: { type: 'enum', valueEnum: IncomeStatusEnumText },
    },
  }
);
src/views/MaterialReview/MaterialReviewAudit.vue
@@ -62,7 +62,7 @@
import DetailView from '@/components/commonView/DetailView.vue';
import DeclareEnterpriseTableView from '@/components/commonView/DeclareEnterpriseTableView.vue';
import { useQuery } from '@tanstack/vue-query';
import * as informationServices from '@/services/api/Information';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import { convertApi2FormUrlOnlyOne } from '@/utils';
import { useRouteView } from '@/hooks';
import { FormInstance } from 'element-plus';
@@ -75,41 +75,43 @@
const { closeViewPush } = useRouteView();
const id = route.params?.id as string;
const form = reactive({
  categoryName: '',
  amount: 0,
  url: [] as UploadUserFile[],
  batchNo: '',
  parkName: '',
  parkTypeName: '',
  applyMonth: '',
  applySumAmount: 0,
  enterpriseTaxSubFileUrl: [] as UploadUserFile[],
  enterpriseOperateFileUrl: [] as UploadUserFile[],
  bountyAssignFileUlr: [] as UploadUserFile[],
  bountyCollectFileUrl: [] as UploadUserFile[],
  status: '' as any as DataRangeEnum,
  remark: '',
});
// const state = reactive({
//   detail: {
//     categoryName: '',
//     amount: 0,
//     url: [] as UploadUserFile[],
//   },
//   form: {
//     status: '' as any as DataRangeEnum,
//     remark: '',
//   },
// });
const tableRef = ref<InstanceType<typeof DeclareEnterpriseTableView>>();
const { data: detail, isLoading } = useQuery({
  queryKey: ['informationServices/getInformationShowDetail', id],
  queryKey: ['parkBountyApplyServices/getParkBountyApplyDetail', id],
  queryFn: async () => {
    return await informationServices.getInformationShowDetail(
      { id: id },
    return await parkBountyApplyServices.getParkBountyApplyDetailBaseInfo(
      { parkBountyApplyId: id },
      {
        showLoading: false,
      }
    );
  },
  placeholderData: () => ({} as API.InformationShowDetailDto),
  placeholderData: () => ({} as API.ParkBountyApplyBaseInfo),
  onSuccess(data) {
    form.categoryName = data.categoryName;
    form.amount = data.attentionCount;
    form.url = convertApi2FormUrlOnlyOne(data.avatarUrl);
    form.batchNo = data.batchNo;
    form.parkName = data.parkName;
    form.parkTypeName = data.parkTypeName;
    form.applyMonth = data.applyMonth;
    form.applySumAmount = data.applySumAmount;
    form.enterpriseTaxSubFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseTaxSubFileUrl);
    form.enterpriseOperateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseOperateFileUrl);
    form.bountyAssignFileUlr = convertApi2FormUrlOnlyOne(data?.bountyAssignFileUlr);
    form.bountyCollectFileUrl = convertApi2FormUrlOnlyOne(data?.bountyCollectFileUrl);
    tableRef.value?.getList();
  },
src/views/MaterialReview/MaterialReviewDetail.vue
@@ -14,7 +14,9 @@
          </div>
        </template>
        <DetailView :form="form">
          <ChunkCellV2 title="申报企业名单">
          <DeclareEnterpriseTableView ref="tableRef"></DeclareEnterpriseTableView>
          </ChunkCellV2>
        </DetailView>
        <template #footer>
          <el-button @click="handleBack">关闭</el-button>
@@ -26,11 +28,11 @@
<script setup lang="ts">
import { AppContainer, LoadingLayout, UploadUserFile, PageFormLayout } from '@bole-core/components';
import { DataRangeEnum } from '@/constants';
import ChunkCellV2 from '@/components/Layout/ChunkCellV2.vue';
import DetailView from '@/components/commonView/DetailView.vue';
import DeclareEnterpriseTableView from '@/components/commonView/DeclareEnterpriseTableView.vue';
import { useQuery } from '@tanstack/vue-query';
import * as informationServices from '@/services/api/Information';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import { convertApi2FormUrlOnlyOne } from '@/utils';
import { useRouteView } from '@/hooks';
@@ -42,28 +44,42 @@
const { closeViewPush } = useRouteView();
const id = route.params?.id as string;
const form = reactive({
  batchNo: '',
  parkName: '',
  parkTypeName: '',
  applyMonth: '',
  applySumAmount: 0,
  enterpriseTaxSubFileUrl: [] as UploadUserFile[],
  enterpriseOperateFileUrl: [] as UploadUserFile[],
  bountyAssignFileUlr: [] as UploadUserFile[],
  bountyCollectFileUrl: [] as UploadUserFile[],
  categoryName: '',
  amount: 0,
  url: [] as UploadUserFile[],
});
const tableRef = ref<InstanceType<typeof DeclareEnterpriseTableView>>();
const { data: detail, isLoading } = useQuery({
  queryKey: ['informationServices/getInformationShowDetail', id],
  queryKey: ['parkBountyApplyServices/getParkBountyApplyDetail', id],
  queryFn: async () => {
    return await informationServices.getInformationShowDetail(
      { id: id },
    return await parkBountyApplyServices.getParkBountyApplyDetailBaseInfo(
      { parkBountyApplyId: id },
      {
        showLoading: false,
      }
    );
  },
  placeholderData: () => ({} as API.InformationShowDetailDto),
  placeholderData: () => ({} as API.ParkBountyApplyBaseInfo),
  onSuccess(data) {
    form.categoryName = data.categoryName;
    form.amount = data.attentionCount;
    form.url = convertApi2FormUrlOnlyOne(data.avatarUrl);
    form.batchNo = data.batchNo;
    form.parkName = data.parkName;
    form.parkTypeName = data.parkTypeName;
    form.applyMonth = data.applyMonth;
    form.applySumAmount = data.applySumAmount;
    form.enterpriseTaxSubFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseTaxSubFileUrl);
    form.enterpriseOperateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseOperateFileUrl);
    form.bountyAssignFileUlr = convertApi2FormUrlOnlyOne(data?.bountyAssignFileUlr);
    form.bountyCollectFileUrl = convertApi2FormUrlOnlyOne(data?.bountyCollectFileUrl);
    tableRef.value?.getList();
  },
src/views/Reward/RewardDeclareDetail.vue
@@ -3,7 +3,9 @@
    <AppContainer>
      <PageFormLayout title="申报详情">
        <DetailView :form="form">
          <ChunkCellV2 title="申报企业名单">
          <DeclareEnterpriseTableView ref="tableRef"></DeclareEnterpriseTableView>
          </ChunkCellV2>
        </DetailView>
        <template #footer>
          <el-button @click="handleBack">关闭</el-button>
@@ -16,6 +18,7 @@
<script setup lang="ts">
import { AppContainer, LoadingLayout, UploadUserFile, PageFormLayout } from '@bole-core/components';
import DetailView from '@/components/commonView/DetailView.vue';
import ChunkCellV2 from '@/components/Layout/ChunkCellV2.vue';
import DeclareEnterpriseTableView from '@/components/commonView/DeclareEnterpriseTableView.vue';
import { useQuery } from '@tanstack/vue-query';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
@@ -30,7 +33,6 @@
const { closeViewPush } = useRouteView();
const id = route.params?.id as string;
const form = reactive({
  searchKeyWord: '',
  batchNo: '',
  parkName: '',
  parkTypeName: '',
@@ -47,32 +49,24 @@
const { data: detail, isLoading } = useQuery({
  queryKey: ['parkBountyApplyServices/getParkBountyApplyDetail', id],
  queryFn: async () => {
    return await parkBountyApplyServices.getParkBountyApplyDetail(
      { parkBountyApplyId: id, searchKeyWord: form.searchKeyWord },
    return await parkBountyApplyServices.getParkBountyApplyDetailBaseInfo(
      { parkBountyApplyId: id },
      {
        showLoading: false,
      }
    );
  },
  placeholderData: () => ({} as API.GetParkBountyApplyInfoOutput),
  placeholderData: () => ({} as API.ParkBountyApplyBaseInfo),
  onSuccess(data) {
    form.batchNo = data.parkBountyApplyBaseInfo.batchNo;
    form.parkName = data.parkBountyApplyBaseInfo.parkName;
    form.parkTypeName = data.parkBountyApplyBaseInfo.parkTypeName;
    form.applyMonth = data.parkBountyApplyBaseInfo.applyMonth;
    form.applySumAmount = data.parkBountyApplyBaseInfo.applySumAmount;
    form.enterpriseTaxSubFileUrl = convertApi2FormUrlOnlyOne(
      data.parkBountyApplyBaseInfo?.enterpriseTaxSubFileUrl
    );
    form.enterpriseOperateFileUrl = convertApi2FormUrlOnlyOne(
      data.parkBountyApplyBaseInfo?.enterpriseOperateFileUrl
    );
    form.bountyAssignFileUlr = convertApi2FormUrlOnlyOne(
      data.parkBountyApplyBaseInfo?.bountyAssignFileUlr
    );
    form.bountyCollectFileUrl = convertApi2FormUrlOnlyOne(
      data.parkBountyApplyBaseInfo?.bountyCollectFileUrl
    );
    form.batchNo = data.batchNo;
    form.parkName = data.parkName;
    form.parkTypeName = data.parkTypeName;
    form.applyMonth = data.applyMonth;
    form.applySumAmount = data.applySumAmount;
    form.enterpriseTaxSubFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseTaxSubFileUrl);
    form.enterpriseOperateFileUrl = convertApi2FormUrlOnlyOne(data?.enterpriseOperateFileUrl);
    form.bountyAssignFileUlr = convertApi2FormUrlOnlyOne(data?.bountyAssignFileUlr);
    form.bountyCollectFileUrl = convertApi2FormUrlOnlyOne(data?.bountyCollectFileUrl);
    tableRef.value?.getList();
  },
src/views/Reward/RewardGrant.vue
@@ -203,6 +203,7 @@
      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' },
      applySumAmount: { type: 'money' },