| | |
| | | width: 80, |
| | | }, |
| | | ]; |
| | | |
| | | export enum EnumMenuScene { |
| | | /// 后台 |
| | | Back = 0, |
| | | /// 政务端 |
| | | Goverment = 1, |
| | | } |
| | | |
| | | export const EnumMenuSceneText = { |
| | | [EnumMenuScene.Back]: '后台', |
| | | [EnumMenuScene.Goverment]: '政务端', |
| | | }; |
| | |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | 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', |
| New file |
| | |
| | | /* 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 || {}), |
| | | }); |
| | | } |
| | |
| | | ); |
| | | } |
| | | |
| | | /** 获取企业材料管理分页列表 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, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 企业自主申报 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, |
| | |
| | | ); |
| | | } |
| | | |
| | | /** 查询奖励金统计报表 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, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 设置企业合作协议 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', { |
| | |
| | | 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'; |
| | |
| | | AliPayNotify, |
| | | Area, |
| | | BaseModule, |
| | | BaseModuleNew, |
| | | BestSign, |
| | | BestSignCallBack, |
| | | CaiNiao, |
| | |
| | | userId?: string; |
| | | } |
| | | |
| | | interface AddParkBountyApplyByEnterpriseInput { |
| | | batchNo?: string; |
| | | enterpriseMonthApplyId?: string; |
| | | } |
| | | |
| | | interface AddParkBountyApplyStepOneInput { |
| | | batchNo?: string; |
| | | parkId?: string; |
| | |
| | | parentId?: string; |
| | | } |
| | | |
| | | interface APIgetAllModuleListParams { |
| | | menuScene?: EnumMenuScene; |
| | | } |
| | | |
| | | interface APIgetAllSubModuleParams { |
| | | moduleId?: string; |
| | | } |
| | |
| | | id?: string; |
| | | } |
| | | |
| | | interface APIgetRewardStatisticsMonthsParams { |
| | | /** 所属园区Id */ |
| | | industrialParkId?: string; |
| | | } |
| | | |
| | | interface APIgetRolesIdRolesParams { |
| | | id: string; |
| | | } |
| | |
| | | |
| | | interface APIgetUserOrRoleModuleListParams { |
| | | id?: string; |
| | | objectType?: number; |
| | | } |
| | | |
| | | interface APIgetUserOrRoleModuleListParams { |
| | | id?: string; |
| | | menuScene?: EnumMenuScene; |
| | | objectType?: number; |
| | | } |
| | | |
| | |
| | | password?: string; |
| | | /** 产业园区id */ |
| | | industrialParkId?: string; |
| | | /** 统一社会信用代码 */ |
| | | societyCreditCode?: string; |
| | | } |
| | | |
| | | interface CreateBackClientUserInput { |
| | |
| | | } |
| | | |
| | | interface CreateBaseRoleInput { |
| | | menuScene?: EnumMenuScene; |
| | | /** 名称 */ |
| | | name?: string; |
| | | /** 排序 */ |
| | |
| | | } |
| | | |
| | | interface CreateOrUpdateRoleInput { |
| | | menuScene?: EnumMenuScene; |
| | | /** 名称 */ |
| | | name?: string; |
| | | /** 排序 */ |
| | |
| | | isSignFreeSet?: boolean; |
| | | /** 注册时间 */ |
| | | registTime?: string; |
| | | /** 备注 */ |
| | | remark?: string; |
| | | } |
| | | |
| | | interface CustomerManageListOutputPageOutput { |
| | |
| | | /** 申报金额 */ |
| | | applyAmount?: number; |
| | | fileTypes?: CustomerUploadMonthApplyFileType[]; |
| | | enterpriseId?: string; |
| | | } |
| | | |
| | | interface CustomerUploadMonthApplyFileType { |
| | |
| | | remark?: string; |
| | | /** 文件数量 */ |
| | | fileCount?: number; |
| | | /** 企业申报材料数量 */ |
| | | enterpriseMonthApplyFileCount?: number; |
| | | lastModificationTime?: string; |
| | | lastModifierName?: string; |
| | | lastModifierId?: string; |
| | |
| | | type EnumElectronSignRealStatus = 0 | 10 | 99 | 100; |
| | | |
| | | type EnumElectronSignUserType = 10 | 20; |
| | | |
| | | type EnumMenuScene = 0 | 1; |
| | | |
| | | type EnumPagedListOrder = 0 | 1; |
| | | |
| | |
| | | interface GetCustomerUploadApplyFilesInput { |
| | | id?: string; |
| | | enterpriseId?: string; |
| | | userId?: string; |
| | | withMonth?: string; |
| | | parkBountyApplyId?: string; |
| | | } |
| | |
| | | /** 申报金额 */ |
| | | applyAmount?: number; |
| | | applyStatus?: EnterpriseMonthApplyStatusEnum; |
| | | inCheckStatus?: BountyCheckStatusEnum; |
| | | /** 自主申报的申报Id */ |
| | | parkBountyApplyId?: string; |
| | | } |
| | | |
| | | interface GetEnterpriseMonthApplyFileOutputPageOutput { |
| | |
| | | selfAuditOperatorId?: string; |
| | | /** 江祐保上传的保单文件 */ |
| | | insureBillUrl?: string; |
| | | auditType?: EnumParkBountyTradeDetailAuditType; |
| | | } |
| | | |
| | | interface GetParkBountyTradeDetailOutputPageOutput { |
| | |
| | | parkTypName?: string; |
| | | /** 营业执照 */ |
| | | licenseUrl?: string; |
| | | /** 合作协议 */ |
| | | cooperationUrl?: string; |
| | | /** 银行总行名称 */ |
| | | bankName?: string; |
| | | /** 银行支行名称 */ |
| | |
| | | pageModel?: Pagination; |
| | | /** 查询条件:角色名称 */ |
| | | queryCondition?: string; |
| | | menuScene?: EnumMenuScene; |
| | | } |
| | | |
| | | interface GetSearchSettingList { |
| | |
| | | bankBranchName?: string; |
| | | bankCardNumber?: string; |
| | | bankIsVerify?: boolean; |
| | | /** 合作协议 */ |
| | | cooperationUrl?: string; |
| | | } |
| | | |
| | | interface GetUserBaseInfoDataResponse { |
| | |
| | | interface RoleInfo { |
| | | /** 角色Id */ |
| | | id?: string; |
| | | menuScene?: EnumMenuScene; |
| | | /** 名称 */ |
| | | name?: string; |
| | | /** 排序 */ |
| | |
| | | /** 用户Id */ |
| | | userId?: string; |
| | | disabledSyncUser?: boolean; |
| | | /** 合作协议 */ |
| | | cooperationUrl?: string; |
| | | } |
| | | |
| | | interface SetUserEnterpiseCooperationUrlInput { |
| | | /** 用户Id */ |
| | | userId?: string; |
| | | /** 合作协议 */ |
| | | cooperationUrl?: string; |
| | | } |
| | | |
| | | interface SetUserEnterpriseBankInfoInput { |
| | |
| | | monthApplyId?: string; |
| | | fileSearchTypeId?: string; |
| | | listFiles?: CustomerUploadMonthApplyFileTypeDto[]; |
| | | enterpriseId?: string; |
| | | } |
| | | |
| | | interface UploadParkApplyCustomerFilesInput { |
| | |
| | | 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) { |
| | |
| | | |
| | | 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: '复制内容' }); |
| | |
| | | </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" |
| | |
| | | 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 |
| | |
| | | import EnterpriseWithdrawalDetailDialog from './components/EnterpriseWithdrawalDetailDialog.vue'; |
| | | import BalanceDetailDialog from './components/BalanceDetailDialog.vue'; |
| | | import { EnumParkRewardStatisticsDetailScene } from '@/constants'; |
| | | import { useRewardStatisticsMonths } from './hooks'; |
| | | |
| | | defineOptions({ |
| | | name: 'RewardStatistics', |
| | |
| | | // 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, |
| | |
| | | } |
| | | ); |
| | | |
| | | const { disabledDate } = useRewardStatisticsMonths({ |
| | | industrialParkId: toRef(extraParamState, 'industrialParkId'), |
| | | enabled: computed(() => !!extraParamState.industrialParkId), |
| | | }); |
| | | |
| | | const handleExport = _.debounce( |
| | | async () => { |
| | | if (!extraParamState.month) { |
| | |
| | | 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>; |
| | |
| | | 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 }; |
| | | } |