zhengyiming
7 天以前 650a84730f4418ebbcdc58bbadd4d56f5dd3c8fd
Merge branch 'master' of http://120.26.58.240:8888/r/flexJobAdmin
16个文件已修改
493 ■■■■ 已修改文件
.eslintrc-auto-import.json 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
auto-imports.d.ts 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/dic.ts 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/enterprise.ts 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/dic.ts 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/dictionary.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/index.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/user.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/DictionaryManage/DataDictionary.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/DictionaryManage/DictionaryCategoryManage.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/DictionaryManage/components/AddOrEditDictionaryDialog.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/EnterpriseManageList.vue 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/components/ConfigureDialog.vue 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
types/api.d.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.eslintrc-auto-import.json
@@ -6,6 +6,7 @@
    "AuthorizeType": true,
    "BooleanOptions": true,
    "CategoryCode": true,
    "CertificateTypeCodeEnum": true,
    "ChargeTypeEnum": true,
    "ChargeTypeEnumText": true,
    "Component": true,
@@ -25,12 +26,14 @@
    "EnumMenuVisitLevel": true,
    "EnumPagedListOrder": true,
    "EnumRealAccess": true,
    "EnumRealAccessText": true,
    "EnumResourceController": true,
    "EnumResourceMethod": true,
    "EnumRoleWebApiDataPower": true,
    "EnumRoleWebApiDataPowerText": true,
    "EnumRoleWebApiDataPowerTextForFilter": true,
    "EnumSmsAccess": true,
    "EnumSmsAccessText": true,
    "EnumUserInfoStatus": true,
    "EnumUserInfoStatusText": true,
    "EnumUserType": true,
@@ -45,8 +48,6 @@
    "FastPageButtonList": true,
    "FlexEnterpriseCertificationStatus": true,
    "FlexEnterpriseCertificationStatusText": true,
    "FlexEnterpriseSettingStatus": true,
    "FlexEnterpriseSettingStatusText": true,
    "FlexTaskWorkerHireEnum": true,
    "FlexTaskWorkerHireEnumText": true,
    "FlexWorkerEleSignEnum": true,
@@ -58,11 +59,11 @@
    "GlobalEventListener": true,
    "IdentityCodeEnum": true,
    "InjectionKey": true,
    "IsConfiguredText": true,
    "IsRealText": true,
    "MaybeRef": true,
    "MaybeRefOrGetter": true,
    "MenuSvgIconMap": true,
    "MessageChannelEnum": true,
    "MessageChannelEnumText": true,
    "ModuleColumns": true,
    "MyRegExp": true,
    "OSSBaseURL": true,
@@ -81,8 +82,6 @@
    "PropType": true,
    "Ref": true,
    "RoleClientType": true,
    "SignChannelEnum": true,
    "SignChannelEnumText": true,
    "Slot": true,
    "Slots": true,
    "SubModuleKey": true,
@@ -96,6 +95,7 @@
    "VerifyStatus": true,
    "VerifyStatusColor": true,
    "VerifyStatusText": true,
    "WelfareCodeEnum": true,
    "WritableComputedRef": true,
    "acceptHMRUpdate": true,
    "computed": true,
auto-imports.d.ts
@@ -12,6 +12,8 @@
  const AuthorizeType: typeof import('./src/constants/enum')['AuthorizeType']
  const BooleanOptions: typeof import('./src/constants/enum')['BooleanOptions']
  const CategoryCode: typeof import('./src/constants/dic')['CategoryCode']
  const CertificateTypeCodeEnum: typeof import('./src/constants/dic')['CertificateTypeCodeEnum']
  const CertificateTypeEnum: typeof import('./src/constants/dic')['CertificateTypeEnum']
  const ChargeTypeEnum: typeof import('./src/constants/enterprise')['ChargeTypeEnum']
  const ChargeTypeEnumText: typeof import('./src/constants/enterprise')['ChargeTypeEnumText']
  const CommonAnnexTableColumns: typeof import('@/constants')['CommonAnnexTableColumns']
@@ -31,12 +33,14 @@
  const EnumMenuVisitLevel: typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel']
  const EnumPagedListOrder: typeof import('./src/constants/apiEnum')['EnumPagedListOrder']
  const EnumRealAccess: typeof import('./src/constants/apiEnum')['EnumRealAccess']
  const EnumRealAccessText: typeof import('./src/constants/enterprise')['EnumRealAccessText']
  const EnumResourceController: typeof import('./src/constants/apiEnum')['EnumResourceController']
  const EnumResourceMethod: typeof import('./src/constants/apiEnum')['EnumResourceMethod']
  const EnumRoleWebApiDataPower: typeof import('./src/constants/apiEnum')['EnumRoleWebApiDataPower']
  const EnumRoleWebApiDataPowerText: typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerText']
  const EnumRoleWebApiDataPowerTextForFilter: typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerTextForFilter']
  const EnumSmsAccess: typeof import('./src/constants/apiEnum')['EnumSmsAccess']
  const EnumSmsAccessText: typeof import('./src/constants/enterprise')['EnumSmsAccessText']
  const EnumUserInfoStatus: typeof import('./src/constants/apiEnum')['EnumUserInfoStatus']
  const EnumUserInfoStatusText: typeof import('./src/constants/user')['EnumUserInfoStatusText']
  const EnumUserType: typeof import('./src/constants/apiEnum')['EnumUserType']
@@ -59,6 +63,8 @@
  const Gender: typeof import('./src/constants/enum')['Gender']
  const GenderText: typeof import('./src/constants/enum')['GenderText']
  const IdentityCodeEnum: typeof import('./src/constants/dic')['IdentityCodeEnum']
  const IsConfiguredText: typeof import('./src/constants/enterprise')['IsConfiguredText']
  const IsRealText: typeof import('./src/constants/enterprise')['IsRealText']
  const MenuSvgIconMap: typeof import('./src/constants/menu')['MenuSvgIconMap']
  const MessageChannelEnum: typeof import('./src/constants/enterprise')['MessageChannelEnum']
  const MessageChannelEnumText: typeof import('./src/constants/enterprise')['MessageChannelEnumText']
@@ -89,6 +95,7 @@
  const VerifyStatus: typeof import('./src/constants/enterprise')['VerifyStatus']
  const VerifyStatusColor: typeof import('./src/constants/enterprise')['VerifyStatusColor']
  const VerifyStatusText: typeof import('./src/constants/enterprise')['VerifyStatusText']
  const WelfareCodeEnum: typeof import('./src/constants/dic')['WelfareCodeEnum']
  const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
  const computed: typeof import('vue')['computed']
  const copyTextToClipboard: typeof import('./src/hooks/useCopyToClipboard')['copyTextToClipboard']
@@ -200,13 +207,13 @@
  export type { FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum, FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum } from './src/constants/cPerson'
  import('./src/constants/cPerson')
  // @ts-ignore
  export type { CategoryCode, IdentityCodeEnum, EducationCodeEnum, CategoryCode, IdentityCodeEnum, EducationCodeEnum } from './src/constants/dic'
  export type { CategoryCode, IdentityCodeEnum, EducationCodeEnum, CertificateTypeCodeEnum, WelfareCodeEnum, CategoryCode, IdentityCodeEnum, EducationCodeEnum, CertificateTypeCodeEnum, WelfareCodeEnum } from './src/constants/dic'
  import('./src/constants/dic')
  // @ts-ignore
  export type { EditorType, EditorType } from './src/constants/editor'
  import('./src/constants/editor')
  // @ts-ignore
  export type { EnterpriseConfigureType, FlexEnterpriseSettingStatus, VerifyStatus, FlexEnterpriseCertificationStatus, MessageChannelEnum, SignChannelEnum, ChargeTypeEnum, EnterpriseConfigureType, FlexEnterpriseSettingStatus, VerifyStatus, FlexEnterpriseCertificationStatus, MessageChannelEnum, SignChannelEnum, ChargeTypeEnum } from './src/constants/enterprise'
  export type { EnterpriseConfigureType, VerifyStatus, FlexEnterpriseCertificationStatus, ChargeTypeEnum, EnterpriseConfigureType, VerifyStatus, FlexEnterpriseCertificationStatus, ChargeTypeEnum } from './src/constants/enterprise'
  import('./src/constants/enterprise')
  // @ts-ignore
  export type { AreaType, AuthorizeType, Gender, AreaType, AuthorizeType, Gender } from './src/constants/enum'
@@ -239,6 +246,7 @@
    readonly AuthorizeType: UnwrapRef<typeof import('./src/constants/enum')['AuthorizeType']>
    readonly BooleanOptions: UnwrapRef<typeof import('./src/constants/enum')['BooleanOptions']>
    readonly CategoryCode: UnwrapRef<typeof import('./src/constants/dic')['CategoryCode']>
    readonly CertificateTypeCodeEnum: UnwrapRef<typeof import('./src/constants/dic')['CertificateTypeCodeEnum']>
    readonly ChargeTypeEnum: UnwrapRef<typeof import('./src/constants/enterprise')['ChargeTypeEnum']>
    readonly ChargeTypeEnumText: UnwrapRef<typeof import('./src/constants/enterprise')['ChargeTypeEnumText']>
    readonly EditorType: UnwrapRef<typeof import('./src/constants/editor')['EditorType']>
@@ -254,12 +262,14 @@
    readonly EnumMenuVisitLevel: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel']>
    readonly EnumPagedListOrder: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumPagedListOrder']>
    readonly EnumRealAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumRealAccess']>
    readonly EnumRealAccessText: UnwrapRef<typeof import('./src/constants/enterprise')['EnumRealAccessText']>
    readonly EnumResourceController: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumResourceController']>
    readonly EnumResourceMethod: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumResourceMethod']>
    readonly EnumRoleWebApiDataPower: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumRoleWebApiDataPower']>
    readonly EnumRoleWebApiDataPowerText: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerText']>
    readonly EnumRoleWebApiDataPowerTextForFilter: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerTextForFilter']>
    readonly EnumSmsAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSmsAccess']>
    readonly EnumSmsAccessText: UnwrapRef<typeof import('./src/constants/enterprise')['EnumSmsAccessText']>
    readonly EnumUserInfoStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserInfoStatus']>
    readonly EnumUserInfoStatusText: UnwrapRef<typeof import('./src/constants/user')['EnumUserInfoStatusText']>
    readonly EnumUserType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserType']>
@@ -270,8 +280,6 @@
    readonly FastPageButtonList: UnwrapRef<typeof import('./src/constants/module')['FastPageButtonList']>
    readonly FlexEnterpriseCertificationStatus: UnwrapRef<typeof import('./src/constants/enterprise')['FlexEnterpriseCertificationStatus']>
    readonly FlexEnterpriseCertificationStatusText: UnwrapRef<typeof import('./src/constants/enterprise')['FlexEnterpriseCertificationStatusText']>
    readonly FlexEnterpriseSettingStatus: UnwrapRef<typeof import('./src/constants/enterprise')['FlexEnterpriseSettingStatus']>
    readonly FlexEnterpriseSettingStatusText: UnwrapRef<typeof import('./src/constants/enterprise')['FlexEnterpriseSettingStatusText']>
    readonly FlexTaskWorkerHireEnum: UnwrapRef<typeof import('./src/constants/cPerson')['FlexTaskWorkerHireEnum']>
    readonly FlexTaskWorkerHireEnumText: UnwrapRef<typeof import('./src/constants/cPerson')['FlexTaskWorkerHireEnumText']>
    readonly FlexWorkerEleSignEnum: UnwrapRef<typeof import('./src/constants/cPerson')['FlexWorkerEleSignEnum']>
@@ -279,9 +287,9 @@
    readonly Gender: UnwrapRef<typeof import('./src/constants/enum')['Gender']>
    readonly GenderText: UnwrapRef<typeof import('./src/constants/enum')['GenderText']>
    readonly IdentityCodeEnum: UnwrapRef<typeof import('./src/constants/dic')['IdentityCodeEnum']>
    readonly IsConfiguredText: UnwrapRef<typeof import('./src/constants/enterprise')['IsConfiguredText']>
    readonly IsRealText: UnwrapRef<typeof import('./src/constants/enterprise')['IsRealText']>
    readonly MenuSvgIconMap: UnwrapRef<typeof import('./src/constants/menu')['MenuSvgIconMap']>
    readonly MessageChannelEnum: UnwrapRef<typeof import('./src/constants/enterprise')['MessageChannelEnum']>
    readonly MessageChannelEnumText: UnwrapRef<typeof import('./src/constants/enterprise')['MessageChannelEnumText']>
    readonly ModuleColumns: UnwrapRef<typeof import('./src/constants/module')['ModuleColumns']>
    readonly MyRegExp: UnwrapRef<typeof import('./src/constants/regExp')['MyRegExp']>
    readonly OSSBaseURL: UnwrapRef<typeof import('./src/constants/oss')['OSSBaseURL']>
@@ -298,8 +306,6 @@
    readonly OssUser: UnwrapRef<typeof import('./src/constants/oss')['OssUser']>
    readonly OssUserSign: UnwrapRef<typeof import('./src/constants/oss')['OssUserSign']>
    readonly RoleClientType: UnwrapRef<typeof import('./src/constants/role')['RoleClientType']>
    readonly SignChannelEnum: UnwrapRef<typeof import('./src/constants/enterprise')['SignChannelEnum']>
    readonly SignChannelEnumText: UnwrapRef<typeof import('./src/constants/enterprise')['SignChannelEnumText']>
    readonly SubModuleKey: UnwrapRef<typeof import('./src/constants/module')['SubModuleKey']>
    readonly SubModuleTitle: UnwrapRef<typeof import('./src/constants/module')['SubModuleTitle']>
    readonly SubModuleType: UnwrapRef<typeof import('./src/constants/module')['SubModuleType']>
@@ -307,6 +313,7 @@
    readonly VerifyStatus: UnwrapRef<typeof import('./src/constants/enterprise')['VerifyStatus']>
    readonly VerifyStatusColor: UnwrapRef<typeof import('./src/constants/enterprise')['VerifyStatusColor']>
    readonly VerifyStatusText: UnwrapRef<typeof import('./src/constants/enterprise')['VerifyStatusText']>
    readonly WelfareCodeEnum: UnwrapRef<typeof import('./src/constants/dic')['WelfareCodeEnum']>
    readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']>
    readonly computed: UnwrapRef<typeof import('vue')['computed']>
    readonly copyTextToClipboard: UnwrapRef<typeof import('./src/hooks/useCopyToClipboard')['copyTextToClipboard']>
@@ -406,4 +413,4 @@
    readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>
    readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']>
  }
}
}
src/constants/dic.ts
@@ -11,6 +11,8 @@
  Welfare = '50',
  /**行业类型 */
  IndustryCategory = '60',
  /**行政地区 */
  Area = '70',
}
export enum IdentityCodeEnum {
@@ -40,3 +42,19 @@
  /**本科以上 */
  UndergraduateAndAbove = '20-90',
}
export enum CertificateTypeCodeEnum {
  /**健康证 */
  HealthCertificate = '40-10',
}
export enum WelfareCodeEnum {
  /**包餐 */
  Meal = '50-10',
  /**包住宿 */
  Accommodation = '50-20',
  /**交通补贴 */
  TransportationSubsidies = '50-30',
  /**高温补贴 */
  HighTemperatureSubsidies = '50-40',
}
src/constants/enterprise.ts
@@ -14,25 +14,9 @@
}
export const EnterpriseConfigureTypeText = {
  [EnterpriseConfigureType.Bank]: '银行信息配置',
  // [EnterpriseConfigureType.Bank]: '银行信息配置',
  [EnterpriseConfigureType.Electronic]: '电子签配置',
  [EnterpriseConfigureType.ShortMessage]: '短信通道配置',
};
export enum FlexEnterpriseSettingStatus {
  /**
   * 未配置
   */
  NotSetting = -10,
  /**
   * 已配置
   */
  IsSetting = 10,
}
export const FlexEnterpriseSettingStatusText = {
  [FlexEnterpriseSettingStatus.NotSetting]: '未配置',
  [FlexEnterpriseSettingStatus.IsSetting]: '已配置',
};
export enum VerifyStatus {
@@ -71,36 +55,13 @@
  [FlexEnterpriseCertificationStatus.HasCertification]: '已认证',
};
export enum MessageChannelEnum {
  /**
   * 阿里云
   */
  Alipay = 10,
  /**
   * 网易
   */
  NetEasy = 20,
}
export const MessageChannelEnumText = {
  [MessageChannelEnum.Alipay]: '阿里云',
  [MessageChannelEnum.NetEasy]: '网易',
export const EnumSmsAccessText = {
  [EnumSmsAccess.AliyunSms]: '阿里云',
};
export enum SignChannelEnum {
  /**
   * 上上签
   */
  BestSign = 10,
  /**
   * 支付宝电子签
   */
  Alipay = 20,
}
export const SignChannelEnumText = {
  [SignChannelEnum.BestSign]: '上上签',
  [SignChannelEnum.Alipay]: '支付宝电子签',
export const EnumRealAccessText = {
  [EnumRealAccess.BestSign]: '上上签',
  [EnumRealAccess.AlipaySign]: '支付宝电子签',
};
export enum ChargeTypeEnum {
@@ -118,3 +79,12 @@
  [ChargeTypeEnum.Group]: '组合计费',
  [ChargeTypeEnum.Merge]: '一口价',
};
export const IsRealText = {
  false: '未实名',
  true: '已实名',
};
export const IsConfiguredText = {
  false: '未配置',
  true: '已配置',
};
src/hooks/dic.ts
@@ -11,15 +11,14 @@
        fieldNamesMap: x.data.fieldNames ? JSON.parse(x.data.fieldNames) : {},
      }));
    },
    placeholderData: () =>
      [] as API.SelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOption[],
    placeholderData: () => [] as API.SelectOptionGuidGetDictionaryCategorySelectQueryOption[],
  });
  const queryClient = useQueryClient();
  function ensureQueryData() {
    return queryClient.ensureQueryData<
      API.SelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOption[]
      API.SelectOptionGuidGetDictionaryCategorySelectQueryOption[]
    >({
      queryKey: ['dictionaryServices/getDictionaryCategorySelect'],
    });
@@ -77,8 +76,7 @@
        code: x.data?.code ?? '',
      }));
    },
    placeholderData: () =>
      [] as API.SelectQueryResultOptionGuidGetDictionaryDataSelectQueryResultOption[],
    placeholderData: () => [] as API.SelectOptionGuidGetDictionaryDataSelectQueryResultOption[],
  });
  function getDictionaryDataNameById(id: string) {
@@ -97,15 +95,15 @@
  function ensureQueryData() {
    return queryClient.ensureQueryData<
      API.SelectQueryResultOptionGuidGetDictionaryDataSelectQueryResultOption[]
      API.SelectOptionGuidGetDictionaryDataSelectQueryResultOption[]
    >({
      queryKey: ['dictionaryServices/getDictionaryDataSelect'],
    });
  }
  function updateDictionaryDataSelect() {
  function updateDictionaryDataSelect(categoryId?: string) {
    queryClient.invalidateQueries({
      queryKey: ['dictionaryServices/getDictionaryDataSelect'],
      queryKey: ['dictionaryServices/getDictionaryDataSelect', categoryId],
    });
  }
src/services/api/dictionary.ts
@@ -41,7 +41,7 @@
  params: API.APIgetDictionaryCategorySelectParams,
  options?: API.RequestConfig
) {
  return request<API.SelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOption[]>(
  return request<API.SelectOptionGuidGetDictionaryCategorySelectQueryOption[]>(
    '/api/main/dictionary/getDictionaryCategorySelect',
    {
      method: 'GET',
@@ -79,7 +79,7 @@
  params: API.APIgetDictionaryDataSelectParams,
  options?: API.RequestConfig
) {
  return request<API.SelectQueryResultOptionGuidGetDictionaryDataSelectQueryResultOption[]>(
  return request<API.SelectOptionGuidGetDictionaryDataSelectQueryResultOption[]>(
    '/api/main/dictionary/getDictionaryDataSelect',
    {
      method: 'GET',
src/services/api/index.ts
@@ -2,19 +2,19 @@
/* eslint-disable */
// API 更新时间:
// API 唯一标识:
import * as userInfo from './userInfo';
import * as auth from './auth';
import * as menu from './menu';
import * as dictionary from './dictionary';
import * as menu from './menu';
import * as resource from './resource';
import * as role from './role';
import * as userInfo from './userInfo';
import * as enterprise from './enterprise';
export default {
  userInfo,
  auth,
  menu,
  dictionary,
  menu,
  resource,
  role,
  userInfo,
  enterprise,
};
src/services/api/typings.d.ts
@@ -454,7 +454,7 @@
    timestamp?: number;
  }
  interface FriendlyResultListSelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOption {
  interface FriendlyResultListSelectOptionGuidGetDictionaryCategorySelectQueryOption {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
@@ -462,7 +462,7 @@
    /** 错误码 */
    errorCode?: string;
    /** 数据 */
    data?: SelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOption[];
    data?: SelectOptionGuidGetDictionaryCategorySelectQueryOption[];
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -473,7 +473,7 @@
    timestamp?: number;
  }
  interface FriendlyResultListSelectQueryResultOptionGuidGetDictionaryDataSelectQueryResultOption {
  interface FriendlyResultListSelectOptionGuidGetDictionaryDataSelectQueryResultOption {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
@@ -481,7 +481,7 @@
    /** 错误码 */
    errorCode?: string;
    /** 数据 */
    data?: SelectQueryResultOptionGuidGetDictionaryDataSelectQueryResultOption[];
    data?: SelectOptionGuidGetDictionaryDataSelectQueryResultOption[];
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -697,10 +697,16 @@
    legalPerson?: string;
    /** 法人身份证号 */
    legalIdentity?: string;
    /** 所在省份Id */
    provinceId?: string;
    /** 所在省份 */
    provinceContent?: string;
    /** 所在城市Id */
    cityId?: string;
    /** 所在城市 */
    cityContent?: string;
    /** 所属行业Id */
    industryTypeId?: string;
    /** 所属行业 */
    industryTypeContent?: string;
    /** 主营业务 */
@@ -1095,12 +1101,14 @@
  interface SaveDictionaryDataCommand {
    /** Id */
    id?: string;
    /** 类别Id */
    /** 类别Id(Id/编号二选一) */
    categoryId?: string;
    /** 类别编号(Id/编号二选一) */
    categoryCode?: string;
    /** 上级Id */
    parentId?: string;
    /** 编号 */
    code?: string;
    code: string;
    /** 显示内容 */
    content: string;
    /** 字段1 */
@@ -1291,7 +1299,7 @@
    resources?: GetRoleQueryResultResource[];
  }
  interface SelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOption {
  interface SelectOptionGuidGetDictionaryCategorySelectQueryOption {
    /** 值 */
    value?: string;
    /** 标签 */
@@ -1300,7 +1308,7 @@
    data?: any;
  }
  interface SelectQueryResultOptionGuidGetDictionaryDataSelectQueryResultOption {
  interface SelectOptionGuidGetDictionaryDataSelectQueryResultOption {
    /** 值 */
    value?: string;
    /** 标签 */
src/store/modules/user.ts
@@ -68,6 +68,7 @@
        },
        {
          showLoading: false,
          skipErrorHandler: true,
        }
      );
      if (res) {
src/views/DictionaryManage/DataDictionary.vue
@@ -178,7 +178,9 @@
    isDisabled: false,
    field1: '',
    field2: [] as UploadUserFile[],
    title: '新增字典',
  },
  editTitle: '编辑字典',
});
async function handleAddOrEdit() {
@@ -198,7 +200,7 @@
    let res = await dictionaryServices.saveDictionaryData(params);
    if (res) {
      Message.successMessage('操作成功');
      updateDictionaryDataSelect();
      updateDictionaryDataSelect(editForm.categoryId);
      getList(paginationState.pageIndex);
      dialogState.dialogVisible = false;
    }
@@ -213,6 +215,7 @@
      isDisabled: !row.isDisabled,
    };
    let res = await dictionaryServices.setDictionaryDataIsDisabled(params);
    updateDictionaryDataSelect(row.categoryId);
    getList(paginationState.pageIndex);
    return !!res;
  } catch (error) {}
src/views/DictionaryManage/DictionaryCategoryManage.vue
@@ -161,6 +161,7 @@
    let res = await dictionaryServices.deleteDictionaryCategory(params);
    if (res) {
      Message.successMessage('操作成功');
      updateDictionaryCategorySelect();
      getList(paginationState.pageIndex);
    }
  } catch (error) {}
src/views/DictionaryManage/components/AddOrEditDictionaryDialog.vue
@@ -1,6 +1,6 @@
<template>
  <ProDialog
    :title="`${title}字典`"
    :title="form.title"
    v-model="visible"
    @close="onDialogClose"
    destroy-on-close
@@ -36,7 +36,7 @@
        ></ProFormInputNumber>
      </ProFormItemV2>
      <ProFormItemV2 label="编号:" prop="code" :check-rules="[{ message: '请输入编号' }]">
        <ProFormText v-model.trim="form.code"></ProFormText>
        <ProFormText v-model.trim="form.code" :disabled="!!form.id"></ProFormText>
      </ProFormItemV2>
      <ProFormItemV2
        label="图片:"
@@ -85,6 +85,7 @@
});
type Form = {
  title?: string;
  id?: string;
  categoryId: string;
  content: string;
@@ -98,29 +99,15 @@
const form = defineModel<Form>('form');
const visible = defineModel<boolean>('modelValue');
const title = computed(() => (form.value.id ? '编辑' : '新增'));
const { getDictionaryCategoryById } = useGetDictionaryCategorySelect();
const { dictionaryDataList, refetch, getDictionaryDataNameById } = useDictionaryDataSelect({
const { dictionaryDataList } = useDictionaryDataSelect({
  categoryCode: computed(() => CategoryCode.IndustryCategory),
});
const category = computed(() => {
  return getDictionaryCategoryById(form.value.categoryId);
});
watch(
  () => visible.value,
  (value) => {
    if (value) {
      refetch();
    }
  },
  {
    immediate: true,
  }
);
const emit = defineEmits<{
  (e: 'onConfirm'): void;
src/views/EnterpriseManage/EnterpriseManageList.vue
@@ -6,16 +6,7 @@
          <QueryFilterItem tip-content="配置状态">
            <FieldRadio
              v-model="extraParamState.isConfigured"
              :value-enum="[
                {
                  value: true,
                  label: '已配置',
                },
                {
                  value: false,
                  label: '未配置',
                },
              ]"
              :value-enum="IsConfiguredText"
              buttonStyle
              showAllBtn
              @change="getList()"
@@ -24,7 +15,7 @@
          <QueryFilterItem>
            <SearchInput
              v-model="extraParamState.keywords"
              style="width: 200px"
              style="width: 300px"
              placeholder="企业名称/法人/联系人"
              @on-click-search="getList"
              @keyup.enter="getList()"
@@ -45,7 +36,7 @@
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
      </ProTableV2>
    </AppContainer>
    <!-- <ConfigureDialog v-bind="dialogProps" /> -->
    <ConfigureDialog v-bind="dialogProps" />
  </LoadingLayout>
</template>
@@ -63,7 +54,7 @@
  FieldRadio,
} from '@bole-core/components';
import { useAccess, useGlobalEventContext } from '@/hooks';
import { EnterpriseConfigureType } from '@/constants';
import { EnterpriseConfigureType, IsConfiguredText } from '@/constants';
import ConfigureDialog from './components/ConfigureDialog.vue';
import { Message } from '@bole-core/core';
import * as enterpriseServices from '@/services/api/enterprise';
@@ -138,18 +129,47 @@
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
      isConfigured: '' as any as boolean,
    },
    queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'],
    columnsRenderProps: {},
    queryKey: ['enterpriseServices/getEnterprises'],
    columnsRenderProps: {
      isReal: { type: 'enum', valueEnum: IsRealText },
      isConfigured: { type: 'enum', valueEnum: IsConfiguredText },
    },
  }
);
function openDialog(row?: API.GetEnterprisesQueryResultItem) {
async function getEnterpriseElectronSignSetting(id: string) {
  try {
    return await enterpriseServices.getEnterpriseElectronSignSetting({ id: id });
  } catch (error) {}
}
async function getEnterpriseSmsSetting(id: string) {
  try {
    return await enterpriseServices.getEnterpriseSmsSetting({ id: id });
  } catch (error) {}
}
async function openDialog(row?: API.GetEnterprisesQueryResultItem) {
  if (row) {
    let electronSignSetting = await getEnterpriseElectronSignSetting(row.id);
    let smsSetting = await getEnterpriseSmsSetting(row.id);
    handleEdit({
      id: row.id,
      enterpriseConfigureType: EnterpriseConfigureType.Electronic,
      realAccess: electronSignSetting.realAccess,
      realVerifyCost: electronSignSetting.realVerifyCost,
      signCost: electronSignSetting.signCost,
      mergeSignCost: electronSignSetting.mergeSignCost,
      smsAccess: smsSetting.smsAccess,
      chargeType: ChargeTypeEnum.Group,
      smsCost: smsSetting.smsCost,
    });
  } else {
    handleAdd();
    handleAdd({
      enterpriseConfigureType: EnterpriseConfigureType.Electronic,
      chargeType: ChargeTypeEnum.Group,
    });
  }
}
@@ -157,19 +177,27 @@
  onConfirm: handleAddOrEdit,
  defaultFormParams: {
    id: '',
    enterpriseConfigureType: EnterpriseConfigureType.Electronic,
    realAccess: '' as any as EnumRealAccess,
    realVerifyCost: 0,
    signCost: 0,
    mergeSignCost: 0,
    chargeType: ChargeTypeEnum.Group,
    smsAccess: '' as any as EnumSmsAccess,
    smsCost: 0,
  },
});
async function handleAddOrEdit(type: EnterpriseConfigureType) {
async function handleAddOrEdit() {
  try {
    let res;
    // if (type === EnterpriseConfigureType.Bank) {
    //   res = await createOrEditFlexEnterpriseBankSetting();
    // }
    if (type === EnterpriseConfigureType.Electronic) {
    if (editForm.enterpriseConfigureType === EnterpriseConfigureType.Electronic) {
      res = await createOrEditFlexEnterpriseSignSetting();
    }
    if (type === EnterpriseConfigureType.ShortMessage) {
    if (editForm.enterpriseConfigureType === EnterpriseConfigureType.ShortMessage) {
      res = await createOrEditFlexEnterpriseMessageSetting();
    }
    if (res) {
@@ -197,6 +225,10 @@
  try {
    let params: API.SetEnterpriseElectronSignSettingCommand = {
      id: editForm.id,
      realAccess: editForm.realAccess,
      realVerifyCost: editForm.realVerifyCost,
      signCost: editForm.signCost,
      mergeSignCost: editForm.mergeSignCost,
    };
    return await enterpriseServices.setEnterpriseElectronSignSetting(params);
  } catch (error) {}
@@ -205,6 +237,8 @@
  try {
    let params: API.SetEnterpriseSmsSettingCommand = {
      id: editForm.id,
      smsAccess: editForm.smsAccess,
      smsCost: editForm.smsCost,
    };
    return await enterpriseServices.setEnterpriseSmsSetting(params);
  } catch (error) {}
src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue
@@ -4,7 +4,7 @@
      <ChunkCell title="企业基本信息">
        <ProForm :model="form" ref="formRef" label-width="140px" :is-read="isDetail">
          <ProFormCol>
            <ProFormColItem :span="12">
            <ProFormColItem :span="8">
              <ProFormItemV2
                label="企业名称:"
                prop="enterpriseName"
@@ -17,9 +17,7 @@
                />
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
            <ProFormColItem :span="8">
              <ProFormItemV2 label="法人姓名:" prop="legalPerson">
                <ProFormText
                  v-model.trim="form.legalPerson"
@@ -28,9 +26,7 @@
                />
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
            <ProFormColItem :span="8">
              <ProFormItemV2 label="法人身份证号:" prop="legalIdentity">
                <ProFormText
                  v-model.trim="form.legalIdentity"
@@ -41,7 +37,7 @@
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
            <ProFormColItem :span="8">
              <ProFormItemV2
                label="统一社会信用代码:"
                prop="societyCreditCode"
@@ -53,40 +49,31 @@
                />
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="所在省份:" prop="proviceId">
                <ProFormText
                  v-model.trim="form.proviceId"
                  :maxlength="30"
                  placeholder="请输入所在省份"
            <!-- <ProFormColItem :span="8">
              <ProFormItemV2
                label="所在地区:"
                prop="areaList"
                :check-rules="[
                  {
                    type: 'array',
                    message: '请选择',
                  },
                ]"
              >
                <ProFromAddressSelectV2
                  v-model:areaList="form.areaList"
                  areaListPlaceholder="请选择"
                />
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
            </ProFormColItem> -->
            <ProFormColItem :span="8">
              <ProFormItemV2 label="所属行业:" prop="industryTypeId">
                <ProFormSelect
                  v-model="form.industryTypeId"
                  placeholder="请选择所属行业"
                  :value-enum="typeList"
                  enum-value-key="id"
                  enum-label-key="name"
                  :value-enum="dictionaryDataList"
                  clearable
                ></ProFormSelect>
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="所在城市:" prop="cityId">
                <ProFormText
                  v-model.trim="form.cityId"
                  :maxlength="30"
                  placeholder="请输入所在城市"
                />
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
@@ -162,7 +149,7 @@
          :is-read="isDetail"
        >
          <ProFormCol>
            <ProFormColItem :span="12">
            <ProFormColItem :span="8">
              <ProFormItemV2
                label="账号:"
                prop="userName"
@@ -172,6 +159,19 @@
                  v-model.trim="form.userName"
                  :maxlength="30"
                  placeholder="请输入账号"
                />
              </ProFormItemV2>
            </ProFormColItem>
            <ProFormColItem :span="8" v-if="!isEdit">
              <ProFormItemV2
                label="密码:"
                prop="password"
                :check-rules="[{ message: '请输入密码' }]"
              >
                <ProFormText
                  v-model.trim="form.password"
                  :maxlength="30"
                  placeholder="请输入密码"
                />
              </ProFormItemV2>
            </ProFormColItem>
@@ -210,25 +210,25 @@
type Props = {
  isDetail: boolean;
  id?: string;
  emitAddEvent?: keyof GlobalEvent;
  emitEditEvent?: keyof GlobalEvent;
  backRouteName?: string;
};
const props = withDefaults(defineProps<Props>(), {
  id: '',
  emitAddEvent: 'enterprise:add',
  emitEditEvent: 'enterprise:edit',
  backRouteName: 'EnterpriseManageList',
});
const route = useRoute();
const isEdit = computed(() => !!props.id);
const id = route.params.id as string;
const isEdit = computed(() => !!id);
const { dictionaryDataList } = useDictionaryDataSelect({
  categoryCode: computed(() => CategoryCode.IndustryCategory),
});
const { closeViewPush } = useRouteView();
const eventContext = useGlobalEventContext();
const typeList = ref([]);
const form = reactive({
  id: '',
@@ -238,28 +238,40 @@
  societyCreditCode: '',
  industryTypeId: '',
  mainBusiness: '',
  proviceId: '',
  cityId: '',
  areaList: [130000, 131000] as number[],
  contacts: '',
  contactPhoneNumber: '',
  contactEmail: '',
  userName: '',
  password: '',
});
onMounted(async () => {});
const { isLoading } = useQuery({
  queryKey: ['enterpriseServices/getEnterprise', props.id],
  queryKey: ['enterpriseServices/getEnterprise', id],
  queryFn: async () => {
    return await enterpriseServices.getEnterprise(
      { id: props.id },
      { id: id },
      {
        showLoading: false,
      }
    );
  },
  onSuccess(data) {},
  enabled: computed(() => !!props.id),
  onSuccess(data) {
    form.id = data.id;
    form.enterpriseName = data.enterpriseName;
    form.legalPerson = data.legalPerson;
    form.legalIdentity = data.legalIdentity;
    form.societyCreditCode = data.societyCreditCode;
    form.industryTypeId = data.industryTypeId;
    form.mainBusiness = data.mainBusiness;
    form.contacts = data.contacts;
    form.contactPhoneNumber = data.contactPhoneNumber;
    form.contactEmail = data.contactEmail;
    form.userName = data.userName;
  },
  enabled: computed(() => !!id),
});
const formRef = ref<FormInstance>();
@@ -286,17 +298,18 @@
      legalPerson: form.legalPerson,
      legalIdentity: form.legalIdentity,
      societyCreditCode: form.societyCreditCode,
      provinceId: form.proviceId,
      cityId: form.cityId,
      provinceId: '',
      cityId: '',
      industryTypeId: form.industryTypeId,
      mainBusiness: form.mainBusiness,
      contacts: form.contacts,
      contactPhoneNumber: form.contactPhoneNumber,
      contactEmail: form.contactEmail,
      userName: form.userName,
      password: form.password,
    };
    if (isEdit.value) {
      params.id = props.id;
      params.id = id;
    }
    let res = await enterpriseServices.saveEnterprise(params);
    if (res) {
src/views/EnterpriseManage/components/ConfigureDialog.vue
@@ -1,24 +1,24 @@
<template>
  <ProDialog title="配置" v-model="innerVisible" @close="onDialogClose" destroy-on-close draggable>
    <ProForm :model="innerForm" ref="dialogForm" label-width="100px">
  <ProDialog title="配置" v-model="visible" @close="onDialogClose" destroy-on-close draggable>
    <ProForm :model="form" ref="dialogForm" label-width="100px">
      <ProFormItemV2 label="" prop="enterpriseConfigureType" label-width="0">
        <ProFormRadio
          v-model="innerForm.enterpriseConfigureType"
          v-model="form.enterpriseConfigureType"
          :value-enum="EnterpriseConfigureTypeText"
          buttonStyle
        />
      </ProFormItemV2>
      <template v-if="innerForm.enterpriseConfigureType === EnterpriseConfigureType.Bank">
      <!-- <template v-if="form.enterpriseConfigureType === EnterpriseConfigureType.Bank">
        <ProFormItemV2 label="开户总行:" prop="openBank">
          <ProFormText
            v-model.trim="innerForm.openBank"
            v-model.trim="form.openBank"
            placeholder="请输入开户总行"
            :maxlength="40"
          />
        </ProFormItemV2>
        <ProFormItemV2 label="开户支行:" prop="openBranchBank">
          <ProFormText
            v-model.trim="innerForm.openBranchBank"
            v-model.trim="form.openBranchBank"
            placeholder="请输入开户支行"
            :maxlength="40"
          />
@@ -31,25 +31,25 @@
            { message: '银行账户仅支持数字', pattern: BoleRegExp.RegNumber },
          ]"
        >
          <ProFormText v-model.trim="innerForm.bankAccount" placeholder="请输入银行账户" />
          <ProFormText v-model.trim="form.bankAccount" placeholder="请输入银行账户" />
        </ProFormItemV2>
        <ProFormItemV2 label="银行账户:" prop="verifyStatus">
          {{ VerifyStatusText[innerForm.verifyStatus] }}
          {{ VerifyStatusText[form.verifyStatus] }}
          <el-button style="margin-left: 40px" type="primary" link @click="handleCheckBankAccount"
            >校验</el-button
          >
        </ProFormItemV2>
      </template>
      <template v-if="innerForm.enterpriseConfigureType === EnterpriseConfigureType.Electronic">
      </template> -->
      <template v-if="form.enterpriseConfigureType === EnterpriseConfigureType.Electronic">
        <div class="configure-dialog-form-title">通道配置</div>
        <ProFormItemV2
          label="名称:"
          prop="signChannel"
          prop="realAccess"
          :checkRules="[{ message: '请选择电子签通道' }]"
        >
          <ProFormSelect
            v-model="form.signChannel"
            :valueEnum="SignChannelEnumText"
            v-model="form.realAccess"
            :valueEnum="EnumRealAccessText"
            placeholder="请选择电子签通道"
          >
          </ProFormSelect>
@@ -62,15 +62,15 @@
        >
          <ProFormRadio
            :button-style="false"
            v-model="innerForm.chargeType"
            v-model="form.chargeType"
            :value-enum="ChargeTypeEnumText"
          />
        </ProFormItemV2>
        <template v-if="innerForm.chargeType === ChargeTypeEnum.Group">
        <template v-if="form.chargeType === ChargeTypeEnum.Group">
          <ProFormItemV2 label="实名费用:" prop="realVerifyCost">
            <ProFormInputNumber
              :controls="false"
              v-model="innerForm.realVerifyCost"
              v-model="form.realVerifyCost"
              placeholder="请输入"
              unit="元/条"
            />
@@ -78,25 +78,25 @@
          <ProFormItemV2 label="签约费用:" prop="signCost">
            <ProFormInputNumber
              :controls="false"
              v-model="innerForm.signCost"
              v-model="form.signCost"
              placeholder="请输入"
              unit="元/份"
            />
          </ProFormItemV2>
        </template>
        <template v-if="innerForm.chargeType === ChargeTypeEnum.Merge">
        <template v-if="form.chargeType === ChargeTypeEnum.Merge">
          <ProFormItemV2 label="统一电子签:" prop="mergeSignCost">
            <ProFormInputNumber
              :controls="false"
              v-model="innerForm.mergeSignCost"
              v-model="form.mergeSignCost"
              placeholder="请输入"
              unit="元/份"
            />
          </ProFormItemV2>
        </template>
      </template>
      <template v-if="innerForm.enterpriseConfigureType === EnterpriseConfigureType.ShortMessage">
        <div class="configure-dialog-form-title">通道配置</div>
      <template v-if="form.enterpriseConfigureType === EnterpriseConfigureType.ShortMessage">
        <!-- <div class="configure-dialog-form-title">通道配置</div>
        <ProFormItemV2
          label="名称:"
          prop="messageChannel"
@@ -104,16 +104,16 @@
        >
          <ProFormSelect
            v-model="form.messageChannel"
            :valueEnum="MessageChannelEnumText"
            :valueEnum="EnumSmsAccessText"
            placeholder="请选择短信通道"
          >
          </ProFormSelect>
        </ProFormItemV2>
        </ProFormItemV2> -->
        <div class="configure-dialog-form-title">费用配置</div>
        <ProFormItemV2 label="短信费用:" prop="messageCost">
        <ProFormItemV2 label="短信费用:" prop="smsCost">
          <ProFormInputNumber
            :controls="false"
            v-model="innerForm.messageCost"
            v-model="form.smsCost"
            placeholder="请输入"
            unit="元/条"
          />
@@ -146,66 +146,41 @@
  EnterpriseConfigureTypeText,
  ChargeTypeEnum,
  ChargeTypeEnumText,
  SignChannelEnum,
  SignChannelEnumText,
  EnumRealAccessText,
  VerifyStatusText,
  VerifyStatus,
  MessageChannelEnum,
  MessageChannelEnumText,
  EnumSmsAccessText,
  EnumRealAccess,
} from '@/constants';
defineOptions({
  name: 'ConfigureDialog',
});
type Props = {
  modelValue: boolean;
  form?: {
    enterpriseConfigureType: EnterpriseConfigureType;
    openBank: string;
    openBranchBank: string;
    bankAccount: string;
    verifyStatus: VerifyStatus;
    signChannel: SignChannelEnum;
    chargeType: ChargeTypeEnum;
    realVerifyCost: number;
    signCost: number;
    mergeSignCost: number;
    messageCost: number;
    messageChannel: MessageChannelEnum;
  };
type Form = {
  enterpriseConfigureType: EnterpriseConfigureType;
  // openBank: string;
  // openBranchBank: string;
  // bankAccount: string;
  // verifyStatus: VerifyStatus;
  chargeType: ChargeTypeEnum;
  realAccess: EnumRealAccess;
  realVerifyCost: number;
  signCost: number;
  mergeSignCost: number;
  smsAccess: EnumSmsAccess;
  smsCost: number;
};
const props = withDefaults(defineProps<Props>(), {
  modelValue: false,
});
const form = defineModel<Form>('form');
const visible = defineModel({ type: Boolean });
const emit = defineEmits<{
  (e: 'update:modelValue', value: boolean): void;
  (e: 'update:form', value: Props['form']): void;
  (e: 'onConfirm'): 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() {}
types/api.d.ts
@@ -18,12 +18,12 @@
    field1?:string
  }
  interface SelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOption{
  interface SelectOptionGuidGetDictionaryCategorySelectQueryOption{
    fieldNamesMap?: SelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOptionMap;
    code?:string
  }
  interface SelectQueryResultOptionGuidGetDictionaryDataSelectQueryResultOption{
  interface SelectOptionGuidGetDictionaryDataSelectQueryResultOption{
    code?:string
  }