zhengyiming
5 天以前 368c72d678ec6a1f5b60f109911d190e9c2a2809
fix: 四流
3个文件已添加
6个文件已修改
558 ■■■■■ 已修改文件
src/constants/reward.ts 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.ts 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/MaterialReview/MaterialReReviewAudit.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/MaterialReview/MaterialReReviewList.vue 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/MaterialReview/MaterialReviewAudit.vue 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/MaterialReview/MaterialReviewDetail.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/MaterialReview/components/MaterialReviewAuditView.vue 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/MaterialReview/components/materialReviewAudit.ts 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/reward.ts
@@ -1,6 +1,8 @@
import { Colors } from './enum';
export enum BountyCheckStatusEnum {
  /**已撤回 */
  Redoed = -20,
  /**
   * 未提交
   */
@@ -24,6 +26,12 @@
  [BountyCheckStatusEnum.CheckPassed]: '审核通过',
  [BountyCheckStatusEnum.CheckReject]: '审核未通过',
};
export const BountyCheckStatusEnumTextForDisplay = {
  [BountyCheckStatusEnum.Redoed]: '已撤回',
  ...BountyCheckStatusEnumText,
};
export const BountyCheckStatusEnumTextForAudit = {
  [BountyCheckStatusEnum.CheckPassed]: '审核通过',
  [BountyCheckStatusEnum.CheckReject]: '驳回',
src/router/index.ts
@@ -195,6 +195,18 @@
          icon: 'home',
        },
      },
      {
        path: '/MaterialReReviewAudit/:id',
        name: 'MaterialReReviewAudit',
        hidden: true,
        component: () => import('@/views/MaterialReview/MaterialReReviewAudit.vue'),
        meta: {
          rank: 10021,
          title: '复审',
          // rootMenu: true,
          icon: 'home',
        },
      },
    ],
  },
src/services/api/typings.d.ts
@@ -2925,7 +2925,7 @@
    userId?: string;
  }
  type BountyCheckStatusEnum = 10 | 20 | 30 | -10;
  type BountyCheckStatusEnum = 10 | 20 | 30 | -20 | -10;
  interface BuildRewardStatisticsInput {
    /** 开始统计月份 */
@@ -9119,6 +9119,11 @@
    settleStatus?: SettleStatusEnum;
    incomeStatus?: IncomeStatusEnum;
    financeStatus?: FinanceStatusEnum;
    /** 外部复审核起始日期 */
    outReCheckTimeBegin?: string;
    /** 外部复审核结束日期 */
    outReCheckTimeEnd?: string;
    outReCheckStatus?: BountyCheckStatusEnum;
  }
  interface GetParkBountyApplyListOutput {
@@ -9180,10 +9185,15 @@
    inCheckAuditOperator?: string;
    /** 外部审核人 */
    outCheckAuditOperator?: string;
    /** 外部复审核人 */
    outReCheckAuditOperator?: string;
    /** 平台拨付入账跟财政拨付入账操作人 */
    incomeAndFinanceIncomeOperator?: string;
    /** 平台拨付登记跟财政拨付登记操作人 */
    settleAndFinanceOperator?: string;
    outReCheckStatus?: BountyCheckStatusEnum;
    /** 政务端复审时间 */
    outReCheckTime?: string;
  }
  interface GetParkBountyApplyListOutputPageOutput {
@@ -16410,6 +16420,9 @@
    collectCountListFiles?: CustomerUploadMonthApplyFileTypeDto[];
    /** 总的额外补充材料 */
    extraListFiles?: CustomerUploadMonthApplyFileTypeDto[];
    outReCheckStatus?: BountyCheckStatusEnum;
    /** 政务端复审备注 */
    outReCheckRemark?: string;
  }
  interface OutcheckParkBountyApplyInput {
src/views/MaterialReview/MaterialReReviewAudit.vue
New file
@@ -0,0 +1,50 @@
<template>
  <MaterialReviewAuditView :confirm="confirm"></MaterialReviewAuditView>
</template>
<script setup lang="ts">
import { useQuery, useQueryClient } from '@tanstack/vue-query';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import { useGlobalEventContext, useRouteView } from '@/hooks';
import { Message } from '@bole-core/core';
import { EnterpriseApplyFileUtils } from '@/components/commonView/utils';
import MaterialReviewAuditView from './components/MaterialReviewAuditView.vue';
import { Form } from './components/materialReviewAudit';
defineOptions({
  name: 'MaterialReReviewAudit',
});
const route = useRoute();
const eventContext = useGlobalEventContext();
const { closeViewPush } = useRouteView();
const id = route.params?.id as string;
function handleBack() {
  closeViewPush(route, {
    name: 'MaterialReReviewList',
  });
}
const queryClient = useQueryClient();
async function confirm(form: Form) {
  try {
    let params: API.OutReCheckParkBountyApplyInput = {
      parkBountyApplyId: id,
      outReCheckStatus: form.status,
      remark: form.remark,
      extraListFiles: EnterpriseApplyFileUtils.convertFileTableListToApiBatch(form.extraListFiles),
    };
    let res = await parkBountyApplyServices.outReCheckParkBountyApply(params);
    if (res) {
      Message.successMessage('操作成功');
      eventContext.emit('materialReviewAudit:audit');
      queryClient.invalidateQueries({
        queryKey: ['parkBountyApplyServices/getGoverDataBoard'],
      });
      handleBack();
    }
  } catch (error) {}
}
</script>
src/views/MaterialReview/MaterialReReviewList.vue
@@ -16,7 +16,7 @@
          </QueryFilterItem>
          <QueryFilterItem tip-content="审核日期">
            <FieldDatePicker
              v-model="extraParamState.outCheckTime"
              v-model="extraParamState.outReCheckTime"
              type="daterange"
              range-separator="~"
              start-placeholder="开始日期"
@@ -27,7 +27,7 @@
          </QueryFilterItem>
          <QueryFilterItem>
            <FieldRadio
              v-model="extraParamState.outCheckStatus"
              v-model="extraParamState.outReCheckStatus"
              :value-enum="BountyCheckStatusEnumText"
              buttonStyle
              showAllBtn
@@ -109,19 +109,34 @@
    name: '申报日期',
  },
  {
    id: '7',
    id: '6-1',
    enCode: 'outCheckAuditOperator',
    name: '审核人',
    name: '初审人',
  },
  {
    id: '6-2',
    enCode: 'outCheckTime',
    name: '初审日期',
  },
  {
    id: '6-3',
    enCode: 'outCheckStatus',
    name: '初审状态',
  },
  {
    id: '7',
    enCode: 'outReCheckAuditOperator',
    name: '复审人',
  },
  {
    id: '8',
    enCode: 'outCheckTime',
    name: '审核日期',
    enCode: 'outReCheckTime',
    name: '复审日期',
  },
  {
    id: '9',
    enCode: 'outCheckStatus',
    name: '审核状态',
    enCode: 'outReCheckStatus',
    name: '复审状态',
  },
];
@@ -145,7 +160,7 @@
    },
    extraProps: {
      hide: (row: API.GetParkBountyApplyListOutput) =>
        row.outCheckStatus !== BountyCheckStatusEnum.WaitCheck,
        row.outReCheckStatus !== BountyCheckStatusEnum.WaitCheck,
    },
  },
]);
@@ -184,11 +199,15 @@
          orderInput: extraParamState.orderInput,
        },
        batchNo: extraParamState.batchNo,
        outCheckStatus: extraParamState.outCheckStatus,
        outCheckStatus: BountyCheckStatusEnum.CheckPassed,
        outReCheckStatus: extraParamState.outReCheckStatus,
        creationTimeBegin: format(extraParamState.creationTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
        creationTimeEnd: format(extraParamState.creationTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
        outCheckTimeBegin: format(extraParamState.outCheckTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
        outCheckTimeEnd: format(extraParamState.outCheckTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
        outReCheckTimeBegin: format(
          extraParamState.outReCheckTime?.[0] ?? '',
          'YYYY-MM-DD 00:00:00'
        ),
        outReCheckTimeEnd: format(extraParamState.outReCheckTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
      };
      let res = await parkBountyApplyServices.getOutcheckParkBountyList(params, {
        showLoading: !state.loading,
@@ -199,17 +218,19 @@
  {
    defaultExtraParams: {
      batchNo: '',
      outCheckStatus: '' as any as BountyCheckStatusEnum,
      outReCheckStatus: '' as any as BountyCheckStatusEnum,
      creationTime: [] as unknown as ModelValueType,
      outCheckTime: [] as unknown as ModelValueType,
      outReCheckTime: [] as unknown as ModelValueType,
      orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
    },
    columnsRenderProps: {
      applyMonth: { type: 'date', format: 'YYYY年MM月' },
      creationTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      outCheckTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      outReCheckTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      applySumAmount: { type: 'money', precision: 2 },
      outCheckStatus: { type: 'enum', valueEnum: BountyCheckStatusEnumText },
      outReCheckStatus: { type: 'enum', valueEnum: BountyCheckStatusEnumText },
    },
  }
);
@@ -220,11 +241,14 @@
    params: {
      id: row.id,
    },
    query: {
      type: 'reReview',
    },
  });
}
function goAudit(row: API.GetParkBountyApplyListOutput) {
  router.push({
    name: 'MaterialReviewAudit',
    name: 'MaterialReReviewAudit',
    params: {
      id: row.id,
    },
src/views/MaterialReview/MaterialReviewAudit.vue
@@ -1,101 +1,15 @@
<template>
  <LoadingLayout>
    <AppContainer>
      <PageFormLayout title="申报审核">
        <DetailView :form="form" :has-form="true" :isEdit="false">
          <ChunkCellV2 title="申报企业名单" class="chunk-cell-table">
            <DeclareEnterpriseTableView
              :getList="getList"
              :extra-param-state="extraParamState"
              :pro-table-props="proTableProps"
              :reset="reset"
              :column="addRewardApplyStep3Columns"
              :operationBtns="operationBtns"
            ></DeclareEnterpriseTableView>
            <MateriaDetailDialog
              v-bind="dialogProps"
              :show-upload-btn="false"
              :show-delete-btn="false"
              showMaterialExtraFileUploadBtn
              showMaterialExtraFileDeleteBtn
            />
          </ChunkCellV2>
          <ChunkCell>
            <ProForm :model="form" ref="formRef" label-width="120px">
              <ProFormCol>
                <ProFormColItem :span="12">
                  <ProFormItemV2
                    label="申报审核:"
                    prop="status"
                    :check-rules="[{ message: '请选择审核状态' }]"
                  >
                    <ProFormRadio
                      v-model="form.status"
                      :value-enum="BountyCheckStatusEnumTextForAudit"
                    />
                  </ProFormItemV2>
                </ProFormColItem>
              </ProFormCol>
              <ProFormCol v-if="form.status === BountyCheckStatusEnum.CheckReject">
                <ProFormColItem>
                  <ProFormItemV2
                    label="驳回原因:"
                    prop="remark"
                    :check-rules="[{ message: '请输入驳回原因' }]"
                  >
                    <ProFormTextArea
                      v-model="form.remark"
                      placeholder="请输入"
                      show-word-limit
                      :maxlength="200"
                    ></ProFormTextArea>
                  </ProFormItemV2>
                </ProFormColItem>
              </ProFormCol>
            </ProForm>
          </ChunkCell>
        </DetailView>
        <template #footer>
          <el-button @click="handleBack">关闭</el-button>
          <el-button type="primary" @click="handleConfirm()">提交</el-button>
        </template>
      </PageFormLayout>
    </AppContainer>
  </LoadingLayout>
  <MaterialReviewAuditView :confirm="confirm"></MaterialReviewAuditView>
</template>
<script setup lang="ts">
import {
  AppContainer,
  ProForm,
  ChunkCell,
  ProFormCol,
  ProFormColItem,
  ProFormItemV2,
  ProFormTextArea,
  ProFormRadio,
  LoadingLayout,
  PageFormLayout,
} from '@bole-core/components';
import {
  BountyCheckStatusEnum,
  BountyCheckStatusEnumTextForAudit,
  useAddRewardApplyStep3Columns,
} from '@/constants';
import ChunkCellV2 from '@/components/Layout/ChunkCellV2.vue';
import DetailView from '@/components/commonView/DetailView.vue';
import DeclareEnterpriseTableView from '@/components/commonView/DeclareEnterpriseTableView.vue';
import MateriaDetailDialog from '@/components/commonView/MateriaDetailDialog.vue';
import { useQuery, useQueryClient } from '@tanstack/vue-query';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import { useDeclareEnterpriseTable, useGlobalEventContext, useRouteView } from '@/hooks';
import { FormInstance } from 'element-plus';
import { useGlobalEventContext, useRouteView } from '@/hooks';
import { Message } from '@bole-core/core';
import { useIndustrialParkDropDownList } from '@/hooks/industrialPark';
import {
  CustomerApplyFileTypeListItem,
  EnterpriseApplyFileUtils,
} from '@/components/commonView/utils';
import { EnterpriseApplyFileUtils } from '@/components/commonView/utils';
import MaterialReviewAuditView from './components/MaterialReviewAuditView.vue';
import { Form } from './components/materialReviewAudit';
defineOptions({
  name: 'MaterialReviewAudit',
@@ -105,72 +19,6 @@
const eventContext = useGlobalEventContext();
const { closeViewPush } = useRouteView();
const id = route.params?.id as string;
const form = reactive({
  batchNo: '',
  parkName: '',
  parkTypeName: '',
  applyMonth: '',
  applySumAmount: 0,
  financeSumAmount: 0,
  settleSumAmount: 0,
  parkCollectFileList: [] as CustomerApplyFileTypeListItem[],
  calculationFileList: [] as CustomerApplyFileTypeListItem[],
  extraListFiles: [] as CustomerApplyFileTypeListItem[],
  status: '' as any as BountyCheckStatusEnum,
  remark: '',
  suportPlatRecharge: false,
  suportFinance: false,
});
const { addRewardApplyStep3Columns } = useAddRewardApplyStep3Columns({
  suportPlatRecharge: toRef(form, 'suportPlatRecharge'),
  suportFinance: toRef(form, 'suportFinance'),
});
const { extraParamState, getList, reset, proTableProps, operationBtns, dialogProps } =
  useDeclareEnterpriseTable({
    id: ref(id),
    applyMonth: toRef(form, 'applyMonth'),
    enableUploadExtraFiles: true,
  });
const { data: detail, isLoading } = useQuery({
  queryKey: ['parkBountyApplyServices/getOutCheckParkBountyApplyDetailBaseInfo', id],
  queryFn: async () => {
    return await parkBountyApplyServices.getOutCheckParkBountyApplyDetailBaseInfo(
      { parkBountyApplyId: id },
      {
        showLoading: false,
      }
    );
  },
  placeholderData: () => ({} as API.OutCheckParkBountyApplyBaseInfo),
  onSuccess(data) {
    form.batchNo = data.batchNo;
    form.parkName = data.parkName;
    form.parkTypeName = data.parkTypeName;
    form.applyMonth = data.applyMonth;
    form.applySumAmount = data.applySumAmount;
    form.financeSumAmount = data.financeSumAmount;
    form.settleSumAmount = data.settleSumAmount;
    form.parkCollectFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList(
      data.listFiles
    );
    form.calculationFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList(
      data.collectCountListFiles
    );
    form.extraListFiles = EnterpriseApplyFileUtils.convertApiFileToExtraListFiles(
      data.extraListFiles
    );
    form.suportPlatRecharge = data.suportPlatRecharge;
    form.suportFinance = data.suportFinance;
    getList();
  },
});
function handleBack() {
  closeViewPush(route, {
@@ -178,20 +26,9 @@
  });
}
const formRef = ref<FormInstance>();
function handleConfirm() {
  if (!formRef.value) return;
  formRef.value.validate((valid) => {
    if (valid) {
      confirm();
    } else {
      return;
    }
  });
}
const queryClient = useQueryClient();
async function confirm() {
async function confirm(form: Form) {
  try {
    let params: API.OutcheckParkBountyApplyInput = {
      parkBountyApplyId: id,
@@ -210,10 +47,4 @@
    }
  } catch (error) {}
}
const { getIndustrialParkTypeNameById } = useIndustrialParkDropDownList();
</script>
<style lang="scss" scoped>
@use '@/style/common.scss' as *;
</style>
src/views/MaterialReview/MaterialReviewDetail.vue
@@ -5,16 +5,32 @@
        <template #title>
          <div class="page-form-layout-title">
            申报详情
            <template v-if="isReReview">
            <span class="page-form-layout-title-item status">
              审核状态:<span :style="{ color: BountyCheckStatusEnumColor[form.outCheckStatus] }">{{
                BountyCheckStatusEnumText[form.outCheckStatus]
              }}</span>
                复审状态:<span
                  :style="{ color: BountyCheckStatusEnumColor[form.outReCheckStatus] }"
                  >{{ BountyCheckStatusEnumText[form.outCheckStatus] }}</span
                >
              </span>
              <span class="page-form-layout-title-item remark">
                <TextOverTooltip v-if="form.outCheckStatus === BountyCheckStatusEnum.CheckReject">
                  {{ `复审未通过原因:${form.outCheckRemark ?? ''}` }}
                </TextOverTooltip>
              </span>
            </template>
            <template v-else>
              <span class="page-form-layout-title-item status">
                审核状态:<span
                  :style="{ color: BountyCheckStatusEnumColor[form.outCheckStatus] }"
                  >{{ BountyCheckStatusEnumText[form.outCheckStatus] }}</span
                >
            </span>
            <span class="page-form-layout-title-item remark">
              <TextOverTooltip v-if="form.outCheckStatus === BountyCheckStatusEnum.CheckReject">
                {{ `审核未通过原因:${form.outCheckRemark ?? ''}` }}
              </TextOverTooltip>
            </span>
            </template>
          </div>
        </template>
        <DetailView :form="form">
@@ -75,6 +91,9 @@
const route = useRoute();
const { closeViewPush } = useRouteView();
const id = route.params?.id as string;
const type = route.query?.type as string;
//是否复审
const isReReview = type === 'reReview';
const form = reactive({
  batchNo: '',
  parkName: '',
@@ -90,6 +109,9 @@
  outCheckStatus: '' as any as BountyCheckStatusEnum,
  outCheckRemark: '',
  outReCheckStatus: '' as any as BountyCheckStatusEnum,
  outReCheckRemark: '',
  suportPlatRecharge: false,
  suportFinance: false,
@@ -129,6 +151,8 @@
    form.settleSumAmount = data.settleSumAmount;
    form.outCheckStatus = data.outCheckStatus;
    form.outCheckRemark = data.outCheckRemark;
    form.outReCheckStatus = data.outReCheckStatus;
    form.outReCheckRemark = data.outReCheckRemark;
    form.parkCollectFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList(
      data.listFiles
    );
src/views/MaterialReview/components/MaterialReviewAuditView.vue
New file
@@ -0,0 +1,197 @@
<template>
  <LoadingLayout>
    <AppContainer>
      <PageFormLayout title="申报审核">
        <DetailView :form="form" :has-form="true" :isEdit="false">
          <ChunkCellV2 title="申报企业名单" class="chunk-cell-table">
            <DeclareEnterpriseTableView
              :getList="getList"
              :extra-param-state="extraParamState"
              :pro-table-props="proTableProps"
              :reset="reset"
              :column="addRewardApplyStep3Columns"
              :operationBtns="operationBtns"
            ></DeclareEnterpriseTableView>
            <MateriaDetailDialog
              v-bind="dialogProps"
              :show-upload-btn="false"
              :show-delete-btn="false"
              showMaterialExtraFileUploadBtn
              showMaterialExtraFileDeleteBtn
            />
          </ChunkCellV2>
          <ChunkCell>
            <ProForm :model="form" ref="formRef" label-width="120px">
              <ProFormCol>
                <ProFormColItem :span="12">
                  <ProFormItemV2
                    label="申报审核:"
                    prop="status"
                    :check-rules="[{ message: '请选择审核状态' }]"
                  >
                    <ProFormRadio
                      v-model="form.status"
                      :value-enum="BountyCheckStatusEnumTextForAudit"
                    />
                  </ProFormItemV2>
                </ProFormColItem>
              </ProFormCol>
              <ProFormCol v-if="form.status === BountyCheckStatusEnum.CheckReject">
                <ProFormColItem>
                  <ProFormItemV2
                    label="驳回原因:"
                    prop="remark"
                    :check-rules="[{ message: '请输入驳回原因' }]"
                  >
                    <ProFormTextArea
                      v-model="form.remark"
                      placeholder="请输入"
                      show-word-limit
                      :maxlength="200"
                    ></ProFormTextArea>
                  </ProFormItemV2>
                </ProFormColItem>
              </ProFormCol>
            </ProForm>
          </ChunkCell>
        </DetailView>
        <template #footer>
          <el-button @click="handleBack">关闭</el-button>
          <el-button type="primary" @click="handleConfirm()">提交</el-button>
        </template>
      </PageFormLayout>
    </AppContainer>
  </LoadingLayout>
</template>
<script setup lang="ts">
import {
  AppContainer,
  ProForm,
  ChunkCell,
  ProFormCol,
  ProFormColItem,
  ProFormItemV2,
  ProFormTextArea,
  ProFormRadio,
  LoadingLayout,
  PageFormLayout,
} from '@bole-core/components';
import {
  BountyCheckStatusEnum,
  BountyCheckStatusEnumTextForAudit,
  useAddRewardApplyStep3Columns,
} from '@/constants';
import ChunkCellV2 from '@/components/Layout/ChunkCellV2.vue';
import DetailView from '@/components/commonView/DetailView.vue';
import DeclareEnterpriseTableView from '@/components/commonView/DeclareEnterpriseTableView.vue';
import MateriaDetailDialog from '@/components/commonView/MateriaDetailDialog.vue';
import { useQuery, useQueryClient } from '@tanstack/vue-query';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import { useDeclareEnterpriseTable, useGlobalEventContext, useRouteView } from '@/hooks';
import { FormInstance } from 'element-plus';
import {
  CustomerApplyFileTypeListItem,
  EnterpriseApplyFileUtils,
} from '@/components/commonView/utils';
import { Form } from './materialReviewAudit';
defineOptions({
  name: 'MaterialReviewAuditView',
});
type Props = {
  confirm?: (form: Form) => Promise<void>;
  handleBack?: () => any;
};
const props = withDefaults(defineProps<Props>(), {});
const route = useRoute();
const id = route.params?.id as string;
const form = reactive({
  batchNo: '',
  parkName: '',
  parkTypeName: '',
  applyMonth: '',
  applySumAmount: 0,
  financeSumAmount: 0,
  settleSumAmount: 0,
  parkCollectFileList: [] as CustomerApplyFileTypeListItem[],
  calculationFileList: [] as CustomerApplyFileTypeListItem[],
  extraListFiles: [] as CustomerApplyFileTypeListItem[],
  status: '' as any as BountyCheckStatusEnum,
  remark: '',
  suportPlatRecharge: false,
  suportFinance: false,
});
const { addRewardApplyStep3Columns } = useAddRewardApplyStep3Columns({
  suportPlatRecharge: toRef(form, 'suportPlatRecharge'),
  suportFinance: toRef(form, 'suportFinance'),
});
const { extraParamState, getList, reset, proTableProps, operationBtns, dialogProps } =
  useDeclareEnterpriseTable({
    id: ref(id),
    applyMonth: toRef(form, 'applyMonth'),
    enableUploadExtraFiles: true,
  });
const { data: detail, isLoading } = useQuery({
  queryKey: ['parkBountyApplyServices/getOutCheckParkBountyApplyDetailBaseInfo', id],
  queryFn: async () => {
    return await parkBountyApplyServices.getOutCheckParkBountyApplyDetailBaseInfo(
      { parkBountyApplyId: id },
      {
        showLoading: false,
      }
    );
  },
  placeholderData: () => ({} as API.OutCheckParkBountyApplyBaseInfo),
  onSuccess(data) {
    form.batchNo = data.batchNo;
    form.parkName = data.parkName;
    form.parkTypeName = data.parkTypeName;
    form.applyMonth = data.applyMonth;
    form.applySumAmount = data.applySumAmount;
    form.financeSumAmount = data.financeSumAmount;
    form.settleSumAmount = data.settleSumAmount;
    form.parkCollectFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList(
      data.listFiles
    );
    form.calculationFileList = EnterpriseApplyFileUtils.convertApiFileToParkCollectFileList(
      data.collectCountListFiles
    );
    form.extraListFiles = EnterpriseApplyFileUtils.convertApiFileToExtraListFiles(
      data.extraListFiles
    );
    form.suportPlatRecharge = data.suportPlatRecharge;
    form.suportFinance = data.suportFinance;
    getList();
  },
});
function handleBack() {
  props.handleBack?.();
  // closeViewPush(route, {
  //   name: props.backRouteName,
  // });
}
const formRef = ref<FormInstance>();
function handleConfirm() {
  if (!formRef.value) return;
  formRef.value.validate((valid) => {
    if (valid) {
      props.confirm?.(form);
    } else {
      return;
    }
  });
}
</script>
src/views/MaterialReview/components/materialReviewAudit.ts
New file
@@ -0,0 +1,9 @@
import { BountyCheckStatusEnum } from '@/constants';
import { CustomerApplyFileTypeListItem } from '@/components/commonView/utils';
export type Form = {
  extraListFiles: CustomerApplyFileTypeListItem[];
  status: BountyCheckStatusEnum;
  remark: string;
};