1个文件已添加
20个文件已修改
581 ■■■■ 已修改文件
.eslintrc-auto-import.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
auto-imports.d.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/apiEnum.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/fabric-editor/components/attributeTemplateParam.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/fabric-editor/components/systemTemplateDataParamSetting.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/fabric-editor/customObject/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/fabric-editor/hooks/context.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/fabric-editor/types.d.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/electronSign.ts 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/electronSign.ts 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/enterpriseEmployee.ts 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/index.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 232 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/DictionaryManage/DataDictionary.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/DictionaryManage/components/AddOrEditDictionaryDialog.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/EnterpriseManageList.vue 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/components/ConfigureDialog.vue 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ProtocolManage/EditTemplate.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
types/api.d.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.eslintrc-auto-import.json
@@ -221,6 +221,7 @@
    "useCssModule": true,
    "useCssVars": true,
    "useDictionaryDataSelect": true,
    "useEnabledElectronSignSettings": true,
    "useGetDictionaryCategorySelect": true,
    "useGlobalEventContext": true,
    "useGlobalEventProvide": true,
auto-imports.d.ts
@@ -222,6 +222,7 @@
  const toValue: typeof import('vue')['toValue']
  const triggerRef: typeof import('vue')['triggerRef']
  const unref: typeof import('vue')['unref']
  const useAA: typeof import('./src/hooks/electronSign')['useAA']
  const useAccess: typeof import('./src/hooks/useAccess')['useAccess']
  const useAllAreaList: typeof import('./src/hooks/dic')['useAllAreaList']
  const useAllRoleList: typeof import('./src/hooks/useUser')['useAllRoleList']
@@ -233,6 +234,7 @@
  const useCssModule: typeof import('vue')['useCssModule']
  const useCssVars: typeof import('vue')['useCssVars']
  const useDictionaryDataSelect: typeof import('./src/hooks/dic')['useDictionaryDataSelect']
  const useEnabledElectronSignSettings: typeof import('./src/hooks/electronSign')['useEnabledElectronSignSettings']
  const useGetDictionaryCategorySelect: typeof import('./src/hooks/dic')['useGetDictionaryCategorySelect']
  const useGlobalEventContext: typeof import('./src/hooks/useEvent')['useGlobalEventContext']
  const useGlobalEventProvide: typeof import('./src/hooks/useEvent')['useGlobalEventProvide']
@@ -511,6 +513,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 useEnabledElectronSignSettings: UnwrapRef<typeof import('./src/hooks/electronSign')['useEnabledElectronSignSettings']>
    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
@@ -331,6 +331,10 @@
  Pass = 20,
  /**已拒签 */
  Refuse = 30,
  /**生效中 */
  Effect = 40,
  /**已终止 */
  Stop = 50,
}
/** 任务验收状态 */
src/fabric-editor/components/attributeTemplateParam.vue
@@ -18,6 +18,14 @@
          disabled
        ></el-input>
      </el-form-item>
      <el-form-item :label="'数据绑定字段'" required>
        <el-input
          v-model="baseAttr.bindProperty"
          placeholder="请输入数据参数字段"
          @input="(value) => changeCommon('bindProperty', value)"
          disabled
        ></el-input>
      </el-form-item>
      <el-form-item :label="'合同模板变量类型'" required>
        <FieldSelect
          v-model="baseAttr.templateParamType"
@@ -26,6 +34,7 @@
          @change="(value) => changeCommon('templateParamType', value)"
        />
      </el-form-item>
      <el-form-item :label="'合同模板变量'" required>
        <FieldSelect
          v-model="baseAttr.recorder"
@@ -82,6 +91,7 @@
  userType: EnumUserType.Personal,
  label: '',
  name: '',
  bindProperty: '',
  required: true,
});
@@ -98,6 +108,7 @@
    baseAttr.label = activeObject.get('label');
    baseAttr.name = activeObject.get('name');
    baseAttr.required = activeObject.get('required');
    baseAttr.bindProperty = activeObject.get('bindProperty');
  }
};
src/fabric-editor/components/systemTemplateDataParamSetting.vue
@@ -70,6 +70,7 @@
    required: true,
    label: item.label,
    name: item.data?.field3,
    bindProperty: item.data?.field4,
    templateDataParamId: '',
    pageNum: templateEditState.currentImageIndex,
src/fabric-editor/customObject/index.ts
@@ -11,6 +11,7 @@
  'required',
  'templateDataParamId',
  'pageNum',
  'bindProperty',
];
export class TemplateParam extends fabric.IText {
src/fabric-editor/hooks/context.ts
@@ -184,6 +184,7 @@
              type: x.templateParamType,
              recorder: x.recorder,
              userType: x.userType,
              bindProperty: x.bindProperty,
            } as API.SaveContractTemplateValuesCommandItem)
        ),
        templateJsonData: JSON.stringify(templateEditState.jsonMap),
src/fabric-editor/types.d.ts
@@ -13,6 +13,8 @@
    name?: string;
    /** 是否必填 */
    required?: boolean;
    /** 绑定字段 */
    bindProperty?: string;
  }
}
src/hooks/electronSign.ts
New file
@@ -0,0 +1,43 @@
import { useQuery, useQueryClient } from '@tanstack/vue-query';
import * as electronSignServices from '@/services/api/electronSign';
type UseEnabledElectronSignSettingsOptions = {
  enterpriseId?: MaybeRef<string>;
};
export function useEnabledElectronSignSettings(
  options: UseEnabledElectronSignSettingsOptions = {}
) {
  const { enterpriseId } = options;
  const queryClient = useQueryClient();
  const { data } = useQuery({
    queryKey: ['electronSignServices/getEnabledElectronSignSettings', enterpriseId],
    queryFn: async () => {
      let res = await electronSignServices.getEnabledElectronSignSettings(
        { enterpriseId: unref(enterpriseId) },
        { showLoading: false }
      );
      return res;
    },
    select(data) {
      return data.map((x) => ({
        ...x,
        accessName: EnumElectronSignAccessText[x.access],
      }));
    },
    placeholderData: () => [] as API.GetEnabledElectronSignSettingsQueryResultItem[],
  });
  function invalidateQueries() {
    return queryClient.invalidateQueries({
      queryKey: ['electronSignServices/getEnabledElectronSignSettings', enterpriseId],
    });
  }
  return {
    enabledElectronSignSettings: data,
    invalidateQueries,
  };
}
src/hooks/index.ts
@@ -9,3 +9,4 @@
export * from './dic';
export * from './menu';
export * from './portraitTable';
export * from './electronSign';
src/services/api/electronSign.ts
@@ -2,6 +2,21 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 校验电子签通道是否启用 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 +65,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 +114,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 +248,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/enterpriseEmployee.ts
@@ -35,6 +35,42 @@
  );
}
/** 查询个人用户签约详情 GET /api/user/enterpriseEmployee/getEnterpriseEmployeeElectronSign */
export async function getEnterpriseEmployeeElectronSign(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetEnterpriseEmployeeElectronSignParams,
  options?: API.RequestConfig
) {
  return request<API.GetEnterpriseEmployeeElectronSignQueryResult>(
    '/api/user/enterpriseEmployee/getEnterpriseEmployeeElectronSign',
    {
      method: 'GET',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
}
/** 查询个人用户签约列表 POST /api/user/enterpriseEmployee/getEnterpriseEmployeeElectronSigns */
export async function getEnterpriseEmployeeElectronSigns(
  body: API.GetEnterpriseEmployeeElectronSignsQuery,
  options?: API.RequestConfig
) {
  return request<API.GetEnterpriseEmployeeElectronSignsQueryResult>(
    '/api/user/enterpriseEmployee/getEnterpriseEmployeeElectronSigns',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 查询灵工分页列表数据 POST /api/user/enterpriseEmployee/getEnterpriseEmployees */
export async function getEnterpriseEmployees(
  body: API.GetEnterpriseEmployeesQuery,
@@ -70,3 +106,18 @@
    }
  );
}
/** 邀请灵工签约 POST /api/user/enterpriseEmployee/inviteEnterpriseEmployeeElectronSign */
export async function inviteEnterpriseEmployeeElectronSign(
  body: API.InviteEnterpriseEmployeeElectronSignCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/enterpriseEmployee/inviteEnterpriseEmployeeElectronSign', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
src/services/api/index.ts
@@ -5,16 +5,16 @@
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 fileUtils from './fileUtils';
@@ -22,16 +22,16 @@
  enterpriseEmployee,
  user,
  role,
  ocrUtils,
  enterprise,
  electronSign,
  resource,
  task,
  dictionary,
  electronSign,
  userResume,
  auth,
  taskCheckReceive,
  taskUser,
  ocrUtils,
  menu,
  logRecords,
  fileUtils,
src/services/api/typings.d.ts
@@ -66,9 +66,26 @@
    withChildren?: boolean;
  }
  interface APIgetEnabledElectronSignSettingsParams {
    /** 企业Id */
    enterpriseId?: string;
  }
  interface APIgetEnterpriseContractTemplateSelectParams {
    /** 查询企业合同模板选择器数据 */
    request?: GetEnterpriseContractTemplateSelectQuery;
  }
  interface APIgetEnterpriseElectronSignSettingParams {
    /** Id */
    id?: string;
  }
  interface APIgetEnterpriseEmployeeElectronSignParams {
    /** 灵工Id */
    id?: string;
    /** 合同模板业务编码 */
    code?: string;
  }
  interface APIgetEnterpriseEmployeeParams {
@@ -276,6 +293,11 @@
    phoneNumber: string;
    /** 验证码 */
    verifyCode: string;
  }
  interface CheckElectronSignAccessEnabledsCommand {
    /** 通道 */
    accesses?: EnumElectronSignAccess[];
  }
  type CheckHealthQuery = Record<string, any>;
@@ -660,6 +682,10 @@
    Pass = 20,
    /**已拒签 */
    Refuse = 30,
    /**生效中 */
    Effect = 40,
    /**已终止 */
    Stop = 50,
  }
  enum EnumTaskUserSubmitCheckReceiveStatus {
@@ -935,6 +961,42 @@
    /** 错误码 */
    errorCode?: string;
    data?: GetEnterpriseElectronSignSettingQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetEnterpriseEmployeeElectronSignQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetEnterpriseEmployeeElectronSignQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetEnterpriseEmployeeElectronSignsQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetEnterpriseEmployeeElectronSignsQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -1596,6 +1658,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;
@@ -1719,6 +1800,25 @@
    errorCode?: string;
    /** 数据 */
    data?: SelectOptionGuidGetDictionaryCategorySelectQueryOption[];
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultListSelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    /** 数据 */
    data?: SelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption[];
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -2213,6 +2313,8 @@
    label?: string;
    /** 变量代码 */
    name?: string;
    /** 绑定字段 */
    bindProperty?: string;
    /** 是否必填 */
    required?: boolean;
  }
@@ -2362,6 +2464,16 @@
    isDisabled?: boolean;
  }
  interface GetEnabledElectronSignSettingsQueryResultItem {
    access?: EnumElectronSignAccess;
    /** 实名费用 */
    realVerifyCost?: number;
    /** 签约费用 */
    signCost?: number;
    /** 一口价 */
    mergeSignCost?: number;
  }
  interface GetEnterpriseContractTemplateLogsQuery {
    /** 模板Id */
    id?: string;
@@ -2384,6 +2496,17 @@
    operate?: EnumDbAuditOperate;
    /** 操作内容 */
    content?: string[];
  }
  type GetEnterpriseContractTemplateSelectQuery = Record<string, any>;
  interface GetEnterpriseContractTemplateSelectQueryOption {
    /** Id */
    id?: string;
    /** 模板名称 */
    name?: string;
    /** 模板Id */
    templateId?: string;
  }
  interface GetEnterpriseContractTemplatesQuery {
@@ -2435,13 +2558,49 @@
  interface GetEnterpriseElectronSignSettingQueryResult {
    /** Id */
    id?: string;
    realAccess?: EnumRealAccess;
    /** 实名费用 */
    realVerifyCost?: number;
    /** 签约费用 */
    signCost?: number;
    /** 一口价 */
    mergeSignCost?: number;
    /** 电子签通道 */
    electronSignAccesses?: EnumElectronSignAccess[];
  }
  interface GetEnterpriseEmployeeElectronSignQueryResult {
    /** 合同编号 */
    contractCode?: string;
    userSignContractStatus?: EnumTaskUserSignContractStatus;
    /** 签约方信息-员工-姓名 */
    name?: string;
    /** 签约方信息-员工-证件类型 */
    identityType?: string;
    /** 签约方信息-员工-证件号码 */
    identity?: string;
    /** 签约方信息-员工-签约时间 */
    userSignContractTime?: string;
    /** 签约方信息-公司主体-主体类型 */
    enterpriseType?: string;
    /** 签约方信息-公司主体-签约主体 */
    enterpriseName?: string;
    /** 签约方信息-公司主体-签约时间 */
    enterpriseSignContractTime?: string;
    /** 协议内容 */
    contractUrl?: string;
  }
  interface GetEnterpriseEmployeeElectronSignsQuery {
    userSignContractStatus?: EnumTaskUserSignContractStatus;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetEnterpriseEmployeeElectronSignsQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** 数据 */
    data?: GetEnterpriseEmployeeElectronSignsQueryResultItem[];
  }
  interface GetEnterpriseEmployeeElectronSignsQueryResultItem {
    /** 灵工Id */
    id?: string;
    /** 企业全称 */
    enterpriseName?: string;
    userSignContractStatus?: EnumTaskUserSignContractStatus;
  }
  interface GetEnterpriseEmployeeQueryResult {
@@ -3895,6 +4054,13 @@
    identity?: string;
  }
  interface InviteEnterpriseEmployeeElectronSignCommand {
    /** 灵工Id */
    id?: string;
    /** 合同模板Id */
    contractTemplateId?: string;
  }
  interface LoginCommandCallback {
    /** 用户Id */
    id?: string;
@@ -4050,6 +4216,8 @@
    label?: string;
    /** 变量代码 */
    name?: string;
    /** 绑定字段 */
    bindProperty?: string;
    /** 是否必填 */
    required?: boolean;
  }
@@ -4373,6 +4541,14 @@
    data?: GetDictionaryCategorySelectQueryOption;
  }
  interface SelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption {
    /** 值 */
    value?: string;
    /** 标签 */
    label?: string;
    data?: GetEnterpriseContractTemplateSelectQueryOption;
  }
  interface SelectOptionStringGetDictionaryDataSelectQueryResultOption {
    /** 值 */
    value?: string;
@@ -4404,13 +4580,8 @@
  interface SetEnterpriseElectronSignSettingCommand {
    /** Id */
    id?: string;
    realAccess?: EnumRealAccess;
    /** 实名费用 */
    realVerifyCost?: number;
    /** 签约费用 */
    signCost?: number;
    /** 一口价 */
    mergeSignCost?: number;
    /** 电子签通道 */
    electronSignAccesses?: EnumElectronSignAccess[];
  }
  interface SetEnterpriseSmsSettingCommand {
@@ -4505,6 +4676,23 @@
    files?: string[];
  }
  interface SyncElectronSignSettingsCommand {
    /** 项 */
    items?: SyncElectronSignSettingsCommandItem[];
  }
  interface SyncElectronSignSettingsCommandItem {
    access?: EnumElectronSignAccess;
    /** 是否禁用 */
    isDisabled?: boolean;
    /** 实名费用 */
    realVerifyCost?: number;
    /** 签约费用 */
    signCost?: number;
    /** 一口价 */
    mergeSignCost?: number;
  }
  interface SyncEnterpriseUserCommand {
    dataSource?: EnumDataSource;
    /** 数据来源Id */
@@ -4553,13 +4741,9 @@
    bankCard?: string;
    /** 是否已校验银行账户 */
    isCheckedBankCard?: boolean;
    /** 电子签通道 */
    electronSignAccesses?: EnumElectronSignAccess[];
    realAccess?: EnumRealAccess;
    /** 实名费用 */
    realVerifyCost?: number;
    /** 签约费用 */
    signCost?: number;
    /** 一口价 */
    mergeSignCost?: number;
    /** 是否实名 */
    isReal?: boolean;
    enterpriseAuth?: SyncEnterpriseUserCommandEnterpriseAuth;
@@ -4568,6 +4752,10 @@
  interface SyncEnterpriseUserCommandEnterpriseAuth {
    enterpriseRealMethod?: EnumEnterpriseRealMethod;
    personalRealMethod?: EnumPersonalRealMethod;
    /** 法人姓名 */
    legalPerson?: string;
    /** 法人身份证号 */
    legalIdentity?: string;
    /** 法人或经办人姓名 */
    name?: string;
    /** 法人或经办人身份证号 */
@@ -4586,8 +4774,8 @@
    proxy?: boolean;
    /** 企业授权书 */
    proxyPowerAttorneyUrl?: string;
    /** 实名Id */
    realId?: string;
    /** 第三方实名通道账号 */
    certAccount?: string;
  }
  type SyncHumanResourcesAreaDictionaryDataCommand = Record<string, any>;
src/views/DictionaryManage/DataDictionary.vue
@@ -160,6 +160,7 @@
      field1: row.field1,
      field3: row.field3,
      field2: convertApi2FormUrlOnlyOne(row.field2),
      field4: row.field4,
    });
  } else {
    handleAdd({
@@ -180,6 +181,7 @@
    field1: '',
    field2: [] as UploadUserFile[],
    field3: '',
    field4: '',
    title: '新增字典',
  },
  editTitle: '编辑字典',
src/views/DictionaryManage/components/AddOrEditDictionaryDialog.vue
@@ -39,14 +39,23 @@
      <ProFormItemV2 label="编号:" prop="code" :check-rules="[{ message: '请输入编号' }]">
        <ProFormText v-model.trim="form.code" :disabled="!!form.id"></ProFormText>
      </ProFormItemV2>
      <ProFormItemV2
        label="参数字段名:"
        prop="field3"
        :check-rules="[{ message: '请输入参数字段名' }]"
        v-if="category?.data?.code === CategoryCode.ElectronSignParam"
      >
        <ProFormText v-model.trim="form.field3"></ProFormText>
      </ProFormItemV2>
      <template v-if="category?.data?.code === CategoryCode.ElectronSignParam">
        <ProFormItemV2
          label="参数字段名:"
          prop="field3"
          :check-rules="[{ message: '请输入参数字段名' }]"
        >
          <ProFormText v-model.trim="form.field3" placeholder="请输入参数字段名"></ProFormText>
        </ProFormItemV2>
        <ProFormItemV2
          label="绑定字段名:"
          prop="field4"
          :check-rules="[{ message: '请输入绑定字段名' }]"
        >
          <ProFormText v-model.trim="form.field4" placeholder="请输入绑定字段名"></ProFormText>
        </ProFormItemV2>
      </template>
      <ProFormItemV2
        label="图片:"
        prop="field2"
@@ -105,6 +114,7 @@
  field1?: string;
  field2?: UploadUserFile[];
  field3?: string;
  field4?: string;
};
const form = defineModel<Form>('form');
src/views/EnterpriseManage/EnterpriseManageList.vue
@@ -91,6 +91,8 @@
const state = reactive({ ...BaseState });
const { invalidateQueries } = useEnabledElectronSignSettings();
onMounted(async () => {
  await getList();
  state.loading = false;
@@ -149,6 +151,12 @@
  } catch (error) {}
}
const EnumElectronSignAccessList = computed(() =>
  Object.values(EnumElectronSignAccess)
    .filter(Number)
    .map((x) => Number(x))
);
async function openDialog(row?: API.GetEnterprisesQueryResultItem) {
  if (row) {
    let electronSignSetting = await getEnterpriseElectronSignSetting(row.id);
@@ -156,19 +164,15 @@
    handleEdit({
      id: row.id,
      enterpriseConfigureType: EnterpriseConfigureType.Electronic,
      realAccess: electronSignSetting.realAccess,
      realVerifyCost: electronSignSetting.realVerifyCost,
      signCost: electronSignSetting.signCost,
      mergeSignCost: electronSignSetting.mergeSignCost,
      electronSignAccesses: EnumElectronSignAccessList.value.map((value) =>
        electronSignSetting.electronSignAccesses.includes(value) ? value : null
      ),
      smsAccess: smsSetting.smsAccess,
      chargeType: ChargeTypeEnum.Group,
      smsCost: smsSetting.smsCost,
    });
  } else {
    handleAdd({
      enterpriseConfigureType: EnterpriseConfigureType.Electronic,
      chargeType: ChargeTypeEnum.Group,
    });
  }
}
@@ -178,11 +182,7 @@
  defaultFormParams: {
    id: '',
    enterpriseConfigureType: EnterpriseConfigureType.Electronic,
    realAccess: '' as any as EnumRealAccess,
    realVerifyCost: 0,
    signCost: 0,
    mergeSignCost: 0,
    chargeType: ChargeTypeEnum.Group,
    electronSignAccesses: [] as EnumElectronSignAccess[],
    smsAccess: '' as any as EnumSmsAccess,
    smsCost: 0,
  },
@@ -221,16 +221,16 @@
//     return await flexEnterpriseServices.createOrEditFlexEnterpriseBankSetting(params);
//   } catch (error) {}
// }
async function createOrEditFlexEnterpriseSignSetting() {
  try {
    let params: API.SetEnterpriseElectronSignSettingCommand = {
      id: editForm.id,
      realAccess: editForm.realAccess,
      realVerifyCost: editForm.realVerifyCost,
      signCost: editForm.signCost,
      mergeSignCost: editForm.mergeSignCost,
      electronSignAccesses: editForm.electronSignAccesses.filter(Boolean),
    };
    return await enterpriseServices.setEnterpriseElectronSignSetting(params);
    let res = await enterpriseServices.setEnterpriseElectronSignSetting(params);
    invalidateQueries();
    return res;
  } catch (error) {}
}
async function createOrEditFlexEnterpriseMessageSetting() {
src/views/EnterpriseManage/components/ConfigureDialog.vue
@@ -1,6 +1,6 @@
<template>
  <ProDialog title="配置" v-model="visible" @close="onDialogClose" destroy-on-close draggable>
    <ProForm :model="form" ref="dialogForm" label-width="100px">
    <ProForm :model="form" ref="dialogForm" label-width="120px">
      <ProFormItemV2 label="" prop="enterpriseConfigureType" label-width="0">
        <ProFormRadio
          v-model="form.enterpriseConfigureType"
@@ -43,57 +43,18 @@
      <template v-if="form.enterpriseConfigureType === EnterpriseConfigureType.Electronic">
        <div class="configure-dialog-form-title">通道配置</div>
        <ProFormItemV2
          label="名称:"
          prop="realAccess"
          :checkRules="[{ message: '请选择电子签通道' }]"
          v-for="(item, index) in enabledElectronSignSettings"
          :label="item.accessName"
          :key="item.access"
          prop="electronSignAccesses"
          required
        >
          <ProFormSelect
            v-model="form.realAccess"
            :valueEnum="EnumRealAccessText"
            placeholder="请选择电子签通道"
          >
          </ProFormSelect>
          <ProFormSwitch
            v-model="form.electronSignAccesses[index]"
            :active-value="Number(item.access)"
            :inactive-value="null"
          ></ProFormSwitch>
        </ProFormItemV2>
        <div class="configure-dialog-form-title">费用配置</div>
        <ProFormItemV2
          label="计费方式:"
          prop="chargeType"
          :checkRules="[{ message: '请选择计费方式' }]"
        >
          <ProFormRadio
            :button-style="false"
            v-model="form.chargeType"
            :value-enum="ChargeTypeEnumText"
          />
        </ProFormItemV2>
        <template v-if="form.chargeType === ChargeTypeEnum.Group">
          <ProFormItemV2 label="实名费用:" prop="realVerifyCost">
            <ProFormInputNumber
              :controls="false"
              v-model="form.realVerifyCost"
              placeholder="请输入"
              unit="元/条"
            />
          </ProFormItemV2>
          <ProFormItemV2 label="签约费用:" prop="signCost">
            <ProFormInputNumber
              :controls="false"
              v-model="form.signCost"
              placeholder="请输入"
              unit="元/份"
            />
          </ProFormItemV2>
        </template>
        <template v-if="form.chargeType === ChargeTypeEnum.Merge">
          <ProFormItemV2 label="统一电子签:" prop="mergeSignCost">
            <ProFormInputNumber
              :controls="false"
              v-model="form.mergeSignCost"
              placeholder="请输入"
              unit="元/份"
            />
          </ProFormItemV2>
        </template>
      </template>
      <template v-if="form.enterpriseConfigureType === EnterpriseConfigureType.ShortMessage">
        <div class="configure-dialog-form-title">通道配置</div>
@@ -135,16 +96,16 @@
  ProFormRadio,
  ProFormInputNumber,
  ProFormSelect,
  ProFormSwitch,
} from '@bole-core/components';
import { BoleRegExp } from '@bole-core/core';
import {
  EnterpriseConfigureType,
  EnterpriseConfigureTypeText,
  ChargeTypeEnum,
  ChargeTypeEnumText,
  EnumRealAccessText,
  EnumElectronSignAccessText,
  EnumSmsAccessText,
  EnumRealAccess,
  EnumElectronSignAccess,
} from '@/constants';
defineOptions({
@@ -157,11 +118,7 @@
  // openBranchBank: string;
  // bankAccount: string;
  // verifyStatus: VerifyStatus;
  chargeType: ChargeTypeEnum;
  realAccess: EnumRealAccess;
  realVerifyCost: number;
  signCost: number;
  mergeSignCost: number;
  electronSignAccesses: EnumElectronSignAccess[];
  smsAccess: EnumSmsAccess;
  smsCost: number;
};
@@ -176,6 +133,8 @@
const dialogForm = ref<FormInstance>();
const { enabledElectronSignSettings } = useEnabledElectronSignSettings();
function handleCheckBankAccount() {}
function onDialogClose() {
src/views/ProtocolManage/EditTemplate.vue
@@ -197,6 +197,7 @@
    title: '新增模板',
    isEnterpriseUserCreated: false,
    templateEditData: '',
    enterpriseId: '',
  },
});
@@ -213,6 +214,7 @@
        access: row.access,
        isEnterpriseUserCreated: detail.isEnterpriseUserCreated,
        templateEditData: detail.templateEditData,
        enterpriseId: enterpriseId,
      });
    } else {
      handleAdd();
src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue
@@ -22,7 +22,9 @@
        <ProFormSelect
          placeholder="请选择电子签通道"
          v-model="form.access"
          :value-enum="EnumElectronSignAccessText"
          :value-enum="enabledElectronSignSettings"
          enum-value-key="access"
          enum-label-key="accessName"
        ></ProFormSelect>
      </ProFormItemV2>
      <ProFormItemV2 label="业务编码:" prop="code" :check-rules="[{ message: '请输入业务编码' }]">
@@ -37,7 +39,7 @@
        <ProFormText
          placeholder="请输入模板名称"
          v-model.trim="form.name"
          :maxlength="15"
          :maxlength="32"
          :disabled="form.isEnterpriseUserCreated"
        ></ProFormText>
      </ProFormItemV2>
@@ -91,6 +93,7 @@
  file: UploadUserFile[];
  access: EnumElectronSignAccess;
  isEnterpriseUserCreated: boolean;
  enterpriseId: string;
};
const form = defineModel<Form>('form');
@@ -100,6 +103,10 @@
  (e: 'onCancel'): void;
}>();
const { enabledElectronSignSettings } = useEnabledElectronSignSettings({
  enterpriseId: computed(() => form.value.enterpriseId),
});
const dialogForm = ref<FormInstance>();
function onDialogClose() {
types/api.d.ts
@@ -43,4 +43,8 @@
    quickQuery?: string
  }
  interface GetEnabledElectronSignSettingsQueryResultItem{
    accessName?: string;
  }
}