From 89f387786da0e4383cf06ee162526db54971f9cf Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期四, 23 十月 2025 15:21:16 +0800
Subject: [PATCH] fix: s
---
src/views/Reward/RewardGrant.vue | 354 +++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 285 insertions(+), 69 deletions(-)
diff --git a/src/views/Reward/RewardGrant.vue b/src/views/Reward/RewardGrant.vue
index 5891bf6..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,17 +68,17 @@
<ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
</ProTableV2>
- <FourStreamsMaterialFileDialog
+ <FourStreamsMaterialFileDialogV2
v-bind="dialogMaterialFileProps"
:show-upload-btn="false"
:show-delete-btn="false"
- :show-check-btn="false"
- downloadBtnText="鏌ョ湅"
title="鏌ョ湅鍑瘉"
- :BusinessTypeEnumText="ApplyTransferFileBusinessTypeEnumText"
+ :BusinessTypeEnumText="TransferFileEnumInRewardGrandText"
/>
- <FinancialDialog v-bind="dialogFinancialProps"></FinancialDialog>
- <PlateformDialog v-bind="dialogPlateformProps"></PlateformDialog>
+ <RegisterDialog v-bind="dialogRegisterProps"></RegisterDialog>
+ <UploadCertRewardDialog v-bind="dialogCertRewardProps"></UploadCertRewardDialog>
+ <!-- <FinancialDialog v-bind="dialogFinancialProps"></FinancialDialog>
+ <PlateformDialog v-bind="dialogPlateformProps"></PlateformDialog> -->
</AppContainer>
</LoadingLayout>
</template>
@@ -80,18 +100,27 @@
} from '@bole-core/components';
import { Message, OrderInputType } from '@bole-core/core';
import { format } from '@/utils';
-import { SettleStatusEnum, SettleStatusEnumText } from '@/constants';
+import {
+ SettleStatusEnum,
+ FinanceStatusEnum,
+ TransferFileEnumInRewardGrandText,
+ FinanceStatusEnumTextV2,
+ FinanceStatusEnumTextV2Query,
+ SettleStatusEnumTextV2,
+ SettleStatusEnumTextV2Query,
+ IncomeTypeEnum,
+ BillStatusEnum,
+} from '@/constants';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
+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';
-import {
- ApplyTransferMaterialFileTableItem,
- ApplyTransferFileBusinessTypeEnumText,
-} from '@/components/commonView/types';
defineOptions({
name: 'RewardGrant',
@@ -102,51 +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: '鐢宠骞冲彴濂栧姳鏈堜唤',
+ width: 160,
},
{
id: '5',
enCode: 'applySumAmount',
name: '骞冲彴濂栧姳姹囨�婚噾棰濓紙鍏冿級',
+ width: 180,
},
{
id: '6',
enCode: 'creationTime',
name: '鐢虫姤鏃ユ湡',
+ width: 180,
},
{
id: '7',
- enCode: 'settleStatus',
- name: '璐㈡斂鎷ㄤ粯鐘舵��',
+ enCode: 'financeStatus',
+ name: '璐㈡斂鎷ㄤ粯鐧昏鐘舵��',
+ width: 160,
},
{
id: '8',
- enCode: 'settleTime',
- name: '鎷ㄤ粯鏃ユ湡',
+ enCode: 'financeTime',
+ name: '璐㈡斂鎷ㄤ粯鐧昏鏃ユ湡',
+ width: 180,
},
{
id: '9',
enCode: 'settleStatus',
- name: '骞冲彴鍏呭�肩姸鎬�',
+ name: '骞冲彴鎷ㄤ粯鐧昏鐘舵��',
+ width: 160,
},
{
id: '10',
enCode: 'settleTime',
- name: '鍏呭�兼棩鏈�',
+ name: '骞冲彴鎷ㄤ粯鐧昏鏃ユ湡',
+ width: 180,
+ },
+ {
+ id: '11',
+ enCode: 'settleAndFinanceOperator',
+ name: '鐧昏浜�',
},
];
@@ -160,32 +204,64 @@
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: 'financialBtn',
- name: '璐㈡斂鎷ㄤ粯',
+ enCode: 'registerBtn',
+ name: '鐧昏',
},
emits: {
- onClick: (role) => openFinancialDialog(role),
+ onClick: (role) => goRewardGrantRegister(role),
},
extraProps: {
hide: (row: API.GetParkBountyApplyListOutput) =>
- row.settleStatus === SettleStatusEnum.HasSettle,
+ !(
+ row.settleStatus === SettleStatusEnum.WaitForSettle ||
+ row.financeStatus === FinanceStatusEnum.WaitForIncome
+ ),
},
},
- {
- data: {
- enCode: 'plateformBtn',
- name: '骞冲彴鍏呭��',
- },
- emits: {
- onClick: (role) => openPlateformDialog(role),
- },
- extraProps: {
- hide: (row: API.GetParkBountyApplyListOutput) =>
- row.settleStatus === SettleStatusEnum.HasSettle,
- },
- },
+ // {
+ // data: {
+ // enCode: 'uploadCertBtn',
+ // name: '涓婁紶鍑瘉',
+ // },
+ // emits: {
+ // onClick: (role) => openCertRewardDialog(role),
+ // },
+ // extraProps: {
+ // hide: (row: API.GetParkBountyApplyListOutput) =>
+ // !(
+ // row.settleStatus === SettleStatusEnum.HasSettle ||
+ // row.financeStatus === FinanceStatusEnum.HasIncome
+ // ),
+ // },
+ // },
{
data: {
enCode: 'checkBtn',
@@ -196,7 +272,10 @@
},
extraProps: {
hide: (row: API.GetParkBountyApplyListOutput) =>
- row.settleStatus === SettleStatusEnum.WaitForSettle,
+ !(
+ row.settleStatus === SettleStatusEnum.HasBill ||
+ row.financeStatus === FinanceStatusEnum.HasBill
+ ),
},
},
]);
@@ -230,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,
@@ -245,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: {
@@ -268,46 +354,99 @@
});
}
-function openMaterialFileDialog(row: API.ParkBountyApplyTransferDetailInfo) {
+function openMaterialFileDialog(row: API.GetParkBountyApplyListOutput) {
handleMaterialFileAdd({
- list: FourStreamsMaterialUtils.initApplyTransferMaterialFileList(row),
+ list: FourStreamsMaterialUtils.initApplyRewardGrandFileList(row),
});
}
const { dialogProps: dialogMaterialFileProps, handleAdd: handleMaterialFileAdd } = useFormDialog({
defaultFormParams: {
- list: [] as ApplyTransferMaterialFileTableItem[],
+ 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: dialogFinancialProps,
- handleEdit: handleFinancialEdit,
- editForm: editFinancialForm,
+ dialogProps: dialogRegisterProps,
+ handleEdit: handleRegisterEdit,
+ editForm: editRegisterForm,
} = useFormDialog({
- onConfirm: handleFinancial,
+ onConfirm: handleRegister,
defaultFormParams: {
+ incomeType: '' as any as IncomeTypeEnum,
parkBountyApplyId: '',
- amount: 0,
- settleFileUrl: [] as UploadUserFile[],
+ fileUrl: [] as UploadUserFile[],
+ financeSumAmount: 0,
+ showSuportPlatRecharge: false,
+ showSuportFiscalRecharge: false,
},
});
-function openFinancialDialog(row?: API.GetParkBountyApplyListOutput) {
- handleFinancialEdit({
+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,
- amount: 0,
- settleFileUrl: [] as UploadUserFile[],
+ financeSumAmount: 0,
});
}
-async function handleFinancial() {
+async function handleRegister() {
try {
- let params: API.ParkBountyApplySettleInput = {
- parkBountyApplyId: editFinancialForm.parkBountyApplyId,
- settleFileUrl: editFinancialForm.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);
@@ -318,28 +457,105 @@
} catch (error) {}
}
+// 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: dialogPlateformProps,
- handleEdit: handlePlateformEdit,
- editForm: editPlateformForm,
+ dialogProps: dialogCertRewardProps,
+ handleEdit: handleCertRewardEdit,
+ editForm: editCertRewardForm,
} = useFormDialog({
- onConfirm: handlePlateform,
+ onConfirm: handleCertReward,
defaultFormParams: {
+ incomeType: '' as any as IncomeTypeEnum,
parkBountyApplyId: '',
- amount: 0,
- settleFileUrl: [] as UploadUserFile[],
+ fileUrl: [] as UploadUserFile[],
+ showSuportPlatRecharge: false,
+ showSuportFiscalRecharge: false,
},
});
-function openPlateformDialog(row?: API.GetParkBountyApplyListOutput) {
- handlePlateformEdit({
+function openCertRewardDialog(row?: API.GetParkBountyApplyListOutput) {
+ handleCertRewardEdit({
+ incomeType: '' as any as IncomeTypeEnum,
+ showSuportPlatRecharge: row.settleStatus === SettleStatusEnum.HasSettle,
+ showSuportFiscalRecharge: row.financeStatus === FinanceStatusEnum.HasIncome,
parkBountyApplyId: row.id,
- amount: 0,
- settleFileUrl: [] as UploadUserFile[],
+ 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) {}
+}
-async function handlePlateform() {}
+function goRewardGrantRegister(row: API.GetParkBountyApplyListOutput) {
+ router.push({
+ name: 'RewardGrantRegister',
+ params: {
+ id: row.id,
+ },
+ });
+}
</script>
<style lang="scss" scoped>
--
Gitblit v1.9.1