wupengfei
2025-03-21 ca8fc597599e8a85288b5d771957bb1bd712e8c7
feat: 接口对接
8个文件已修改
5个文件已添加
1016 ■■■■ 已修改文件
config/config.ts 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/enterprise.ts 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/FlexEnterpriseWoker.ts 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/User.ts 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/UserResume.ts 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/index.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 184 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/AddOrEditEnterprise.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/EnterpriseDetail.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/EnterpriseManageList.vue 203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/components/ConfigureDialog.vue 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config/config.ts
@@ -4,20 +4,20 @@
  /**
   * @description 网页title
   */
  title: '乐遇保云服务',
  title: '灵工平台',
  errorLog: 'production',
  loginFormTitle: '乐遇保云服务后台管理系统',
  loginFormTitle: '灵工平台后台管理系统',
});
type AppType = 'one' | 'rz' | 'jx';
const AppSettingMap = {
  one: {
    title: '乐遇保云服务',
    loginFormTitle: '乐遇保云服务',
    MenuTitle: '乐遇保云服务',
    title: '灵工平台',
    loginFormTitle: '灵工平台',
    MenuTitle: '灵工平台',
  },
  jx: {
    title: '江西保险理赔后台管理系统',
src/constants/enterprise.ts
New file
@@ -0,0 +1,136 @@
export enum EnterpriseConfigureType {
  /**
   * 银行信息配置
   */
  Bank = 1,
  /**
   * 电子签配置
   */
  Electronic = 2,
  /**
   * 短信通道配置
   */
  ShortMessage = 3,
}
export const EnterpriseConfigureTypeText = {
  [EnterpriseConfigureType.Bank]: '银行信息配置',
  [EnterpriseConfigureType.Electronic]: '电子签配置',
  [EnterpriseConfigureType.ShortMessage]: '短信通道配置',
};
export enum FlexEnterpriseSettingStatus {
  /**
   * 未配置
   */
  NotSetting = -10,
  /**
   * 已配置
   */
  IsSetting = 10,
}
export const FlexEnterpriseSettingStatusText = {
  [FlexEnterpriseSettingStatus.NotSetting]: '未配置',
  [FlexEnterpriseSettingStatus.IsSetting]: '已配置',
};
export enum FlexEnterpriseStatus {
  /**
   * 冻结
   */
  Frozen = -10,
  /**
   * 正常
   */
  Normal = 10,
}
export const FlexEnterpriseStatusText = {
  [FlexEnterpriseStatus.Frozen]: '冻结',
  [FlexEnterpriseStatus.Normal]: '正常',
};
export enum VerifyStatus {
  /**
   * 未验证
   */
  NotVerify = -10,
  /**
   * 已验证
   */
  Verify = 10,
}
export const VerifyStatusText = {
  [VerifyStatus.NotVerify]: '未验证',
  [VerifyStatus.Verify]: '已验证',
};
export const VerifyStatusColor = {
  [VerifyStatus.NotVerify]: 'danger',
  [VerifyStatus.Verify]: 'success',
};
export enum FlexEnterpriseCertificationStatus {
  /**
   * 未认证
   */
  NotCertification = -10,
  /**
   * 已认证
   */
  HasCertification = 10,
}
export const FlexEnterpriseCertificationStatusText = {
  [FlexEnterpriseCertificationStatus.NotCertification]: '未认证',
  [FlexEnterpriseCertificationStatus.HasCertification]: '已认证',
};
export enum MessageChannelEnum {
  /**
   * 阿里云
   */
  Alipay = 10,
  /**
   * 网易
   */
  NetEasy = 20,
}
export const MessageChannelEnumText = {
  [MessageChannelEnum.Alipay]: '阿里云',
  [MessageChannelEnum.NetEasy]: '网易',
};
export enum SignChannelEnum {
  /**
   * 上上签
   */
  BestSign = 10,
  /**
   * 支付宝电子签
   */
  Alipay = 20,
}
export const SignChannelEnumText = {
  [SignChannelEnum.BestSign]: '上上签',
  [SignChannelEnum.Alipay]: '支付宝电子签',
};
export enum ChargeTypeEnum {
  /**
   * 组合计费
   */
  Group = 1,
  /**
   * 一口价
   */
  Merge,
}
export const ChargeTypeEnumText = {
  [ChargeTypeEnum.Group]: '组合计费',
  [ChargeTypeEnum.Merge]: '一口价',
};
src/constants/index.ts
@@ -10,3 +10,4 @@
export * from './role';
export * from './app';
export * from './dic';
export * from './enterprise';
src/services/api/FlexEnterpriseWoker.ts
New file
@@ -0,0 +1,54 @@
/* eslint-disable */
// @ts-ignore
import { request } from '@/utils/request';
/** C端人员管理列表 POST /api/FlexEnterpriseWoker/GetUserClientList */
export async function getUserClientList(
  body: API.GetUserClientForBackInput,
  options?: API.RequestConfig
) {
  return request<API.GetUserClientForBackOutputPageOutput>(
    '/api/FlexEnterpriseWoker/GetUserClientList',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** C端人员管理--签约详情 POST /api/FlexEnterpriseWoker/GetUserClientSignList */
export async function getUserClientSignList(
  body: API.GetUserClientSignListInput,
  options?: API.RequestConfig
) {
  return request<API.UserClientSignListOutputPageOutput>(
    '/api/FlexEnterpriseWoker/GetUserClientSignList',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** C端人员管理--获取人员详情 GET /api/FlexEnterpriseWoker/GetUserDetailForBack */
export async function getUserDetailForBack(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetUserDetailForBackParams,
  options?: API.RequestConfig
) {
  return request<API.GetUserDetailForBackOutput>('/api/FlexEnterpriseWoker/GetUserDetailForBack', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
src/services/api/User.ts
New file
@@ -0,0 +1,11 @@
/* eslint-disable */
// @ts-ignore
import { request } from '@/utils/request';
/** 获取个人信息详情 GET /api/User/GetUserInfo */
export async function getUserInfo(options?: API.RequestConfig) {
  return request<API.UserDto>('/api/User/GetUserInfo', {
    method: 'GET',
    ...(options || {}),
  });
}
src/services/api/UserResume.ts
@@ -2,7 +2,15 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 此处后端没有提供注释 GET /api/UserResume/GetUserResume */
/** 根据用户获取期待的工作 GET /api/UserResume/GetResumeExpectationJob */
export async function getResumeExpectationJob(options?: API.RequestConfig) {
  return request<API.UserResumeExpectationJobOutput>('/api/UserResume/GetResumeExpectationJob', {
    method: 'GET',
    ...(options || {}),
  });
}
/** 根据用户获取简历 GET /api/UserResume/GetUserResume */
export async function getUserResume(options?: API.RequestConfig) {
  return request<API.MyResumeOutput>('/api/UserResume/GetUserResume', {
    method: 'GET',
@@ -10,7 +18,15 @@
  });
}
/** 此处后端没有提供注释 GET /api/UserResume/GetUserResumeCertificateDetailById */
/** 根据用户获取简历基础信息 GET /api/UserResume/GetUserResumeBaseInfo */
export async function getUserResumeBaseInfo(options?: API.RequestConfig) {
  return request<API.UserResumeBaseInfoOutput>('/api/UserResume/GetUserResumeBaseInfo', {
    method: 'GET',
    ...(options || {}),
  });
}
/** 根据认证id获取认证详情 GET /api/UserResume/GetUserResumeCertificateDetailById */
export async function getUserResumeCertificateDetailById(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetUserResumeCertificateDetailByIdParams,
@@ -28,7 +44,7 @@
  );
}
/** 此处后端没有提供注释 GET /api/UserResume/GetUserResumeCertificateList */
/** 根据用户ID获取用户认证信息 GET /api/UserResume/GetUserResumeCertificateList */
export async function getUserResumeCertificateList(options?: API.RequestConfig) {
  return request<API.UserResumeCertificateListOutput[]>(
    '/api/UserResume/GetUserResumeCertificateList',
@@ -39,7 +55,7 @@
  );
}
/** 此处后端没有提供注释 GET /api/UserResume/GetUserResumeDetailInfo */
/** 获取用户简历详情 GET /api/UserResume/GetUserResumeDetailInfo */
export async function getUserResumeDetailInfo(options?: API.RequestConfig) {
  return request<API.UserResumeDetailInfoOutput>('/api/UserResume/GetUserResumeDetailInfo', {
    method: 'GET',
@@ -47,7 +63,7 @@
  });
}
/** 此处后端没有提供注释 GET /api/UserResume/GetUserResumeWorkExperience */
/** 根据用户id获取用户工作经历 GET /api/UserResume/GetUserResumeWorkExperience */
export async function getUserResumeWorkExperience(options?: API.RequestConfig) {
  return request<API.UserResumeWorkExperienceOutput>(
    '/api/UserResume/GetUserResumeWorkExperience',
@@ -58,12 +74,12 @@
  );
}
/** 此处后端没有提供注释 POST /api/UserResume/SaveUserResumeBaseInfo */
/** 保存简历的基础信息 POST /api/UserResume/SaveUserResumeBaseInfo */
export async function saveUserResumeBaseInfo(
  body: API.SaveUserResumeBaseInfoInput,
  options?: API.RequestConfig
) {
  return request<any>('/api/UserResume/SaveUserResumeBaseInfo', {
  return request<number>('/api/UserResume/SaveUserResumeBaseInfo', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
@@ -73,12 +89,12 @@
  });
}
/** 此处后端没有提供注释 POST /api/UserResume/SaveUserResumeCertificate */
/** 保存用户的简历认证信息 POST /api/UserResume/SaveUserResumeCertificate */
export async function saveUserResumeCertificate(
  body: API.SaveUserResumeCertificateInput,
  options?: API.RequestConfig
) {
  return request<any>('/api/UserResume/SaveUserResumeCertificate', {
  return request<number>('/api/UserResume/SaveUserResumeCertificate', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
@@ -88,12 +104,12 @@
  });
}
/** 此处后端没有提供注释 POST /api/UserResume/SaveUserResumeDetailInfo */
/** 保存简历详情 POST /api/UserResume/SaveUserResumeDetailInfo */
export async function saveUserResumeDetailInfo(
  body: API.SaveUserResumeDetailInfoInput,
  options?: API.RequestConfig
) {
  return request<any>('/api/UserResume/SaveUserResumeDetailInfo', {
  return request<number>('/api/UserResume/SaveUserResumeDetailInfo', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
@@ -103,12 +119,12 @@
  });
}
/** 此处后端没有提供注释 POST /api/UserResume/SaveUserResumeExpectationJob */
/** 保存用户期望的岗位信息 POST /api/UserResume/SaveUserResumeExpectationJob */
export async function saveUserResumeExpectationJob(
  body: API.SaveUserResumeExpectationJobInput,
  options?: API.RequestConfig
) {
  return request<any>('/api/UserResume/SaveUserResumeExpectationJob', {
  return request<number>('/api/UserResume/SaveUserResumeExpectationJob', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
@@ -118,12 +134,12 @@
  });
}
/** 此处后端没有提供注释 POST /api/UserResume/SaveUserResumeWorkExperience */
/** 保存用户工作经历 POST /api/UserResume/SaveUserResumeWorkExperience */
export async function saveUserResumeWorkExperience(
  body: API.SaveUserResumeWorkExperienceInput,
  options?: API.RequestConfig
) {
  return request<any>('/api/UserResume/SaveUserResumeWorkExperience', {
  return request<number>('/api/UserResume/SaveUserResumeWorkExperience', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
src/services/api/index.ts
@@ -9,6 +9,7 @@
import * as Common from './Common';
import * as Features from './Features';
import * as FlexEnterprise from './FlexEnterprise';
import * as FlexEnterpriseWoker from './FlexEnterpriseWoker';
import * as FlexTask from './FlexTask';
import * as FlexWorker from './FlexWorker';
import * as IdentityRole from './IdentityRole';
@@ -19,6 +20,7 @@
import * as Profile from './Profile';
import * as SearchSetting from './SearchSetting';
import * as Tenant from './Tenant';
import * as User from './User';
import * as UserResume from './UserResume';
import * as Version from './Version';
export default {
@@ -29,6 +31,7 @@
  Common,
  Features,
  FlexEnterprise,
  FlexEnterpriseWoker,
  FlexTask,
  FlexWorker,
  IdentityRole,
@@ -39,6 +42,7 @@
  Profile,
  SearchSetting,
  Tenant,
  User,
  UserResume,
  Version,
};
src/services/api/typings.d.ts
@@ -242,6 +242,10 @@
    id: string;
  }
  interface APIgetUserDetailForBackParams {
    userId?: string;
  }
  interface APIgetUserListByPhoneNumberParams {
    phoneNumber?: string;
    clientId?: string;
@@ -803,6 +807,7 @@
    id?: string;
    aideType?: FlexTaskAideEnum;
    name?: string;
    imageUrl?: string;
  }
  type FlexTaskAideEnum = 10 | 20;
@@ -847,7 +852,7 @@
  type FlexTaskSettleTypeEnum = 10 | 20 | 30;
  type FlexTaskWorkerHireEnum = 10 | 20 | 30;
  type FlexTaskWorkerHireEnum = 1 | 10 | 20 | 30 | 40;
  type FlexWorkerEleSignEnum = 10 | 20 | 30;
@@ -1196,6 +1201,77 @@
    belongType?: number;
  }
  interface GetUserClientForBackInput {
    pageModel?: Pagination;
    /** 姓名/手机/身份证号/客户 */
    searchKeys?: string;
    /** 最近录用时间--开始 */
    nearlyHireDateTimeBegin?: string;
    /** 最近录用时间--结束 */
    nearlyHireDateTimeEnd?: string;
    /** 最近签约时间--开始 */
    nearlySignDateTimeBegin?: string;
    /** 最近签约时间--结束 */
    nearlySignDateTimeEnd?: string;
    /** 实名状态 */
    realVerifyStatus?: boolean;
  }
  interface GetUserClientForBackOutput {
    userId?: string;
    userResumeId?: string;
    /** 姓名 */
    name?: string;
    /** 身份证号 */
    idNumber?: string;
    /** 手机号 */
    contactPhone?: string;
    /** 年龄 */
    age?: number;
    genderType?: GenderTypeEnum;
    /** 常驻省份Code */
    residentProvinceCode?: number;
    /** 常驻城市code */
    residentCityCode?: number;
    /** 常驻省份名称 */
    residentProvinceName?: string;
    /** 常驻城市名称 */
    residentCityName?: string;
    /** 实名状态 */
    realVerifyStatus?: boolean;
    /** 实名时间 */
    realVerifyTime?: string;
    nearlyWorkRecord?: NearlyFlexWorkerRecord;
  }
  interface GetUserClientForBackOutputPageOutput {
    pageModel?: Pagination;
    objectData?: any;
    data?: GetUserClientForBackOutput[];
  }
  interface GetUserClientSignListInput {
    pageModel?: Pagination;
    userId?: string;
  }
  interface GetUserDetailForBackOutput {
    userId?: string;
    userResumeId?: string;
    /** 姓名 */
    name?: string;
    /** 身份证号 */
    idNumber?: string;
    /** 手机号 */
    contactPhone?: string;
    /** 年龄 */
    age?: number;
    /** 身份证正面 */
    certificateFrontImgUrl?: string;
    /** 身份证反面 */
    certificateBackImgUrl?: string;
  }
  interface GetWorkerListForBackOutput {
    userId?: string;
    /** 姓名 */
@@ -1506,6 +1582,7 @@
    resumeCertifiDetail?: UserResumeCertificateDetailOutput;
    resumeDetailInfo?: UserResumeDetailInfoOutput;
    resumeWorkExperience?: UserResumeWorkExperienceOutput;
    /** 工作记录 */
    resumeWorkRecordList?: UserResumeWorkerRecordOutput[];
  }
@@ -1533,6 +1610,16 @@
  interface NameValue {
    name?: string;
    value?: string;
  }
  interface NearlyFlexWorkerRecord {
    taskId?: string;
    /** 最近录用时间 */
    nearlyHireDateTime?: string;
    /** 最近签约时间 */
    nearlySignDateTime?: string;
    /** 所属商户 */
    enterpirseName?: string;
  }
  interface ObjectExtensionsDto {
@@ -1712,6 +1799,13 @@
    typeSimple?: string;
  }
  interface RoleDto {
    /** 角色Id */
    id?: string;
    /** 角色名 */
    name?: string;
  }
  interface SaveUserResumeBaseInfoInput {
    name?: string;
    socialIdentity?: string;
@@ -1720,6 +1814,10 @@
    residentCityCode?: number;
    residentProvinceName?: string;
    residentCityName?: string;
    /** 联系电话 */
    phoneNumber?: string;
    /** 头像 */
    avatarUrl?: string;
  }
  interface SaveUserResumeCertificateInput {
@@ -1929,6 +2027,30 @@
    releaseStatus?: FlexTaskReleaseStatusEnum;
  }
  interface UserClientSignListOutput {
    /** 所属商户 */
    enterpirseName?: string;
    /** 报名时间 */
    applyTime?: string;
    enterSignStatus?: FlexWorkerEleSignEnum;
    /** 企业签约时间 */
    enterSignTime?: string;
    hireStatus?: FlexTaskWorkerHireEnum;
    /** 录用时间 */
    hireDateTime?: string;
    userSignStatus?: FlexWorkerEleSignEnum;
    /** 灵工签约时间 */
    userSignTime?: string;
    /** 电子合同 */
    contractUrl?: string;
  }
  interface UserClientSignListOutputPageOutput {
    pageModel?: Pagination;
    objectData?: any;
    data?: UserClientSignListOutput[];
  }
  interface UserData {
    id?: string;
    tenantId?: string;
@@ -1951,51 +2073,102 @@
    items?: UserData[];
  }
  interface UserResumeBaseInfoOutput {
  interface UserDto {
    /** 用户Id */
    id?: string;
    /** 登录用户名(账号) */
    userName?: string;
    /** 名称 */
    name?: string;
    /** 用户手机号 */
    phoneNumber?: string;
    /** 账户是否锁住(是否禁用) */
    isLocked?: boolean;
    /** 角色信息 */
    roles?: RoleDto[];
    /** 备注 */
    remark?: string;
    /** 组织架构公司id */
    companyOrgId?: string;
    /** 组织架构部门id */
    departmentOrgId?: string;
  }
  interface UserResumeBaseInfoOutput {
    /** 姓名 */
    name?: string;
    /** 电话号码 */
    phoneNumber?: string;
    /** 头像 */
    avatarUrl?: string;
    genderType?: GenderTypeEnum;
    /** 年龄 */
    age?: number;
    /** 上岗次数 */
    arrangeCount?: number;
    /** 身份证号码 */
    idNumber?: string;
    /** 身份 */
    socialIdentity?: string;
    /** 身份名称 */
    socialIdentityName?: string;
    /** 学历 */
    educationalLevel?: string;
    /** 学历名称 */
    educationalLevelName?: string;
    /** 常驻省份Code */
    residentProvinceCode?: number;
    /** 常驻城市code */
    residentCityCode?: number;
    /** 常驻省份名称 */
    residentProvinceName?: string;
    /** 常驻城市名称 */
    residentCityName?: string;
  }
  interface UserResumeCertificateDetailOutput {
    /** 简历认证详情Id */
    id?: string;
    userResumeId?: string;
    /** 用户简历Id */
    userId?: string;
    /** 认证类别Id */
    certificateTypeId?: string;
    /** 认证证件号默认身份证 */
    certificateNo?: string;
    /** 证件开始时间 */
    beginTime?: string;
    /** 证件结束时间 */
    endTime?: string;
    /** 是否永久 */
    isPermanent?: boolean;
    certificateUnit?: string;
    /** 身份证正面 */
    certificateFrontImgUrl?: string;
    /** 身份证反面 */
    certificateBackImgUrl?: string;
  }
  interface UserResumeCertificateListOutput {
    id?: string;
    /** 证书Id */
    certificateTypeId?: string;
    /** 证书名称 */
    certificateTypeName?: string;
    /** 工作简历Id */
    userResumeId?: string;
  }
  interface UserResumeDetailInfoOutput {
    /** 身高 */
    height?: string;
    /** 体重 */
    weight?: string;
    /** 个人生活照 */
    lifeCircleImgUrlList?: string[];
  }
  interface UserResumeExpectationJobOutput {
    /** 期望岗位列表 */
    jobIdList?: IdNameOutput[];
    freeTime?: UserResumeFreeTimeEnum;
    jobSeekingStatus?: UserResumeJobSeekingStatusEnum;
@@ -2006,13 +2179,18 @@
  type UserResumeJobSeekingStatusEnum = 1 | 2 | 3;
  interface UserResumeWorkerRecordOutput {
    /** 工作时间 */
    workTime?: string;
    /** 工作地点 */
    workAddress?: string;
    /** 工作名称 */
    workName?: string;
  }
  interface UserResumeWorkExperienceOutput {
    /** 工作年限 */
    workingSeniority?: string;
    /** 工作经验 */
    workExperience?: string;
  }
src/views/EnterpriseManage/AddOrEditEnterprise.vue
@@ -2,7 +2,7 @@
  <AddOrEditEnterpriseView
    emitAddEvent="enterprise:add"
    emitEditEvent="enterprise:edit"
    backRouteName="MyPublishInformationList"
    backRouteName="EnterpriseManageList"
    :isDetail="false"
  ></AddOrEditEnterpriseView>
</template>
src/views/EnterpriseManage/EnterpriseDetail.vue
New file
@@ -0,0 +1,11 @@
<template>
  <AddOrEditEnterpriseView backRouteName="EnterpriseManageList" isDetail />
</template>
<script setup lang="ts">
import AddOrEditEnterpriseView from './components/AddOrEditEnterpriseView.vue';
defineOptions({
  name: 'EnterpriseDetail',
});
</script>
src/views/EnterpriseManage/EnterpriseManageList.vue
@@ -3,13 +3,10 @@
    <AppContainer>
      <ProTableQueryFilterBar @on-reset="reset">
        <template #query>
          <QueryFilterItem tip-content="状态">
          <QueryFilterItem tip-content="配置状态">
            <FieldRadio
              v-model="extraParamState.status"
              :value-enum="[
                { label: '已配置', value: true },
                { label: '未配置', value: false },
              ]"
              v-model="extraParamState.flexEnterpriseSettingStatus"
              :value-enum="FlexEnterpriseSettingStatusText"
              buttonStyle
              showAllBtn
              @change="getList()"
@@ -17,7 +14,7 @@
          </QueryFilterItem>
          <QueryFilterItem>
            <SearchInput
              v-model="extraParamState.name"
              v-model="extraParamState.searchWord"
              style="width: 200px"
              placeholder="企业名称/法人/联系人"
              @on-click-search="getList"
@@ -29,7 +26,7 @@
        <template #btn>
          <el-button
            v-if="checkSubModuleItemShow('pageButton', 'addBtn')"
            @click="openDialog()"
            @click="addOrEditEnterprise()"
            icon="Plus"
            type="primary"
            >新增</el-button
@@ -39,7 +36,7 @@
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
      </ProTableV2>
    </AppContainer>
    <!-- <AddOrEditSearchSetting v-bind="dialogProps" :typeList="typeList" /> -->
    <ConfigureDialog v-bind="dialogProps" />
  </LoadingLayout>
</template>
@@ -54,14 +51,24 @@
  QueryFilterItem,
  useTable,
  useFormDialog,
  UploadUserFile,
  FieldRadio,
} from '@bole-core/components';
import { useAccess, useGlobalEventContext } from '@/hooks';
import * as searchSettingServices from '@/services/api/SearchSetting';
import { SearchType, SearchTypeText } from '@/constants';
import * as flexEnterpriseServices from '@/services/api/FlexEnterprise';
import {
  SearchType,
  FlexEnterpriseSettingStatusText,
  FlexEnterpriseSettingStatus,
  FlexEnterpriseCertificationStatusText,
  EnterpriseConfigureType,
  MessageChannelEnum,
  VerifyStatus,
  SignChannelEnum,
  ChargeTypeEnum,
  FlexEnterpriseStatus,
} from '@/constants';
import ConfigureDialog from './components/ConfigureDialog.vue';
import { OrderInputType, Message } from '@bole-core/core';
import { convertApi2FormUrl } from '@/utils';
import { useQueryClient } from '@tanstack/vue-query';
import { useSearchSettingType } from '@/hooks';
@@ -70,7 +77,10 @@
});
const operationBtnMap: Record<string, OperationBtnType> = {
  editBtn: { emits: { onClick: (role) => openDialog(role) } },
  editBtn: { emits: { onClick: (role) => addOrEditEnterprise(role) } },
  detailBtn: { emits: { onClick: (role) => handleDetail(role) } },
  configBtn: { emits: { onClick: (role) => openDialog(role) } },
  freezeBtn: { emits: { onClick: (role) => handleSetStatus(role) } },
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
@@ -87,6 +97,8 @@
  getList(paginationState.pageIndex);
});
const router = useRouter();
const BaseState = {
  loading: true,
};
@@ -94,6 +106,7 @@
const { searchSettingTypeList: typeList } = useSearchSettingType({
  searchType: SearchType.IndustryCategory,
});
const state = reactive({ ...BaseState });
onMounted(async () => {
@@ -110,23 +123,17 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetSearchSettingListInput = {
      let params: API.GetFlexEnterpriseInput = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        name: extraParamState.name,
        // belongType: Number(extraParamState.belongType),
        searchType: Number(extraParamState.searchType),
        status: extraParamState.status,
        flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus,
        searchWord: extraParamState.searchWord,
      };
      if (extraParamState.searchType === SearchType.Position) {
        params.isRecommend = extraParamState.isRecommend;
        params.parentId = extraParamState.parentId;
      }
      let res = await searchSettingServices.getSearchSettingList(params, {
      let res = await flexEnterpriseServices.getFlexEnterpriseList(params, {
        showLoading: !state.loading,
      });
      return res;
@@ -136,35 +143,37 @@
  },
  {
    defaultExtraParams: {
      name: '',
      searchType: SearchType.Identity,
      orderInput: [{ property: 'sort', order: OrderInputType.Asc }],
      status: '' as any as boolean,
      isRecommend: '' as any as boolean,
      parentId: '',
      searchWord: '',
      orderInput: [{ property: 'id', order: OrderInputType.Asc }],
      flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus,
    },
    queryKey: ['searchSettingServices/getSearchSettingList'],
    queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'],
    columnsRenderProps: {
      searchType: { type: 'enum', valueEnum: SearchTypeText },
      settingStatus: { type: 'enum', valueEnum: FlexEnterpriseSettingStatusText },
      certificationStatus: { type: 'enum', valueEnum: FlexEnterpriseCertificationStatusText },
    },
  }
);
function openDialog(row?: API.GetSearchSettingList) {
function openDialog(row?: API.FlexEnterpriseDto) {
  if (row) {
    handleEdit({
      id: row.id,
      searchType: extraParamState.searchType,
      name: row.name,
      sort: row.sort,
      status: row.status,
      src: row.src?.length ? [convertApi2FormUrl(row.src)] : [],
      parentId: row.parentId ?? '',
      flexEnterpirseId: row.id,
      openBank: row.cityName,
      openBranchBank: row.cityName,
      bankAccount: row.cityName,
      verifyStatus: VerifyStatus.NotVerify,
      signChannel: SignChannelEnum.Alipay,
      chargeType: ChargeTypeEnum.Group,
      realVerifyCost: 0,
      signCost: 0,
      mergeSignCost: 0,
      messageCost: 0,
      messageChannel: MessageChannelEnum.Alipay,
    });
  } else {
    handleAdd({
      searchType: extraParamState.searchType,
    });
    handleAdd({});
  }
}
@@ -172,57 +181,101 @@
  onConfirm: handleAddOrEdit,
  defaultFormParams: {
    id: '',
    searchType: SearchType.Identity,
    name: '',
    sort: 0,
    status: true,
    src: [] as UploadUserFile[],
    parentId: '',
    flexEnterpirseId: '',
    openBank: '',
    openBranchBank: '',
    bankAccount: '',
    verifyStatus: '' as any as VerifyStatus,
    signChannel: '' as any as SignChannelEnum,
    chargeType: '' as any as ChargeTypeEnum,
    realVerifyCost: 0,
    signCost: 0,
    mergeSignCost: 0,
    messageCost: 0,
    messageChannel: '' as any as MessageChannelEnum,
  },
});
async function handleAddOrEdit() {
async function handleAddOrEdit(type: EnterpriseConfigureType) {
  try {
    let params: API.CreateOrEditSearchInput = {
      searchType: extraParamState.searchType,
      name: editForm.name,
      sort: editForm.sort,
      status: editForm.status,
      src: editForm.src?.[0]?.path ?? '',
      parentId: editForm.parentId ?? '',
    };
    if (editForm.id) {
      params.id = editForm.id;
    let res;
    if (type === EnterpriseConfigureType.Bank) {
      res = await createOrEditFlexEnterpriseBankSetting();
    }
    let res = await searchSettingServices.createOrEditSearchSetting(params);
    if (type === EnterpriseConfigureType.Electronic) {
      res = await createOrEditFlexEnterpriseSignSetting();
    }
    if (type === EnterpriseConfigureType.ShortMessage) {
      res = await createOrEditFlexEnterpriseMessageSetting();
    }
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
      dialogState.dialogVisible = false;
      updateCategoryMenu();
    }
  } catch (error) {}
}
function updateCategoryMenu() {
  queryClient.invalidateQueries({
    queryKey: [
      'searchSettingServices/getTypeSearchSettingList',
      { searchType: extraParamState.searchType, belongType: null },
    ],
  });
async function createOrEditFlexEnterpriseBankSetting() {
  try {
    let params: API.CreateOrEditFlexEnterpriseBankInput = {
      id: editForm.id,
      openBank: editForm.openBank,
      openBranchBank: editForm.openBranchBank,
      bankAccount: editForm.bankAccount,
      verifyStatus: editForm.verifyStatus,
      flexEnterpirseId: editForm.flexEnterpirseId,
    };
    return await flexEnterpriseServices.createOrEditFlexEnterpriseBankSetting(params);
  } catch (error) {}
}
async function createOrEditFlexEnterpriseSignSetting() {
  try {
    let params: API.CreateOrEditFlexEnterpriseSignSettingInput = {
      id: editForm.id,
      flexEnterpirseId: editForm.flexEnterpirseId,
      signChannel: editForm.signChannel,
      chargeType: editForm.chargeType,
      realVerifyCost: editForm.realVerifyCost,
      signCost: editForm.signCost,
      mergeSignCost: editForm.mergeSignCost,
    };
    return await flexEnterpriseServices.createOrEditFlexEnterpriseSignSetting(params);
  } catch (error) {}
}
async function createOrEditFlexEnterpriseMessageSetting() {
  try {
    let params: API.CreateOrEditFlexEnterpriseMessageSettingInput = {
      id: editForm.id,
      flexEnterpirseId: editForm.flexEnterpirseId,
      messageChannel: editForm.messageChannel,
      messageCost: editForm.messageCost,
    };
    return await flexEnterpriseServices.createOrEditFlexEnterpriseMessageSetting(params);
  } catch (error) {}
}
async function setCategoryVis(row: API.GetSearchSettingList) {
async function handleSetStatus(row: API.FlexEnterpriseDto) {
  try {
    let params: API.EnableSearchSettingInput = {
    let params: API.SetFlexEnterpriseStatusInput = {
      id: row.id,
      status: !row.status,
      status:
        row.status === FlexEnterpriseStatus.Frozen
          ? FlexEnterpriseStatus.Normal
          : FlexEnterpriseStatus.Frozen,
    };
    let res = await searchSettingServices.enableSearchSetting(params);
    updateCategoryMenu();
    getList(paginationState.pageIndex);
    return !!res;
    let res = await flexEnterpriseServices.setFlexEnterpriseStatus(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
    }
  } catch (error) {}
}
function addOrEditEnterprise(row?: API.FlexEnterpriseDto) {
  router.push({ name: 'AddOrEditEnterprise', params: { id: row?.id ?? '' } });
}
function handleDetail(row: API.FlexEnterpriseDto) {
  router.push({ name: 'EnterpriseDetail', params: { id: row?.id ?? '' } });
}
</script>
src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue
@@ -5,9 +5,9 @@
        <ProForm :model="form" :rules="rules" ref="formRef" label-width="120px" :is-read="isDetail">
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="企业名称:" prop="name" required>
              <ProFormItemV2 label="企业名称:" prop="enterpriseName">
                <ProFormText
                  v-model.trim="form.name"
                  v-model.trim="form.enterpriseName"
                  :maxlength="30"
                  placeholder="请输入供应商名称"
                />
@@ -16,9 +16,9 @@
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="法人姓名:" prop="name" required>
              <ProFormItemV2 label="法人姓名:" prop="legalPersonName">
                <ProFormText
                  v-model.trim="form.name"
                  v-model.trim="form.legalPersonName"
                  :maxlength="30"
                  placeholder="请输入法人姓名"
                />
@@ -27,9 +27,9 @@
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="法人身份证号:" prop="name" required>
              <ProFormItemV2 label="法人身份证号:" prop="legalPersonIdNumber">
                <ProFormText
                  v-model.trim="form.name"
                  v-model.trim="form.legalPersonIdNumber"
                  :maxlength="30"
                  placeholder="请输入法人身份证号"
                />
@@ -48,9 +48,9 @@
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="所在省份:" prop="name" required>
              <ProFormItemV2 label="所在省份:" prop="proviceName">
                <ProFormText
                  v-model.trim="form.name"
                  v-model.trim="form.proviceName"
                  :maxlength="30"
                  placeholder="请输入所在省份"
                />
@@ -59,21 +59,23 @@
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="所属行业:" prop="name" required>
              <ProFormItemV2 label="所属行业:" prop="belongIndustryType">
                <ProFormSelect
                  placeholder="请选择所属行业"
                  :value-enum="typeList"
                  enum-value-key="id"
                  enum-label-key="name"
                  clearable
                  v-model="form.name"
                  v-model="form.belongIndustryType"
                ></ProFormSelect>
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="所在城市:" prop="name" required>
              <ProFormItemV2 label="所在城市:" prop="cityName">
                <ProFormText
                  v-model.trim="form.name"
                  v-model.trim="form.cityName"
                  :maxlength="30"
                  placeholder="请输入所在城市"
                />
@@ -82,9 +84,9 @@
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="24">
              <ProFormItemV2 label="主营业务:" prop="name">
              <ProFormItemV2 label="主营业务:" prop="cityName">
                <ProFormTextArea
                  v-model="form.name"
                  v-model="form.cityName"
                  maxlength="200"
                  :rows="6"
                  show-word-limit
@@ -136,6 +138,28 @@
          </ProFormCol>
        </ProForm>
      </ChunkCell>
      <ChunkCell title="账号信息">
        <ProForm
          :model="form"
          :rules="rules"
          ref="accountFormRef"
          label-width="140px"
          :scroll-to-error="false"
          :is-read="isDetail"
        >
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="账号:" prop="contact">
                <ProFormText v-model.trim="form.contact" :maxlength="30" placeholder="请输入账号" />
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <div class="chuck-add-or-edit-actions">
            <el-button @click="handleBack">返回</el-button>
            <el-button v-if="!isDetail" type="primary" @click="handleSubmit">确认</el-button>
          </div>
        </ProForm>
      </ChunkCell>
    </AppScrollContainer>
  </LoadingLayout>
</template>
@@ -154,7 +178,7 @@
} from '@bole-core/components';
import { FormRules, FormInstance } from 'element-plus';
import { SearchType } from '@/constants';
import * as searchSettingServices from '@/services/api/SearchSetting';
import * as flexEnterpriseServices from '@/services/api/FlexEnterprise';
import { useRouteView, useGlobalEventContext, GlobalEvent, useSearchSettingType } from '@/hooks';
import _ from 'lodash';
import { validateFormList, filterCN } from '@/utils';
@@ -175,7 +199,7 @@
  id: '',
  emitAddEvent: 'enterprise:add',
  emitEditEvent: 'enterprise:edit',
  backRouteName: '',
  backRouteName: 'EnterpriseManageList',
});
const route = useRoute();
@@ -189,8 +213,13 @@
const form = reactive({
  id: '',
  name: '',
  enterpriseName: '',
  legalPersonName: '',
  legalPersonIdNumber: '',
  societyCreditCode: '',
  proviceName: '',
  cityName: '',
  belongIndustryType: '',
  contact: '',
  contactPhone: '',
  email: '',
@@ -214,16 +243,11 @@
const formRef = ref<FormInstance>();
const settingFormRef = ref<FormInstance>();
const accountFormRef = ref<FormInstance>();
const rules = reactive<FormRules>({
  name: [{ required: true, message: '请输入供应商名称', trigger: 'blur' }],
  societyCreditCode: [{ required: true, message: '请输入统一信用代码', trigger: 'blur' }],
  categoryType: [{ required: true, message: '请选择行业配套', trigger: 'change' }],
  areaList: [{ required: true, message: '请选择所在地区', trigger: 'change', type: 'array' }],
  companyAddress: [{ required: true, message: '请输入公司地址', trigger: 'blur' }],
  enterpriseName: [{ required: true, message: '请输入企业名称', trigger: 'blur' }],
  contact: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
  suppierLevel: [{ required: true, message: '请选择供应商等级', trigger: 'change' }],
  // suppierType: [{ required: true, message: '请选择供应商类型', trigger: 'change' }],
  contactPhone: [
    { required: true, message: '请输入联系电话', trigger: 'blur' },
    { message: '请输入正确的联系电话', trigger: 'blur', pattern: BoleRegExp.RegPhoneNumber },
@@ -232,27 +256,40 @@
async function handleSubmit() {
  try {
    const valid = await validateFormList([formRef.value, settingFormRef.value]);
    const valid = await validateFormList([
      formRef.value,
      settingFormRef.value,
      accountFormRef.value,
    ]);
    if (valid) {
      handleCreateOrEditInsureSupplier();
      handleCreateOrEditFlexEnterprise();
    }
  } catch (error) {}
}
async function handleCreateOrEditInsureSupplier() {
async function handleCreateOrEditFlexEnterprise() {
  try {
    // let params: API.CreateOrEditSearchInput = {
    //   name: form.name,
    // };
    // if (isEdit.value) {
    //   params.id = props.id;
    // }
    // let res = await searchSettingServices.createOrEditSearchSetting(params);
    // if (res) {
    //   Message.successMessage(isEdit ? '编辑成功' : '发布成功');
    //   eventContext.emit(isEdit ? 'enterprise:edit' : 'enterprise:add');
    //   handleBack();
    // }
    let params: API.CreateOrEditFlexEnterpriseInput = {
      enterpriseName: form.enterpriseName,
      legalPersonName: form.legalPersonName,
      legalPersonIdNumber: form.legalPersonIdNumber,
      societyCreditCode: form.societyCreditCode,
      proviceName: form.proviceName,
      cityName: form.cityName,
      belongIndustryType: form.belongIndustryType,
      contact: form.contact,
      contactPhone: form.contactPhone,
      // email: form.email,
    };
    if (isEdit.value) {
      params.id = props.id;
    }
    let res = await flexEnterpriseServices.createOrEditFlexEnterprise(params);
    if (res) {
      Message.successMessage(isEdit ? '编辑成功' : '发布成功');
      eventContext.emit(isEdit ? 'enterprise:edit' : 'enterprise:add');
      handleBack();
    }
  } catch (error) {}
}
src/views/EnterpriseManage/components/ConfigureDialog.vue
New file
@@ -0,0 +1,239 @@
<template>
  <ProDialog title="配置" v-model="innerVisible" @close="onDialogClose" destroy-on-close draggable>
    <ProForm :model="innerForm" ref="dialogForm" label-width="100px">
      <ProFormItemV2 label="" prop="enterpriseConfigureType" label-width="0">
        <ProFormRadio
          v-model="enterpriseConfigureType"
          :value-enum="EnterpriseConfigureTypeText"
          buttonStyle
        />
      </ProFormItemV2>
      <template v-if="enterpriseConfigureType === EnterpriseConfigureType.Bank">
        <ProFormItemV2 label="开户总行:" prop="openBank">
          <ProFormText
            v-model.trim="innerForm.openBank"
            placeholder="请输入开户总行"
            :maxlength="40"
          />
        </ProFormItemV2>
        <ProFormItemV2 label="开户支行:" prop="openBranchBank">
          <ProFormText
            v-model.trim="innerForm.openBranchBank"
            placeholder="请输入开户支行"
            :maxlength="40"
          />
        </ProFormItemV2>
        <ProFormItemV2
          label="银行账户:"
          prop="bankAccount"
          :check-rules="[
            { message: '请输入银行账户' },
            { message: '银行账户仅支持数字', pattern: BoleRegExp.RegNumber },
          ]"
        >
          <ProFormText v-model.trim="innerForm.bankAccount" placeholder="请输入银行账户" />
        </ProFormItemV2>
        <ProFormItemV2 label="银行账户:" prop="verifyStatus">
          {{ VerifyStatusText[innerForm.verifyStatus] }}
          <el-button style="margin-left: 40px" type="primary" link @click="handleCheckBankAccount"
            >校验</el-button
          >
        </ProFormItemV2>
      </template>
      <template v-if="enterpriseConfigureType === EnterpriseConfigureType.Electronic">
        <div class="configure-dialog-form-title">通道配置</div>
        <ProFormItemV2
          label="名称:"
          prop="signChannel"
          :checkRules="[{ message: '请选择电子签通道' }]"
        >
          <ProFormSelect
            v-model="form.signChannel"
            :valueEnum="SignChannelEnumText"
            placeholder="请选择电子签通道"
          >
          </ProFormSelect>
        </ProFormItemV2>
        <div class="configure-dialog-form-title">费用配置</div>
        <ProFormItemV2
          label="计费方式:"
          prop="chargeType"
          :checkRules="[{ message: '请选择计费方式' }]"
        >
          <ProFormRadio
            :button-style="false"
            v-model="innerForm.chargeType"
            :value-enum="ChargeTypeEnumText"
          />
        </ProFormItemV2>
        <template v-if="innerForm.chargeType === ChargeTypeEnum.Group">
          <ProFormItemV2 label="实名费用:" prop="realVerifyCost">
            <ProFormInputNumber
              :controls="false"
              v-model="innerForm.realVerifyCost"
              placeholder="请输入"
              unit="元/条"
            />
          </ProFormItemV2>
          <ProFormItemV2 label="签约费用:" prop="signCost">
            <ProFormInputNumber
              :controls="false"
              v-model="innerForm.signCost"
              placeholder="请输入"
              unit="元/份"
            />
          </ProFormItemV2>
        </template>
        <template v-if="innerForm.chargeType === ChargeTypeEnum.Merge">
          <ProFormItemV2 label="统一电子签:" prop="mergeSignCost">
            <ProFormInputNumber
              :controls="false"
              v-model="innerForm.mergeSignCost"
              placeholder="请输入"
              unit="元/份"
            />
          </ProFormItemV2>
        </template>
      </template>
      <template v-if="enterpriseConfigureType === EnterpriseConfigureType.ShortMessage">
        <div class="configure-dialog-form-title">通道配置</div>
        <ProFormItemV2
          label="名称:"
          prop="messageChannel"
          :checkRules="[{ message: '请选择短信通道' }]"
        >
          <ProFormSelect
            v-model="form.messageChannel"
            :valueEnum="MessageChannelEnumText"
            placeholder="请选择短信通道"
          >
          </ProFormSelect>
        </ProFormItemV2>
        <div class="configure-dialog-form-title">费用配置</div>
        <ProFormItemV2 label="短信费用:" prop="messageCost">
          <ProFormInputNumber
            :controls="false"
            v-model="innerForm.messageCost"
            placeholder="请输入"
            unit="元/条"
          />
        </ProFormItemV2>
      </template>
    </ProForm>
    <template #footer>
      <span class="dialog-footer">
        <el-button @click="emit('onCancel')">取 消</el-button>
        <el-button type="primary" @click="handleConfirm">确 定</el-button>
      </span>
    </template>
  </ProDialog>
</template>
<script setup lang="ts">
import { FormInstance } from 'element-plus';
import {
  ProDialog,
  ProForm,
  ProFormItemV2,
  ProFormText,
  ProFormRadio,
  ProFormInputNumber,
  ProFormSelect,
} from '@bole-core/components';
import { BoleRegExp } from '@bole-core/core';
import {
  EnterpriseConfigureType,
  EnterpriseConfigureTypeText,
  ChargeTypeEnum,
  ChargeTypeEnumText,
  SignChannelEnum,
  SignChannelEnumText,
  VerifyStatusText,
  VerifyStatusColor,
  VerifyStatus,
  MessageChannelEnum,
  MessageChannelEnumText,
} from '@/constants';
defineOptions({
  name: 'ConfigureDialog',
});
type Props = {
  modelValue: boolean;
  form?: {
    openBank: string;
    openBranchBank: string;
    bankAccount: string;
    verifyStatus: VerifyStatus;
    signChannel: SignChannelEnum;
    chargeType: ChargeTypeEnum;
    realVerifyCost: number;
    signCost: number;
    mergeSignCost: number;
    messageCost: number;
    messageChannel: MessageChannelEnum;
  };
};
const props = withDefaults(defineProps<Props>(), {
  modelValue: false,
});
const enterpriseConfigureType = ref<EnterpriseConfigureType>(EnterpriseConfigureType.Bank);
const emit = defineEmits<{
  (e: 'update:modelValue', value: boolean): void;
  (e: 'update:form', value: Props['form']): void;
  (e: 'onConfirm', value: EnterpriseConfigureType): void;
  (e: 'onCancel'): void;
}>();
const dialogForm = ref<FormInstance>();
const innerVisible = computed({
  get() {
    return props.modelValue;
  },
  set(val) {
    emit('update:modelValue', val);
  },
});
const innerForm = computed({
  get() {
    return props.form;
  },
  set(val) {
    emit('update:form', val);
  },
});
function handleCheckBankAccount() {}
function onDialogClose() {
  if (!dialogForm.value) return;
  dialogForm.value.resetFields();
}
function handleConfirm() {
  if (!dialogForm.value) return;
  dialogForm.value.validate((valid) => {
    if (valid) {
      emit('onConfirm', enterpriseConfigureType.value);
    } else {
      return;
    }
  });
}
</script>
<style lang="scss" scoped>
@use '@/style/common.scss' as *;
.configure-dialog-form-title {
  margin-bottom: 10px;
  font-size: 15px;
  font-weight: bold;
  line-height: 36px;
}
</style>