wupengfei
5 天以前 a50d68e2f407789cde52e87f5d5285456b0f5f46
feat: 签约
1个文件已添加
6个文件已修改
139 ■■■■ 已修改文件
src/constants/apiEnum.ts 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/enterpriseEmployee.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/enterpriseWallet.ts 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/index.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FlexJobManage/FlexJobManage.vue 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FlexJobManage/components/SignDialog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/apiEnum.ts
@@ -227,10 +227,12 @@
  UserServerUserResume = 13,
  /**企业信息 */
  UserServerEnterprise = 14,
  /**企业钱包 */
  UserServerEnterpriseWallet = 15,
  /**灵工信息 */
  UserServerEnterpriseEmployee = 15,
  UserServerEnterpriseEmployee = 16,
  /**电子签 */
  ElectronSignServerElectronSign = 16,
  ElectronSignServerElectronSign = 17,
}
/** 资源请求方式 */
src/services/api/enterpriseEmployee.ts
@@ -130,7 +130,7 @@
  body: API.InviteElectronSignCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/enterpriseEmployee/inviteElectronSign', {
  return request<number>('/api/user/enterpriseEmployee/inviteElectronSign', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
@@ -163,7 +163,7 @@
  body: API.StopElectronSignCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/enterpriseEmployee/stopElectronSign', {
  return request<number>('/api/user/enterpriseEmployee/stopElectronSign', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
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
@@ -17,6 +17,7 @@
import * as taskUser from './taskUser';
import * as menu from './menu';
import * as logRecords from './logRecords';
import * as enterpriseWallet from './enterpriseWallet';
import * as fileUtils from './fileUtils';
export default {
  enterpriseEmployee,
@@ -34,5 +35,6 @@
  taskUser,
  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;
@@ -605,10 +634,12 @@
    UserServerUserResume = 13,
    /**企业信息 */
    UserServerEnterprise = 14,
    /**企业钱包 */
    UserServerEnterpriseWallet = 15,
    /**灵工信息 */
    UserServerEnterpriseEmployee = 15,
    UserServerEnterpriseEmployee = 16,
    /**电子签 */
    ElectronSignServerElectronSign = 16,
    ElectronSignServerElectronSign = 17,
  }
  enum EnumResourceMethod {
@@ -2727,6 +2758,8 @@
    enterpriseSignContractStatus?: EnumTaskUserSignContractStatus;
    /** 企业签约时间 */
    enterpriseSignContractTime?: string;
    /** 电子合同 */
    contractUrl?: string;
  }
  type GetEnterpriseLoginInfoQuery = Record<string, any>;
@@ -3229,6 +3262,7 @@
  interface GetPersonalUserElectronSignQueryResult {
    /** 合同编号 */
    contractCode?: string;
    contractTemplateAccess?: EnumElectronSignAccess;
    userSignContractStatus?: EnumTaskUserSignContractStatus;
    /** 签约方信息-员工-姓名 */
    name?: string;
@@ -3236,6 +3270,8 @@
    identityType?: string;
    /** 签约方信息-员工-证件号码 */
    identity?: string;
    /** 签约方信息-员工-手机号 */
    contactPhoneNumber?: string;
    /** 签约方信息-员工-签约时间 */
    userSignContractTime?: string;
    /** 签约方信息-公司主体-主体类型 */
@@ -4128,7 +4164,7 @@
  interface InviteElectronSignCommand {
    /** 灵工Id */
    id?: string;
    ids?: string[];
    /** 合同模板Id */
    contractTemplateId?: string;
  }
@@ -4764,7 +4800,7 @@
  interface StopElectronSignCommand {
    /** 灵工Id */
    id?: string;
    ids?: string[];
  }
  interface SubmitCheckReceiveTaskCommand {
src/views/FlexJobManage/FlexJobManage.vue
@@ -187,8 +187,8 @@
    extraProps: {
      hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
        !(
          row.userSignContractStatus === EnumTaskUserSignContractStatus.Wait ||
          row.userSignContractStatus === EnumTaskUserSignContractStatus.Stop
          row.userSignContractStatus !== EnumTaskUserSignContractStatus.Pass &&
          row.hireStatus === EnumTaskUserHireStatus.Pass
        ),
    },
  },
@@ -208,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();
@@ -467,7 +467,7 @@
} = useFormDialog({
  onConfirm: signContract,
  defaultFormParams: {
    id: '',
    ids: [] as string[],
    contractTemplateId: '',
  },
});
@@ -475,14 +475,13 @@
function handleInviteSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
  if (row) {
    handleSignEdit({
      id: row.id,
      ids: [row.id],
      contractTemplateId: '',
    });
  }
}
function handleBatchSign() {
  const selectionRows = getSelectionRows();
  console.log('selectionRows: ', selectionRows);
  if (selectionRows) {
    const hasSigned = selectionRows?.some(
      (x) =>
@@ -494,14 +493,17 @@
      Message.warnMessage('勾选人员中包含已签约完成或未录用人员');
      return;
    }
    handleSignAdd();
    handleSignAdd({
      ids: selectionRows.map((x) => x.id),
      contractTemplateId: '',
    });
  }
}
async function signContract() {
  try {
    let params: API.InviteElectronSignCommand = {
      id: signEditForm.id,
      ids: signEditForm.ids,
      contractTemplateId: signEditForm.contractTemplateId,
    };
    let res = await enterpriseEmployeeServices.inviteElectronSign(params);
@@ -521,20 +523,27 @@
  } catch (error) {}
}
async function handleUnSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
  try {
    await Message.tipMessage('确定解约用户?');
    let res = await enterpriseEmployeeServices.stopElectronSign({ id: row.id });
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
    }
  } catch (error) {}
function handleUnSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
  stopElectronSign([row.id]);
}
function handleBatchUnSign() {
  try {
    Message.warnMessage('功能开发中');
    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
@@ -40,7 +40,7 @@
type Form = {
  title?: string;
  id?: string;
  ids?: string[];
  contractTemplateId?: string;
};