zhengyiming
5 天以前 9373e192d80ba82036929de1904f7fadb515bfd5
Merge branch 'master' of http://120.26.58.240:8888/r/flexJobAdminBClient
3个文件已添加
13个文件已修改
919 ■■■■■ 已修改文件
.eslintrc-auto-import.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
auto-imports.d.ts 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/apiEnum.ts 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/enterpriseEmployee.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/sign.ts 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/electronSign.ts 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/enterprise.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/enterpriseEmployee.ts 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/enterpriseWallet.ts 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/index.ts 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 374 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/user.ts 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/components/CheckManageDialog.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FlexJobManage/FlexJobManage.vue 160 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FlexJobManage/components/SignDialog.vue 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.eslintrc-auto-import.json
@@ -26,6 +26,8 @@
    "EnumDataSource": true,
    "EnumDbAuditOperate": true,
    "EnumElectronSignAccess": true,
    "EnumEnterpriseCostStatus": true,
    "EnumEnterpriseCostType": true,
    "EnumEnterpriseRealMethod": true,
    "EnumMenuType": true,
    "EnumMenuVisitLevel": true,
@@ -61,6 +63,7 @@
    "EnumTaskUserHireStatusText": true,
    "EnumTaskUserSignContractStatus": true,
    "EnumTaskUserSignContractStatusText": true,
    "EnumTaskUserSignContractStatusTextForFilter": true,
    "EnumTaskUserSubmitCheckReceiveStatus": true,
    "EnumTaskUserSubmitCheckReceiveStatusText": true,
    "EnumUserGender": true,
@@ -195,6 +198,7 @@
    "useCssModule": true,
    "useCssVars": true,
    "useDictionaryDataSelect": true,
    "useEnterpriseContractTemplateSelect": true,
    "useGetDictionaryCategorySelect": true,
    "useGlobalEventContext": true,
    "useGlobalEventProvide": true,
auto-imports.d.ts
@@ -30,6 +30,8 @@
  const EnumDataSource: typeof import('./src/constants/apiEnum')['EnumDataSource']
  const EnumDbAuditOperate: typeof import('./src/constants/apiEnum')['EnumDbAuditOperate']
  const EnumElectronSignAccess: typeof import('./src/constants/apiEnum')['EnumElectronSignAccess']
  const EnumEnterpriseCostStatus: typeof import('./src/constants/apiEnum')['EnumEnterpriseCostStatus']
  const EnumEnterpriseCostType: typeof import('./src/constants/apiEnum')['EnumEnterpriseCostType']
  const EnumEnterpriseRealMethod: typeof import('./src/constants/apiEnum')['EnumEnterpriseRealMethod']
  const EnumMenuType: typeof import('./src/constants/apiEnum')['EnumMenuType']
  const EnumMenuVisitLevel: typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel']
@@ -66,6 +68,7 @@
  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 EnumTaskUserSignContractStatusTextForFilter: typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserSignContractStatusTextForFilter']
  const EnumTaskUserSubmitCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskUserSubmitCheckReceiveStatus']
  const EnumTaskUserSubmitCheckReceiveStatusText: typeof import('./src/constants/task')['EnumTaskUserSubmitCheckReceiveStatusText']
  const EnumUserGender: typeof import('./src/constants/apiEnum')['EnumUserGender']
@@ -185,6 +188,7 @@
  const useCssModule: typeof import('vue')['useCssModule']
  const useCssVars: typeof import('vue')['useCssVars']
  const useDictionaryDataSelect: typeof import('./src/hooks/dic')['useDictionaryDataSelect']
  const useEnterpriseContractTemplateSelect: typeof import('./src/hooks/sign')['useEnterpriseContractTemplateSelect']
  const useGetDictionaryCategorySelect: typeof import('./src/hooks/dic')['useGetDictionaryCategorySelect']
  const useGlobalEventContext: typeof import('./src/hooks/useEvent')['useGlobalEventContext']
  const useGlobalEventProvide: typeof import('./src/hooks/useEvent')['useGlobalEventProvide']
@@ -205,6 +209,7 @@
  const useRouter: typeof import('vue-router')['useRouter']
  const useSearchSettingType: typeof import('./src/hooks/dic')['useSearchSettingType']
  const useSetReactive: typeof import('./src/hooks/global/helper')['useSetReactive']
  const useSign: typeof import('./src/hooks/sign')['useSign']
  const useSlots: typeof import('vue')['useSlots']
  const useTemplateRef: typeof import('vue')['useTemplateRef']
  const useUser: typeof import('./src/hooks/useUser')['useUser']
@@ -221,7 +226,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, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseRealMethod, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, 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, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseRealMethod, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, 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'
  export type { EnumBillingMethod, EnumClientType, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, 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, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, 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'
@@ -276,6 +281,8 @@
    readonly EnumDataSource: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumDataSource']>
    readonly EnumDbAuditOperate: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumDbAuditOperate']>
    readonly EnumElectronSignAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumElectronSignAccess']>
    readonly EnumEnterpriseCostStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCostStatus']>
    readonly EnumEnterpriseCostType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCostType']>
    readonly EnumEnterpriseRealMethod: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseRealMethod']>
    readonly EnumMenuType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumMenuType']>
    readonly EnumMenuVisitLevel: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel']>
@@ -311,6 +318,7 @@
    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 EnumTaskUserSignContractStatusTextForFilter: UnwrapRef<typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserSignContractStatusTextForFilter']>
    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']>
@@ -425,6 +433,7 @@
    readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
    readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
    readonly useDictionaryDataSelect: UnwrapRef<typeof import('./src/hooks/dic')['useDictionaryDataSelect']>
    readonly useEnterpriseContractTemplateSelect: UnwrapRef<typeof import('./src/hooks/sign')['useEnterpriseContractTemplateSelect']>
    readonly useGetDictionaryCategorySelect: UnwrapRef<typeof import('./src/hooks/dic')['useGetDictionaryCategorySelect']>
    readonly useGlobalEventContext: UnwrapRef<typeof import('./src/hooks/useEvent')['useGlobalEventContext']>
    readonly useGlobalEventProvide: UnwrapRef<typeof import('./src/hooks/useEvent')['useGlobalEventProvide']>
src/constants/apiEnum.ts
@@ -71,6 +71,22 @@
  AlipaySign = 20,
}
/** 企业用量扣费状态 */
export enum EnumEnterpriseCostStatus {
  /**扣费成功 */
  Success = 10,
  /**扣费失败 */
  Fail = 20,
}
/** 企业用量类型 */
export enum EnumEnterpriseCostType {
  /**短信 */
  SMS = 10,
  /**电子签 */
  ElectronSign = 20,
}
/** 企业实名方式 */
export enum EnumEnterpriseRealMethod {
  /**企业三要素 */
@@ -211,10 +227,12 @@
  UserServerUserResume = 13,
  /**企业信息 */
  UserServerEnterprise = 14,
  /**企业钱包 */
  UserServerEnterpriseWallet = 15,
  /**灵工信息 */
  UserServerEnterpriseEmployee = 15,
  UserServerEnterpriseEmployee = 16,
  /**电子签 */
  ElectronSignServerElectronSign = 16,
  ElectronSignServerElectronSign = 17,
}
/** 资源请求方式 */
@@ -331,6 +349,8 @@
  Pass = 20,
  /**已拒签 */
  Refuse = 30,
  /**已终止 */
  Stop = 50,
}
/** 任务验收状态 */
src/constants/enterpriseEmployee.ts
@@ -6,10 +6,16 @@
  [EnumTaskUserHireStatus.Refuse]: '已谢绝',
};
export const EnumTaskUserSignContractStatusTextForFilter = {
  [EnumTaskUserSignContractStatus.Wait]: '待签约',
  [EnumTaskUserSignContractStatus.Pass]: '已签约',
  [EnumTaskUserSignContractStatus.Stop]: '已解约',
};
export const EnumTaskUserSignContractStatusText = {
  [EnumTaskUserSignContractStatus.Wait]: '待签约',
  [EnumTaskUserSignContractStatus.Pass]: '已签约',
  [EnumTaskUserSignContractStatus.Refuse]: '已谢绝',
  [EnumTaskUserSignContractStatus.Refuse]: '已拒签',
  [EnumTaskUserSignContractStatus.Stop]: '已解约',
};
export const ImportEnterpriseEmployeesTempPath = `${TempFolderPath}/%E7%81%B5%E5%B7%A5%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF.xlsx`;
src/hooks/index.ts
@@ -8,3 +8,4 @@
export * from './help';
export * from './menu';
export * from './dic';
export * from './sign';
src/hooks/sign.ts
New file
@@ -0,0 +1,22 @@
import { useQuery, useQueryClient } from '@tanstack/vue-query';
import * as electronSignServices from '@/services/api/electronSign';
export function useEnterpriseContractTemplateSelect() {
  const queryClient = useQueryClient();
  const { data: enterpriseContractTemplateSelect } = useQuery({
    queryKey: ['electronSignServices/getEnterpriseContractTemplateSelect'],
    queryFn: () => {
      return electronSignServices.getEnterpriseContractTemplateSelect(
        {},
        {
          showLoading: false,
        }
      );
    },
    placeholderData: () =>
      [] as API.SelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption[],
  });
  return { enterpriseContractTemplateSelect };
}
src/services/api/electronSign.ts
@@ -2,6 +2,36 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 校验合同模是否可用 POST /api/user/electronSign/checkContractTemplate */
export async function checkContractTemplate(
  body: API.CheckContractTemplateCommand,
  options?: API.RequestConfig
) {
  return request<boolean>('/api/user/electronSign/checkContractTemplate', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 校验电子签通道是否启用 POST /api/user/electronSign/checkElectronSignAccessEnableds */
export async function checkElectronSignAccessEnableds(
  body: API.CheckElectronSignAccessEnabledsCommand,
  options?: API.RequestConfig
) {
  return request<boolean>('/api/user/electronSign/checkElectronSignAccessEnableds', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 电子签回传 POST /api/user/electronSign/electronSignCallback */
export async function electronSignCallback(
  body: API.ElectronSignCallbackCommand,
@@ -50,6 +80,24 @@
  );
}
/** 查询已启用的电子签配置 GET /api/user/electronSign/getEnabledElectronSignSettings */
export async function getEnabledElectronSignSettings(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetEnabledElectronSignSettingsParams,
  options?: API.RequestConfig
) {
  return request<API.GetEnabledElectronSignSettingsQueryResultItem[]>(
    '/api/user/electronSign/getEnabledElectronSignSettings',
    {
      method: 'GET',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
}
/** 查询企业合同模板日志分页列表数据 POST /api/user/electronSign/getEnterpriseContractTemplateLogs */
export async function getEnterpriseContractTemplateLogs(
  body: API.GetEnterpriseContractTemplateLogsQuery,
@@ -81,6 +129,26 @@
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 查询企业合同模板选择器数据 GET /api/user/electronSign/getEnterpriseContractTemplateSelect */
export async function getEnterpriseContractTemplateSelect(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetEnterpriseContractTemplateSelectParams,
  options?: API.RequestConfig
) {
  return request<API.SelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption[]>(
    '/api/user/electronSign/getEnterpriseContractTemplateSelect',
    {
      method: 'GET',
      params: {
        ...params,
        request: undefined,
        ...params['request'],
      },
      ...(options || {}),
    }
  );
@@ -195,3 +263,18 @@
    ...(options || {}),
  });
}
/** 同步电子签配置 POST /api/user/electronSign/syncElectronSignSettings */
export async function syncElectronSignSettings(
  body: API.SyncElectronSignSettingsCommand,
  options?: API.RequestConfig
) {
  return request<boolean>('/api/user/electronSign/syncElectronSignSettings', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
src/services/api/enterprise.ts
@@ -80,6 +80,21 @@
  });
}
/** 保存企业费用 POST /api/user/enterprise/saveEnterpriseCost */
export async function saveEnterpriseCost(
  body: API.SaveEnterpriseCostCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/enterprise/saveEnterpriseCost', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 设置企业电子签配置 PUT /api/user/enterprise/setEnterpriseElectronSignSetting */
export async function setEnterpriseElectronSignSetting(
  body: API.SetEnterpriseElectronSignSettingCommand,
src/services/api/enterpriseEmployee.ts
@@ -17,6 +17,24 @@
  });
}
/** 企业用户签约 POST /api/user/enterpriseEmployee/enterpriseUserElectronSign */
export async function enterpriseUserElectronSign(
  body: API.EnterpriseUserElectronSignCommand,
  options?: API.RequestConfig
) {
  return request<API.EnterpriseUserElectronSignCommandResult>(
    '/api/user/enterpriseEmployee/enterpriseUserElectronSign',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 查询灵工详情 GET /api/user/enterpriseEmployee/getEnterpriseEmployee */
export async function getEnterpriseEmployee(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
@@ -53,6 +71,42 @@
  );
}
/** 查询个人用户签约详情 GET /api/user/enterpriseEmployee/getPersonalUserElectronSign */
export async function getPersonalUserElectronSign(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetPersonalUserElectronSignParams,
  options?: API.RequestConfig
) {
  return request<API.GetPersonalUserElectronSignQueryResult>(
    '/api/user/enterpriseEmployee/getPersonalUserElectronSign',
    {
      method: 'GET',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
}
/** 查询个人用户签约列表 POST /api/user/enterpriseEmployee/getPersonalUserElectronSigns */
export async function getPersonalUserElectronSigns(
  body: API.GetPersonalUserElectronSignsQuery,
  options?: API.RequestConfig
) {
  return request<API.GetPersonalUserElectronSignsQueryResult>(
    '/api/user/enterpriseEmployee/getPersonalUserElectronSigns',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 导入灵工信息 POST /api/user/enterpriseEmployee/importEnterpriseEmployees */
export async function importEnterpriseEmployees(
  body: API.ImportEnterpriseEmployeesCommand,
@@ -70,3 +124,51 @@
    }
  );
}
/** 邀请灵工签约 POST /api/user/enterpriseEmployee/inviteElectronSign */
export async function inviteElectronSign(
  body: API.InviteElectronSignCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/user/enterpriseEmployee/inviteElectronSign', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 个人用户签约 POST /api/user/enterpriseEmployee/personalUserElectronSign */
export async function personalUserElectronSign(
  body: API.PersonalUserElectronSignCommand,
  options?: API.RequestConfig
) {
  return request<API.PersonalUserElectronSignCommandResult>(
    '/api/user/enterpriseEmployee/personalUserElectronSign',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 灵工解约 POST /api/user/enterpriseEmployee/stopElectronSign */
export async function stopElectronSign(
  body: API.StopElectronSignCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/user/enterpriseEmployee/stopElectronSign', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
src/services/api/enterpriseWallet.ts
New file
@@ -0,0 +1,18 @@
/* eslint-disable */
// @ts-ignore
import { request } from '@/utils/request';
/** 支付宝用户授权协议签约通知 POST /api/user/enterpriseWallet/alipayUserAgreementPageSignNotify */
export async function alipayUserAgreementPageSignNotify(
  body: API.AlipayUserAgreementPageSignNotifyQuery,
  options?: API.RequestConfig
) {
  return request<boolean>('/api/user/enterpriseWallet/alipayUserAgreementPageSignNotify', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
src/services/api/index.ts
@@ -5,34 +5,36 @@
import * as enterpriseEmployee from './enterpriseEmployee';
import * as user from './user';
import * as role from './role';
import * as ocrUtils from './ocrUtils';
import * as enterprise from './enterprise';
import * as electronSign from './electronSign';
import * as resource from './resource';
import * as task from './task';
import * as dictionary from './dictionary';
import * as electronSign from './electronSign';
import * as userResume from './userResume';
import * as auth from './auth';
import * as taskCheckReceive from './taskCheckReceive';
import * as taskUser from './taskUser';
import * as ocrUtils from './ocrUtils';
import * as menu from './menu';
import * as logRecords from './logRecords';
import * as enterpriseWallet from './enterpriseWallet';
import * as fileUtils from './fileUtils';
export default {
  enterpriseEmployee,
  user,
  role,
  ocrUtils,
  enterprise,
  electronSign,
  resource,
  task,
  dictionary,
  electronSign,
  userResume,
  auth,
  taskCheckReceive,
  taskUser,
  ocrUtils,
  menu,
  logRecords,
  enterpriseWallet,
  fileUtils,
};
src/services/api/typings.d.ts
@@ -3,6 +3,35 @@
    [key: string]: any;
  }
  interface AlipayUserAgreementPageSignNotifyQuery {
    /** 协议产品码,商户和支付宝签约时确定,不同业务场景对应不同的签约产品码。 */
    personal_product_code?: string;
    /** 当前签约的协议场景。 */
    sign_scene?: string;
    /** NORMAL    协议当前状态 1. TEMP:暂存,协议未生效过; 2. NORMAL:正常; 3. STOP:暂停 */
    status?: string;
    /** 用户签约的支付宝账号对应的支付宝唯一用户号。 以2088开头的16位纯数字组成。 */
    alipay_user_id?: string;
    /** 支付宝系统中用以唯一标识用户签约记录的编号。 */
    agreement_no?: string;
    /** 支付宝代扣协议的实际签约时间,格式为yyyy-MM-dd HH:mm:ss。 */
    sign_time?: string;
    /** 用户在商户网站的登录账号,如果商户接口中未传,则不会返回 */
    external_logon_id?: string;
    /** 支付宝分配给开发者的应用Id */
    app_id?: string;
    /** 支付宝分配给商户的应用Id */
    auth_app_id?: string;
    /** 代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)。 */
    external_agreement_no?: string;
    /** 用户代扣协议的实际生效时间,格式为yyyy-MM-dd HH:mm:ss。 */
    valid_time?: string;
    /** 返回脱敏的支付宝账号。 */
    alipay_logon_id?: string;
    /** 用户签约成功通知类型 */
    notify_type?: string;
  }
  interface APIcheckHealthParams {
    /** 健康校验 */
    request?: CheckHealthQuery;
@@ -66,6 +95,16 @@
    withChildren?: boolean;
  }
  interface APIgetEnabledElectronSignSettingsParams {
    /** 企业Id */
    enterpriseId?: string;
  }
  interface APIgetEnterpriseContractTemplateSelectParams {
    /** 查询企业合同模板选择器数据 */
    request?: GetEnterpriseContractTemplateSelectQuery;
  }
  interface APIgetEnterpriseElectronSignSettingParams {
    /** Id */
    id?: string;
@@ -117,6 +156,13 @@
  interface APIgetPersonalLoginInfoParams {
    /** 查询个人用户登录信息 */
    request?: GetPersonalLoginInfoQuery;
  }
  interface APIgetPersonalUserElectronSignParams {
    /** 灵工Id */
    id?: string;
    /** 合同模板业务编码 */
    code?: string;
  }
  interface APIgetPersonalUserRealResultParams {
@@ -278,6 +324,16 @@
    verifyCode: string;
  }
  interface CheckContractTemplateCommand {
    /** 合同模板Id */
    id?: string;
  }
  interface CheckElectronSignAccessEnabledsCommand {
    /** 通道 */
    accesses?: EnumElectronSignAccess[];
  }
  type CheckHealthQuery = Record<string, any>;
  interface CheckReceiveTaskCommand {
@@ -362,6 +418,18 @@
    data?: any;
  }
  interface EnterpriseUserElectronSignCommand {
    /** 灵工Id */
    id?: string;
  }
  interface EnterpriseUserElectronSignCommandResult {
    /** 签署合同短链接 */
    signContractShortUrl?: string;
    /** 签署合同长链接 */
    signContractLongUrl?: string;
  }
  enum EnumBillingMethod {
    /**按月 */
    Month = 10,
@@ -422,6 +490,20 @@
    BestSign = 10,
    /**支付宝信任签 */
    AlipaySign = 20,
  }
  enum EnumEnterpriseCostStatus {
    /**扣费成功 */
    Success = 10,
    /**扣费失败 */
    Fail = 20,
  }
  enum EnumEnterpriseCostType {
    /**短信 */
    SMS = 10,
    /**电子签 */
    ElectronSign = 20,
  }
  enum EnumEnterpriseRealMethod {
@@ -552,10 +634,12 @@
    UserServerUserResume = 13,
    /**企业信息 */
    UserServerEnterprise = 14,
    /**企业钱包 */
    UserServerEnterpriseWallet = 15,
    /**灵工信息 */
    UserServerEnterpriseEmployee = 15,
    UserServerEnterpriseEmployee = 16,
    /**电子签 */
    ElectronSignServerElectronSign = 16,
    ElectronSignServerElectronSign = 17,
  }
  enum EnumResourceMethod {
@@ -660,6 +744,8 @@
    Pass = 20,
    /**已拒签 */
    Refuse = 30,
    /**已终止 */
    Stop = 50,
  }
  enum EnumTaskUserSubmitCheckReceiveStatus {
@@ -719,6 +805,24 @@
    errorCode?: string;
    /** 数据 */
    data?: boolean;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultEnterpriseUserElectronSignCommandResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: EnterpriseUserElectronSignCommandResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -1197,6 +1301,42 @@
    timestamp?: number;
  }
  interface FriendlyResultGetPersonalUserElectronSignQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetPersonalUserElectronSignQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetPersonalUserElectronSignsQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetPersonalUserElectronSignsQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetPersonalUserInfoSignContractsQueryResult {
    /** 跟踪Id */
    traceId?: string;
@@ -1596,6 +1736,25 @@
    timestamp?: number;
  }
  interface FriendlyResultListGetEnabledElectronSignSettingsQueryResultItem {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    /** 数据 */
    data?: GetEnabledElectronSignSettingsQueryResultItem[];
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultListGetMenusQueryResultItem {
    /** 跟踪Id */
    traceId?: string;
@@ -1729,6 +1888,25 @@
    timestamp?: number;
  }
  interface FriendlyResultListSelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    /** 数据 */
    data?: SelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption[];
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultListSelectOptionStringGetDictionaryDataSelectQueryResultOption {
    /** 跟踪Id */
    traceId?: string;
@@ -1846,6 +2024,24 @@
    /** 错误码 */
    errorCode?: string;
    data?: PagedListQueryResultGetRolesQueryResultItem;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultPersonalUserElectronSignCommandResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: PersonalUserElectronSignCommandResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -2077,6 +2273,8 @@
    /** 提交Id */
    id?: string;
    enterpriseEmployeeUser?: GetCheckReceiveTaskUserSubmitsQueryResultObjectDataEnterpriseEmployeeUser;
    /** 验收时间 */
    date?: string;
    /** 提交时间 */
    createdTime?: string;
    /** 验收照片 */
@@ -2101,6 +2299,8 @@
  interface GetCheckReceiveTaskUserSubmitsQueryResultItem {
    /** 提交Id */
    id?: string;
    /** 验收时间 */
    date?: string;
    /** 提交时间 */
    createdTime?: string;
    /** 验收照片 */
@@ -2197,6 +2397,10 @@
    templateId?: string;
    /** 变量 */
    values?: GetContractTemplateQueryResultValue[];
    /** 创建操作人 */
    createdUserId?: string;
    /** 是否企业用户创建 */
    isEnterpriseUserCreated?: boolean;
  }
  interface GetContractTemplateQueryResultValue {
@@ -2209,6 +2413,8 @@
    label?: string;
    /** 变量代码 */
    name?: string;
    /** 绑定字段 */
    bindProperty?: string;
    /** 是否必填 */
    required?: boolean;
  }
@@ -2358,6 +2564,16 @@
    isDisabled?: boolean;
  }
  interface GetEnabledElectronSignSettingsQueryResultItem {
    access?: EnumElectronSignAccess;
    /** 实名费用 */
    realVerifyCost?: number;
    /** 签约费用 */
    signCost?: number;
    /** 一口价 */
    mergeSignCost?: number;
  }
  interface GetEnterpriseContractTemplateLogsQuery {
    /** 模板Id */
    id?: string;
@@ -2380,6 +2596,17 @@
    operate?: EnumDbAuditOperate;
    /** 操作内容 */
    content?: string[];
  }
  type GetEnterpriseContractTemplateSelectQuery = Record<string, any>;
  interface GetEnterpriseContractTemplateSelectQueryOption {
    /** Id */
    id?: string;
    /** 模板名称 */
    name?: string;
    /** 模板Id */
    templateId?: string;
  }
  interface GetEnterpriseContractTemplatesQuery {
@@ -2431,13 +2658,8 @@
  interface GetEnterpriseElectronSignSettingQueryResult {
    /** Id */
    id?: string;
    realAccess?: EnumRealAccess;
    /** 实名费用 */
    realVerifyCost?: number;
    /** 签约费用 */
    signCost?: number;
    /** 一口价 */
    mergeSignCost?: number;
    /** 电子签通道 */
    electronSignAccesses?: EnumElectronSignAccess[];
  }
  interface GetEnterpriseEmployeeQueryResult {
@@ -2466,6 +2688,7 @@
    enterpriseSignContractTime?: string;
    /** 电子合同 */
    contractUrl?: string;
    userSignContractStatus?: EnumTaskUserSignContractStatus;
  }
  interface GetEnterpriseEmployeesQuery {
@@ -2535,6 +2758,8 @@
    enterpriseSignContractStatus?: EnumTaskUserSignContractStatus;
    /** 企业签约时间 */
    enterpriseSignContractTime?: string;
    /** 电子合同 */
    contractUrl?: string;
  }
  type GetEnterpriseLoginInfoQuery = Record<string, any>;
@@ -3034,6 +3259,50 @@
    hireRefuseTaskCount?: number;
  }
  interface GetPersonalUserElectronSignQueryResult {
    /** 合同编号 */
    contractCode?: string;
    contractTemplateAccess?: EnumElectronSignAccess;
    userSignContractStatus?: EnumTaskUserSignContractStatus;
    /** 签约方信息-员工-姓名 */
    name?: string;
    /** 签约方信息-员工-证件类型 */
    identityType?: string;
    /** 签约方信息-员工-证件号码 */
    identity?: string;
    /** 签约方信息-员工-手机号 */
    contactPhoneNumber?: string;
    /** 签约方信息-员工-签约时间 */
    userSignContractTime?: string;
    /** 签约方信息-公司主体-主体类型 */
    enterpriseType?: string;
    /** 签约方信息-公司主体-签约主体 */
    enterpriseName?: string;
    /** 签约方信息-公司主体-签约时间 */
    enterpriseSignContractTime?: string;
    /** 协议内容 */
    contractUrl?: string;
  }
  interface GetPersonalUserElectronSignsQuery {
    userSignContractStatus?: EnumTaskUserSignContractStatus;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetPersonalUserElectronSignsQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** 数据 */
    data?: GetPersonalUserElectronSignsQueryResultItem[];
  }
  interface GetPersonalUserElectronSignsQueryResultItem {
    /** 灵工Id */
    id?: string;
    /** 企业全称 */
    enterpriseName?: string;
    userSignContractStatus?: EnumTaskUserSignContractStatus;
  }
  interface GetPersonalUserInfoSignContractsQuery {
    /** 用户Id */
    id?: string;
@@ -3395,6 +3664,8 @@
    status?: EnumTaskStatus;
    releaseStatus?: EnumTaskReleaseStatus;
    hireStatus?: EnumTaskUserHireStatus;
    /** 灵工Id */
    enterpriseEmployeeId?: string;
    applyButton?: GetTaskInfoQueryResultApplyButton;
    hireButton?: GetTaskInfoQueryResultHireButton;
  }
@@ -3891,6 +4162,13 @@
    identity?: string;
  }
  interface InviteElectronSignCommand {
    /** 灵工Id */
    ids?: string[];
    /** 合同模板Id */
    contractTemplateId?: string;
  }
  interface LoginCommandCallback {
    /** 用户Id */
    id?: string;
@@ -3971,6 +4249,18 @@
    clientType?: EnumClientType;
  }
  interface PersonalUserElectronSignCommand {
    /** 灵工Id */
    id?: string;
  }
  interface PersonalUserElectronSignCommandResult {
    /** 签署合同短链接 */
    signContractShortUrl?: string;
    /** 签署合同长链接 */
    signContractLongUrl?: string;
  }
  interface PersonalUserFaceRealCommand {
    /** 姓名 */
    name: string;
@@ -4046,6 +4336,8 @@
    label?: string;
    /** 变量代码 */
    name?: string;
    /** 绑定字段 */
    bindProperty?: string;
    /** 是否必填 */
    required?: boolean;
  }
@@ -4121,6 +4413,17 @@
    password?: string;
    /** Id */
    id?: string;
  }
  interface SaveEnterpriseCostCommand {
    /** 企业Id */
    enterpriseId?: string;
    type?: EnumEnterpriseCostType;
    /** 合同模板Id */
    contractTemplateId?: string;
    /** 灵工合同Id */
    enterpriseEmployeeContractId?: string;
    status?: EnumEnterpriseCostStatus;
  }
  interface SaveMenuButtonCommand {
@@ -4369,6 +4672,14 @@
    data?: GetDictionaryCategorySelectQueryOption;
  }
  interface SelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption {
    /** 值 */
    value?: string;
    /** 标签 */
    label?: string;
    data?: GetEnterpriseContractTemplateSelectQueryOption;
  }
  interface SelectOptionStringGetDictionaryDataSelectQueryResultOption {
    /** 值 */
    value?: string;
@@ -4400,13 +4711,8 @@
  interface SetEnterpriseElectronSignSettingCommand {
    /** Id */
    id?: string;
    realAccess?: EnumRealAccess;
    /** 实名费用 */
    realVerifyCost?: number;
    /** 签约费用 */
    signCost?: number;
    /** 一口价 */
    mergeSignCost?: number;
    /** 电子签通道 */
    electronSignAccesses?: EnumElectronSignAccess[];
  }
  interface SetEnterpriseSmsSettingCommand {
@@ -4492,6 +4798,11 @@
    clientType?: EnumClientType;
  }
  interface StopElectronSignCommand {
    /** 灵工Id */
    ids?: string[];
  }
  interface SubmitCheckReceiveTaskCommand {
    /** 任务Id */
    taskInfoId?: string;
@@ -4499,6 +4810,23 @@
    date?: string;
    /** 附件 */
    files?: string[];
  }
  interface SyncElectronSignSettingsCommand {
    /** 项 */
    items?: SyncElectronSignSettingsCommandItem[];
  }
  interface SyncElectronSignSettingsCommandItem {
    access?: EnumElectronSignAccess;
    /** 是否禁用 */
    isDisabled?: boolean;
    /** 实名费用 */
    realVerifyCost?: number;
    /** 签约费用 */
    signCost?: number;
    /** 一口价 */
    mergeSignCost?: number;
  }
  interface SyncEnterpriseUserCommand {
@@ -4549,13 +4877,9 @@
    bankCard?: string;
    /** 是否已校验银行账户 */
    isCheckedBankCard?: boolean;
    /** 电子签通道 */
    electronSignAccesses?: EnumElectronSignAccess[];
    realAccess?: EnumRealAccess;
    /** 实名费用 */
    realVerifyCost?: number;
    /** 签约费用 */
    signCost?: number;
    /** 一口价 */
    mergeSignCost?: number;
    /** 是否实名 */
    isReal?: boolean;
    enterpriseAuth?: SyncEnterpriseUserCommandEnterpriseAuth;
@@ -4564,6 +4888,10 @@
  interface SyncEnterpriseUserCommandEnterpriseAuth {
    enterpriseRealMethod?: EnumEnterpriseRealMethod;
    personalRealMethod?: EnumPersonalRealMethod;
    /** 法人姓名 */
    legalPerson?: string;
    /** 法人身份证号 */
    legalIdentity?: string;
    /** 法人或经办人姓名 */
    name?: string;
    /** 法人或经办人身份证号 */
@@ -4582,6 +4910,8 @@
    proxy?: boolean;
    /** 企业授权书 */
    proxyPowerAttorneyUrl?: string;
    /** 第三方实名通道账号 */
    certAccount?: string;
  }
  type SyncHumanResourcesAreaDictionaryDataCommand = Record<string, any>;
src/store/modules/user.ts
@@ -62,14 +62,13 @@
      let res = await authServices.passwordLogin(
        {
          ...params,
          password: (params.password),
          password: params.password,
          // password: md5Encrypt(params.password),
          type: AppLocalConfig.userType,
          clientType: AppLocalConfig.clientType,
        },
        {
          showLoading: false,
          skipErrorHandler: true,
        }
      );
      if (res) {
src/views/EmploymentManage/components/CheckManageDialog.vue
@@ -47,21 +47,26 @@
const columns = defineColumns([
  {
    id: '1',
    enCode: 'date',
    name: '任务日期',
  },
  {
    id: '2',
    enCode: 'createdTime',
    name: '提交时间',
  },
  {
    id: '2',
    id: '3',
    enCode: 'files',
    name: '验收照片',
  },
  {
    id: '3',
    id: '4',
    enCode: 'checkReceiveStatus',
    name: '验收状态',
  },
  {
    id: '4',
    id: '5',
    enCode: 'checkReceiveTime',
    name: '验收时间',
  },
@@ -156,6 +161,7 @@
    columnsRenderProps: {
      createdTime: { type: 'date' },
      checkReceiveTime: { type: 'date' },
      date: { type: 'date' },
      checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskUserSubmitCheckReceiveStatusText },
      files: {
        type: 'url',
src/views/FlexJobManage/FlexJobManage.vue
@@ -104,6 +104,7 @@
      @onDownloadTemplate="handleDownloadTemplate"
    />
    <SendShotMessageDialog v-bind="dialogShotMessageProps" />
    <SignDialog v-bind="dialogSignProps" />
  </LoadingLayout>
</template>
@@ -132,11 +133,12 @@
import StaffInfoDialog from './components/StaffInfoDialog.vue';
import BatchImportDialog from './components/BatchImportDialog.vue';
import SendShotMessageDialog from './components/SendShotMessageDialog.vue';
import SignDialog from './components/SignDialog.vue';
import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee';
import { ModelValueType } from 'element-plus';
defineOptions({
  name: 'EnterpriseManageList',
  name: 'FlexJobManageList',
});
const operationBtns = defineOperationBtns([
@@ -160,17 +162,33 @@
  },
  {
    data: {
      enCode: 'signBtn',
      name: '签约',
      enCode: 'enterpriseSignBtn',
      name: '企业签约',
    },
    emits: {
      onClick: (role) => handleSign(role),
      onClick: (role) => handleEnterpriseSign(role),
    },
    extraProps: {
      hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
        !(
          row.userSignContractStatus === EnumTaskUserSignContractStatus.Pass &&
          row.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Wait
        ),
    },
  },
  {
    data: {
      enCode: 'inviteSignBtn',
      name: '邀请签约',
    },
    emits: {
      onClick: (role) => handleInviteSign(role),
    },
    extraProps: {
      hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
        !(
          row.userSignContractStatus !== EnumTaskUserSignContractStatus.Pass &&
          row.hireStatus === EnumTaskUserHireStatus.Pass
        ),
    },
  },
@@ -190,16 +208,16 @@
        ),
    },
  },
  {
    data: {
      enCode: 'delBtn',
      name: '删除',
    },
    props: { type: 'danger' },
    emits: {
      onClick: (role) => handleDelete(role),
    },
  },
  // {
  //   data: {
  //     enCode: 'delBtn',
  //     name: '删除',
  //   },
  //   props: { type: 'danger' },
  //   emits: {
  //     onClick: (role) => handleDelete(role),
  //   },
  // },
]);
const router = useRouter();
@@ -417,17 +435,18 @@
async function handleSendShotMessage() {
  try {
    Message.warnMessage('功能开发中');
    // const selectionRows = getSelectionRows();
    // if (selectionRows) {
    //   if (selectionRows.some((x) => x.status === 10)) {
    //     await Message.tipMessage('勾选人员中包含已签约完成人员,确认要继续发送短信通知吗?');
    //   }
    //   handleShotMessageAdd({
    //     ids: selectionRows.map((x) => x.id),
    //     name: '人员签约通道短信',
    //   });
    // }
    const selectionRows = getSelectionRows();
    if (selectionRows) {
      if (
        selectionRows.some((x) => x.userSignContractStatus === EnumTaskUserSignContractStatus.Pass)
      ) {
        await Message.tipMessage('勾选人员中包含已签约完成人员,确认要继续发送短信通知吗?');
      }
      handleShotMessageAdd({
        ids: selectionRows.map((x) => x.id),
        name: '人员签约通道短信',
      });
    }
  } catch (error) {}
}
@@ -440,22 +459,91 @@
  downloadFileByUrl(ImportEnterpriseEmployeesTempPath, '批量导入模板');
}
function handleBatchUnSign() {
const {
  dialogProps: dialogSignProps,
  handleAdd: handleSignAdd,
  handleEdit: handleSignEdit,
  editForm: signEditForm,
} = useFormDialog({
  onConfirm: signContract,
  defaultFormParams: {
    ids: [] as string[],
    contractTemplateId: '',
  },
});
function handleInviteSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
  if (row) {
    handleSignEdit({
      ids: [row.id],
      contractTemplateId: '',
    });
  }
}
function handleBatchSign() {
  const selectionRows = getSelectionRows();
  if (selectionRows) {
    const hasSigned = selectionRows?.some(
      (x) =>
        x.userSignContractStatus === EnumTaskUserSignContractStatus.Pass ||
        x.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Pass ||
        x.hireStatus === EnumTaskUserHireStatus.Wait
    );
    if (hasSigned) {
      Message.warnMessage('勾选人员中包含已签约完成或未录用人员');
      return;
    }
    handleSignAdd({
      ids: selectionRows.map((x) => x.id),
      contractTemplateId: '',
    });
  }
}
async function signContract() {
  try {
    Message.warnMessage('功能开发中');
    let params: API.InviteElectronSignCommand = {
      ids: signEditForm.ids,
      contractTemplateId: signEditForm.contractTemplateId,
    };
    let res = await enterpriseEmployeeServices.inviteElectronSign(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
    }
  } catch (error) {}
}
function handleSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
  Message.warnMessage('功能开发中');
}
function handleBatchSign() {
  Message.warnMessage('功能开发中');
}
async function handleUnSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
async function handleEnterpriseSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
  try {
    Message.warnMessage('功能开发中');
    // await Message.tipMessage('确定解约用户?');
    let res = await enterpriseEmployeeServices.enterpriseUserElectronSign({ id: row.id });
    if (res) {
      window.open(res?.signContractLongUrl, '_blank');
    }
  } catch (error) {}
}
function handleUnSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
  stopElectronSign([row.id]);
}
function handleBatchUnSign() {
  try {
    const selectionRows = getSelectionRows();
    if (selectionRows) {
      stopElectronSign(selectionRows.map((x) => x.id));
    }
  } catch (error) {}
}
async function stopElectronSign(ids: string[]) {
  try {
    await Message.tipMessage('确定解约用户?');
    let res = await enterpriseEmployeeServices.stopElectronSign({ ids: ids });
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
    }
  } catch (error) {}
}
src/views/FlexJobManage/components/SignDialog.vue
New file
@@ -0,0 +1,72 @@
<template>
  <ProDialog title="签约" v-model="visible" @close="onDialogClose" destroy-on-close draggable>
    <ProForm :model="form" ref="dialogForm" label-width="100px">
      <ProFormItemV2
        label="请选择模板:"
        prop="contractTemplateId"
        :check-rules="[{ message: '请选择模板' }]"
      >
        <ProFormSelect
          v-model="form.contractTemplateId"
          :valueEnum="enterpriseContractTemplateSelect"
        >
        </ProFormSelect>
      </ProFormItemV2>
    </ProForm>
    <template #footer>
      <span class="dialog-footer">
        <el-button type="primary" @click="handleConfirm">提交</el-button>
        <el-button type="default" @click="emit('onCancel')">取消</el-button>
      </span>
    </template>
  </ProDialog>
</template>
<script setup lang="ts">
import {
  ProDialog,
  ProForm,
  ProFormItemV2,
  ProFormSelect,
  UploadUserFile,
} from '@bole-core/components';
import { FormInstance } from 'element-plus';
defineOptions({
  name: 'BatchImportDialog',
});
const { enterpriseContractTemplateSelect } = useEnterpriseContractTemplateSelect();
type Form = {
  title?: string;
  ids?: string[];
  contractTemplateId?: string;
};
const visible = defineModel({ type: Boolean });
const form = defineModel<Form>('form');
const emit = defineEmits<{
  (e: 'onConfirm'): void;
  (e: 'onCancel'): void;
}>();
const dialogForm = ref<FormInstance>();
function onDialogClose() {
  if (!dialogForm.value) return;
  dialogForm.value.resetFields();
}
function handleConfirm() {
  if (!dialogForm.value) return;
  dialogForm.value.validate((valid) => {
    if (valid) {
      emit('onConfirm');
    } else {
      return;
    }
  });
}
</script>