zhengyiming
5 天以前 8eec3bdd93b15bb26f53e3e4b1f5c1679f2efc1a
fix: s
1个文件已添加
4个文件已修改
293 ■■■■■ 已修改文件
src/router/index.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/EnterpriseApplyFile.ts 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/ParkBountyApply.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/MaterialReview/MaterialReReviewList.vue 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.ts
@@ -155,7 +155,7 @@
        component: () => import('@/views/MaterialReview/MaterialReview.vue'),
        meta: {
          rank: 10021,
          title: '材料审核',
          title: '材料初审',
          // rootMenu: true,
          icon: 'home',
        },
@@ -182,6 +182,19 @@
          rootMenu: false,
        },
      },
      {
        path: '/MaterialReReviewList',
        name: 'MaterialReReviewList',
        hidden: false,
        alwaysShow: true,
        component: () => import('@/views/MaterialReview/MaterialReReviewList.vue'),
        meta: {
          rank: 10021,
          title: '材料复审',
          // rootMenu: true,
          icon: 'home',
        },
      },
    ],
  },
src/services/api/EnterpriseApplyFile.ts
@@ -116,19 +116,19 @@
  );
}
/** 根据月份查询是否存在提交记录 GET /api/EnterpriseApplyFile/GetCustomerUploadFileRecord */
/** 根据月份查询是否存在提交记录 POST /api/EnterpriseApplyFile/GetCustomerUploadFileRecord */
export async function getCustomerUploadFileRecord(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetCustomerUploadFileRecordParams,
  body: API.GetCustomerUploadFileRecordInput,
  options?: API.RequestConfig
) {
  return request<API.GetCustomerUploadFileRecordOutput>(
    '/api/EnterpriseApplyFile/GetCustomerUploadFileRecord',
    {
      method: 'GET',
      params: {
        ...params,
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
src/services/api/ParkBountyApply.ts
@@ -886,6 +886,21 @@
  });
}
/** 政务端-材料审核-外部复审核 POST /api/ParkBountyApply/OutReCheckParkBountyApply */
export async function outReCheckParkBountyApply(
  body: API.OutReCheckParkBountyApplyInput,
  options?: API.RequestConfig
) {
  return request<number>('/api/ParkBountyApply/OutReCheckParkBountyApply', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 批量财政入账 POST /api/ParkBountyApply/ParkBountyApplyBatchFinance */
export async function parkBountyApplyBatchFinance(
  body: API.ParkBountyApplyBatchFinanceInput,
src/services/api/typings.d.ts
@@ -1388,10 +1388,6 @@
    templateId?: string;
  }
  interface APIgetCustomerUploadFileRecordParams {
    withMonth?: string;
  }
  interface APIgetDefaultConnectionStringParams {
    id?: string;
  }
@@ -7583,6 +7579,11 @@
    parkName?: string;
    /** 附件 */
    items?: GetCustomerUploadApplyFilesOutput[];
  }
  interface GetCustomerUploadFileRecordInput {
    withMonth?: string;
    userId?: string;
  }
  interface GetCustomerUploadFileRecordOutput {
@@ -16420,6 +16421,15 @@
    extraListFiles?: CustomerUploadMonthApplyFileTypeDto[];
  }
  interface OutReCheckParkBountyApplyInput {
    parkBountyApplyId?: string;
    outReCheckStatus?: BountyCheckStatusEnum;
    /** 备注 */
    remark?: string;
    /** 总的额外补充材料 */
    extraListFiles?: CustomerUploadMonthApplyFileTypeDto[];
  }
  interface PagedListQueryPageModel {
    /** 行数 */
    rows?: number;
src/views/MaterialReview/MaterialReReviewList.vue
New file
@@ -0,0 +1,233 @@
<template>
  <LoadingLayout :loading="state.loading">
    <AppContainer>
      <ProTableQueryFilterBar @on-reset="reset">
        <template #query>
          <QueryFilterItem tip-content="申报日期">
            <FieldDatePicker
              v-model="extraParamState.creationTime"
              type="daterange"
              range-separator="~"
              start-placeholder="开始日期"
              end-placeholder="结束日期"
              clearable
              @change="getList()"
            ></FieldDatePicker>
          </QueryFilterItem>
          <QueryFilterItem tip-content="审核日期">
            <FieldDatePicker
              v-model="extraParamState.outCheckTime"
              type="daterange"
              range-separator="~"
              start-placeholder="开始日期"
              end-placeholder="结束日期"
              clearable
              @change="getList()"
            ></FieldDatePicker>
          </QueryFilterItem>
          <QueryFilterItem>
            <FieldRadio
              v-model="extraParamState.outCheckStatus"
              :value-enum="BountyCheckStatusEnumText"
              buttonStyle
              showAllBtn
              @change="getList()"
            />
          </QueryFilterItem>
          <QueryFilterItem>
            <SearchInput
              v-model="extraParamState.batchNo"
              style="width: 200px"
              placeholder="批次号"
              @on-click-search="getList"
            >
            </SearchInput>
          </QueryFilterItem>
        </template>
      </ProTableQueryFilterBar>
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
      </ProTableV2>
    </AppContainer>
  </LoadingLayout>
</template>
<script setup lang="ts">
import {
  LoadingLayout,
  AppContainer,
  useTable,
  ProTableQueryFilterBar,
  ProTableV2,
  defineOperationBtns,
  SearchInput,
  FieldRadio,
  QueryFilterItem,
  FieldDatePicker,
} from '@bole-core/components';
import { OrderInputType } from '@bole-core/core';
import { format } from '@/utils';
import { BountyCheckStatusEnum, BountyCheckStatusEnumText, DataRangeEnumText } from '@/constants';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import _ from 'lodash';
import { ModelValueType } from 'element-plus';
import { useGlobalEventContext } from '@/hooks';
defineOptions({
  name: 'MaterialReviewList',
});
const column: API.CustomModuleColumnDto[] = [
  {
    id: '1',
    enCode: 'batchNo',
    name: '申请批次号',
  },
  {
    id: '2',
    enCode: 'parkName',
    name: '申请园区',
  },
  {
    id: '3',
    enCode: 'parkTypeName',
    name: '园区类型',
  },
  {
    id: '4',
    enCode: 'applyMonth',
    name: '申请奖励金月份',
  },
  {
    id: '5',
    enCode: 'applySumAmount',
    name: '奖励金汇总金额(元)',
  },
  {
    id: '6',
    enCode: 'creationTime',
    name: '申报日期',
  },
  {
    id: '7',
    enCode: 'outCheckAuditOperator',
    name: '审核人',
  },
  {
    id: '8',
    enCode: 'outCheckTime',
    name: '审核日期',
  },
  {
    id: '9',
    enCode: 'outCheckStatus',
    name: '审核状态',
  },
];
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'detailBtn',
      name: '详情',
    },
    emits: {
      onClick: (role) => goDetail(role),
    },
  },
  {
    data: {
      enCode: 'auditBtn',
      name: '审核',
    },
    emits: {
      onClick: (role) => goAudit(role),
    },
    extraProps: {
      hide: (row: API.GetParkBountyApplyListOutput) =>
        row.outCheckStatus !== BountyCheckStatusEnum.WaitCheck,
    },
  },
]);
const router = useRouter();
const BaseState = {
  loading: true,
};
const state = reactive({ ...BaseState });
const eventContext = useGlobalEventContext();
eventContext.addEvent('materialReviewAudit:audit', () => {
  getList(paginationState.pageIndex);
});
onMounted(async () => {
  await getList();
  state.loading = false;
});
const {
  getDataSource: getList,
  proTableProps,
  paginationState,
  extraParamState,
  reset,
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetParkBountyApplyListInput = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        batchNo: extraParamState.batchNo,
        outCheckStatus: extraParamState.outCheckStatus,
        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'),
      };
      let res = await parkBountyApplyServices.getOutcheckParkBountyList(params, {
        showLoading: !state.loading,
      });
      return res;
    } catch (error) {}
  },
  {
    defaultExtraParams: {
      batchNo: '',
      outCheckStatus: '' as any as BountyCheckStatusEnum,
      creationTime: [] as unknown as ModelValueType,
      outCheckTime: [] 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' },
      applySumAmount: { type: 'money', precision: 2 },
      outCheckStatus: { type: 'enum', valueEnum: BountyCheckStatusEnumText },
    },
  }
);
function goDetail(row: API.GetParkBountyApplyListOutput) {
  router.push({
    name: 'MaterialReviewDetail',
    params: {
      id: row.id,
    },
  });
}
function goAudit(row: API.GetParkBountyApplyListOutput) {
  router.push({
    name: 'MaterialReviewAudit',
    params: {
      id: row.id,
    },
  });
}
</script>