zhengyiming
20 小时以前 6fc60fcdccd4c99e43be482ecf3757108e833c34
fix: 四流
1个文件已添加
11个文件已修改
392 ■■■■ 已修改文件
src/constants/module.ts 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.ts 150 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/BaseModuleNew.ts 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/EnterpriseMaterial.ts 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/ParkBountyApply.ts 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/User.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/index.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/permission.ts 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Reward/components/RewardApplyTradeCheckDialog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/StatisticalReport/RewardStatistics.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/StatisticalReport/hooks/rewardStatistics.ts 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/module.ts
@@ -132,3 +132,15 @@
    width: 80,
  },
];
export enum EnumMenuScene {
  /// 后台
  Back = 0,
  /// 政务端
  Goverment = 1,
}
export const EnumMenuSceneText = {
  [EnumMenuScene.Back]: '后台',
  [EnumMenuScene.Goverment]: '政务端',
};
src/router/index.ts
@@ -134,81 +134,81 @@
      },
    ],
  },
  {
    path: '/MaterialReview',
    redirect: 'noRedirect',
    component: Layout,
    hidden: false,
    alwaysShow: true,
    meta: {
      rank: 10020,
      title: '材料审核',
      rootMenu: true,
      icon: 'home',
    },
    children: [
      {
        path: '/MaterialReviewList',
        name: 'MaterialReviewList',
        hidden: false,
        alwaysShow: true,
        component: () => import('@/views/MaterialReview/MaterialReview.vue'),
        meta: {
          rank: 10021,
          title: '材料初审',
          // rootMenu: true,
          icon: 'home',
        },
      },
      {
        path: '/MaterialReviewDetail/:id',
        name: 'MaterialReviewDetail',
        hidden: true,
        component: () => import('@/views/MaterialReview/MaterialReviewDetail.vue'),
        meta: {
          rank: 10022,
          title: '材料审核详情',
          rootMenu: false,
        },
      },
      {
        path: '/MaterialReviewAudit/:id',
        name: 'MaterialReviewAudit',
        hidden: true,
        component: () => import('@/views/MaterialReview/MaterialReviewAudit.vue'),
        meta: {
          rank: 10023,
          title: '审核',
          rootMenu: false,
        },
      },
      {
        path: '/MaterialReReviewList',
        name: 'MaterialReReviewList',
        hidden: false,
        alwaysShow: true,
        component: () => import('@/views/MaterialReview/MaterialReReviewList.vue'),
        meta: {
          rank: 10021,
          title: '材料复审',
          // rootMenu: true,
          icon: 'home',
        },
      },
      {
        path: '/MaterialReReviewAudit/:id',
        name: 'MaterialReReviewAudit',
        hidden: true,
        component: () => import('@/views/MaterialReview/MaterialReReviewAudit.vue'),
        meta: {
          rank: 10021,
          title: '复审',
          // rootMenu: true,
          icon: 'home',
        },
      },
    ],
  },
  // {
  //   path: '/MaterialReview',
  //   redirect: 'noRedirect',
  //   component: Layout,
  //   hidden: false,
  //   alwaysShow: true,
  //   meta: {
  //     rank: 10020,
  //     title: '材料审核',
  //     rootMenu: true,
  //     icon: 'home',
  //   },
  //   children: [
  //     {
  //       path: '/MaterialReviewList',
  //       name: 'MaterialReviewList',
  //       hidden: false,
  //       alwaysShow: true,
  //       component: () => import('@/views/MaterialReview/MaterialReview.vue'),
  //       meta: {
  //         rank: 10021,
  //         title: '材料初审',
  //         // rootMenu: true,
  //         icon: 'home',
  //       },
  //     },
  //     {
  //       path: '/MaterialReviewDetail/:id',
  //       name: 'MaterialReviewDetail',
  //       hidden: true,
  //       component: () => import('@/views/MaterialReview/MaterialReviewDetail.vue'),
  //       meta: {
  //         rank: 10022,
  //         title: '材料审核详情',
  //         rootMenu: false,
  //       },
  //     },
  //     {
  //       path: '/MaterialReviewAudit/:id',
  //       name: 'MaterialReviewAudit',
  //       hidden: true,
  //       component: () => import('@/views/MaterialReview/MaterialReviewAudit.vue'),
  //       meta: {
  //         rank: 10023,
  //         title: '审核',
  //         rootMenu: false,
  //       },
  //     },
  //     {
  //       path: '/MaterialReReviewList',
  //       name: 'MaterialReReviewList',
  //       hidden: false,
  //       alwaysShow: true,
  //       component: () => import('@/views/MaterialReview/MaterialReReviewList.vue'),
  //       meta: {
  //         rank: 10021,
  //         title: '材料复审',
  //         // rootMenu: true,
  //         icon: 'home',
  //       },
  //     },
  //     {
  //       path: '/MaterialReReviewAudit/:id',
  //       name: 'MaterialReReviewAudit',
  //       hidden: true,
  //       component: () => import('@/views/MaterialReview/MaterialReReviewAudit.vue'),
  //       meta: {
  //         rank: 10021,
  //         title: '复审',
  //         // rootMenu: true,
  //         icon: 'home',
  //       },
  //     },
  //   ],
  // },
  {
    path: '/Reward',
src/services/api/BaseModuleNew.ts
New file
@@ -0,0 +1,33 @@
/* eslint-disable */
// @ts-ignore
import { request } from '@/utils/request';
/** 查询所有模块 GET /api/BaseModuleNew/GetAllModuleList */
export async function getAllModuleList(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetAllModuleListParams,
  options?: API.RequestConfig
) {
  return request<API.ModuleDto[]>('/api/BaseModuleNew/GetAllModuleList', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
/** 此处后端没有提供注释 GET /api/BaseModuleNew/GetUserOrRoleModuleList */
export async function getUserOrRoleModuleList(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetUserOrRoleModuleListParams,
  options?: API.RequestConfig
) {
  return request<API.ModuleDto[]>('/api/BaseModuleNew/GetUserOrRoleModuleList', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
src/services/api/EnterpriseMaterial.ts
@@ -68,6 +68,24 @@
  );
}
/** 获取企业材料管理分页列表 POST /api/EnterpriseMaterial/GetEnterpriseMaterialManagePageTotal */
export async function getEnterpriseMaterialManagePageTotal(
  body: API.QueryEnterpriseMaterialManageListInput,
  options?: API.RequestConfig
) {
  return request<API.EnterpriseMaterialManageListOutputPageOutput>(
    '/api/EnterpriseMaterial/GetEnterpriseMaterialManagePageTotal',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 获取我的企业四流材料列表 POST /api/EnterpriseMaterial/GetMyEnterpriseMaterialPage */
export async function getMyEnterpriseMaterialPage(
  body: API.PageInput,
src/services/api/ParkBountyApply.ts
@@ -17,6 +17,21 @@
  });
}
/** 企业自主申报 POST /api/ParkBountyApply/AddParkBountyApplyByEnterprise */
export async function addParkBountyApplyByEnterprise(
  body: API.AddParkBountyApplyByEnterpriseInput,
  options?: API.RequestConfig
) {
  return request<string>('/api/ParkBountyApply/AddParkBountyApplyByEnterprise', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 奖励金-出账-审批 POST /api/ParkBountyApply/AuditParkBountyApplyTrade */
export async function auditParkBountyApplyTrade(
  body: API.AuditParkBountyTradeInput,
@@ -808,6 +823,21 @@
  );
}
/** 查询奖励金统计报表 GET /api/ParkBountyApply/GetRewardStatisticsMonths */
export async function getRewardStatisticsMonths(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetRewardStatisticsMonthsParams,
  options?: API.RequestConfig
) {
  return request<string[]>('/api/ParkBountyApply/GetRewardStatisticsMonths', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
/** 导入奖励金申报财政/平台拨付总额 POST /api/ParkBountyApply/ImportParkBountyAppalyAmount */
export async function importParkBountyAppalyAmount(
  body: API.ImportParkBountyAppalyAmountInput,
src/services/api/User.ts
@@ -784,6 +784,21 @@
  });
}
/** 设置企业合作协议 POST /api/User/SetUserEnterpiseCooperationUrl */
export async function setUserEnterpiseCooperationUrl(
  body: API.SetUserEnterpiseCooperationUrlInput,
  options?: API.RequestConfig
) {
  return request<number>('/api/User/SetUserEnterpiseCooperationUrl', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 取关用户 POST /api/User/UnFollowUser */
export async function unFollowUser(body: API.UnFollowUserInput, options?: API.RequestConfig) {
  return request<number>('/api/User/UnFollowUser', {
src/services/api/index.ts
@@ -12,6 +12,7 @@
import * as AliPayNotify from './AliPayNotify';
import * as Area from './Area';
import * as BaseModule from './BaseModule';
import * as BaseModuleNew from './BaseModuleNew';
import * as BestSign from './BestSign';
import * as BestSignCallBack from './BestSignCallBack';
import * as CaiNiao from './CaiNiao';
@@ -103,6 +104,7 @@
  AliPayNotify,
  Area,
  BaseModule,
  BaseModuleNew,
  BestSign,
  BestSignCallBack,
  CaiNiao,
src/services/api/typings.d.ts
@@ -453,6 +453,11 @@
    userId?: string;
  }
  interface AddParkBountyApplyByEnterpriseInput {
    batchNo?: string;
    enterpriseMonthApplyId?: string;
  }
  interface AddParkBountyApplyStepOneInput {
    batchNo?: string;
    parkId?: string;
@@ -1290,6 +1295,10 @@
    parentId?: string;
  }
  interface APIgetAllModuleListParams {
    menuScene?: EnumMenuScene;
  }
  interface APIgetAllSubModuleParams {
    moduleId?: string;
  }
@@ -1750,6 +1759,11 @@
    id?: string;
  }
  interface APIgetRewardStatisticsMonthsParams {
    /** 所属园区Id */
    industrialParkId?: string;
  }
  interface APIgetRolesIdRolesParams {
    id: string;
  }
@@ -1842,6 +1856,12 @@
  interface APIgetUserOrRoleModuleListParams {
    id?: string;
    objectType?: number;
  }
  interface APIgetUserOrRoleModuleListParams {
    id?: string;
    menuScene?: EnumMenuScene;
    objectType?: number;
  }
@@ -4081,6 +4101,8 @@
    password?: string;
    /** 产业园区id */
    industrialParkId?: string;
    /** 统一社会信用代码 */
    societyCreditCode?: string;
  }
  interface CreateBackClientUserInput {
@@ -4101,6 +4123,7 @@
  }
  interface CreateBaseRoleInput {
    menuScene?: EnumMenuScene;
    /** 名称 */
    name?: string;
    /** 排序 */
@@ -5192,6 +5215,7 @@
  }
  interface CreateOrUpdateRoleInput {
    menuScene?: EnumMenuScene;
    /** 名称 */
    name?: string;
    /** 排序 */
@@ -5698,6 +5722,8 @@
    isSignFreeSet?: boolean;
    /** 注册时间 */
    registTime?: string;
    /** 备注 */
    remark?: string;
  }
  interface CustomerManageListOutputPageOutput {
@@ -5754,6 +5780,7 @@
    /** 申报金额 */
    applyAmount?: number;
    fileTypes?: CustomerUploadMonthApplyFileType[];
    enterpriseId?: string;
  }
  interface CustomerUploadMonthApplyFileType {
@@ -6153,6 +6180,8 @@
    remark?: string;
    /** 文件数量 */
    fileCount?: number;
    /** 企业申报材料数量 */
    enterpriseMonthApplyFileCount?: number;
    lastModificationTime?: string;
    lastModifierName?: string;
    lastModifierId?: string;
@@ -6294,6 +6323,8 @@
  type EnumElectronSignRealStatus = 0 | 10 | 99 | 100;
  type EnumElectronSignUserType = 10 | 20;
  type EnumMenuScene = 0 | 1;
  type EnumPagedListOrder = 0 | 1;
@@ -7548,6 +7579,7 @@
  interface GetCustomerUploadApplyFilesInput {
    id?: string;
    enterpriseId?: string;
    userId?: string;
    withMonth?: string;
    parkBountyApplyId?: string;
  }
@@ -7694,6 +7726,9 @@
    /** 申报金额 */
    applyAmount?: number;
    applyStatus?: EnterpriseMonthApplyStatusEnum;
    inCheckStatus?: BountyCheckStatusEnum;
    /** 自主申报的申报Id */
    parkBountyApplyId?: string;
  }
  interface GetEnterpriseMonthApplyFileOutputPageOutput {
@@ -9315,6 +9350,7 @@
    selfAuditOperatorId?: string;
    /** 江祐保上传的保单文件 */
    insureBillUrl?: string;
    auditType?: EnumParkBountyTradeDetailAuditType;
  }
  interface GetParkBountyTradeDetailOutputPageOutput {
@@ -9536,6 +9572,8 @@
    parkTypName?: string;
    /** 营业执照 */
    licenseUrl?: string;
    /** 合作协议 */
    cooperationUrl?: string;
    /** 银行总行名称 */
    bankName?: string;
    /** 银行支行名称 */
@@ -9885,6 +9923,7 @@
    pageModel?: Pagination;
    /** 查询条件:角色名称 */
    queryCondition?: string;
    menuScene?: EnumMenuScene;
  }
  interface GetSearchSettingList {
@@ -10297,6 +10336,8 @@
    bankBranchName?: string;
    bankCardNumber?: string;
    bankIsVerify?: boolean;
    /** 合作协议 */
    cooperationUrl?: string;
  }
  interface GetUserBaseInfoDataResponse {
@@ -20212,6 +20253,7 @@
  interface RoleInfo {
    /** 角色Id */
    id?: string;
    menuScene?: EnumMenuScene;
    /** 名称 */
    name?: string;
    /** 排序 */
@@ -20922,6 +20964,15 @@
    /** 用户Id */
    userId?: string;
    disabledSyncUser?: boolean;
    /** 合作协议 */
    cooperationUrl?: string;
  }
  interface SetUserEnterpiseCooperationUrlInput {
    /** 用户Id */
    userId?: string;
    /** 合作协议 */
    cooperationUrl?: string;
  }
  interface SetUserEnterpriseBankInfoInput {
@@ -23183,6 +23234,7 @@
    monthApplyId?: string;
    fileSearchTypeId?: string;
    listFiles?: CustomerUploadMonthApplyFileTypeDto[];
    enterpriseId?: string;
  }
  interface UploadParkApplyCustomerFilesInput {
src/store/modules/permission.ts
@@ -33,12 +33,14 @@
          const res = await baseModuleServices.getCurrentUserModuleList({
            showLoading: false,
          });
          const accessedRoutes = ascending(addAsyncRoutes(formatModuleList([], null))); // createAccessedRoutes(userMenuList, userInfo)
          const accessedRoutes = ascending(addAsyncRoutes(formatModuleList(res, null))); // createAccessedRoutes(userMenuList, userInfo)
          //@ts-ignore
          accessedRoutes.push({ path: '/:pathMatch(.*)*', redirect: '/404', hidden: true });
          this.addRoutes = accessedRoutes;
          this.routes = constantRoutes.concat(accessedRoutes);
          this.routes = constantRoutes
            .concat(accessedRoutes)
            .sort((a, b) => (a.meta?.rank ?? 0) - (b.meta?.rank ?? 0));
          resolve(accessedRoutes);
        } catch (e) {
src/views/Reward/components/RewardApplyTradeCheckDialog.vue
@@ -307,7 +307,7 @@
async function handleApply() {
  try {
    const content = `开户名称:${getIncomeCompanyName(form.value)}\n开户银行:${getIncomeBankName(
    const content = `开户名称:${getIncomeBankAccount(form.value)}\n开户银行:${getIncomeBankName(
      form.value
    )}\n开户账号:${getIncomeBankCardNumber(form.value)}`;
    await Message.tipMessage(content, { title: '复制内容' });
src/views/StatisticalReport/RewardStatistics.vue
@@ -20,17 +20,6 @@
      </div>
      <ProTableQueryFilterBar @on-reset="reset">
        <template #query>
          <QueryFilterItem tip-content="申报月份">
            <FieldDatePicker
              v-model="extraParamState.months"
              type="months"
              clearable
              placeholder="请选择申报月份"
              format="YYYY-MM"
              value-format="YYYY-MM"
              @change="getList()"
            ></FieldDatePicker>
          </QueryFilterItem>
          <QueryFilterItem>
            <FieldSelect
              v-model="extraParamState.industrialParkId"
@@ -41,6 +30,18 @@
              clearable
              @change="getList()"
            />
          </QueryFilterItem>
          <QueryFilterItem tip-content="申报月份">
            <FieldDatePicker
              v-model="extraParamState.months"
              type="months"
              clearable
              placeholder="请选择申报月份"
              format="YYYY-MM"
              value-format="YYYY-MM"
              @change="getList()"
              :disabled-date="disabledDate"
            ></FieldDatePicker>
          </QueryFilterItem>
          <QueryFilterItem>
            <SearchInput
@@ -133,6 +134,7 @@
import EnterpriseWithdrawalDetailDialog from './components/EnterpriseWithdrawalDetailDialog.vue';
import BalanceDetailDialog from './components/BalanceDetailDialog.vue';
import { EnumParkRewardStatisticsDetailScene } from '@/constants';
import { useRewardStatisticsMonths } from './hooks';
defineOptions({
  name: 'RewardStatistics',
@@ -289,14 +291,15 @@
      //   Message.errorMessage('请选择月份');
      //   return;
      // }
      if (!extraParamState.months.length) {
        Message.errorMessage('请选择月份');
        return;
      }
      if (!extraParamState.industrialParkId) {
        Message.errorMessage('请选择园区');
        return;
      }
      if (!extraParamState.months.length) {
        Message.errorMessage('请选择月份');
        return;
      }
      let params: API.GetRewardStatisticsInput = {
        pageModel: {
          rows: pageSize,
@@ -358,6 +361,11 @@
  }
);
const { disabledDate } = useRewardStatisticsMonths({
  industrialParkId: toRef(extraParamState, 'industrialParkId'),
  enabled: computed(() => !!extraParamState.industrialParkId),
});
const handleExport = _.debounce(
  async () => {
    if (!extraParamState.month) {
src/views/StatisticalReport/hooks/rewardStatistics.ts
@@ -2,6 +2,8 @@
import { useTable } from '@bole-core/components';
import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import { OrderInputType } from '@bole-core/core';
import { useQuery } from '@tanstack/vue-query';
import dayjs from 'dayjs';
type UseRewardStatisticsDetailOptions = {
  scene?: Ref<EnumParkRewardStatisticsDetailScene>;
@@ -54,3 +56,35 @@
    reset,
  };
}
type UseRewardStatisticsMonthsOptions = {
  industrialParkId?: MaybeRef<string>;
  enabled?: MaybeRef<boolean>;
};
export function useRewardStatisticsMonths(options: UseRewardStatisticsMonthsOptions = {}) {
  const { industrialParkId, enabled } = options;
  const { data: rewardStatisticsMonths } = useQuery({
    queryKey: ['parkBountyApplyServices/getRewardStatisticsMonths', industrialParkId],
    queryFn: async () => {
      let params: API.APIgetRewardStatisticsMonthsParams = {
        industrialParkId: unref(industrialParkId),
      };
      let res = await parkBountyApplyServices.getRewardStatisticsMonths(params, {
        showLoading: false,
      });
      return res;
    },
    placeholderData: [] as string[],
    enabled: enabled,
  });
  const disabledDate = computed(() => {
    return (time: Date) => {
      return rewardStatisticsMonths.value.every((x) => !dayjs(x).isSame(dayjs(time), 'month'));
    };
  });
  return { rewardStatisticsMonths, disabledDate };
}