From 0b73bba28e2a8473ab71f5c8b4760c1995ff4fc1 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 21 十月 2025 18:29:07 +0800
Subject: [PATCH] fix: s
---
src/views/Reward/RewardGrant.vue | 382 ++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 336 insertions(+), 46 deletions(-)
diff --git a/src/views/Reward/RewardGrant.vue b/src/views/Reward/RewardGrant.vue
index 18093e7..3a18a2b 100644
--- a/src/views/Reward/RewardGrant.vue
+++ b/src/views/Reward/RewardGrant.vue
@@ -14,7 +14,18 @@
@change="getList()"
></FieldDatePicker>
</QueryFilterItem>
- <QueryFilterItem tip-content="鍙戞斁鏃ユ湡">
+ <QueryFilterItem tip-content="璐㈡斂鎷ㄤ粯鐧昏鏃ユ湡">
+ <FieldDatePicker
+ v-model="extraParamState.financeTime"
+ type="daterange"
+ range-separator="~"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ clearable
+ @change="getList()"
+ ></FieldDatePicker>
+ </QueryFilterItem>
+ <QueryFilterItem tip-content="骞冲彴鎷ㄤ粯鐧昏鏃ユ湡">
<FieldDatePicker
v-model="extraParamState.settleTime"
type="daterange"
@@ -25,10 +36,19 @@
@change="getList()"
></FieldDatePicker>
</QueryFilterItem>
- <QueryFilterItem>
+ <QueryFilterItem tip-content="璐㈡斂鎷ㄤ粯鐧昏鐘舵��">
+ <FieldRadio
+ v-model="extraParamState.financeStatus"
+ :value-enum="FinanceStatusEnumTextV2Query"
+ buttonStyle
+ showAllBtn
+ @change="getList()"
+ />
+ </QueryFilterItem>
+ <QueryFilterItem tip-content="骞冲彴鎷ㄤ粯鐧昏鐘舵��">
<FieldRadio
v-model="extraParamState.settleStatus"
- :value-enum="SettleStatusEnumText"
+ :value-enum="SettleStatusEnumTextV2Query"
buttonStyle
showAllBtn
@change="getList()"
@@ -48,7 +68,17 @@
<ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
</ProTableV2>
- <RewardGrantDialog v-bind="dialogProps"></RewardGrantDialog>
+ <FourStreamsMaterialFileDialogV2
+ v-bind="dialogMaterialFileProps"
+ :show-upload-btn="false"
+ :show-delete-btn="false"
+ title="鏌ョ湅鍑瘉"
+ :BusinessTypeEnumText="TransferFileEnumInRewardGrandText"
+ />
+ <RegisterDialog v-bind="dialogRegisterProps"></RegisterDialog>
+ <UploadCertRewardDialog v-bind="dialogCertRewardProps"></UploadCertRewardDialog>
+ <!-- <FinancialDialog v-bind="dialogFinancialProps"></FinancialDialog>
+ <PlateformDialog v-bind="dialogPlateformProps"></PlateformDialog> -->
</AppContainer>
</LoadingLayout>
</template>
@@ -67,15 +97,30 @@
FieldDatePicker,
useFormDialog,
UploadUserFile,
- bolePreview,
} from '@bole-core/components';
import { Message, OrderInputType } from '@bole-core/core';
-import { convertApi2FormUrl, convertApi2FormUrlOnlyOne, downloadFileByUrl, format } from '@/utils';
-import { SettleStatusEnum, SettleStatusEnumText } from '@/constants';
+import { format } from '@/utils';
+import {
+ SettleStatusEnum,
+ FinanceStatusEnum,
+ TransferFileEnumInRewardGrandText,
+ FinanceStatusEnumTextV2,
+ FinanceStatusEnumTextV2Query,
+ SettleStatusEnumTextV2,
+ SettleStatusEnumTextV2Query,
+ IncomeTypeEnum,
+ BillStatusEnum,
+} from '@/constants';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
-import RewardGrantDialog from './components/RewardGrantDialog.vue';
+import RegisterDialog from './components/RegisterDialog.vue';
+import UploadCertRewardDialog from './components/UploadCertRewardDialog.vue';
+import FinancialDialog from './components/FinancialDialog.vue';
+import PlateformDialog from './components/PlateformDialog.vue';
import _ from 'lodash';
import { ModelValueType } from 'element-plus';
+import { useQueryClient } from '@tanstack/vue-query';
+import { TransferFileEnumInRewardGrandTableItem } from '@/components/commonView/types';
+import { FourStreamsMaterialUtils } from '@/components/commonView/utils';
defineOptions({
name: 'RewardGrant',
@@ -86,41 +131,66 @@
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: '鐢宠濂栧姳閲戞湀浠�',
+ name: '鐢宠骞冲彴濂栧姳鏈堜唤',
+ width: 160,
},
{
id: '5',
enCode: 'applySumAmount',
- name: '濂栧姳閲戞眹鎬婚噾棰濓紙鍏冿級',
+ name: '骞冲彴濂栧姳姹囨�婚噾棰濓紙鍏冿級',
+ width: 180,
},
{
id: '6',
enCode: 'creationTime',
name: '鐢虫姤鏃ユ湡',
+ width: 180,
},
{
id: '7',
- enCode: 'settleStatus',
- name: '鍙戞斁鐘舵��',
+ enCode: 'financeStatus',
+ name: '璐㈡斂鎷ㄤ粯鐧昏鐘舵��',
+ width: 160,
},
{
id: '8',
+ enCode: 'financeTime',
+ name: '璐㈡斂鎷ㄤ粯鐧昏鏃ユ湡',
+ width: 180,
+ },
+ {
+ id: '9',
+ enCode: 'settleStatus',
+ name: '骞冲彴鎷ㄤ粯鐧昏鐘舵��',
+ width: 160,
+ },
+ {
+ id: '10',
enCode: 'settleTime',
- name: '鍙戞斁鏃ユ湡',
+ name: '骞冲彴鎷ㄤ粯鐧昏鏃ユ湡',
+ width: 180,
+ },
+ {
+ id: '11',
+ enCode: 'settleAndFinanceOperator',
+ name: '鐧昏浜�',
},
];
@@ -134,30 +204,78 @@
onClick: (role) => goDetail(role),
},
},
+ // {
+ // data: {
+ // enCode: 'financialBtn',
+ // name: '璐㈡斂鎷ㄤ粯',
+ // },
+ // emits: {
+ // onClick: (role) => openFinancialDialog(role),
+ // },
+ // extraProps: {
+ // hide: (row: API.GetParkBountyApplyListOutput) =>
+ // row.financeStatus === FinanceStatusEnum.HasIncome,
+ // },
+ // },
+ // {
+ // data: {
+ // enCode: 'plateformBtn',
+ // name: '骞冲彴鍏呭��',
+ // },
+ // emits: {
+ // onClick: (role) => openPlateformDialog(role),
+ // },
+ // extraProps: {
+ // hide: (row: API.GetParkBountyApplyListOutput) =>
+ // row.settleStatus !== SettleStatusEnum.WaitForSettle,
+ // },
+ // },
{
data: {
- enCode: 'grantBtn',
- name: '鍙戞斁',
+ enCode: 'registerBtn',
+ name: '鐧昏',
},
emits: {
- onClick: (role) => openDialog(role),
+ onClick: (role) => goRewardGrantRegister(role),
},
extraProps: {
hide: (row: API.GetParkBountyApplyListOutput) =>
- row.settleStatus === SettleStatusEnum.HasSettle,
+ !(
+ row.settleStatus === SettleStatusEnum.WaitForSettle ||
+ row.financeStatus === FinanceStatusEnum.WaitForIncome
+ ),
},
},
+ // {
+ // data: {
+ // enCode: 'uploadCertBtn',
+ // name: '涓婁紶鍑瘉',
+ // },
+ // emits: {
+ // onClick: (role) => openCertRewardDialog(role),
+ // },
+ // extraProps: {
+ // hide: (row: API.GetParkBountyApplyListOutput) =>
+ // !(
+ // row.settleStatus === SettleStatusEnum.HasSettle ||
+ // row.financeStatus === FinanceStatusEnum.HasIncome
+ // ),
+ // },
+ // },
{
data: {
- enCode: 'previewBtn',
+ enCode: 'checkBtn',
name: '鏌ョ湅鍑瘉',
},
emits: {
- onClick: (role) => handlePreview(role),
+ onClick: (row) => openMaterialFileDialog(row),
},
extraProps: {
hide: (row: API.GetParkBountyApplyListOutput) =>
- row.settleStatus === SettleStatusEnum.WaitForSettle,
+ !(
+ row.settleStatus === SettleStatusEnum.HasBill ||
+ row.financeStatus === FinanceStatusEnum.HasBill
+ ),
},
},
]);
@@ -191,10 +309,13 @@
},
batchNo: extraParamState.batchNo,
settleStatus: extraParamState.settleStatus,
+ financeStatus: extraParamState.financeStatus,
creationTimeBegin: format(extraParamState.creationTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
creationTimeEnd: format(extraParamState.creationTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
settleTimeBegin: format(extraParamState.settleTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
settleTimeEnd: format(extraParamState.settleTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
+ financeTimeBegin: format(extraParamState.financeTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
+ financeTimeEnd: format(extraParamState.financeTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
};
let res = await parkBountyApplyServices.getParkBountyApplyList(params, {
showLoading: !state.loading,
@@ -206,21 +327,25 @@
defaultExtraParams: {
batchNo: '',
settleStatus: '' as any as SettleStatusEnum,
+ financeStatus: '' as any as FinanceStatusEnum,
creationTime: [] as unknown as ModelValueType,
settleTime: [] as unknown as ModelValueType,
+ financeTime: [] as unknown as ModelValueType,
orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
},
columnsRenderProps: {
applyMonth: { type: 'date', format: 'YYYY骞碝M鏈�' },
creationTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
settleTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
+ financeTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
applySumAmount: { type: 'money' },
- settleStatus: { type: 'enum', valueEnum: SettleStatusEnumText },
+ settleStatus: { type: 'enum', valueEnum: SettleStatusEnumTextV2 },
+ financeStatus: { type: 'enum', valueEnum: FinanceStatusEnumTextV2 },
},
}
);
-function goDetail(row: any) {
+function goDetail(row: API.GetParkBountyApplyListOutput) {
router.push({
name: 'RewardDeclareDetail',
params: {
@@ -229,42 +354,207 @@
});
}
-const { dialogProps, handleAdd, handleEdit, editForm } = useFormDialog({
- onConfirm: handleAddOrEdit,
- defaultFormParams: {
- parkBountyApplyId: '',
- settleFileUrl: [] as UploadUserFile[],
- },
-});
-
-function openDialog(row?: API.GetParkBountyApplyListOutput) {
- handleEdit({
- parkBountyApplyId: row.id,
- settleFileUrl: [] as UploadUserFile[],
+function openMaterialFileDialog(row: API.GetParkBountyApplyListOutput) {
+ handleMaterialFileAdd({
+ list: FourStreamsMaterialUtils.initApplyRewardGrandFileList(row),
});
}
-async function handleAddOrEdit() {
+const { dialogProps: dialogMaterialFileProps, handleAdd: handleMaterialFileAdd } = useFormDialog({
+ defaultFormParams: {
+ list: [] as TransferFileEnumInRewardGrandTableItem[],
+ },
+});
+
+const queryClient = useQueryClient();
+
+// const {
+// dialogProps: dialogFinancialProps,
+// handleEdit: handleFinancialEdit,
+// editForm: editFinancialForm,
+// } = useFormDialog({
+// onConfirm: handleFinancial,
+// defaultFormParams: {
+// parkBountyApplyId: '',
+// financeSumAmount: 0,
+// financeFileUrl: [] as UploadUserFile[],
+// },
+// });
+
+// function openFinancialDialog(row?: API.GetParkBountyApplyListOutput) {
+// handleFinancialEdit({
+// parkBountyApplyId: row.id,
+// financeSumAmount: 0,
+// financeFileUrl: [] as UploadUserFile[],
+// });
+// }
+// async function handleFinancial() {
+// try {
+// let params: API.ParkBountyApplyFinanceFileInput = {
+// parkBountyApplyId: editFinancialForm.parkBountyApplyId,
+// financeSumAmount: editFinancialForm.financeSumAmount,
+// financeFileUrl: editFinancialForm.financeFileUrl.map((x) => x.path).join('|'),
+// };
+// let res = await parkBountyApplyServices.parkBountyApplyFinanceBill(params);
+// if (res) {
+// Message.successMessage('鎿嶄綔鎴愬姛');
+// getList(paginationState.pageIndex);
+// queryClient.invalidateQueries({
+// queryKey: ['parkBountyApplyServices/getGoverDataBoard'],
+// });
+// }
+// } catch (error) {}
+// }
+const {
+ dialogProps: dialogRegisterProps,
+ handleEdit: handleRegisterEdit,
+ editForm: editRegisterForm,
+} = useFormDialog({
+ onConfirm: handleRegister,
+ defaultFormParams: {
+ incomeType: '' as any as IncomeTypeEnum,
+ parkBountyApplyId: '',
+ fileUrl: [] as UploadUserFile[],
+ financeSumAmount: 0,
+ showSuportPlatRecharge: false,
+ showSuportFiscalRecharge: false,
+ },
+});
+
+function openRegisterDialog(row?: API.GetParkBountyApplyListOutput) {
+ handleRegisterEdit({
+ incomeType: '' as any as IncomeTypeEnum,
+ fileUrl: [] as UploadUserFile[],
+ showSuportPlatRecharge: row.settleStatus === SettleStatusEnum.WaitForSettle,
+ showSuportFiscalRecharge: row.financeStatus === FinanceStatusEnum.WaitForIncome,
+ parkBountyApplyId: row.id,
+ financeSumAmount: 0,
+ });
+}
+async function handleRegister() {
try {
- let params: API.ParkBountyApplySettleInput = {
- parkBountyApplyId: editForm.parkBountyApplyId,
- settleFileUrl: editForm.settleFileUrl.map((x) => x.path).join('|'),
+ let params = {
+ parkBountyApplyId: editRegisterForm.parkBountyApplyId,
};
- let res = await parkBountyApplyServices.parkBountyApplySettle(params);
+ let res;
+ if (editRegisterForm.incomeType === IncomeTypeEnum.Fiscal) {
+ (params as API.ParkBountyApplyFinanceFileInput).financeSumAmount =
+ editRegisterForm.financeSumAmount;
+ res = await parkBountyApplyServices.parkBountyApplyFinanceBillAmount(params);
+ }
+ if (editRegisterForm.incomeType === IncomeTypeEnum.Platform) {
+ (params as API.ParkBountyApplySettleInput).settleSumAmount =
+ editRegisterForm.financeSumAmount;
+ res = await parkBountyApplyServices.parkBountyApplySettleAmount(params);
+ }
if (res) {
Message.successMessage('鎿嶄綔鎴愬姛');
getList(paginationState.pageIndex);
+ queryClient.invalidateQueries({
+ queryKey: ['parkBountyApplyServices/getGoverDataBoard'],
+ });
}
} catch (error) {}
}
-function handlePreview(row?: API.GetParkBountyApplyListOutput) {
- const fileList = row.settleFileUrl?.split('|').map((x) => convertApi2FormUrl(x)) ?? [];
- if (fileList.length > 1) {
- console.log('fileList: ', fileList);
- } else {
- downloadFileByUrl(fileList[0]);
- }
+// const {
+// dialogProps: dialogPlateformProps,
+// handleEdit: handlePlateformEdit,
+// editForm: editPlateformForm,
+// } = useFormDialog({
+// onConfirm: handlePlateform,
+// defaultFormParams: {
+// parkBountyApplyId: '',
+// settleSumAmount: 0,
+// settleFileUrl: [] as UploadUserFile[],
+// },
+// });
+
+// function openPlateformDialog(row?: API.GetParkBountyApplyListOutput) {
+// handlePlateformEdit({
+// parkBountyApplyId: row.id,
+// settleSumAmount: 0,
+// settleFileUrl: [] as UploadUserFile[],
+// });
+// }
+
+// async function handlePlateform() {
+// try {
+// let params: API.ParkBountyApplySettleInput = {
+// parkBountyApplyId: editPlateformForm.parkBountyApplyId,
+// settleSumAmount: editPlateformForm.settleSumAmount,
+// settleFileUrl: editPlateformForm.settleFileUrl.map((x) => x.path).join('|'),
+// };
+// let res = await parkBountyApplyServices.parkBountyApplySettle(params);
+// if (res) {
+// Message.successMessage('鎿嶄綔鎴愬姛');
+// getList(paginationState.pageIndex);
+// queryClient.invalidateQueries({
+// queryKey: ['parkBountyApplyServices/getGoverDataBoard'],
+// });
+// }
+// } catch (error) {}
+// }
+
+const {
+ dialogProps: dialogCertRewardProps,
+ handleEdit: handleCertRewardEdit,
+ editForm: editCertRewardForm,
+} = useFormDialog({
+ onConfirm: handleCertReward,
+ defaultFormParams: {
+ incomeType: '' as any as IncomeTypeEnum,
+ parkBountyApplyId: '',
+ fileUrl: [] as UploadUserFile[],
+ showSuportPlatRecharge: false,
+ showSuportFiscalRecharge: false,
+ },
+});
+
+function openCertRewardDialog(row?: API.GetParkBountyApplyListOutput) {
+ handleCertRewardEdit({
+ incomeType: '' as any as IncomeTypeEnum,
+ showSuportPlatRecharge: row.settleStatus === SettleStatusEnum.HasSettle,
+ showSuportFiscalRecharge: row.financeStatus === FinanceStatusEnum.HasIncome,
+ parkBountyApplyId: row.id,
+ fileUrl: [] as UploadUserFile[],
+ });
+}
+async function handleCertReward() {
+ try {
+ let params: API.ParkBountyApplyFinanceFileInput = {
+ parkBountyApplyId: editCertRewardForm.parkBountyApplyId,
+ };
+ let res;
+ if (editCertRewardForm.incomeType === IncomeTypeEnum.Fiscal) {
+ (params as API.ParkBountyApplyFinanceFileInput).financeFileUrl = editCertRewardForm.fileUrl
+ .map((x) => x.path)
+ .join('|');
+ res = await parkBountyApplyServices.parkBountyApplyFinanceBill(params);
+ }
+ if (editCertRewardForm.incomeType === IncomeTypeEnum.Platform) {
+ (params as API.ParkBountyApplySettleInput).settleFileUrl = editCertRewardForm.fileUrl
+ .map((x) => x.path)
+ .join('|');
+ res = await parkBountyApplyServices.parkBountyApplySettle(params);
+ }
+ if (res) {
+ Message.successMessage('鎿嶄綔鎴愬姛');
+ getList(paginationState.pageIndex);
+ queryClient.invalidateQueries({
+ queryKey: ['parkBountyApplyServices/getGoverDataBoard'],
+ });
+ }
+ } catch (error) {}
+}
+
+function goRewardGrantRegister(row: API.GetParkBountyApplyListOutput) {
+ router.push({
+ name: 'RewardGrantRegister',
+ params: {
+ id: row.id,
+ },
+ });
}
</script>
--
Gitblit v1.9.1