zhengyiming
2 天以前 baa76cb2bf0496ea34b4eee1a04a13cc1ca680cb
fix: 验收管理
1个文件已添加
15个文件已修改
995 ■■■■ 已修改文件
.eslintrc-auto-import.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
auto-imports.d.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/apiEnum.ts 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/task.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/useEvent.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.ts 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/auth.ts 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/index.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/task.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/taskCheckReceive.ts 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 322 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/userResume.ts 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/CheckManage.vue 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/CheckReceiveTaskDetail.vue 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/components/CheckManageDialog.vue 124 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/constants/columns.ts 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.eslintrc-auto-import.json
@@ -34,6 +34,7 @@
    "EnumSettlementCycleText": true,
    "EnumSmsAccess": true,
    "EnumTaskCheckReceiveStatus": true,
    "EnumTaskCheckReceiveStatusText": true,
    "EnumTaskRecommendStatus": true,
    "EnumTaskRecommendStatusText": true,
    "EnumTaskReleaseStatus": true,
@@ -48,6 +49,8 @@
    "EnumTaskUserHireStatusText": true,
    "EnumTaskUserSignContractStatus": true,
    "EnumTaskUserSignContractStatusText": true,
    "EnumTaskUserSubmitCheckReceiveStatus": true,
    "EnumTaskUserSubmitCheckReceiveStatusText": true,
    "EnumUserGender": true,
    "EnumUserGenderText": true,
    "EnumUserGenderTextForEdit": true,
auto-imports.d.ts
@@ -39,6 +39,7 @@
  const EnumSmsAccess: typeof import('./src/constants/apiEnum')['EnumSmsAccess']
  const EnumSmsTemplateType: typeof import('./src/constants/apiEnum')['EnumSmsTemplateType']
  const EnumTaskCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']
  const EnumTaskCheckReceiveStatusText: typeof import('./src/constants/task')['EnumTaskCheckReceiveStatusText']
  const EnumTaskRecommendStatus: typeof import('./src/constants/apiEnum')['EnumTaskRecommendStatus']
  const EnumTaskRecommendStatusText: typeof import('./src/constants/task')['EnumTaskRecommendStatusText']
  const EnumTaskReleaseStatus: typeof import('./src/constants/apiEnum')['EnumTaskReleaseStatus']
@@ -53,6 +54,8 @@
  const EnumTaskUserHireStatusText: typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserHireStatusText']
  const EnumTaskUserSignContractStatus: typeof import('./src/constants/apiEnum')['EnumTaskUserSignContractStatus']
  const EnumTaskUserSignContractStatusText: typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserSignContractStatusText']
  const EnumTaskUserSubmitCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskUserSubmitCheckReceiveStatus']
  const EnumTaskUserSubmitCheckReceiveStatusText: typeof import('./src/constants/task')['EnumTaskUserSubmitCheckReceiveStatusText']
  const EnumUserGender: typeof import('./src/constants/apiEnum')['EnumUserGender']
  const EnumUserGenderText: typeof import('./src/constants/task')['EnumUserGenderText']
  const EnumUserGenderTextForEdit: typeof import('./src/constants/task')['EnumUserGenderTextForEdit']
@@ -205,7 +208,7 @@
  export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
  import('vue')
  // @ts-ignore
  export type { EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton } from './src/constants/apiEnum'
  export type { EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton } from './src/constants/apiEnum'
  import('./src/constants/apiEnum')
  // @ts-ignore
  export type { CategoryCode, IdentityCodeEnum, EducationCodeEnum, CertificateTypeCodeEnum, WelfareCodeEnum } from './src/constants/dic'
@@ -265,6 +268,7 @@
    readonly EnumSettlementCycleText: UnwrapRef<typeof import('./src/constants/task')['EnumSettlementCycleText']>
    readonly EnumSmsAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSmsAccess']>
    readonly EnumTaskCheckReceiveStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']>
    readonly EnumTaskCheckReceiveStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskCheckReceiveStatusText']>
    readonly EnumTaskRecommendStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskRecommendStatus']>
    readonly EnumTaskRecommendStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskRecommendStatusText']>
    readonly EnumTaskReleaseStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskReleaseStatus']>
@@ -279,6 +283,8 @@
    readonly EnumTaskUserHireStatusText: UnwrapRef<typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserHireStatusText']>
    readonly EnumTaskUserSignContractStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskUserSignContractStatus']>
    readonly EnumTaskUserSignContractStatusText: UnwrapRef<typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserSignContractStatusText']>
    readonly EnumTaskUserSubmitCheckReceiveStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskUserSubmitCheckReceiveStatus']>
    readonly EnumTaskUserSubmitCheckReceiveStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskUserSubmitCheckReceiveStatusText']>
    readonly EnumUserGender: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserGender']>
    readonly EnumUserGenderText: UnwrapRef<typeof import('./src/constants/task')['EnumUserGenderText']>
    readonly EnumUserGenderTextForEdit: UnwrapRef<typeof import('./src/constants/task')['EnumUserGenderTextForEdit']>
src/constants/apiEnum.ts
@@ -161,6 +161,8 @@
export enum EnumTaskCheckReceiveStatus {
  /**待提交 */
  WaitSubmit = 10,
  /**待验收 */
  WaitCheckReceive = 20,
  /**已验收 */
  Completed = 30,
}
@@ -225,6 +227,18 @@
  Refuse = 30,
}
/** 任务验收状态 */
export enum EnumTaskUserSubmitCheckReceiveStatus {
  /**待提交 */
  WaitSubmit = 10,
  /**待验收 */
  WaitCheckReceive = 20,
  /**验收通过 */
  Success = 30,
  /**验收未通过 */
  Fail = 40,
}
/** 用户性别 */
export enum EnumUserGender {
  /**男 */
src/constants/task.ts
@@ -1,3 +1,5 @@
import { EnumTaskCheckReceiveStatus } from './apiEnum';
export const EnumTaskStatusText = {
  [EnumTaskStatus.Wait]: '待安排',
  [EnumTaskStatus.Complete]: '已安排',
@@ -58,3 +60,16 @@
  [EnumTaskUserArrangeStatus.Wait]: '未安排',
  [EnumTaskUserArrangeStatus.Complete]: '已安排',
};
export const EnumTaskCheckReceiveStatusText = {
  [EnumTaskCheckReceiveStatus.WaitSubmit]: '待提交',
  [EnumTaskCheckReceiveStatus.WaitCheckReceive]: '待验收',
  [EnumTaskCheckReceiveStatus.Completed]: '已验收',
};
export const EnumTaskUserSubmitCheckReceiveStatusText = {
  [EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit]: '待提交',
  [EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive]: '待验收',
  [EnumTaskUserSubmitCheckReceiveStatus.Success]: '验收通过',
  [EnumTaskUserSubmitCheckReceiveStatus.Fail]: '验收未通过',
};
src/hooks/useEvent.ts
@@ -5,6 +5,7 @@
  'home:add': any;
  'taskManage:add': any;
  'taskManage:edit': any;
  checkReceiveTask: any;
};
export type GlobalEventListener<T extends keyof GlobalEvent> = (payload: GlobalEvent[T]) => any;
src/router/index.ts
@@ -215,6 +215,19 @@
          icon: 'home',
        },
      },
      {
        path: '/CheckReceiveTaskDetail/:id',
        name: 'CheckReceiveTaskDetail',
        hidden: true,
        alwaysShow: false,
        component: () => import('@/views/EmploymentManage/CheckReceiveTaskDetail.vue'),
        meta: {
          rank: 10031,
          title: '验收详情',
          // rootMenu: true,
          icon: 'home',
        },
      },
    ],
  },
  {
src/services/api/auth.ts
@@ -81,6 +81,23 @@
  });
}
/** 查询企业用户登录信息 GET /api/user/auth/getEnterpriseLoginInfo */
export async function getEnterpriseLoginInfo(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetEnterpriseLoginInfoParams,
  options?: API.RequestConfig
) {
  return request<API.GetEnterpriseLoginInfoQueryResult>('/api/user/auth/getEnterpriseLoginInfo', {
    method: 'GET',
    params: {
      ...params,
      request: undefined,
      ...params['request'],
    },
    ...(options || {}),
  });
}
/** 查询个人用户登录信息 GET /api/user/auth/getPersonalLoginInfo */
export async function getPersonalLoginInfo(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
src/services/api/index.ts
@@ -4,26 +4,26 @@
// API 唯一标识:
import * as enterpriseEmployee from './enterpriseEmployee';
import * as role from './role';
import * as taskCheckReceive from './taskCheckReceive';
import * as enterprise from './enterprise';
import * as task from './task';
import * as dictionary from './dictionary';
import * as user from './user';
import * as userResume from './userResume';
import * as auth from './auth';
import * as taskCheckReceive from './taskCheckReceive';
import * as resource from './resource';
import * as taskUser from './taskUser';
import * as menu from './menu';
export default {
  enterpriseEmployee,
  role,
  taskCheckReceive,
  enterprise,
  task,
  dictionary,
  user,
  userResume,
  auth,
  taskCheckReceive,
  resource,
  taskUser,
  menu,
src/services/api/task.ts
@@ -14,6 +14,21 @@
  });
}
/** 查询开放任务分页列表 POST /api/flexjob/task/getOpenTaskInfos */
export async function getOpenTaskInfos(
  body: API.GetOpenTaskInfosQuery,
  options?: API.RequestConfig
) {
  return request<API.GetTaskInfosQueryResult>('/api/flexjob/task/getOpenTaskInfos', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 我的报名分页列表 POST /api/flexjob/task/getPersonalApplyTaskInfos */
export async function getPersonalApplyTaskInfos(
  body: API.GetPersonalApplyTaskInfosQuery,
src/services/api/taskCheckReceive.ts
@@ -2,7 +2,22 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 查询验收任务分页列表 POST /api/flexjob/taskCheckReceive/getCheckReceiveTask */
/** 任务验收 POST /api/flexjob/taskCheckReceive/checkReceiveTask */
export async function checkReceiveTask(
  body: API.CheckReceiveTaskCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/flexjob/taskCheckReceive/checkReceiveTask', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 查询验收任务详情 POST /api/flexjob/taskCheckReceive/getCheckReceiveTask */
export async function getCheckReceiveTask(
  body: API.GetCheckReceiveTaskQuery,
  options?: API.RequestConfig
@@ -20,19 +35,37 @@
  );
}
/** 查询验收分页列表 POST /api/flexjob/taskCheckReceive/getCheckReceiveTaskUser */
export async function getCheckReceiveTaskUser(
  body: API.GetCheckReceiveTaskUserQuery,
/** 查询验收任务分页列表 POST /api/flexjob/taskCheckReceive/getCheckReceiveTasks */
export async function getCheckReceiveTasks(
  body: API.GetCheckReceiveTasksQuery,
  options?: API.RequestConfig
) {
  return request<API.GetCheckReceiveTaskUserQueryResult>(
    '/api/flexjob/taskCheckReceive/getCheckReceiveTaskUser',
  return request<API.GetCheckReceiveTasksQueryResult>(
    '/api/flexjob/taskCheckReceive/getCheckReceiveTasks',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 查询验收提交详情 GET /api/flexjob/taskCheckReceive/getCheckReceiveTaskUserSubmit */
export async function getCheckReceiveTaskUserSubmit(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetCheckReceiveTaskUserSubmitParams,
  options?: API.RequestConfig
) {
  return request<API.GetCheckReceiveTaskUserSubmitQueryResult>(
    '/api/flexjob/taskCheckReceive/getCheckReceiveTaskUserSubmit',
    {
      method: 'GET',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
@@ -55,3 +88,18 @@
    }
  );
}
/** 任务提交验收 POST /api/flexjob/taskCheckReceive/submitCheckReceiveTask */
export async function submitCheckReceiveTask(
  body: API.SubmitCheckReceiveTaskCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/flexjob/taskCheckReceive/submitCheckReceiveTask', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
src/services/api/typings.d.ts
@@ -13,6 +13,17 @@
    maxDeep?: number;
  }
  interface APIgetCheckReceiveTaskUserSubmitParams {
    /** 提交Id(用于B端客户端) */
    submitId?: string;
    /** 任务Id(用于C端小程序编辑提交 和日期一起传) */
    taskInfoId?: string;
    /** 任务人员Id(用于B端小程序验收 和日期一起传) */
    taskInfoUserId?: string;
    /** 日期(用于两个小程序 跟某一个Id一起传) */
    date?: string;
  }
  interface APIgetCurrentLogierMenuParams {
    /** Id */
    id?: string;
@@ -55,6 +66,11 @@
    id?: string;
    /** 任务Id */
    taskInfoId?: string;
  }
  interface APIgetEnterpriseLoginInfoParams {
    /** 查询企业用户登录信息 */
    request?: GetEnterpriseLoginInfoQuery;
  }
  interface APIgetEnterpriseParams {
@@ -182,11 +198,29 @@
    verifyCode: string;
  }
  interface CheckReceiveTaskCommand {
    /** 提交Id */
    id?: string;
    checkReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus;
  }
  interface CollectTaskCommand {
    /** 任务Id */
    ids?: string[];
    /** 是否收藏 */
    isCollect?: boolean;
  }
  interface CollectUserResumeCommand {
    /** 用户Id */
    id?: string;
    /** 是否已收藏 */
    isCollected?: boolean;
  }
  interface ContactUserResumeCommand {
    /** 用户Id */
    id?: string;
  }
  interface DeleteDictionaryCategoryCommand {
@@ -355,6 +389,8 @@
  enum EnumTaskCheckReceiveStatus {
    /**待提交 */
    WaitSubmit = 10,
    /**待验收 */
    WaitCheckReceive = 20,
    /**已验收 */
    Completed = 30,
  }
@@ -410,6 +446,17 @@
    Pass = 20,
    /**已拒签 */
    Refuse = 30,
  }
  enum EnumTaskUserSubmitCheckReceiveStatus {
    /**待提交 */
    WaitSubmit = 10,
    /**待验收 */
    WaitCheckReceive = 20,
    /**验收通过 */
    Success = 30,
    /**验收未通过 */
    Fail = 40,
  }
  enum EnumUserGender {
@@ -517,14 +564,32 @@
    timestamp?: number;
  }
  interface FriendlyResultGetCheckReceiveTaskUserQueryResult {
  interface FriendlyResultGetCheckReceiveTasksQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetCheckReceiveTaskUserQueryResult;
    data?: GetCheckReceiveTasksQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetCheckReceiveTaskUserSubmitQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetCheckReceiveTaskUserSubmitQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -597,6 +662,24 @@
    /** 错误码 */
    errorCode?: string;
    data?: GetEnterpriseEmployeesQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetEnterpriseLoginInfoQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetEnterpriseLoginInfoQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -1327,63 +1410,27 @@
  }
  interface GetCheckReceiveTaskQuery {
    /** 验收日期-最早时间 */
    dateBegin?: string;
    /** 验收日期-最晚时间 */
    dateEnd?: string;
    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
    /** 任务Id */
    taskInfoId?: string;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetCheckReceiveTaskQueryResult {
    objectData?: GetCheckReceiveTaskQueryResultObjectData;
    pageModel?: PagedListQueryResultPageModel;
    /** 数据 */
    data?: GetCheckReceiveTaskQueryResultItem[];
  }
  interface GetCheckReceiveTaskQueryResultItem {
    /** 任务Id */
    /** 任务人员Id */
    id?: string;
    /** 任务名称 */
    name?: string;
    /** 任务开始时间 */
    beginTime?: string;
    /** 任务结束时间 */
    endTime?: string;
    /** 任务地点名称 */
    addressName?: string;
  }
  interface GetCheckReceiveTaskUserQuery {
    /** 任务Id */
    taskInfoId?: string;
    /** 关键字 */
    keywords?: string;
    /** 验收日期-最早时间 */
    dateBegin?: string;
    /** 验收日期-最晚时间 */
    dateEnd?: string;
    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetCheckReceiveTaskUserQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** 数据 */
    data?: GetCheckReceiveTaskUserQueryResultItem[];
  }
  interface GetCheckReceiveTaskUserQueryResultItem {
    /** 任务Id */
    id?: string;
    /** 任务名称 */
    taskName?: string;
    /** 任务开始时间 */
    beginTime?: string;
    /** 任务结束时间 */
    endTime?: string;
    /** 任务地点名称 */
    addressName?: string;
    taskInfoName?: string;
    /** 任务单号 */
    taskInfoCode?: string;
    /** 头像 */
    avatar?: string;
    /** 姓名 */
    name?: string;
    /** 身份证号 */
@@ -1393,24 +1440,145 @@
    age?: number;
    /** 手机号 */
    contactPhoneNumber?: string;
    /** 提交时间 */
    /** 是否实名 */
    isReal?: boolean;
    realMethod?: EnumUserRealMethod;
    /** 最近提交时间 */
    lastSubmitTime?: string;
    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
  }
  interface GetCheckReceiveTaskUserSubmitsQuery {
  interface GetCheckReceiveTaskQueryResultObjectData {
    /** 任务名称 */
    name?: string;
    /** 任务单号 */
    code?: string;
    billingMethod?: EnumBillingMethod;
    /** 服务费 */
    serviceFee?: number;
    settlementCycle?: EnumSettlementCycle;
    /** 任务开始时间 */
    beginTime?: string;
    /** 任务结束时间 */
    endTime?: string;
    /** 任务地点名称 */
    addressName?: string;
  }
  interface GetCheckReceiveTasksQuery {
    /** 日期(小程序-验收管理专用) */
    date?: string;
    /** 关键字(姓名/手机/身份证号) */
    keywords?: string;
    /** 验收日期-最早时间(B端客户端-验收管理专用) */
    checkReceiveTimeBegin?: string;
    /** 验收日期-最晚时间(B端客户端-验收管理专用) */
    checkReceiveTimeEnd?: string;
    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetCheckReceiveTasksQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** 数据 */
    data?: GetCheckReceiveTasksQueryResultItem[];
  }
  interface GetCheckReceiveTasksQueryResultItem {
    /** 任务Id */
    id?: string;
    /** 任务名称 */
    name?: string;
    /** 任务单号 */
    code?: string;
    billingMethod?: EnumBillingMethod;
    /** 服务费 */
    serviceFee?: number;
    settlementCycle?: EnumSettlementCycle;
    /** 发布时间 */
    createdTime?: string;
    /** 任务开始时间 */
    beginTime?: string;
    /** 任务结束时间 */
    endTime?: string;
    /** 任务地点名称 */
    addressName?: string;
    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
    /** 最近验收时间 */
    lastCheckReceiveTime?: string;
  }
  interface GetCheckReceiveTaskUserSubmitQueryResult {
    /** 提交Id */
    id?: string;
    enterpriseEmployeeUser?: GetCheckReceiveTaskUserSubmitsQueryResultObjectDataEnterpriseEmployeeUser;
    /** 提交时间 */
    createdTime?: string;
    /** 验收照片 */
    files?: string[];
  }
  interface GetCheckReceiveTaskUserSubmitsQuery {
    /** 任务人员Id */
    id?: string;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetCheckReceiveTaskUserSubmitsQueryResult {
    objectData?: GetCheckReceiveTaskUserSubmitsQueryResultObjectData;
    pageModel?: PagedListQueryResultPageModel;
    /** 数据 */
    data?: GetCheckReceiveTaskUserSubmitsQueryResultItem[];
  }
  type GetCheckReceiveTaskUserSubmitsQueryResultItem = Record<string, any>;
  interface GetCheckReceiveTaskUserSubmitsQueryResultItem {
    /** 提交Id */
    id?: string;
    /** 提交时间 */
    createdTime?: string;
    /** 验收照片 */
    files?: string[];
    checkReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus;
    /** 验收时间 */
    checkReceiveTime?: string;
  }
  interface GetCheckReceiveTaskUserSubmitsQueryResultObjectData {
    taskInfo?: GetCheckReceiveTaskUserSubmitsQueryResultObjectDataTaskInfo;
    enterpriseEmployeeUser?: GetCheckReceiveTaskUserSubmitsQueryResultObjectDataEnterpriseEmployeeUser;
  }
  interface GetCheckReceiveTaskUserSubmitsQueryResultObjectDataEnterpriseEmployeeUser {
    /** 用户Id */
    id?: string;
    /** 头像 */
    avatar?: string;
    /** 姓名 */
    name?: string;
    /** 身份证号 */
    identity?: string;
    gender?: EnumUserGender;
    /** 年龄 */
    age?: number;
    /** 手机号 */
    contactPhoneNumber?: string;
    /** 是否实名 */
    isReal?: boolean;
    realMethod?: EnumUserRealMethod;
    /** 是否绑定银行卡 */
    isBindBankCard?: boolean;
  }
  interface GetCheckReceiveTaskUserSubmitsQueryResultObjectDataTaskInfo {
    /** 任务名称 */
    name?: string;
    /** 任务开始时间 */
    beginTime?: string;
    /** 任务结束时间 */
    endTime?: string;
    /** 任务地点名称 */
    addressName?: string;
  }
  type GetCurrentLogierMenusQuery = Record<string, any>;
@@ -1631,6 +1799,27 @@
    enterpriseSignContractTime?: string;
  }
  type GetEnterpriseLoginInfoQuery = Record<string, any>;
  interface GetEnterpriseLoginInfoQueryResult {
    /** Id */
    id?: string;
    /** 头像 */
    avatar?: string;
    /** 姓名 */
    name?: string;
    /** 企业全称 */
    enterpriseName?: string;
    /** 角色 */
    roles?: string[];
    /** 是否实名 */
    isReal?: boolean;
    /** 我的收藏 */
    collectUsers?: number;
    /** 联系记录 */
    contactRecords?: number;
  }
  interface GetEnterpriseQueryResult {
    /** Id */
    id?: string;
@@ -1823,6 +2012,28 @@
    sort?: number;
    /** 备注 */
    remark?: string;
  }
  interface GetOpenTaskInfosQuery {
    /** 关键字(任务名称) */
    keywords?: string;
    /** 企业Id */
    enterpriseId?: string;
    /** 发布时间-开始 */
    beginTime?: string;
    /** 发布时间-结束 */
    endTime?: string;
    /** 任务地点所属城市编号 */
    cityCode?: string;
    settlementCycle?: EnumSettlementCycle;
    /** 员工福利 */
    benefitCodes?: string[];
    genderLimit?: EnumUserGender;
    status?: EnumTaskStatus;
    releaseStatus?: EnumTaskReleaseStatus;
    recommendStatus?: EnumTaskRecommendStatus;
    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetOperationUserInfosQuery {
@@ -2085,6 +2296,8 @@
    applyCount?: number;
    /** 任务名称 */
    name?: string;
    /** 任务单号 */
    code?: string;
    billingMethod?: EnumBillingMethod;
    /** 服务费 */
    serviceFee?: number;
@@ -2233,7 +2446,7 @@
    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
    settlementStatus?: EnumTaskSettlementStatus;
    recommendStatus?: EnumTaskRecommendStatus;
    /** 创建时间 */
    /** 发布时间 */
    createdTime?: string;
  }
@@ -3084,6 +3297,13 @@
    clientType?: EnumClientType;
  }
  interface SubmitCheckReceiveTaskCommand {
    /** 任务Id */
    taskInfoId?: string;
    /** 附件 */
    files?: string[];
  }
  type SyncHumanResourcesAreaDictionaryDataCommand = Record<string, any>;
  interface UpdatePhoneNumberVerifyCodeCommand {
src/services/api/userResume.ts
@@ -2,6 +2,36 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 收藏灵工 POST /api/user/userResume/collectUserResume */
export async function collectUserResume(
  body: API.CollectUserResumeCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/userResume/collectUserResume', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 联系灵工 POST /api/user/userResume/contactUserResume */
export async function contactUserResume(
  body: API.ContactUserResumeCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/userResume/contactUserResume', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 删除用户简历-资格证书 DELETE /api/user/userResume/deleteUserResumeCredential */
export async function deleteUserResumeCredential(
  body: API.DeleteUserResumeCredentialCommand,
src/views/EmploymentManage/CheckManage.vue
@@ -5,11 +5,8 @@
        <template #query>
          <QueryFilterItem tip-content="验收状态">
            <FieldRadio
              v-model="extraParamState.flexEnterpriseSettingStatus"
              :value-enum="[
                { label: '已安排', value: 1 },
                { label: '待安排', value: 0 },
              ]"
              v-model="extraParamState.checkReceiveStatus"
              :value-enum="EnumTaskCheckReceiveStatusText"
              buttonStyle
              showAllBtn
              @change="getList()"
@@ -17,7 +14,7 @@
          </QueryFilterItem>
          <QueryFilterItem>
            <FieldDatePicker
              v-model="extraParamState.flexEnterpriseSettingStatus"
              v-model="extraParamState.checkReceiveTime"
              type="daterange"
              range-separator="~"
              start-placeholder="起始日期"
@@ -46,7 +43,6 @@
      >
      </ProTableV2>
    </AppContainer>
    <CheckManageDialog v-bind="dialogProps" @check="handleCheck" />
  </LoadingLayout>
</template>
@@ -65,8 +61,10 @@
  useFormDialog,
} from '@bole-core/components';
import { CheckManageColumns } from './constants';
import { EnumUserGender } from '@/constants';
import CheckManageDialog from './components/CheckManageDialog.vue';
import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive';
import { ModelValueType } from 'element-plus';
import { format } from '@/utils';
import { EnumTaskCheckReceiveStatusText } from '@/constants';
defineOptions({
  name: 'CheckManage',
@@ -75,20 +73,24 @@
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'checkBtn',
      name: '验收',
    },
    emits: {
      onClick: (role) => openDialog(role, 'check'),
    },
  },
  {
    data: {
      enCode: 'detailBtn',
      name: '详情',
    },
    emits: {
      onClick: (role) => openDialog(role, 'detail'),
      onClick: (role) => goCheckReceiveTaskDetail(role),
    },
  },
  {
    data: {
      enCode: 'exportBtn',
      name: '导出',
    },
    emits: {
      onClick: (role) => handleExport(role),
    },
    extraProps: {
      hide: (row: API.GetCheckReceiveTasksQueryResultItem) =>
        row.checkReceiveStatus !== EnumTaskCheckReceiveStatus.Completed,
    },
  },
]);
@@ -100,6 +102,12 @@
};
const state = reactive({ ...BaseState });
const eventContext = useGlobalEventContext();
eventContext.addEvent('checkReceiveTask', () => {
  getList(paginationState.pageIndex);
});
onMounted(async () => {
  await getList();
@@ -115,17 +123,25 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetFlexEnterpriseInput = {
      let params: API.GetCheckReceiveTasksQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus,
        searchWord: extraParamState.searchWord,
        checkReceiveStatus: extraParamState.checkReceiveStatus,
        checkReceiveTimeBegin: format(
          extraParamState.checkReceiveTime?.[0] ?? '',
          'YYYY-MM-DD 00:00:00'
        ),
        checkReceiveTimeEnd: format(
          extraParamState.checkReceiveTime?.[1] ?? '',
          'YYYY-MM-DD 23:59:59'
        ),
        keywords: extraParamState.searchWord,
      };
      let res = await flexEnterpriseServices.getFlexEnterpriseList(params, {
      let res = await taskCheckReceiveServices.getCheckReceiveTasks(params, {
        showLoading: !state.loading,
      });
      return res;
@@ -137,29 +153,36 @@
    defaultExtraParams: {
      searchWord: '',
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
      flexEnterpriseSettingStatus: '' as any,
      checkReceiveStatus: '' as any as EnumTaskCheckReceiveStatus,
      checkReceiveTime: [] as unknown as ModelValueType,
    },
    queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'],
    columnsRenderProps: {},
    queryKey: ['taskCheckReceiveServices/getCheckReceiveTasks'],
    columnsRenderProps: {
      checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText },
      billingMethod: { type: 'enum', valueEnum: EnumBillingMethodText },
      serviceFee: {
        type: 'money',
        formatter: (row) => {
          return `${row.serviceFee}${EnumBillingMethodUnitText[row.billingMethod]}`;
        },
      },
      settlementCycle: { type: 'enum', valueEnum: EnumSettlementCycleText },
      createdTime: { type: 'date', format: 'YYYY-MM-DD' },
      beginTime: { type: 'date', format: 'YYYY-MM-DD' },
      endTime: { type: 'date', format: 'YYYY-MM-DD' },
      lastCheckReceiveTime: { type: 'date' },
    },
  }
);
const { dialogProps, dialogState, handleEdit, editForm } = useFormDialog({
  defaultFormParams: {
    id: '',
    type: '',
  },
});
function openDialog(row, type: string) {
  handleEdit({
    id: row.id,
    type: type,
function goCheckReceiveTaskDetail(row: API.GetCheckReceiveTasksQueryResultItem) {
  router.push({
    name: 'CheckReceiveTaskDetail',
    params: {
      id: row.id ?? '',
    },
  });
}
function handleCheck(val) {
  console.log('val: ', val);
  dialogState.dialogVisible = false;
}
function handleExport(row: API.GetCheckReceiveTasksQueryResultItem) {}
</script>
src/views/EmploymentManage/CheckReceiveTaskDetail.vue
New file
@@ -0,0 +1,186 @@
<template>
  <LoadingLayout :loading="state.loading">
    <AppContainer>
      <el-card class="query-filter-bar-wrapper" shadow="never">
        <ProForm :model="taskInfo" is-read>
          <ProFormCol>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="任务名称:">
                {{ taskInfo.name ?? '' }}
              </ProFormItemV2>
            </ProFormColItem>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="任务编号:">
                {{ taskInfo.code ?? '' }}
              </ProFormItemV2>
            </ProFormColItem>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="服务费金额:">
                {{ `${taskInfo.serviceFee}${EnumBillingMethodUnitText[taskInfo.billingMethod]}` }}
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="发布日期:">
                {{ dayjs(taskInfo.createdTime ?? '').format('YYYY-MM-DD') }}
              </ProFormItemV2>
            </ProFormColItem>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="开始日期:">
                {{ dayjs(taskInfo.beginTime ?? '').format('YYYY-MM-DD') }}
              </ProFormItemV2>
            </ProFormColItem>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="发布日期:">
                {{ dayjs(taskInfo.endTime ?? '').format('YYYY-MM-DD') }}
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
        </ProForm>
      </el-card>
      <ProTableV2
        v-bind="proTableProps"
        :columns="CheckReceiveTaskDetailColumns"
        :operationBtns="operationBtns"
      >
      </ProTableV2>
    </AppContainer>
    <CheckManageDialog v-bind="dialogProps" />
  </LoadingLayout>
</template>
<script setup lang="ts">
import {
  ProTableV2,
  LoadingLayout,
  AppContainer,
  useTable,
  useFormDialog,
  defineOperationBtns,
  ProForm,
  ProFormCol,
  ProFormColItem,
  ProFormItemV2,
  ProTableQueryFilterBar,
} from '@bole-core/components';
import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive';
import * as taskServices from '@/services/api/task';
import { useQuery } from '@tanstack/vue-query';
import { CheckReceiveTaskDetailColumns } from './constants';
import { EnumBillingMethodUnitText } from '@/constants';
import dayjs from 'dayjs';
import CheckManageDialog from './components/CheckManageDialog.vue';
defineOptions({
  name: 'CheckReceiveTaskDetail',
});
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'exportBtn',
      name: '验收',
    },
    emits: {
      onClick: (role) => openDialog(role),
    },
    extraProps: {
      hide: (row: API.GetCheckReceiveTaskQueryResultItem) =>
        row.checkReceiveStatus !== EnumTaskCheckReceiveStatus.WaitCheckReceive,
    },
  },
  {
    data: {
      enCode: 'detailBtn',
      name: '详情',
    },
    emits: {
      onClick: (role) => openDialog(role, true),
    },
  },
]);
const route = useRoute();
const id = (route.params.id as string) ?? '';
const { data: taskInfo } = useQuery({
  queryKey: ['taskServices/getTaskInfo', id],
  queryFn: () => {
    return taskServices.getTaskInfo(
      { id: id },
      {
        showLoading: false,
      }
    );
  },
  placeholderData: () => ({} as API.GetTaskInfoQueryResult),
});
const BaseState = {
  loading: true,
};
const state = reactive({ ...BaseState });
const eventContext = useGlobalEventContext();
eventContext.addEvent('checkReceiveTask', () => {
  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.GetCheckReceiveTaskQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
        },
        taskInfoId: id,
      };
      let res = await taskCheckReceiveServices.getCheckReceiveTask(params, {
        showLoading: !state.loading,
      });
      return res;
    } catch (error) {}
  },
  {
    defaultExtraParams: {
      keyword: '',
    },
    columnsRenderProps: {
      gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson },
      lastSubmitTime: { type: 'date' },
      checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText },
    },
  }
);
function openDialog(row: API.GetCheckReceiveTaskQueryResultItem, isDetail = false) {
  handleEdit({
    id: row.id,
    isDetail,
  });
}
const { dialogProps, handleEdit } = useFormDialog({
  defaultFormParams: {
    id: '',
    isDetail: false,
  },
});
</script>
src/views/EmploymentManage/components/CheckManageDialog.vue
@@ -6,13 +6,7 @@
    </ProDialogTableWrapper>
    <template #footer>
      <span class="dialog-footer">
        <el-button v-if="form.type === 'detail'" @click="emit('onCancel')" type="primary"
          >确定</el-button
        >
        <template v-if="form.type === 'check'">
          <el-button @click="emit('check', false)">验收未通过</el-button>
          <el-button type="primary" @click="emit('check', true)">验收通过</el-button>
        </template>
        <el-button @click="emit('onCancel')" type="primary">确定</el-button>
      </span>
    </template>
  </ProDialog>
@@ -27,6 +21,10 @@
  defineOperationBtns,
  useTable,
} from '@bole-core/components';
import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive';
import { setOSSLink } from '@/utils';
import { downloadWithZip, Message } from '@bole-core/core';
import { useGlobalEventContext } from '@/hooks';
defineOptions({
  name: 'EnterpriseConsumptionDetailDialog',
@@ -34,31 +32,74 @@
type Form = {
  id: string;
  type: string;
  isDetail: boolean;
};
const visible = defineModel({ type: Boolean });
const form = defineModel<Form>('form');
const title = computed(() => (form.value.type === 'check' ? '验收' : '详情'));
const title = computed(() => (form.value.isDetail ? '详情' : '验收'));
const emit = defineEmits<{
  (e: 'onCancel'): void;
  (e: 'check', value: boolean): void;
}>();
const eventContext = useGlobalEventContext();
const columns = defineColumns([
  {
    id: '1',
    enCode: 'creationTime',
    enCode: 'createdTime',
    name: '提交时间',
  },
  {
    id: '2',
    enCode: 'type',
    enCode: 'files',
    name: '验收照片',
  },
  {
    id: '3',
    enCode: 'checkReceiveStatus',
    name: '验收状态',
  },
  {
    id: '4',
    enCode: 'checkReceiveTime',
    name: '验收时间',
  },
]);
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'checkReceiveBtn',
      name: '验收通过',
    },
    emits: {
      onClick: (role) => checkReceiveTask(role, EnumTaskUserSubmitCheckReceiveStatus.Success),
    },
    extraProps: {
      hide: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) =>
        !(
          row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit ||
          row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive
        ) || form.value.isDetail,
    },
  },
  {
    data: {
      enCode: 'checkReceiveBtn',
      name: '验收未通过',
    },
    emits: {
      onClick: (role) => checkReceiveTask(role, EnumTaskUserSubmitCheckReceiveStatus.Fail),
    },
    extraProps: {
      hide: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) =>
        !(
          row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit ||
          row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive
        ) || form.value.isDetail,
    },
  },
  {
    data: {
      enCode: 'downloadBtn',
@@ -71,10 +112,12 @@
]);
watch(
  () => visible.value,
  visible,
  (val) => {
    if (val) {
      getList();
      if (form.value.id) {
        getList();
      }
    }
  },
  {
@@ -91,14 +134,15 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetFlexEnterpriseInput = {
      let params: API.GetCheckReceiveTaskUserSubmitsQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        id: form.value.id,
      };
      let res = await flexEnterpriseServices.getFlexEnterpriseList(params);
      let res = await taskCheckReceiveServices.getCheckReceiveTaskUserSubmits(params);
      return res;
    } catch (error) {
      console.log('error: ', error);
@@ -108,14 +152,48 @@
    defaultExtraParams: {
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
    },
    queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'],
    columnsRenderProps: {},
    queryKey: ['taskCheckReceiveServices/getCheckReceiveTaskUserSubmits'],
    columnsRenderProps: {
      createdTime: { type: 'date' },
      checkReceiveTime: { type: 'date' },
      checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskUserSubmitCheckReceiveStatusText },
      files: {
        type: 'url',
        //@ts-ignore
        formatter: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) =>
          (row.files ?? []).map((x) => setOSSLink(x)),
        showDownloadBtn: false,
      },
    },
  }
);
function handleDownload(row) {}
</script>
function handleDownload(row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) {
  if (row.files?.length > 0) {
    downloadWithZip(
      row.files.map((x) => ({
        data: setOSSLink(x),
      })),
      '验收照片'
    );
  }
}
<style lang="scss" scoped>
@use '@/style/common.scss' as *;
</style>
async function checkReceiveTask(
  row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem,
  checkReceiveStatus: EnumTaskUserSubmitCheckReceiveStatus
) {
  try {
    let params: API.CheckReceiveTaskCommand = {
      id: row.id,
      checkReceiveStatus: checkReceiveStatus,
    };
    let res = await taskCheckReceiveServices.checkReceiveTask(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
      eventContext.emit('checkReceiveTask');
    }
  } catch (error) {}
}
</script>
src/views/EmploymentManage/constants/columns.ts
@@ -138,41 +138,99 @@
  {
    id: '1',
    enCode: 'name',
    name: '任务名称',
  },
  {
    id: '2',
    enCode: 'code',
    name: '任务单号',
  },
  {
    id: '3',
    enCode: 'billingMethod',
    name: '结算周期',
  },
  {
    id: '4',
    enCode: 'serviceFee',
    name: '服务费金额',
  },
  {
    id: '5',
    enCode: 'settlementCycle',
    name: '结算方式',
  },
  {
    id: '6',
    enCode: 'createdTime',
    name: '发布日期',
  },
  {
    id: '6-1',
    enCode: 'beginTime',
    name: '开始日期',
  },
  {
    id: '7',
    enCode: 'endTime',
    name: '结束日期',
  },
  {
    id: '8',
    enCode: 'checkReceiveStatus',
    name: '任务验收状态',
  },
  {
    id: '9',
    enCode: 'lastCheckReceiveTime',
    name: '最近验收时间',
  },
]);
export const CheckReceiveTaskDetailColumns = defineColumns([
  {
    id: '1',
    enCode: 'name',
    name: '姓名',
  },
  {
    id: '2',
    enCode: 'name',
    enCode: 'identity',
    name: '身份证号',
  },
  {
    id: '3',
    enCode: 'name',
    enCode: 'gender',
    name: '性别',
  },
  {
    id: '4',
    enCode: 'name',
    enCode: 'age',
    name: '年龄',
  },
  {
    id: '5',
    enCode: 'name',
    enCode: 'contactPhoneNumber',
    name: '手机号',
  },
  {
    id: '6',
    enCode: 'name',
    name: '所属客户',
    enCode: 'taskInfoName',
    name: '任务名称',
  },
  {
    id: '7',
    enCode: 'name',
    name: '提交时间',
    enCode: 'taskInfoCode',
    name: '任务编号',
  },
  {
    id: '8',
    enCode: 'name',
    name: '验收状态',
    enCode: 'lastSubmitTime',
    name: '最近提交时间',
  },
  {
    id: '8',
    enCode: 'checkReceiveStatus',
    name: '任务验收状态',
  },
]);