From e9dda9e6c52cb737267185f5118ded73c0053115 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期二, 06 五月 2025 17:13:41 +0800
Subject: [PATCH] feat: 接口
---
src/constants/fourStreams.ts | 73 +++
src/views/EnterpriseInfo/components/RewardGrantRecordView.vue | 5
src/components/commonView/FourStreamsMaterialFileTableV2.vue | 206 ++++++++++
src/services/api/typings.d.ts | 62 ++
src/components/commonView/MateriaDetailDialog.vue | 5
src/services/api/EnterpriseApplyFile.ts | 18
src/views/MaterialReview/MaterialReviewAudit.vue | 61 ++
src/components/commonView/MaterialInfoView.vue | 64 +--
src/components/commonView/DetailView.vue | 11
src/views/Reward/RewardGrant.vue | 20
src/constants/reward.ts | 4
src/components/commonView/types.ts | 84 ---
src/components/commonView/utils/index.ts | 131 ++++++
src/components/commonView/FourStreamsMaterialFileTable.vue | 89 ++-
src/views/Reward/RewardDeclareDetail.vue | 71 +++
src/constants/index.ts | 1
src/services/api/ParkBountyApply.ts | 69 +++
src/components/commonView/FourStreamsMaterialFileDialogV2.vue | 50 ++
src/views/MaterialReview/MaterialReviewDetail.vue | 69 +++
19 files changed, 875 insertions(+), 218 deletions(-)
diff --git a/src/components/commonView/DetailView.vue b/src/components/commonView/DetailView.vue
index e0a4643..40ca771 100644
--- a/src/components/commonView/DetailView.vue
+++ b/src/components/commonView/DetailView.vue
@@ -1,6 +1,6 @@
<template>
<ProForm :model="form" label-width="160px" label-position="left" is-read>
- <ChunkCellV2 title="鏉愭枡瀹℃牳" style="margin-bottom: 0">
+ <ChunkCellV2 title="鎵规淇℃伅" style="margin-bottom: 0">
<BatchInfoView :form="form"></BatchInfoView>
</ChunkCellV2>
<ChunkCellV2 title="姹囨�绘潗鏂�" style="margin-bottom: 0">
@@ -19,6 +19,7 @@
import BatchInfoView from './BatchInfoView.vue';
import MaterialInfoView from './MaterialInfoView.vue';
import SettlementMaterialInfoView from './SettlementMaterialInfoView.vue';
+import { CustomerApplyFileTypeListItem } from './utils';
defineOptions({
name: 'DetailView',
@@ -32,11 +33,13 @@
parkTypeName: string;
applyMonth: string;
applySumAmount: number;
- enterpriseTaxSubFileUrl: UploadUserFile[];
- enterpriseOperateFileUrl: UploadUserFile[];
+ /** 濂栧姳閲戝垎閰嶈〃 */
bountyAssignFileUlr: UploadUserFile[];
+ /** 濂栧姳閲戞眹鎬昏〃 */
bountyCollectFileUrl: UploadUserFile[];
- enterpriseRelateFileUrl: UploadUserFile[];
+ parkCollectFileList: CustomerApplyFileTypeListItem[];
+ /** 鏄惁鏀寔骞冲彴鍏呭�� */
+ suportPlatRecharge?: boolean;
};
};
diff --git a/src/components/commonView/FourStreamsMaterialFileDialogV2.vue b/src/components/commonView/FourStreamsMaterialFileDialogV2.vue
new file mode 100644
index 0000000..c4f28b0
--- /dev/null
+++ b/src/components/commonView/FourStreamsMaterialFileDialogV2.vue
@@ -0,0 +1,50 @@
+<template>
+ <ProDialog :title="title" v-model="visible" destroy-on-close draggable width="800px">
+ <FourStreamsMaterialFileTableV2 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 FourStreamsMaterialFileTableV2 from './FourStreamsMaterialFileTableV2.vue';
+import { FourStreamsMaterialFileTableProps, BaseMaterialFileTableItem } from './types';
+
+defineOptions({
+ name: 'FourStreamsMaterialFileDialogV2',
+});
+
+type Props = FourStreamsMaterialFileTableProps & {
+ title?: string;
+ BusinessTypeEnumText: { [key: number]: 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>
diff --git a/src/components/commonView/FourStreamsMaterialFileTable.vue b/src/components/commonView/FourStreamsMaterialFileTable.vue
index 2ed72e4..606f5de 100644
--- a/src/components/commonView/FourStreamsMaterialFileTable.vue
+++ b/src/components/commonView/FourStreamsMaterialFileTable.vue
@@ -8,14 +8,11 @@
:operationColumnWidth="240"
:showTableColumnSetting="false"
>
- <template #fileBusinessType="{ row }">
- {{ BusinessTypeEnumText[row.fileBusinessType] }}
- </template>
<template #operationBtn-uploadBtn="{ data, row }">
<BlFileUpload
- v-model:file-url="row.fileList"
+ v-model:file-url="row.listFiles"
multiple
- :limit="1"
+ :limit="99"
ref="uploadRef"
:showTip="false"
:show-file-list="false"
@@ -28,19 +25,17 @@
<FourStreamsBatchMaterialFileDialog
v-bind="dialogProps"
:name="''"
- :zipName="`${BusinessTypeEnumText[currentFourStreamsMaterialFileTableItem.fileBusinessType as any]}`"
- v-model:fileList="currentFourStreamsMaterialFileTableItem.fileList"
+ :zipName="currentFourStreamsMaterialFileTableItem.fileTypeName"
+ v-model:fileList="currentFourStreamsMaterialFileTableItem.listFiles"
:showDeleteBtn="showDeleteBtn"
+ :yearMonth="date"
+ :onDelete="(file) => handleDialogDelete(currentFourStreamsMaterialFileTableItem, file)"
/>
</div>
</template>
<script setup lang="ts" generic="T">
-import {
- FourStreamsMaterialFileTableProps,
- BaseMaterialFileTableItem,
- FourStreamsMaterialFileBusinessTypeEnumText,
-} from './types';
+import { FourStreamsMaterialFileTableProps } from './types';
import {
ProTableV2,
defineColumns,
@@ -48,11 +43,13 @@
BlFileUpload,
bolePreview,
useDialog,
+ UploadUserFile,
} from '@bole-core/components';
import { downloadFileByUrl } from '@/utils';
import { Message, isFileCanPreview, downloadWithZip } from '@bole-core/core';
import { useDefineColumns } from '@/hooks';
import FourStreamsBatchMaterialFileDialog from './FourStreamsBatchMaterialFileDialog.vue';
+import { CustomerApplyFileTypeListItem } from './utils';
defineOptions({
name: 'FourStreamsMaterialFileTable',
@@ -64,15 +61,14 @@
showDownloadBtn: true,
showDeleteBtn: true,
downloadBtnText: '涓嬭浇',
- BusinessTypeEnumText: () => FourStreamsMaterialFileBusinessTypeEnumText,
});
-const list = defineModel<BaseMaterialFileTableItem<T>[]>('list');
+const list = defineModel<CustomerApplyFileTypeListItem[]>('list');
const columns = defineColumns([
{
id: '1',
- enCode: 'fileBusinessType',
+ enCode: 'fileTypeName',
name: '鏉愭枡鍚嶇О',
},
]);
@@ -85,10 +81,11 @@
name: '涓婁紶',
},
extraProps: {
- hide: (row: BaseMaterialFileTableItem<T>) => {
- if (!props.showUploadBtn) return true;
- let fileList = row?.fileList?.filter?.((item) => item.status === 'success');
- return fileList?.length > 0;
+ hide: (row: CustomerApplyFileTypeListItem) => {
+ return !props.showUploadBtn;
+ // if (!props.showUploadBtn) return true;
+ // let fileList = row?.fileList?.filter?.((item) => item.status === 'success');
+ // return fileList?.length > 0;
},
},
},
@@ -101,9 +98,9 @@
onClick: (row) => handlePreview(row),
},
extraProps: {
- hide: (row: BaseMaterialFileTableItem<T>) => {
+ hide: (row: CustomerApplyFileTypeListItem) => {
if (!props.showCheckBtn) return true;
- let fileList = row?.fileList?.filter?.((item) => item.status === 'success');
+ let fileList = row?.listFiles?.filter?.((item) => item.status === 'success');
if (!fileList?.length) {
return true;
} else {
@@ -125,10 +122,10 @@
onClick: (row) => handleBatchDownload(row),
},
extraProps: {
- hide: (row: BaseMaterialFileTableItem<T>) => {
+ hide: (row: CustomerApplyFileTypeListItem) => {
return (
!props.showDownloadBtn ||
- !row?.fileList?.filter?.((item) => item.status === 'success')?.length
+ !row?.listFiles?.filter?.((item) => item.status === 'success')?.length
);
},
},
@@ -145,9 +142,9 @@
onClick: (row) => handleDelete(row),
},
extraProps: {
- hide: (row: BaseMaterialFileTableItem<T>) => {
+ hide: (row: CustomerApplyFileTypeListItem) => {
if (!props.showDeleteBtn) return true;
- let fileList = row?.fileList?.filter?.((item) => item.status === 'success');
+ let fileList = row?.listFiles?.filter?.((item) => item.status === 'success');
return !fileList?.length;
},
},
@@ -155,33 +152,53 @@
],
});
-async function handleDelete(row: BaseMaterialFileTableItem<T>) {
+async function handleDelete(row: CustomerApplyFileTypeListItem) {
try {
- await Message.deleteMessage();
- row.fileList = [];
+ if (row.listFiles.length > 1) {
+ currentFourStreamsMaterialFileTableItem.value = row;
+ await nextTick();
+ dialogState.dialogVisible = true;
+ } else {
+ await Message.deleteMessage();
+ if (props.onDelete) {
+ await props.onDelete(row, row.listFiles[0].id);
+ }
+ row.listFiles = [];
+ }
} catch (error) {}
}
-const currentFourStreamsMaterialFileTableItem = ref<BaseMaterialFileTableItem<T>>({
- fileBusinessType: 0 as any,
- fileList: [],
+async function handleDialogDelete(
+ row: CustomerApplyFileTypeListItem,
+ listFile: API.CustomerUploadMonthApplyFileTypeDto & UploadUserFile
+) {
+ if (props.onDelete) {
+ await props.onDelete(row, listFile.id);
+ }
+}
+
+const currentFourStreamsMaterialFileTableItem = ref<CustomerApplyFileTypeListItem>({
+ fileSearchTypeId: '',
+ fileTypeName: '',
+ lastUpdateTime: '',
+ listFiles: [],
});
const { dialogProps, dialogState } = useDialog();
-async function handlePreview(row: BaseMaterialFileTableItem<T>) {
- if (row.fileList.length > 1) {
+async function handlePreview(row: CustomerApplyFileTypeListItem) {
+ if (row.listFiles.length > 1) {
currentFourStreamsMaterialFileTableItem.value = row;
await nextTick();
dialogState.dialogVisible = true;
} else {
bolePreview({
- fileUrl: row.fileList[0].url,
+ fileUrl: row.listFiles[0].url,
});
}
}
-async function handleBatchDownload(row: BaseMaterialFileTableItem<T>) {
- const successFileList = row.fileList.filter((item) => item.status === 'success');
+async function handleBatchDownload(row: CustomerApplyFileTypeListItem) {
+ const successFileList = row.listFiles.filter((item) => item.status === 'success');
if (successFileList.length === 0) {
Message.errorMessage('娌℃湁鍙笅杞界殑鏂囦欢');
return;
diff --git a/src/components/commonView/FourStreamsMaterialFileTableV2.vue b/src/components/commonView/FourStreamsMaterialFileTableV2.vue
new file mode 100644
index 0000000..eff3fc1
--- /dev/null
+++ b/src/components/commonView/FourStreamsMaterialFileTableV2.vue
@@ -0,0 +1,206 @@
+<template>
+ <div>
+ <ProTableV2
+ :tableData="list"
+ :columns="columns"
+ :autoHeight="false"
+ :operationBtns="columnsProps.operationBtns"
+ :operationColumnWidth="240"
+ :showTableColumnSetting="false"
+ >
+ <template #fileBusinessType="{ row }">
+ {{ BusinessTypeEnumText[row.fileBusinessType] }}
+ </template>
+ <template #operationBtn-uploadBtn="{ data, row }">
+ <BlFileUpload
+ v-model:file-url="row.fileList"
+ multiple
+ :limit="1"
+ ref="uploadRef"
+ :showTip="false"
+ :show-file-list="false"
+ class="pro-table-operation-btn upload-style-btn"
+ >
+ <el-button text type="primary" class="pro-table-operation-btn">涓婁紶</el-button>
+ </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" generic="T">
+import { FourStreamsMaterialFileTableProps, BaseMaterialFileTableItem } from './types';
+import {
+ ProTableV2,
+ defineColumns,
+ defineOperationBtns,
+ BlFileUpload,
+ bolePreview,
+ useDialog,
+} from '@bole-core/components';
+import { downloadFileByUrl } from '@/utils';
+import { Message, isFileCanPreview, downloadWithZip } from '@bole-core/core';
+import { useDefineColumns } from '@/hooks';
+import FourStreamsBatchMaterialFileDialog from './FourStreamsBatchMaterialFileDialog.vue';
+import { FourStreamsMaterialFileBusinessTypeEnumText } from '@/constants';
+
+defineOptions({
+ name: 'FourStreamsMaterialFileTableV2',
+});
+
+type Props = FourStreamsMaterialFileTableProps & {
+ BusinessTypeEnumText: { [key: number]: string };
+};
+
+const props = withDefaults(defineProps<Props>(), {
+ showUploadBtn: true,
+ showCheckBtn: true,
+ showDownloadBtn: true,
+ showDeleteBtn: true,
+ downloadBtnText: '涓嬭浇',
+ BusinessTypeEnumText: () => FourStreamsMaterialFileBusinessTypeEnumText,
+});
+
+const list = defineModel<BaseMaterialFileTableItem<T>[]>('list');
+
+const columns = defineColumns([
+ {
+ id: '1',
+ enCode: 'fileBusinessType',
+ name: '鏉愭枡鍚嶇О',
+ },
+]);
+
+const columnsProps = useDefineColumns({
+ operationBtns: [
+ {
+ data: {
+ enCode: 'uploadBtn',
+ name: '涓婁紶',
+ },
+ extraProps: {
+ hide: (row: BaseMaterialFileTableItem<T>) => {
+ if (!props.showUploadBtn) return true;
+ let fileList = row?.fileList?.filter?.((item) => item.status === 'success');
+ return fileList?.length > 0;
+ },
+ },
+ },
+ {
+ data: {
+ enCode: 'detailBtn',
+ name: '鏌ョ湅',
+ },
+ emits: {
+ onClick: (row) => handlePreview(row),
+ },
+ extraProps: {
+ hide: (row: BaseMaterialFileTableItem<T>) => {
+ if (!props.showCheckBtn) return true;
+ let fileList = row?.fileList?.filter?.((item) => item.status === 'success');
+ if (!fileList?.length) {
+ return true;
+ } else {
+ if (fileList.length > 1) {
+ return false;
+ } else {
+ return !isFileCanPreview(fileList[0].path);
+ }
+ }
+ },
+ },
+ },
+ {
+ data: {
+ enCode: 'downloadBtn',
+ name: props.downloadBtnText,
+ },
+ emits: {
+ onClick: (row) => handleBatchDownload(row),
+ },
+ extraProps: {
+ hide: (row: BaseMaterialFileTableItem<T>) => {
+ return (
+ !props.showDownloadBtn ||
+ !row?.fileList?.filter?.((item) => item.status === 'success')?.length
+ );
+ },
+ },
+ },
+ {
+ data: {
+ enCode: 'delBtn',
+ name: '鍒犻櫎',
+ },
+ props: {
+ type: 'danger',
+ },
+ emits: {
+ onClick: (row) => handleDelete(row),
+ },
+ extraProps: {
+ hide: (row: BaseMaterialFileTableItem<T>) => {
+ if (!props.showDeleteBtn) return true;
+ let fileList = row?.fileList?.filter?.((item) => item.status === 'success');
+ return !fileList?.length;
+ },
+ },
+ },
+ ],
+});
+
+async function handleDelete(row: BaseMaterialFileTableItem<T>) {
+ try {
+ await Message.deleteMessage();
+ row.fileList = [];
+ } catch (error) {}
+}
+
+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) {
+ currentFourStreamsMaterialFileTableItem.value = row;
+ await nextTick();
+ dialogState.dialogVisible = true;
+ } else {
+ bolePreview({
+ fileUrl: row.fileList[0].url,
+ });
+ }
+}
+
+async function handleBatchDownload(row: BaseMaterialFileTableItem<T>) {
+ const successFileList = row.fileList.filter((item) => item.status === 'success');
+ if (successFileList.length === 0) {
+ Message.errorMessage('娌℃湁鍙笅杞界殑鏂囦欢');
+ return;
+ }
+ if (successFileList.length === 1) {
+ downloadFileByUrl(successFileList[0].url);
+ } else {
+ // downloadWithZip(
+ // successFileList.map((item) => ({ data: item.url })),
+ // `${props.BusinessTypeEnumText[row.fileBusinessType as any]}`
+ // );
+ currentFourStreamsMaterialFileTableItem.value = row;
+ await nextTick();
+ dialogState.dialogVisible = true;
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+</style>
diff --git a/src/components/commonView/MateriaDetailDialog.vue b/src/components/commonView/MateriaDetailDialog.vue
index 1ab3ce2..dff1e54 100644
--- a/src/components/commonView/MateriaDetailDialog.vue
+++ b/src/components/commonView/MateriaDetailDialog.vue
@@ -12,7 +12,8 @@
<script setup lang="ts">
import { ProDialog } from '@bole-core/components';
import FourStreamsMaterialFileTable from './FourStreamsMaterialFileTable.vue';
-import { FourStreamsMaterialFileTableProps, FourStreamsMaterialFileTableItem } from './types';
+import { FourStreamsMaterialFileTableProps } from './types';
+import { CustomerApplyFileTypeListItem } from './utils';
defineOptions({
name: 'MateriaDetailDialog',
@@ -30,7 +31,7 @@
const visible = defineModel({ type: Boolean });
type Form = {
- list: FourStreamsMaterialFileTableItem[];
+ list: CustomerApplyFileTypeListItem[];
};
const form = defineModel<Form>('form');
diff --git a/src/components/commonView/MaterialInfoView.vue b/src/components/commonView/MaterialInfoView.vue
index 4026f93..5308a1b 100644
--- a/src/components/commonView/MaterialInfoView.vue
+++ b/src/components/commonView/MaterialInfoView.vue
@@ -1,42 +1,25 @@
<template>
- <ProFormCol>
- <ProFormColItem :span="12">
- <ProFormItemV2
- label="浼佷笟缂寸◣鏄庣粏姹囨�昏〃:"
- prop="enterpriseTaxSubFileUrl"
- style="margin-bottom: 22px"
- >
- <ProFormUpload
- v-model:file-url="form.enterpriseTaxSubFileUrl"
- :limitShowViewMoreBtnCount="4"
- ></ProFormUpload>
- </ProFormItemV2>
- </ProFormColItem>
- </ProFormCol>
- <ProFormCol>
- <ProFormColItem :span="12">
- <ProFormItemV2
- label="浼佷笟钀ユ敹姹囨�昏〃:"
- prop="enterpriseOperateFileUrl"
- style="margin-bottom: 22px"
- >
- <ProFormUpload
- v-model:file-url="form.enterpriseOperateFileUrl"
- :limitShowViewMoreBtnCount="4"
- ></ProFormUpload>
- </ProFormItemV2>
- </ProFormColItem>
- </ProFormCol>
- <ProFormCol>
- <ProFormColItem :span="12">
- <ProFormItemV2 label="鍏ラ┗鎯呭喌鍏宠仈璇存槑:" prop="enterpriseRelateFileUrl">
- <ProFormUpload
- v-model:file-url="form.enterpriseRelateFileUrl"
- :limitShowViewMoreBtnCount="4"
- ></ProFormUpload>
- </ProFormItemV2>
- </ProFormColItem>
- </ProFormCol>
+ <!-- <ProFormCol>
+ <ProFormColItem :span="12"> -->
+ <ProFormItemV2
+ :label="`${item.fileTypeName}:`"
+ :prop="`parkCollectFileList.${index}.listFiles`"
+ :check-rules="[{ message: `璇蜂笂浼�${item.fileTypeName}`, type: 'upload' }]"
+ :label-width="160"
+ :style="{ marginBottom: index === form.parkCollectFileList.length - 1 ? 0 : '22px' }"
+ v-for="(item, index) in form.parkCollectFileList"
+ :key="item.fileSearchTypeId"
+ >
+ <ProFormUpload
+ v-model:file-url="item.listFiles"
+ :limitFileSize="50"
+ :showTip="false"
+ :limitShowViewMoreBtnCount="4"
+ accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
+ ></ProFormUpload>
+ </ProFormItemV2>
+ <!-- </ProFormColItem>
+ </ProFormCol> -->
</template>
<script setup lang="ts">
@@ -47,6 +30,7 @@
ProFormUpload,
UploadUserFile,
} from '@bole-core/components';
+import { CustomerApplyFileTypeListItem } from './utils';
defineOptions({
name: 'MaterialInfoView',
@@ -54,9 +38,7 @@
type Props = {
form: {
- enterpriseTaxSubFileUrl: UploadUserFile[];
- enterpriseOperateFileUrl: UploadUserFile[];
- enterpriseRelateFileUrl: UploadUserFile[];
+ parkCollectFileList: CustomerApplyFileTypeListItem[];
};
};
diff --git a/src/components/commonView/types.ts b/src/components/commonView/types.ts
index f1415f0..89fd9f9 100644
--- a/src/components/commonView/types.ts
+++ b/src/components/commonView/types.ts
@@ -1,12 +1,20 @@
import { UploadUserFile } from '@bole-core/components';
+import { CustomerApplyFileTypeListItem } from './utils';
+import {
+ ApplyTransferFileBusinessTypeEnum,
+ FourStreamsMaterialFileBusinessTypeEnum,
+ TransferFileEnumInRewardGrand,
+} from '@/constants';
export type FourStreamsMaterialFileTableProps = {
+ date?: string;
showUploadBtn?: boolean;
showCheckBtn?: boolean;
showDownloadBtn?: boolean;
showDeleteBtn?: boolean;
downloadBtnText?: string;
- BusinessTypeEnumText?: { [key: number]: string };
+ onDelete?: (row: CustomerApplyFileTypeListItem, fileId: string) => Promise<any>;
+ onUpload?: (row: CustomerApplyFileTypeListItem, userFile: UploadUserFile) => Promise<any>;
};
export type BaseMaterialFileTableItem<T> = {
@@ -48,77 +56,3 @@
[EnterpriseTypeEnum.IndustryMating]: '琛屼笟閰嶅',
[EnterpriseTypeEnum.IndustryBody]: '琛屼笟鏈烘瀯',
};
-
-export enum FourStreamsMaterialFileBusinessTypeEnum {
- /** 鍥尯鍏ラ┗鍗忚 */
- ParkEnterPactUrl = 10,
- /** 浼佷笟瀹岀◣璇佹槑锛堢洊绔狅級 */
- RatePaymentFileUrl = 20,
- /** 浼佷笟缂寸◣鏄庣粏姹囨�昏〃锛堢洊绔狅級 */
- TaxSubFileUrl = 30,
- /** 浼佷笟钀ユ敹鍒╂鼎琛� */
- OperateProfitesUrl = 40,
- /**
- * 鍏ラ┗鍏宠仈璇存槑
- * @deprecated 宸茬粡涓嶇敤浜�
- */
- EnterRelateUrl = 50,
- /** C绔釜绋庡畬绋庤瘉鏄� */
- PersonTaxRatePayUrl = 60,
- /** C绔畬绋庤鏄� */
- PersonTaxInstructUrl = 70,
-}
-
-export const FourStreamsMaterialFileBusinessTypeEnumText = {
- [FourStreamsMaterialFileBusinessTypeEnum.ParkEnterPactUrl]: '鍥尯鍏ラ┗鍗忚',
- [FourStreamsMaterialFileBusinessTypeEnum.RatePaymentFileUrl]: '浼佷笟瀹岀◣璇佹槑(鐩栫珷)',
- [FourStreamsMaterialFileBusinessTypeEnum.TaxSubFileUrl]: '浼佷笟缂寸◣鏄庣粏姹囨�昏〃(鐩栫珷)',
- [FourStreamsMaterialFileBusinessTypeEnum.OperateProfitesUrl]: '浼佷笟钀ユ敹鍒╂鼎琛�',
- [FourStreamsMaterialFileBusinessTypeEnum.EnterRelateUrl]: '鍏ラ┗鍏宠仈璇存槑',
- [FourStreamsMaterialFileBusinessTypeEnum.PersonTaxRatePayUrl]: 'C绔釜绋庡畬绋庤瘉鏄�',
- [FourStreamsMaterialFileBusinessTypeEnum.PersonTaxInstructUrl]: 'C绔畬绋庢儏鍐佃鏄�',
-};
-
-export const FourStreamsMaterialFileBusinessTypeEnumKey = {
- [FourStreamsMaterialFileBusinessTypeEnum.ParkEnterPactUrl]: 'parkEnterPactUrl',
- [FourStreamsMaterialFileBusinessTypeEnum.RatePaymentFileUrl]: 'ratePaymentFileUrl',
- [FourStreamsMaterialFileBusinessTypeEnum.TaxSubFileUrl]: 'taxSubFileUrl',
- [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;
diff --git a/src/components/commonView/utils/index.ts b/src/components/commonView/utils/index.ts
index 8918223..9550a10 100644
--- a/src/components/commonView/utils/index.ts
+++ b/src/components/commonView/utils/index.ts
@@ -1,15 +1,19 @@
import { convertApi2FormUrl, convertApi2FormUrlOnlyOne } from '@/utils';
import {
- ApplyTransferFileBusinessTypeEnum,
- ApplyTransferFileBusinessTypeEnumKey,
ApplyTransferMaterialFileTableItem,
- FourStreamsMaterialFileBusinessTypeEnum,
- FourStreamsMaterialFileBusinessTypeEnumKey,
FourStreamsMaterialFileTableItem,
- TransferFileEnumInRewardGrand,
- TransferFileEnumInRewardGrandKey,
TransferFileEnumInRewardGrandTableItem,
} from '../types';
+import { UploadUserFile } from '@bole-core/components';
+import _ from 'lodash';
+import {
+ ApplyTransferFileBusinessTypeEnum,
+ ApplyTransferFileBusinessTypeEnumKey,
+ FourStreamsMaterialFileBusinessTypeEnum,
+ FourStreamsMaterialFileBusinessTypeEnumKey,
+ TransferFileEnumInRewardGrand,
+ TransferFileEnumInRewardGrandKey,
+} from '@/constants';
export class FourStreamsMaterialUtils {
/**瀹炰綋浜т笟鍥潗鏂� */
@@ -112,3 +116,118 @@
return parkTypeName === '鏁板瓧缁忔祹鍥�';
}
}
+
+export type CustomerApplyFileTypeListItem = {
+ id?: string;
+ fileSearchTypeId?: string;
+ fileTypeName?: string;
+ lastUpdateTime?: string;
+ listFiles?: (API.CustomerUploadMonthApplyFileTypeDto & UploadUserFile)[];
+};
+
+export class EnterpriseApplyFileUtils {
+ static convertApiFileToParkCollectFileList(listFiles: API.CustomerUploadMonthApplyFileTypeDto[]) {
+ const group = _.groupBy(listFiles, 'fileSearchTypeId');
+ return Object.keys(group).map(
+ (x) =>
+ ({
+ fileSearchTypeId: x,
+ fileTypeName: group[x][0].fileSearchTypeName,
+ listFiles: group[x]
+ .filter((x) => !!x.fileUrl)
+ .map((a) => ({
+ ...a,
+ ...convertApi2FormUrl(a.fileUrl),
+ })),
+ } as CustomerApplyFileTypeListItem)
+ );
+ }
+
+ static initParkCollectFileList(parkCollectFileTypeList: API.GetCustomerUploadApplyFilesOutput[]) {
+ return parkCollectFileTypeList.map(
+ (x) =>
+ ({
+ fileSearchTypeId: x.fileSearchTypeId,
+ fileTypeName: x.fileTypeName,
+ listFiles: [],
+ } as CustomerApplyFileTypeListItem)
+ );
+ }
+
+ static initParkCollectFileListApplyFiles(
+ applyUploadFiles: API.GetEnterpriseParkApplyUploadFileOutput[],
+ applyFiles: API.GetCustomerUploadApplyFilesOutput[],
+ lastUploadEnterPactFile: API.CustomerUploadMonthApplyFileTypeDto[]
+ ) {
+ return applyUploadFiles.map((x) => {
+ const applyFile = applyFiles.find((a) => a.fileSearchTypeId === x.fileSearchTypeId);
+ let listFiles: API.CustomerUploadMonthApplyFileTypeDto[];
+ if (x.fileSearchTypeName === '鍥尯鍏ラ┗鍗忚') {
+ listFiles = !x.listFiles.length ? lastUploadEnterPactFile : x.listFiles;
+ } else {
+ listFiles =
+ !x.listFiles.length && applyFile?.listFiles?.length > 0
+ ? applyFile.listFiles
+ : x.listFiles;
+ }
+
+ return {
+ fileSearchTypeId: x.fileSearchTypeId,
+ fileTypeName: x.fileSearchTypeName,
+ listFiles: listFiles.map((a) => ({ ...a, ...convertApi2FormUrl(a.fileUrl) })),
+ } as CustomerApplyFileTypeListItem;
+ });
+ }
+
+ static convertFileTableListToApi(fileTableList: CustomerApplyFileTypeListItem[]) {
+ return fileTableList.map(
+ (x) =>
+ ({
+ fileSearchTypeId: x.fileSearchTypeId,
+ listFiles: x.listFiles.map((a) => ({
+ fileSearchTypeId: x.fileSearchTypeId,
+ fileSearchTypeName: x.fileTypeName,
+ fileSize: a.fileSize || a.size,
+ fileUrl: a.path,
+ })),
+ } as API.CustomerUploadMonthApplyFileType)
+ );
+ }
+
+ static convertFileTableListToApplyCompanyFile(fileTableList: CustomerApplyFileTypeListItem[]) {
+ return fileTableList.map(
+ (x) =>
+ ({
+ fileSearchTypeId: x.fileSearchTypeId,
+ fileSearchTypeName: x.fileTypeName,
+ listFiles: x.listFiles.map((a) => ({
+ fileSearchTypeId: x.fileSearchTypeId,
+ fileSearchTypeName: x.fileTypeName,
+ fileSize: a.fileSize || a.size,
+ fileUrl: a.path,
+ })),
+ } as API.UploadParkApplyCustomerFileTypes)
+ );
+ }
+
+ static convertFileTableListToApiBatch(fileTableList: CustomerApplyFileTypeListItem[]) {
+ const applyFileTypeList = this.convertFileTableListToApi(fileTableList);
+ return _.flatMap(applyFileTypeList, (x) => x.listFiles);
+ }
+
+ static isFileTableListAllUploaded(fileTableList: CustomerApplyFileTypeListItem[]) {
+ return fileTableList.every((fileTableListItem) => {
+ return fileTableListItem.listFiles.every((fileItem) => {
+ return fileItem.status === 'success';
+ });
+ });
+ }
+
+ static isFileTableListExist(fileTableList: CustomerApplyFileTypeListItem[]) {
+ return fileTableList.some((fileTableListItem) => {
+ return fileTableListItem.listFiles.some((fileItem) => {
+ return fileItem.status === 'success';
+ });
+ });
+ }
+}
diff --git a/src/constants/fourStreams.ts b/src/constants/fourStreams.ts
new file mode 100644
index 0000000..e59f920
--- /dev/null
+++ b/src/constants/fourStreams.ts
@@ -0,0 +1,73 @@
+export enum FourStreamsMaterialFileBusinessTypeEnum {
+ /** 鍥尯鍏ラ┗鍗忚 */
+ ParkEnterPactUrl = 10,
+ /** 浼佷笟瀹岀◣璇佹槑锛堢洊绔狅級 */
+ RatePaymentFileUrl = 20,
+ /** 浼佷笟缂寸◣鏄庣粏姹囨�昏〃锛堢洊绔狅級 */
+ TaxSubFileUrl = 30,
+ /** 浼佷笟钀ユ敹鍒╂鼎琛� */
+ OperateProfitesUrl = 40,
+ /**
+ * 鍏ラ┗鍏宠仈璇存槑
+ * @deprecated 宸茬粡涓嶇敤浜�
+ */
+ EnterRelateUrl = 50,
+ /** C绔釜绋庡畬绋庤瘉鏄� */
+ PersonTaxRatePayUrl = 60,
+ /** C绔畬绋庤鏄� */
+ PersonTaxInstructUrl = 70,
+}
+
+export const FourStreamsMaterialFileBusinessTypeEnumText = {
+ [FourStreamsMaterialFileBusinessTypeEnum.ParkEnterPactUrl]: '鍥尯鍏ラ┗鍗忚',
+ [FourStreamsMaterialFileBusinessTypeEnum.RatePaymentFileUrl]: '浼佷笟瀹岀◣璇佹槑(鐩栫珷)',
+ [FourStreamsMaterialFileBusinessTypeEnum.TaxSubFileUrl]: '浼佷笟缂寸◣鏄庣粏姹囨�昏〃(鐩栫珷)',
+ [FourStreamsMaterialFileBusinessTypeEnum.OperateProfitesUrl]: '浼佷笟钀ユ敹鍒╂鼎琛�',
+ [FourStreamsMaterialFileBusinessTypeEnum.EnterRelateUrl]: '鍏ラ┗鍏宠仈璇存槑',
+ [FourStreamsMaterialFileBusinessTypeEnum.PersonTaxRatePayUrl]: 'C绔釜绋庡畬绋庤瘉鏄�',
+ [FourStreamsMaterialFileBusinessTypeEnum.PersonTaxInstructUrl]: 'C绔畬绋庢儏鍐佃鏄�',
+};
+
+export const FourStreamsMaterialFileBusinessTypeEnumKey = {
+ [FourStreamsMaterialFileBusinessTypeEnum.ParkEnterPactUrl]: 'parkEnterPactUrl',
+ [FourStreamsMaterialFileBusinessTypeEnum.RatePaymentFileUrl]: 'ratePaymentFileUrl',
+ [FourStreamsMaterialFileBusinessTypeEnum.TaxSubFileUrl]: 'taxSubFileUrl',
+ [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;
diff --git a/src/constants/index.ts b/src/constants/index.ts
index eb92ec8..195d367 100644
--- a/src/constants/index.ts
+++ b/src/constants/index.ts
@@ -12,3 +12,4 @@
export * from './dic';
export * from './enterpriseMaterial';
export * from './reward';
+export * from './fourStreams';
diff --git a/src/constants/reward.ts b/src/constants/reward.ts
index 46016f6..966f1e5 100644
--- a/src/constants/reward.ts
+++ b/src/constants/reward.ts
@@ -48,13 +48,13 @@
/**
* 鏃犻渶鍏呭��
*/
- NotSettle = 3,
+ NoNeed = -1,
}
export const SettleStatusEnumText = {
[SettleStatusEnum.WaitForSettle]: '寰呭厖鍊�',
[SettleStatusEnum.HasSettle]: '宸插厖鍊�',
- [SettleStatusEnum.NotSettle]: '鏃犻渶鍏呭��',
+ [SettleStatusEnum.NoNeed]: '鏃犻渶鍏呭��',
};
export enum FinanceStatusEnum {
diff --git a/src/services/api/EnterpriseApplyFile.ts b/src/services/api/EnterpriseApplyFile.ts
index bc7de20..3013b93 100644
--- a/src/services/api/EnterpriseApplyFile.ts
+++ b/src/services/api/EnterpriseApplyFile.ts
@@ -122,6 +122,24 @@
);
}
+/** 鑾峰彇鍥尯姹囨�绘潗鏂欑被鍨� POST /api/EnterpriseApplyFile/GetParkCollectFileTypeList */
+export async function getParkCollectFileTypeList(
+ body: API.GetParkCollectFileTypeListInput,
+ options?: API.RequestConfig
+) {
+ return request<API.GetCustomerUploadApplyFilesOutput[]>(
+ '/api/EnterpriseApplyFile/GetParkCollectFileTypeList',
+ {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ }
+ );
+}
+
/** 涓婁紶鏉愭枡璇︽儏-缂栬緫-涓婁紶鏂囦欢 POST /api/EnterpriseApplyFile/UploadMonthApplySingleFiles */
export async function uploadMonthApplySingleFiles(
body: API.UploadMonthApplySingleFilesInput,
diff --git a/src/services/api/ParkBountyApply.ts b/src/services/api/ParkBountyApply.ts
index 58e1366..fbe0aa0 100644
--- a/src/services/api/ParkBountyApply.ts
+++ b/src/services/api/ParkBountyApply.ts
@@ -47,6 +47,21 @@
});
}
+/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/ParkBountyApply/DeleteParkEnterpriseApplyFile */
+export async function deleteParkEnterpriseApplyFile(
+ // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+ params: API.APIdeleteParkEnterpriseApplyFileParams,
+ options?: API.RequestConfig
+) {
+ return request<number>('/api/ParkBountyApply/DeleteParkEnterpriseApplyFile', {
+ method: 'GET',
+ params: {
+ ...params,
+ },
+ ...(options || {}),
+ });
+}
+
/** 缁х画鐢虫姤 POST /api/ParkBountyApply/EditParkBountyApply */
export async function editParkBountyApply(
body: API.EditParkBountyApplyStepOneInput,
@@ -108,6 +123,42 @@
},
...(options || {}),
});
+}
+
+/** 鑾峰彇浼佷笟鏈�鍚庝竴娆′笂浼犵殑鍥尯鍏ラ┗鍗忚鏂囦欢 GET /api/ParkBountyApply/GetEnterpriseLastUploadEnterPactFileNew */
+export async function getEnterpriseLastUploadEnterPactFileNew(
+ // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+ params: API.APIgetEnterpriseLastUploadEnterPactFileNewParams,
+ options?: API.RequestConfig
+) {
+ return request<API.CustomerUploadMonthApplyFileTypeDto[]>(
+ '/api/ParkBountyApply/GetEnterpriseLastUploadEnterPactFileNew',
+ {
+ method: 'GET',
+ params: {
+ ...params,
+ },
+ ...(options || {}),
+ }
+ );
+}
+
+/** 鑾峰彇鐢虫姤涓嬩紒涓氫笂浼犵殑鏂囦欢 POST /api/ParkBountyApply/GetEnterpriseParkApplyUploadFiles */
+export async function getEnterpriseParkApplyUploadFiles(
+ body: API.GetEnterpriseParkApplyUploadFilesInput,
+ options?: API.RequestConfig
+) {
+ return request<API.GetEnterpriseParkApplyUploadFileOutput[]>(
+ '/api/ParkBountyApply/GetEnterpriseParkApplyUploadFiles',
+ {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ }
+ );
}
/** 鑾峰彇浼佷笟鍏呭�煎鏍稿垪琛� POST /api/ParkBountyApply/GetEnterprisePreChargeCheckList */
@@ -721,6 +772,24 @@
);
}
+/** 涓婁紶浼佷笟鏉愭枡 POST /api/ParkBountyApply/UploadParkBountyApplyCompanyFileNew */
+export async function uploadParkBountyApplyCompanyFileNew(
+ body: API.UploadParkApplyCustomerFilesInput,
+ options?: API.RequestConfig
+) {
+ return request<API.UploadParkBountyApplyCompanyFileOutput>(
+ '/api/ParkBountyApply/UploadParkBountyApplyCompanyFileNew',
+ {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ }
+ );
+}
+
/** 鐢ㄦ埛鍏呭�� POST /api/ParkBountyApply/UserEnterpiseRecharge */
export async function userEnterpiseRecharge(
body: API.UserEnterpiseRechargeInput,
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 7df99f2..b759d38 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -1115,6 +1115,10 @@
id?: string;
}
+ interface APIdeleteParkEnterpriseApplyFileParams {
+ parkEnterpriseDetaiFileId?: string;
+ }
+
interface APIdeleteParkRewardApplyParams {
id?: string;
}
@@ -1348,6 +1352,10 @@
interface APIgetElecBillInfoParams {
transactionDetailId?: string;
+ }
+
+ interface APIgetEnterpriseLastUploadEnterPactFileNewParams {
+ companyId?: string;
}
interface APIgetEnterpriseLastUploadEnterPactFileParams {
@@ -5423,9 +5431,12 @@
interface CustomerUploadMonthApplyFileTypeDto {
fileSearchTypeId?: string;
id?: string;
+ fileSearchTypeName?: string;
fileType?: string;
fileSize?: number;
fileUrl?: string;
+ sort?: number;
+ creationTime?: string;
}
interface DataprepareCreateExtInfo {
@@ -6759,6 +6770,7 @@
lastUpdateTime?: string;
monthApplyId?: string;
withMonth?: string;
+ searchType?: number;
enterpriseName?: string;
parkName?: string;
fileTypeName?: string;
@@ -6824,6 +6836,19 @@
pageModel?: Pagination;
objectData?: any;
data?: GetEnterpriseMonthApplyFileOutput[];
+ }
+
+ interface GetEnterpriseParkApplyUploadFileOutput {
+ fileSearchTypeId?: string;
+ fileSearchTypeName?: string;
+ fileCount?: number;
+ sort?: number;
+ listFiles?: CustomerUploadMonthApplyFileTypeDto[];
+ }
+
+ interface GetEnterpriseParkApplyUploadFilesInput {
+ parkBountyApplyId?: string;
+ companyId?: string;
}
interface GetEnterprisePreChargeCheckListInput {
@@ -8157,6 +8182,9 @@
settleTime?: string;
incomeStatus?: IncomeStatusEnum;
inCheckStatus?: BountyCheckStatusEnum;
+ /** 璐㈡斂鍏ヨ处鏃堕棿 */
+ financeIncomeTime?: string;
+ financeIncomeStatus?: IncomeStatusEnum;
/** 鍐呴儴瀹℃牳鏃ユ湡 */
inCheckTime?: string;
outCheckStatus?: BountyCheckStatusEnum;
@@ -8275,6 +8303,11 @@
pageModel?: Pagination;
objectData?: any;
data?: GetParkBountyTradeOutput[];
+ }
+
+ interface GetParkCollectFileTypeListInput {
+ parkId?: string;
+ searchType?: number;
}
interface GetParkCustomerBountyApplyOutput {
@@ -14565,6 +14598,11 @@
settleFileUrl?: string;
/** 璐㈡斂鍙戞斁鍑瘉 */
financeFileUrl?: string;
+ /** 鏄惁鏀寔浼佷笟涓婁紶 */
+ suportEnterpriseUpload?: boolean;
+ /** 鏄惁鏀寔骞冲彴鍏呭�� */
+ suportPlatRecharge?: boolean;
+ listFiles?: CustomerUploadMonthApplyFileTypeDto[];
}
interface OutcheckParkBountyApplyInput {
@@ -14636,6 +14674,7 @@
settleSumAmount?: number;
/** 璐㈡斂鍙戞斁閲戦 */
financeSumAmount?: number;
+ listFiles?: CustomerUploadMonthApplyFileTypeDto[];
}
interface ParkBountyApplyBatchFinanceInput {
@@ -18072,12 +18111,7 @@
interface SaveParkBountyApplyGatherFileInput {
parkBountyApplyId?: string;
- /** 浼佷笟钀ユ敹姹囨�昏〃 */
- enterpriseOperateFileUrl?: string;
- /** 浼佷笟缂寸◣鏄庣粏琛� */
- enterpriseTaxSubFileUrl?: string;
- /** 鍏ラ┗鍏宠仈璇存槑 */
- enterpriseRelateFileUrl?: string;
+ listFiles?: CustomerUploadMonthApplyFileTypeDto[];
}
interface SaveWalletPayChannelFeeSettingInput {
@@ -18470,7 +18504,7 @@
type?: number;
}
- type SettleStatusEnum = 1 | 2;
+ type SettleStatusEnum = 1 | 2 | -1;
interface SetUserCertificationAuditStatusInput {
/** 瀹℃牳Id */
@@ -20306,6 +20340,20 @@
listFiles?: CustomerUploadMonthApplyFileTypeDto[];
}
+ interface UploadParkApplyCustomerFilesInput {
+ parkBountyApplyId?: string;
+ companyId?: string;
+ fileTypes?: UploadParkApplyCustomerFileTypes[];
+ }
+
+ interface UploadParkApplyCustomerFileTypes {
+ fileSearchTypeId?: string;
+ fileSearchTypeName?: string;
+ fileCount?: number;
+ sort?: number;
+ listFiles?: CustomerUploadMonthApplyFileTypeDto[];
+ }
+
interface UploadParkBountyApplyCompanyFileInput {
parkBountyApplyId?: string;
companyId?: string;
diff --git a/src/views/EnterpriseInfo/components/RewardGrantRecordView.vue b/src/views/EnterpriseInfo/components/RewardGrantRecordView.vue
index 2f94db3..a7013dc 100644
--- a/src/views/EnterpriseInfo/components/RewardGrantRecordView.vue
+++ b/src/views/EnterpriseInfo/components/RewardGrantRecordView.vue
@@ -3,7 +3,7 @@
<AppContainer>
<ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
</ProTableV2>
- <FourStreamsMaterialFileDialog
+ <FourStreamsMaterialFileDialogV2
v-bind="dialogMaterialFileProps"
:show-upload-btn="false"
:show-delete-btn="false"
@@ -26,8 +26,7 @@
} from '@bole-core/components';
import { OrderInputType } from '@bole-core/core';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
-import { IncomeStatusEnumText } from '@/constants';
-import { ApplyTransferFileBusinessTypeEnumText } from '@/components/commonView/types';
+import { ApplyTransferFileBusinessTypeEnumText } from '@/constants';
import { FourStreamsMaterialUtils } from '@/components/commonView/utils';
import { ApplyTransferMaterialFileTableItem } from '@/components/commonView/types';
diff --git a/src/views/MaterialReview/MaterialReviewAudit.vue b/src/views/MaterialReview/MaterialReviewAudit.vue
index ba8a828..e5b1d4b 100644
--- a/src/views/MaterialReview/MaterialReviewAudit.vue
+++ b/src/views/MaterialReview/MaterialReviewAudit.vue
@@ -89,13 +89,18 @@
import MateriaDetailDialog from '@/components/commonView/MateriaDetailDialog.vue';
import { useQuery, useQueryClient } from '@tanstack/vue-query';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
+import * as enterpriseApplyFileServices from '@/services/api/EnterpriseApplyFile';
import { convertApi2FormUrlObjectBySeparator, setOSSLink } from '@/utils';
import { useGlobalEventContext, useRouteView } from '@/hooks';
import { FormInstance } from 'element-plus';
import { Message, OrderInputType } from '@bole-core/core';
import { FourStreamsMaterialFileTableItem } from '@/components/commonView/types';
import { useIndustrialParkDropDownList } from '@/hooks/industrialPark';
-import { FourStreamsMaterialUtils } from '@/components/commonView/utils';
+import {
+ CustomerApplyFileTypeListItem,
+ EnterpriseApplyFileUtils,
+ FourStreamsMaterialUtils,
+} from '@/components/commonView/utils';
defineOptions({
name: 'MaterialReviewAudit',
@@ -113,9 +118,10 @@
applySumAmount: 0,
enterpriseTaxSubFileUrl: [] as UploadUserFile[],
enterpriseOperateFileUrl: [] as UploadUserFile[],
+ enterpriseRelateFileUrl: [] as UploadUserFile[],
+ parkCollectFileList: [] as CustomerApplyFileTypeListItem[],
bountyAssignFileUlr: [] as UploadUserFile[],
bountyCollectFileUrl: [] as UploadUserFile[],
- enterpriseRelateFileUrl: [] as UploadUserFile[],
status: '' as any as BountyCheckStatusEnum,
remark: '',
@@ -148,6 +154,9 @@
form.bountyCollectFileUrl = convertApi2FormUrlObjectBySeparator(data?.bountyCollectFileUrl);
form.enterpriseRelateFileUrl = convertApi2FormUrlObjectBySeparator(
data?.enterpriseRelateFileUrl
+ );
+ form.parkCollectFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList(
+ data.listFiles
);
getList();
@@ -231,19 +240,49 @@
const { dialogProps, handleAdd, editForm } = useFormDialog({
defaultFormParams: {
- list: [] as FourStreamsMaterialFileTableItem[],
+ list: [] as CustomerApplyFileTypeListItem[],
companyId: '',
},
});
const { getIndustrialParkTypeNameById } = useIndustrialParkDropDownList();
-function openDialog(row: API.ParkBountyApplyDetailInfo) {
- handleAdd({
- list: FourStreamsMaterialUtils.initFourStreamsMaterialFileList(
- row,
- getIndustrialParkTypeNameById(detail.value?.parkId)
- ),
- companyId: row.enterpriseId,
- });
+
+async function openDialog(row: API.ParkBountyApplyDetailInfo) {
+ try {
+ const applyFiles = await queryClient.ensureQueryData({
+ queryKey: [
+ 'enterpriseApplyFileServices/getCustomerUploadApplyFiles',
+ row.enterpriseId,
+ form.applyMonth,
+ ],
+ queryFn: async () => {
+ return await enterpriseApplyFileServices.getCustomerUploadApplyFiles({
+ enterpriseId: row.enterpriseId,
+ withMonth: form.applyMonth,
+ });
+ },
+ });
+ const lastUploadEnterPactFile = await queryClient.ensureQueryData({
+ queryKey: ['enterpriseApplyFileServices/getCustomerUploadApplyFiles', row.enterpriseId],
+ queryFn: async () => {
+ return await parkBountyApplyServices.getEnterpriseLastUploadEnterPactFileNew({
+ companyId: row.enterpriseId,
+ });
+ },
+ });
+
+ const applyUploadFiles = await parkBountyApplyServices.getEnterpriseParkApplyUploadFiles({
+ companyId: row.enterpriseId,
+ parkBountyApplyId: id,
+ });
+ handleAdd({
+ list: EnterpriseApplyFileUtils.initParkCollectFileListApplyFiles(
+ applyUploadFiles,
+ applyFiles,
+ lastUploadEnterPactFile
+ ),
+ companyId: row.enterpriseId,
+ });
+ } catch (error) {}
}
</script>
diff --git a/src/views/MaterialReview/MaterialReviewDetail.vue b/src/views/MaterialReview/MaterialReviewDetail.vue
index 0bdeee5..b6d0263 100644
--- a/src/views/MaterialReview/MaterialReviewDetail.vue
+++ b/src/views/MaterialReview/MaterialReviewDetail.vue
@@ -56,8 +56,9 @@
import DetailView from '@/components/commonView/DetailView.vue';
import MateriaDetailDialog from '@/components/commonView/MateriaDetailDialog.vue';
import DeclareEnterpriseTableView from '@/components/commonView/DeclareEnterpriseTableView.vue';
-import { useQuery } from '@tanstack/vue-query';
+import { useQuery, useQueryClient } from '@tanstack/vue-query';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
+import * as enterpriseApplyFileServices from '@/services/api/EnterpriseApplyFile';
import { convertApi2FormUrlObjectBySeparator, setOSSLink } from '@/utils';
import { useRouteView } from '@/hooks';
import { OrderInputType } from '@bole-core/core';
@@ -68,7 +69,11 @@
BountyCheckStatusEnumColor,
} from '@/constants';
import { FourStreamsMaterialFileTableItem } from '@/components/commonView/types';
-import { FourStreamsMaterialUtils } from '@/components/commonView/utils';
+import {
+ CustomerApplyFileTypeListItem,
+ EnterpriseApplyFileUtils,
+ FourStreamsMaterialUtils,
+} from '@/components/commonView/utils';
import { useIndustrialParkDropDownList } from '@/hooks/industrialPark';
defineOptions({
@@ -86,9 +91,10 @@
applySumAmount: 0,
enterpriseTaxSubFileUrl: [] as UploadUserFile[],
enterpriseOperateFileUrl: [] as UploadUserFile[],
+ enterpriseRelateFileUrl: [] as UploadUserFile[],
+ parkCollectFileList: [] as CustomerApplyFileTypeListItem[],
bountyAssignFileUlr: [] as UploadUserFile[],
bountyCollectFileUrl: [] as UploadUserFile[],
- enterpriseRelateFileUrl: [] as UploadUserFile[],
outCheckStatus: '' as any as BountyCheckStatusEnum,
outCheckRemark: '',
@@ -125,6 +131,9 @@
form.bountyCollectFileUrl = convertApi2FormUrlObjectBySeparator(data?.bountyCollectFileUrl);
form.enterpriseRelateFileUrl = convertApi2FormUrlObjectBySeparator(
data?.enterpriseRelateFileUrl
+ );
+ form.parkCollectFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList(
+ data.listFiles
);
getList();
@@ -166,21 +175,57 @@
const { dialogProps, handleAdd, editForm } = useFormDialog({
defaultFormParams: {
- list: [] as FourStreamsMaterialFileTableItem[],
+ list: [] as CustomerApplyFileTypeListItem[],
companyId: '',
},
});
const { getIndustrialParkTypeNameById } = useIndustrialParkDropDownList();
+const queryClient = useQueryClient();
+async function openDialog(row: API.ParkBountyApplyDetailInfo) {
+ try {
+ const applyFiles = await queryClient.ensureQueryData({
+ queryKey: [
+ 'enterpriseApplyFileServices/getCustomerUploadApplyFiles',
+ row.enterpriseId,
+ form.applyMonth,
+ ],
+ queryFn: async () => {
+ return await enterpriseApplyFileServices.getCustomerUploadApplyFiles({
+ enterpriseId: row.enterpriseId,
+ withMonth: form.applyMonth,
+ });
+ },
+ });
+ const lastUploadEnterPactFile = await queryClient.ensureQueryData({
+ queryKey: ['enterpriseApplyFileServices/getCustomerUploadApplyFiles', row.enterpriseId],
+ queryFn: async () => {
+ return await parkBountyApplyServices.getEnterpriseLastUploadEnterPactFileNew({
+ companyId: row.enterpriseId,
+ });
+ },
+ });
-function openDialog(row: API.ParkBountyApplyDetailInfo) {
- handleAdd({
- list: FourStreamsMaterialUtils.initFourStreamsMaterialFileList(
- row,
- getIndustrialParkTypeNameById(detail.value?.parkId)
- ),
- companyId: row.enterpriseId,
- });
+ const applyUploadFiles = await parkBountyApplyServices.getEnterpriseParkApplyUploadFiles({
+ companyId: row.enterpriseId,
+ parkBountyApplyId: id,
+ });
+ handleAdd({
+ list: EnterpriseApplyFileUtils.initParkCollectFileListApplyFiles(
+ applyUploadFiles,
+ applyFiles,
+ lastUploadEnterPactFile
+ ),
+ companyId: row.enterpriseId,
+ });
+ } catch (error) {}
+ // handleAdd({
+ // list: FourStreamsMaterialUtils.initFourStreamsMaterialFileList(
+ // row,
+ // getIndustrialParkTypeNameById(detail.value?.parkId)
+ // ),
+ // companyId: row.enterpriseId,
+ // });
}
function handleBack() {
diff --git a/src/views/Reward/RewardDeclareDetail.vue b/src/views/Reward/RewardDeclareDetail.vue
index 02342ea..17df84a 100644
--- a/src/views/Reward/RewardDeclareDetail.vue
+++ b/src/views/Reward/RewardDeclareDetail.vue
@@ -40,15 +40,20 @@
import ChunkCellV2 from '@/components/Layout/ChunkCellV2.vue';
import MateriaDetailDialog from '@/components/commonView/MateriaDetailDialog.vue';
import DeclareEnterpriseTableView from '@/components/commonView/DeclareEnterpriseTableView.vue';
-import { useQuery } from '@tanstack/vue-query';
+import { useQuery, useQueryClient } from '@tanstack/vue-query';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
+import * as enterpriseApplyFileServices from '@/services/api/EnterpriseApplyFile';
import { convertApi2FormUrlObjectBySeparator, setOSSLink } from '@/utils';
import { useRouteView } from '@/hooks';
import { OrderInputType } from '@bole-core/core';
import { EnterpriseTypeText } from '@/constants';
import { FourStreamsMaterialFileTableItem } from '@/components/commonView/types';
import { useIndustrialParkDropDownList } from '@/hooks/industrialPark';
-import { FourStreamsMaterialUtils } from '@/components/commonView/utils';
+import {
+ CustomerApplyFileTypeListItem,
+ EnterpriseApplyFileUtils,
+ FourStreamsMaterialUtils,
+} from '@/components/commonView/utils';
defineOptions({
name: 'RewardDeclareDetail',
@@ -65,9 +70,10 @@
applySumAmount: 0,
enterpriseTaxSubFileUrl: [] as UploadUserFile[],
enterpriseOperateFileUrl: [] as UploadUserFile[],
+ enterpriseRelateFileUrl: [] as UploadUserFile[],
+ parkCollectFileList: [] as CustomerApplyFileTypeListItem[],
bountyAssignFileUlr: [] as UploadUserFile[],
bountyCollectFileUrl: [] as UploadUserFile[],
- enterpriseRelateFileUrl: [] as UploadUserFile[],
});
const { data: detail, isLoading } = useQuery({
@@ -92,6 +98,9 @@
);
form.enterpriseOperateFileUrl = convertApi2FormUrlObjectBySeparator(
data?.enterpriseOperateFileUrl
+ );
+ form.parkCollectFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList(
+ data.listFiles
);
form.bountyAssignFileUlr = convertApi2FormUrlObjectBySeparator(data?.bountyAssignFileUlr);
form.bountyCollectFileUrl = convertApi2FormUrlObjectBySeparator(data?.bountyCollectFileUrl);
@@ -140,23 +149,59 @@
}
);
-const { dialogProps, handleEdit, editForm } = useFormDialog({
+const { dialogProps, handleAdd, editForm } = useFormDialog({
defaultFormParams: {
- list: [] as FourStreamsMaterialFileTableItem[],
+ list: [] as CustomerApplyFileTypeListItem[],
companyId: '',
},
});
const { getIndustrialParkTypeNameById } = useIndustrialParkDropDownList();
+const queryClient = useQueryClient();
+async function openDialog(row: API.ParkBountyApplyDetailInfo) {
+ try {
+ const applyFiles = await queryClient.ensureQueryData({
+ queryKey: [
+ 'enterpriseApplyFileServices/getCustomerUploadApplyFiles',
+ row.enterpriseId,
+ form.applyMonth,
+ ],
+ queryFn: async () => {
+ return await enterpriseApplyFileServices.getCustomerUploadApplyFiles({
+ enterpriseId: row.enterpriseId,
+ withMonth: form.applyMonth,
+ });
+ },
+ });
+ const lastUploadEnterPactFile = await queryClient.ensureQueryData({
+ queryKey: ['enterpriseApplyFileServices/getCustomerUploadApplyFiles', row.enterpriseId],
+ queryFn: async () => {
+ return await parkBountyApplyServices.getEnterpriseLastUploadEnterPactFileNew({
+ companyId: row.enterpriseId,
+ });
+ },
+ });
-function openDialog(row: API.ParkBountyApplyDetailInfo) {
- handleEdit({
- list: FourStreamsMaterialUtils.initFourStreamsMaterialFileList(
- row,
- getIndustrialParkTypeNameById(detail.value?.parkId)
- ),
- companyId: row.enterpriseId,
- });
+ const applyUploadFiles = await parkBountyApplyServices.getEnterpriseParkApplyUploadFiles({
+ companyId: row.enterpriseId,
+ parkBountyApplyId: id,
+ });
+ handleAdd({
+ list: EnterpriseApplyFileUtils.initParkCollectFileListApplyFiles(
+ applyUploadFiles,
+ applyFiles,
+ lastUploadEnterPactFile
+ ),
+ companyId: row.enterpriseId,
+ });
+ } catch (error) {}
+ // handleEdit({
+ // list: FourStreamsMaterialUtils.initFourStreamsMaterialFileList(
+ // row,
+ // getIndustrialParkTypeNameById(detail.value?.parkId)
+ // ),
+ // companyId: row.enterpriseId,
+ // });
}
function handleBack() {
diff --git a/src/views/Reward/RewardGrant.vue b/src/views/Reward/RewardGrant.vue
index a576222..8716cc1 100644
--- a/src/views/Reward/RewardGrant.vue
+++ b/src/views/Reward/RewardGrant.vue
@@ -68,7 +68,7 @@
<ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
</ProTableV2>
- <FourStreamsMaterialFileDialog
+ <FourStreamsMaterialFileDialogV2
v-bind="dialogMaterialFileProps"
:show-upload-btn="false"
:show-delete-btn="false"
@@ -105,6 +105,7 @@
SettleStatusEnumText,
FinanceStatusEnum,
FinanceStatusEnumText,
+ TransferFileEnumInRewardGrandText,
} from '@/constants';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import FinancialDialog from './components/FinancialDialog.vue';
@@ -112,11 +113,8 @@
import _ from 'lodash';
import { ModelValueType } from 'element-plus';
import { useQueryClient } from '@tanstack/vue-query';
+import { TransferFileEnumInRewardGrandTableItem } from '@/components/commonView/types';
import { FourStreamsMaterialUtils } from '@/components/commonView/utils';
-import {
- TransferFileEnumInRewardGrandText,
- TransferFileEnumInRewardGrandTableItem,
-} from '@/components/commonView/types';
defineOptions({
name: 'RewardGrant',
@@ -127,51 +125,61 @@
id: '1',
enCode: 'batchNo',
name: '鐢宠鎵规鍙�',
+ width: 160,
},
{
id: '2',
enCode: 'parkName',
name: '鐢宠鍥尯',
+ width: 250,
},
{
id: '3',
enCode: 'parkTypeName',
name: '鍥尯绫诲瀷',
+ width: 160,
},
{
id: '4',
enCode: 'applyMonth',
name: '鐢宠骞冲彴濂栧姳鏈堜唤',
+ width: 160,
},
{
id: '5',
enCode: 'applySumAmount',
name: '骞冲彴濂栧姳姹囨�婚噾棰濓紙鍏冿級',
+ width: 180,
},
{
id: '6',
enCode: 'creationTime',
name: '鐢虫姤鏃ユ湡',
+ width: 180,
},
{
id: '7',
enCode: 'financeStatus',
name: '璐㈡斂鎷ㄤ粯鐘舵��',
+ width: 160,
},
{
id: '8',
enCode: 'financeTime',
name: '鎷ㄤ粯鏃ユ湡',
+ width: 180,
},
{
id: '9',
enCode: 'settleStatus',
name: '骞冲彴鍏呭�肩姸鎬�',
+ width: 160,
},
{
id: '10',
enCode: 'settleTime',
name: '鍏呭�兼棩鏈�',
+ width: 180,
},
];
@@ -208,7 +216,7 @@
},
extraProps: {
hide: (row: API.GetParkBountyApplyListOutput) =>
- row.settleStatus === SettleStatusEnum.HasSettle,
+ row.settleStatus !== SettleStatusEnum.WaitForSettle,
},
},
{
--
Gitblit v1.9.1