zhengyiming
2025-11-13 c79f8a668dd8f2ef06f930489d535d70981e1c26
src/views/Reward/RewardGrant.vue
@@ -14,7 +14,7 @@
              @change="getList()"
            ></FieldDatePicker>
          </QueryFilterItem>
          <QueryFilterItem tip-content="拨付日期">
          <QueryFilterItem tip-content="财政拨付登记日期">
            <FieldDatePicker
              v-model="extraParamState.financeTime"
              type="daterange"
@@ -25,7 +25,7 @@
              @change="getList()"
            ></FieldDatePicker>
          </QueryFilterItem>
          <QueryFilterItem tip-content="充值日期">
          <QueryFilterItem tip-content="平台拨付登记日期">
            <FieldDatePicker
              v-model="extraParamState.settleTime"
              type="daterange"
@@ -36,19 +36,19 @@
              @change="getList()"
            ></FieldDatePicker>
          </QueryFilterItem>
          <QueryFilterItem tip-content="财政拨付状态">
          <QueryFilterItem tip-content="财政拨付登记状态">
            <FieldRadio
              v-model="extraParamState.financeStatus"
              :value-enum="FinanceStatusEnumTextV2"
              :value-enum="FinanceStatusEnumTextV2Query"
              buttonStyle
              showAllBtn
              @change="getList()"
            />
          </QueryFilterItem>
          <QueryFilterItem tip-content="平台充值状态">
          <QueryFilterItem tip-content="平台拨付登记状态">
            <FieldRadio
              v-model="extraParamState.settleStatus"
              :value-enum="SettleStatusEnumTextV2"
              :value-enum="SettleStatusEnumTextV2Query"
              buttonStyle
              showAllBtn
              @change="getList()"
@@ -72,8 +72,6 @@
        v-bind="dialogMaterialFileProps"
        :show-upload-btn="false"
        :show-delete-btn="false"
        :show-check-btn="false"
        downloadBtnText="查看"
        title="查看凭证"
        :BusinessTypeEnumText="TransferFileEnumInRewardGrandText"
      />
@@ -107,7 +105,9 @@
  FinanceStatusEnum,
  TransferFileEnumInRewardGrandText,
  FinanceStatusEnumTextV2,
  FinanceStatusEnumTextV2Query,
  SettleStatusEnumTextV2,
  SettleStatusEnumTextV2Query,
  IncomeTypeEnum,
  BillStatusEnum,
} from '@/constants';
@@ -121,118 +121,16 @@
import { useQueryClient } from '@tanstack/vue-query';
import { TransferFileEnumInRewardGrandTableItem } from '@/components/commonView/types';
import { FourStreamsMaterialUtils } from '@/components/commonView/utils';
import { useAccess } from '@/hooks';
defineOptions({
  name: 'RewardGrant',
});
const column: API.CustomModuleColumnDto[] = [
  {
    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,
  },
];
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'detailBtn',
      name: '申报详情',
    },
    emits: {
      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: 'registerBtn',
      name: '登记',
    },
    emits: {
      onClick: (role) => openRegisterDialog(role),
    },
const operationBtnMap: Record<string, OperationBtnType> = {
  detailBtn: { emits: { onClick: (role) => goDetail(role) } },
  registerBtn: {
    emits: { onClick: (role) => goRewardGrantRegister(role) },
    extraProps: {
      hide: (row: API.GetParkBountyApplyListOutput) =>
        !(
@@ -241,35 +139,23 @@
        ),
    },
  },
  {
    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',
      name: '查看凭证',
    },
  checkBtn: {
    emits: {
      onClick: (row) => openMaterialFileDialog(row),
    },
    extraProps: {
      hide: (row: API.GetParkBountyApplyListOutput) => row.billStatus !== BillStatusEnum.HasUpload,
      hide: (row: API.GetParkBountyApplyListOutput) =>
        !(
          row.settleStatus === SettleStatusEnum.HasBill ||
          row.financeStatus === FinanceStatusEnum.HasBill
        ),
    },
  },
]);
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
  operationBtnMap,
});
const router = useRouter();
const BaseState = {
@@ -405,6 +291,7 @@
  defaultFormParams: {
    incomeType: '' as any as IncomeTypeEnum,
    parkBountyApplyId: '',
    fileUrl: [] as UploadUserFile[],
    financeSumAmount: 0,
    showSuportPlatRecharge: false,
    showSuportFiscalRecharge: false,
@@ -414,6 +301,7 @@
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,
@@ -422,15 +310,18 @@
}
async function handleRegister() {
  try {
    let params: API.ParkBountyApplyFinanceFileInput = {
    let params = {
      parkBountyApplyId: editRegisterForm.parkBountyApplyId,
      financeSumAmount: editRegisterForm.financeSumAmount,
    };
    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) {
@@ -533,6 +424,15 @@
    }
  } catch (error) {}
}
function goRewardGrantRegister(row: API.GetParkBountyApplyListOutput) {
  router.push({
    name: 'RewardGrantRegister',
    params: {
      id: row.id,
    },
  });
}
</script>
<style lang="scss" scoped>