zhengyiming
9 天以前 19fb7e7af8464bc88088d8bbc80c481752827994
fix: 修改底层
3个文件已添加
3个文件已删除
34个文件已修改
1844 ■■■■■ 已修改文件
.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.eslintrc-auto-import.json 100 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
auto-imports.d.ts 247 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
build/plugins.ts 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pnpm-lock.yaml 317 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Dialog/ConfigureInsureProductDialog.vue 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/CheckboxWithCustomize.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/apiEnum.ts 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/dic.ts 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/useAccess.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/useUser.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/auth.ts 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/dictionary.ts 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/index.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/menu.ts 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/resource.ts 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 394 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/permission.ts 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/subModuleStore.ts 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/user.ts 120 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/common/categoryUtils.ts 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/common/encrypt.ts 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/common/index.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/oss/index.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/request/index.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/storage/auth.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Account/AccountManageList.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CPersonManage/CPersonManageList.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CPersonManage/components/CPersonDetailDialog.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/DictionaryManage/SearchSetting.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/EnterpriseManageList.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Login/Login.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/OperationManage/OperationManageList.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Permission/RoleManage.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Permission/components/dialogAuthorize.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/System/ModuleManage.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/TaskManage/TaskManageList.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vite.config.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.development
@@ -11,7 +11,7 @@
VITE_ROUTER_HISTORY = "h5"
# 开发环境后端地址
VITE_PROXY_DOMAIN_REAL = "http://localhost:44340"
VITE_PROXY_DOMAIN_REAL = "http://localhost:44340/"
# VITE_PROXY_DOMAIN_REAL = "http://118.178.252.28:8752/"
.eslintrc-auto-import.json
@@ -1,14 +1,91 @@
{
  "globals": {
    "CommonAnnexTableColumns": true,
    "AppType": true,
    "AreaType": true,
    "AuthorizeType": true,
    "BooleanOptions": true,
    "ChargeTypeEnum": true,
    "ChargeTypeEnumText": true,
    "Component": true,
    "ComponentPublicInstance": true,
    "ComputedRef": true,
    "DataRangeEnum": true,
    "DataRangeEnumText": true,
    "DirectiveBinding": true,
    "EditorType": true,
    "EditorTypeText": true,
    "EffectScope": true,
    "EmptyTextEditorItem": true,
    "EnterpriseConfigureType": true,
    "EnterpriseConfigureTypeText": true,
    "EnumClientType": true,
    "EnumMenuType": true,
    "EnumMenuVisitLevel": true,
    "EnumPagedListOrder": true,
    "EnumUserType": true,
    "EnumWebApiMethod": true,
    "ExtractDefaultPropTypes": true,
    "ExtractPropTypes": true,
    "ExtractPublicPropTypes": true,
    "FastBtn": true,
    "FastButtonMap": true,
    "FastColumnList": true,
    "FastDataButtonList": true,
    "FastPageButtonList": true,
    "FlexEnterpriseCertificationStatus": true,
    "FlexEnterpriseCertificationStatusText": true,
    "FlexEnterpriseSettingStatus": true,
    "FlexEnterpriseSettingStatusText": true,
    "FlexEnterpriseStatus": true,
    "FlexEnterpriseStatusText": true,
    "FlexTaskWorkerHireEnum": true,
    "FlexTaskWorkerHireEnumText": true,
    "FlexWorkerEleSignEnum": true,
    "FlexWorkerEleSignEnumText": true,
    "Gender": true,
    "GenderText": true,
    "InjectionKey": true,
    "MaybeRef": true,
    "MaybeRefOrGetter": true,
    "MenuSvgIconMap": true,
    "MessageChannelEnum": true,
    "MessageChannelEnumText": true,
    "ModuleColumns": true,
    "MyRegExp": true,
    "OSSBaseURL": true,
    "OssAdvertise": true,
    "OssAssets": true,
    "OssCover": true,
    "OssEnterprise": true,
    "OssHRSIE": true,
    "OssInsure": true,
    "OssNews": true,
    "OssPlatformService": true,
    "OssReview": true,
    "OssRich": true,
    "OssUser": true,
    "OssUserSign": true,
    "PropType": true,
    "Ref": true,
    "RoleClientType": true,
    "SearchType": true,
    "SearchTypeText": true,
    "SignChannelEnum": true,
    "SignChannelEnumText": true,
    "Slot": true,
    "Slots": true,
    "SubModuleKey": true,
    "SubModuleTitle": true,
    "SubModuleType": true,
    "ThemeColorItem": true,
    "ThemeColorName": true,
    "ThemeColors": true,
    "ThemeColorsType": true,
    "VNode": true,
    "VerifyStatus": true,
    "VerifyStatusColor": true,
    "VerifyStatusText": true,
    "WritableComputedRef": true,
    "acceptHMRUpdate": true,
    "computed": true,
    "createApp": true,
@@ -33,6 +110,7 @@
    "mapStores": true,
    "mapWritableState": true,
    "markRaw": true,
    "myClient": true,
    "nextTick": true,
    "onActivated": true,
    "onBeforeMount": true,
@@ -49,6 +127,7 @@
    "onServerPrefetch": true,
    "onUnmounted": true,
    "onUpdated": true,
    "onWatcherCleanup": true,
    "provide": true,
    "reactive": true,
    "readonly": true,
@@ -63,33 +142,24 @@
    "toRaw": true,
    "toRef": true,
    "toRefs": true,
    "toValue": true,
    "triggerRef": true,
    "unref": true,
    "useAttrs": true,
    "useCssModule": true,
    "useCssVars": true,
    "useId": true,
    "useLink": true,
    "useLoading": true,
    "useModel": true,
    "useRoute": true,
    "useRouter": true,
    "useSetReactive": true,
    "useSlots": true,
    "useTemplateRef": true,
    "watch": true,
    "watchEffect": true,
    "watchPostEffect": true,
    "watchSyncEffect": true,
    "DirectiveBinding": true,
    "ExtractDefaultPropTypes": true,
    "ExtractPropTypes": true,
    "ExtractPublicPropTypes": true,
    "MaybeRef": true,
    "MaybeRefOrGetter": true,
    "WritableComputedRef": true,
    "onWatcherCleanup": true,
    "toValue": true,
    "useId": true,
    "useModel": true,
    "useTemplateRef": true,
    "ElMessageBox": true
    "watchSyncEffect": true
  }
}
auto-imports.d.ts
@@ -6,9 +6,74 @@
// biome-ignore lint: disable
export {}
declare global {
  const AppType: typeof import('./src/constants/app')['AppType']
  const AreaType: typeof import('./src/constants/enum')['AreaType']
  const AuthorizeType: typeof import('./src/constants/enum')['AuthorizeType']
  const BooleanOptions: typeof import('./src/constants/enum')['BooleanOptions']
  const ChargeTypeEnum: typeof import('./src/constants/enterprise')['ChargeTypeEnum']
  const ChargeTypeEnumText: typeof import('./src/constants/enterprise')['ChargeTypeEnumText']
  const CommonAnnexTableColumns: typeof import('@/constants')['CommonAnnexTableColumns']
  const DataRangeEnum: typeof import('./src/constants/enum')['DataRangeEnum']
  const DataRangeEnumText: typeof import('./src/constants/enum')['DataRangeEnumText']
  const EditorType: typeof import('./src/constants/editor')['EditorType']
  const EditorTypeText: typeof import('./src/constants/editor')['EditorTypeText']
  const EffectScope: typeof import('vue')['EffectScope']
  const ElMessageBox: typeof import('element-plus/es')['ElMessageBox']
  const EmptyTextEditorItem: typeof import('./src/constants/editor')['EmptyTextEditorItem']
  const EnterpriseConfigureType: typeof import('./src/constants/enterprise')['EnterpriseConfigureType']
  const EnterpriseConfigureTypeText: typeof import('./src/constants/enterprise')['EnterpriseConfigureTypeText']
  const EnumClientType: typeof import('./src/constants/apiEnum')['EnumClientType']
  const EnumMenuType: typeof import('./src/constants/apiEnum')['EnumMenuType']
  const EnumMenuVisitLevel: typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel']
  const EnumPagedListOrder: typeof import('./src/constants/apiEnum')['EnumPagedListOrder']
  const EnumUserType: typeof import('./src/constants/apiEnum')['EnumUserType']
  const EnumWebApiMethod: typeof import('./src/constants/apiEnum')['EnumWebApiMethod']
  const FastButtonMap: typeof import('./src/constants/module')['FastButtonMap']
  const FastColumnList: typeof import('./src/constants/module')['FastColumnList']
  const FastDataButtonList: typeof import('./src/constants/module')['FastDataButtonList']
  const FastPageButtonList: typeof import('./src/constants/module')['FastPageButtonList']
  const FlexEnterpriseCertificationStatus: typeof import('./src/constants/enterprise')['FlexEnterpriseCertificationStatus']
  const FlexEnterpriseCertificationStatusText: typeof import('./src/constants/enterprise')['FlexEnterpriseCertificationStatusText']
  const FlexEnterpriseSettingStatus: typeof import('./src/constants/enterprise')['FlexEnterpriseSettingStatus']
  const FlexEnterpriseSettingStatusText: typeof import('./src/constants/enterprise')['FlexEnterpriseSettingStatusText']
  const FlexEnterpriseStatus: typeof import('./src/constants/enterprise')['FlexEnterpriseStatus']
  const FlexEnterpriseStatusText: typeof import('./src/constants/enterprise')['FlexEnterpriseStatusText']
  const FlexTaskWorkerHireEnum: typeof import('./src/constants/cPerson')['FlexTaskWorkerHireEnum']
  const FlexTaskWorkerHireEnumText: typeof import('./src/constants/cPerson')['FlexTaskWorkerHireEnumText']
  const FlexWorkerEleSignEnum: typeof import('./src/constants/cPerson')['FlexWorkerEleSignEnum']
  const FlexWorkerEleSignEnumText: typeof import('./src/constants/cPerson')['FlexWorkerEleSignEnumText']
  const Gender: typeof import('./src/constants/enum')['Gender']
  const GenderText: typeof import('./src/constants/enum')['GenderText']
  const MenuSvgIconMap: typeof import('./src/constants/menu')['MenuSvgIconMap']
  const MessageChannelEnum: typeof import('./src/constants/enterprise')['MessageChannelEnum']
  const MessageChannelEnumText: typeof import('./src/constants/enterprise')['MessageChannelEnumText']
  const ModuleColumns: typeof import('./src/constants/module')['ModuleColumns']
  const MyRegExp: typeof import('./src/constants/regExp')['MyRegExp']
  const OSSBaseURL: typeof import('./src/constants/oss')['OSSBaseURL']
  const OssAdvertise: typeof import('./src/constants/oss')['OssAdvertise']
  const OssAssets: typeof import('./src/constants/img')['OssAssets']
  const OssCover: typeof import('./src/constants/oss')['OssCover']
  const OssEnterprise: typeof import('./src/constants/oss')['OssEnterprise']
  const OssHRSIE: typeof import('./src/constants/oss')['OssHRSIE']
  const OssInsure: typeof import('./src/constants/oss')['OssInsure']
  const OssNews: typeof import('./src/constants/oss')['OssNews']
  const OssPlatformService: typeof import('./src/constants/oss')['OssPlatformService']
  const OssReview: typeof import('./src/constants/oss')['OssReview']
  const OssRich: typeof import('./src/constants/oss')['OssRich']
  const OssUser: typeof import('./src/constants/oss')['OssUser']
  const OssUserSign: typeof import('./src/constants/oss')['OssUserSign']
  const RoleClientType: typeof import('./src/constants/role')['RoleClientType']
  const SearchType: typeof import('./src/constants/dic')['SearchType']
  const SearchTypeText: typeof import('./src/constants/dic')['SearchTypeText']
  const SignChannelEnum: typeof import('./src/constants/enterprise')['SignChannelEnum']
  const SignChannelEnumText: typeof import('./src/constants/enterprise')['SignChannelEnumText']
  const SubModuleKey: typeof import('./src/constants/module')['SubModuleKey']
  const SubModuleTitle: typeof import('./src/constants/module')['SubModuleTitle']
  const SubModuleType: typeof import('./src/constants/module')['SubModuleType']
  const ThemeColors: typeof import('./src/constants/theme')['ThemeColors']
  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 acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
  const computed: typeof import('vue')['computed']
  const createApp: typeof import('vue')['createApp']
@@ -33,6 +98,7 @@
  const mapStores: typeof import('pinia')['mapStores']
  const mapWritableState: typeof import('pinia')['mapWritableState']
  const markRaw: typeof import('vue')['markRaw']
  const myClient: typeof import('./src/constants/query')['myClient']
  const nextTick: typeof import('vue')['nextTick']
  const onActivated: typeof import('vue')['onActivated']
  const onBeforeMount: typeof import('vue')['onBeforeMount']
@@ -87,6 +153,185 @@
// for type re-export
declare global {
  // @ts-ignore
  export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
  export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
  import('vue')
  // @ts-ignore
  export type { EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumUserType, EnumWebApiMethod } from './src/constants/apiEnum'
  import('./src/constants/apiEnum')
  // @ts-ignore
  export type { FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum, FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum } from './src/constants/cPerson'
  import('./src/constants/cPerson')
  // @ts-ignore
  export type { SearchType, SearchType } 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, FlexEnterpriseStatus, VerifyStatus, FlexEnterpriseCertificationStatus, MessageChannelEnum, SignChannelEnum, ChargeTypeEnum, EnterpriseConfigureType, FlexEnterpriseSettingStatus, FlexEnterpriseStatus, VerifyStatus, FlexEnterpriseCertificationStatus, MessageChannelEnum, SignChannelEnum, ChargeTypeEnum } from './src/constants/enterprise'
  import('./src/constants/enterprise')
  // @ts-ignore
  export type { AreaType, DataRangeEnum, AuthorizeType, Gender, AreaType, DataRangeEnum, AuthorizeType, Gender } from './src/constants/enum'
  import('./src/constants/enum')
  // @ts-ignore
  export type { SubModuleType, FastBtn, SubModuleType } from './src/constants/module'
  import('./src/constants/module')
  // @ts-ignore
  export type { MyRegExp, MyRegExp } from './src/constants/regExp'
  import('./src/constants/regExp')
  // @ts-ignore
  export type { ThemeColorItem, ThemeColorName, ThemeColorsType } from './src/constants/theme'
  import('./src/constants/theme')
  // @ts-ignore
  export type { RoleClientType, RoleClientType } from './src/constants/role'
  import('./src/constants/role')
}
// for vue template auto import
import { UnwrapRef } from 'vue'
declare module 'vue' {
  interface GlobalComponents {}
  interface ComponentCustomProperties {
    readonly AppType: UnwrapRef<typeof import('./src/constants/app')['AppType']>
    readonly AreaType: UnwrapRef<typeof import('./src/constants/enum')['AreaType']>
    readonly AuthorizeType: UnwrapRef<typeof import('./src/constants/enum')['AuthorizeType']>
    readonly BooleanOptions: UnwrapRef<typeof import('./src/constants/enum')['BooleanOptions']>
    readonly ChargeTypeEnum: UnwrapRef<typeof import('./src/constants/enterprise')['ChargeTypeEnum']>
    readonly ChargeTypeEnumText: UnwrapRef<typeof import('./src/constants/enterprise')['ChargeTypeEnumText']>
    readonly DataRangeEnum: UnwrapRef<typeof import('./src/constants/enum')['DataRangeEnum']>
    readonly DataRangeEnumText: UnwrapRef<typeof import('./src/constants/enum')['DataRangeEnumText']>
    readonly EditorType: UnwrapRef<typeof import('./src/constants/editor')['EditorType']>
    readonly EditorTypeText: UnwrapRef<typeof import('./src/constants/editor')['EditorTypeText']>
    readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
    readonly EmptyTextEditorItem: UnwrapRef<typeof import('./src/constants/editor')['EmptyTextEditorItem']>
    readonly EnterpriseConfigureType: UnwrapRef<typeof import('./src/constants/enterprise')['EnterpriseConfigureType']>
    readonly EnterpriseConfigureTypeText: UnwrapRef<typeof import('./src/constants/enterprise')['EnterpriseConfigureTypeText']>
    readonly EnumClientType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumClientType']>
    readonly EnumMenuType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumMenuType']>
    readonly EnumMenuVisitLevel: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel']>
    readonly EnumPagedListOrder: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumPagedListOrder']>
    readonly EnumUserType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserType']>
    readonly EnumWebApiMethod: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumWebApiMethod']>
    readonly FastButtonMap: UnwrapRef<typeof import('./src/constants/module')['FastButtonMap']>
    readonly FastColumnList: UnwrapRef<typeof import('./src/constants/module')['FastColumnList']>
    readonly FastDataButtonList: UnwrapRef<typeof import('./src/constants/module')['FastDataButtonList']>
    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 FlexEnterpriseStatus: UnwrapRef<typeof import('./src/constants/enterprise')['FlexEnterpriseStatus']>
    readonly FlexEnterpriseStatusText: UnwrapRef<typeof import('./src/constants/enterprise')['FlexEnterpriseStatusText']>
    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']>
    readonly FlexWorkerEleSignEnumText: UnwrapRef<typeof import('./src/constants/cPerson')['FlexWorkerEleSignEnumText']>
    readonly Gender: UnwrapRef<typeof import('./src/constants/enum')['Gender']>
    readonly GenderText: UnwrapRef<typeof import('./src/constants/enum')['GenderText']>
    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']>
    readonly OssAdvertise: UnwrapRef<typeof import('./src/constants/oss')['OssAdvertise']>
    readonly OssAssets: UnwrapRef<typeof import('./src/constants/img')['OssAssets']>
    readonly OssCover: UnwrapRef<typeof import('./src/constants/oss')['OssCover']>
    readonly OssEnterprise: UnwrapRef<typeof import('./src/constants/oss')['OssEnterprise']>
    readonly OssHRSIE: UnwrapRef<typeof import('./src/constants/oss')['OssHRSIE']>
    readonly OssInsure: UnwrapRef<typeof import('./src/constants/oss')['OssInsure']>
    readonly OssNews: UnwrapRef<typeof import('./src/constants/oss')['OssNews']>
    readonly OssPlatformService: UnwrapRef<typeof import('./src/constants/oss')['OssPlatformService']>
    readonly OssReview: UnwrapRef<typeof import('./src/constants/oss')['OssReview']>
    readonly OssRich: UnwrapRef<typeof import('./src/constants/oss')['OssRich']>
    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 SearchType: UnwrapRef<typeof import('./src/constants/dic')['SearchType']>
    readonly SearchTypeText: UnwrapRef<typeof import('./src/constants/dic')['SearchTypeText']>
    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']>
    readonly ThemeColors: UnwrapRef<typeof import('./src/constants/theme')['ThemeColors']>
    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 acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']>
    readonly computed: UnwrapRef<typeof import('vue')['computed']>
    readonly createApp: UnwrapRef<typeof import('vue')['createApp']>
    readonly createPinia: UnwrapRef<typeof import('pinia')['createPinia']>
    readonly customRef: UnwrapRef<typeof import('vue')['customRef']>
    readonly defineAsyncComponent: UnwrapRef<typeof import('vue')['defineAsyncComponent']>
    readonly defineComponent: UnwrapRef<typeof import('vue')['defineComponent']>
    readonly defineStore: UnwrapRef<typeof import('pinia')['defineStore']>
    readonly effectScope: UnwrapRef<typeof import('vue')['effectScope']>
    readonly getActivePinia: UnwrapRef<typeof import('pinia')['getActivePinia']>
    readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']>
    readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']>
    readonly h: UnwrapRef<typeof import('vue')['h']>
    readonly inject: UnwrapRef<typeof import('vue')['inject']>
    readonly isProxy: UnwrapRef<typeof import('vue')['isProxy']>
    readonly isReactive: UnwrapRef<typeof import('vue')['isReactive']>
    readonly isReadonly: UnwrapRef<typeof import('vue')['isReadonly']>
    readonly isRef: UnwrapRef<typeof import('vue')['isRef']>
    readonly mapActions: UnwrapRef<typeof import('pinia')['mapActions']>
    readonly mapGetters: UnwrapRef<typeof import('pinia')['mapGetters']>
    readonly mapState: UnwrapRef<typeof import('pinia')['mapState']>
    readonly mapStores: UnwrapRef<typeof import('pinia')['mapStores']>
    readonly mapWritableState: UnwrapRef<typeof import('pinia')['mapWritableState']>
    readonly markRaw: UnwrapRef<typeof import('vue')['markRaw']>
    readonly myClient: UnwrapRef<typeof import('./src/constants/query')['myClient']>
    readonly nextTick: UnwrapRef<typeof import('vue')['nextTick']>
    readonly onActivated: UnwrapRef<typeof import('vue')['onActivated']>
    readonly onBeforeMount: UnwrapRef<typeof import('vue')['onBeforeMount']>
    readonly onBeforeRouteLeave: UnwrapRef<typeof import('vue-router')['onBeforeRouteLeave']>
    readonly onBeforeRouteUpdate: UnwrapRef<typeof import('vue-router')['onBeforeRouteUpdate']>
    readonly onBeforeUnmount: UnwrapRef<typeof import('vue')['onBeforeUnmount']>
    readonly onBeforeUpdate: UnwrapRef<typeof import('vue')['onBeforeUpdate']>
    readonly onDeactivated: UnwrapRef<typeof import('vue')['onDeactivated']>
    readonly onErrorCaptured: UnwrapRef<typeof import('vue')['onErrorCaptured']>
    readonly onMounted: UnwrapRef<typeof import('vue')['onMounted']>
    readonly onRenderTracked: UnwrapRef<typeof import('vue')['onRenderTracked']>
    readonly onRenderTriggered: UnwrapRef<typeof import('vue')['onRenderTriggered']>
    readonly onScopeDispose: UnwrapRef<typeof import('vue')['onScopeDispose']>
    readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']>
    readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']>
    readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']>
    readonly onWatcherCleanup: UnwrapRef<typeof import('vue')['onWatcherCleanup']>
    readonly provide: UnwrapRef<typeof import('vue')['provide']>
    readonly reactive: UnwrapRef<typeof import('vue')['reactive']>
    readonly readonly: UnwrapRef<typeof import('vue')['readonly']>
    readonly ref: UnwrapRef<typeof import('vue')['ref']>
    readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
    readonly setActivePinia: UnwrapRef<typeof import('pinia')['setActivePinia']>
    readonly setMapStoreSuffix: UnwrapRef<typeof import('pinia')['setMapStoreSuffix']>
    readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
    readonly shallowReadonly: UnwrapRef<typeof import('vue')['shallowReadonly']>
    readonly shallowRef: UnwrapRef<typeof import('vue')['shallowRef']>
    readonly storeToRefs: UnwrapRef<typeof import('pinia')['storeToRefs']>
    readonly toRaw: UnwrapRef<typeof import('vue')['toRaw']>
    readonly toRef: UnwrapRef<typeof import('vue')['toRef']>
    readonly toRefs: UnwrapRef<typeof import('vue')['toRefs']>
    readonly toValue: UnwrapRef<typeof import('vue')['toValue']>
    readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']>
    readonly unref: UnwrapRef<typeof import('vue')['unref']>
    readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
    readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
    readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
    readonly useId: UnwrapRef<typeof import('vue')['useId']>
    readonly useLink: UnwrapRef<typeof import('vue-router')['useLink']>
    readonly useLoading: UnwrapRef<typeof import('@/hooks/global')['useLoading']>
    readonly useModel: UnwrapRef<typeof import('vue')['useModel']>
    readonly useRoute: UnwrapRef<typeof import('vue-router')['useRoute']>
    readonly useRouter: UnwrapRef<typeof import('vue-router')['useRouter']>
    readonly useSetReactive: UnwrapRef<typeof import('@/hooks/global')['useSetReactive']>
    readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
    readonly useTemplateRef: UnwrapRef<typeof import('vue')['useTemplateRef']>
    readonly watch: UnwrapRef<typeof import('vue')['watch']>
    readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']>
    readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>
    readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']>
  }
}
build/plugins.ts
@@ -75,6 +75,12 @@
    AutoImport({
      resolvers: [ElementPlusResolver()],
      dirs: ['./src/constants'],
      // dirsScanOptions: {
      //   fileFilter: (file) => file.endsWith('.ts'), // Filter files
      //   types: true,
      // },
      vueTemplate: true,
      imports: [
        'vue',
        'pinia',
@@ -82,7 +88,6 @@
        {
          '@/hooks/global': Object.keys(hooks),
        },
        { '@/constants': ['CommonAnnexTableColumns'] },
      ],
      eslintrc: {
        enabled: true, // Default `false`
package.json
@@ -128,7 +128,7 @@
    "stylelint-scss": "^4.3.0",
    "terser": "^5.34.1",
    "typescript": "^4.6.4",
    "unplugin-auto-import": "^0.18.3",
    "unplugin-auto-import": "^19.3.0",
    "unplugin-icons": "^0.14.10",
    "unplugin-vue-components": "^0.27.4",
    "vite": "5.4.8",
pnpm-lock.yaml
@@ -48,13 +48,13 @@
    version: 4.37.1(vue@3.5.11)
  '@tencentcloud/call-uikit-vue':
    specifier: ^3.1.5
    version: 3.1.5(react-native@0.76.5)(react@19.0.0)
    version: 3.1.5
  '@tencentcloud/chat-uikit-vue':
    specifier: ^2.0.0
    version: 2.0.0(@tiptap/core@2.1.13)(@tiptap/extension-document@2.1.13)(@tiptap/extension-image@2.1.13)(@tiptap/extension-mention@2.1.13)(@tiptap/extension-paragraph@2.1.13)(@tiptap/extension-placeholder@2.1.13)(@tiptap/extension-text@2.1.13)(@tiptap/pm@2.1.13)(@tiptap/suggestion@2.1.13)(react-native@0.76.5)(react@19.0.0)(vue@3.5.11)
  '@tencentcloud/tui-core':
    specifier: ^2.0.0
    version: 2.0.0(react-native@0.76.5)(react@19.0.0)
    version: 2.0.0
  '@videojs-player/vue':
    specifier: ^1.0.0
    version: 1.0.0(@types/video.js@7.3.49)(video.js@7.20.3)(vue@3.5.11)
@@ -334,8 +334,8 @@
    specifier: ^4.6.4
    version: 4.8.4
  unplugin-auto-import:
    specifier: ^0.18.3
    version: 0.18.3(@vueuse/core@11.1.0)
    specifier: ^19.3.0
    version: 19.3.0(@vueuse/core@11.1.0)
  unplugin-icons:
    specifier: ^0.14.10
    version: 0.14.12
@@ -2129,7 +2129,7 @@
      lodash: '*'
      vue: 3.5.11
    dependencies:
      '@tencentcloud/chat-uikit-engine': 2.4.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/chat-uikit-engine': 2.4.0
      lodash: 4.17.21
      vue: 3.5.11(typescript@4.8.4)
    dev: false
@@ -4097,26 +4097,26 @@
      vue-demi: 0.13.11(vue@3.5.11)
    dev: false
  /@tencentcloud/call-engine-js@2.9.0(react-native@0.76.5)(react@19.0.0):
    resolution: {integrity: sha512-djDZ8z1ZGmyDrcoMvEIb7fdJiuXrwkT1N78A/Cbwo1ufBh6eFN9BSHqrGW1jRzlmpTokNHPSuAoJ3OhKWKX4DQ==}
  /@tencentcloud/call-engine-js@3.2.0(react-native@0.76.5)(react@19.0.0):
    resolution: {integrity: sha512-IcDgkD2IICHkQh9WkeWsfwL9gecok89wIEFJPTVVFhC7fTLe4obOCI42TV4n+1sREm8BdGkAYvOurGf6CpXCng==}
    dependencies:
      '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0)
      core-js: 3.38.1
      eventemitter3: 4.0.7
      rtc-detect: 0.0.5
      trtc-cloud-js-sdk: 2.8.7
      trtc-cloud-js-sdk: 2.9.3
      tuikit-logger: 0.0.4-beta.1
    transitivePeerDependencies:
      - react
      - react-native
    dev: false
  /@tencentcloud/call-uikit-vue2.6@4.0.0(react-native@0.76.5)(react@19.0.0)(vue@3.5.11):
    resolution: {integrity: sha512-dY1S13vCPgU3/VG4I7X52QPisrVFZ1dDQUI5sPjr9l8C1U24maCwm43S7e/joiAT/VpN+CcIY5GHKkooMPndAg==}
  /@tencentcloud/call-uikit-vue2.6@4.0.8(react-native@0.76.5)(react@19.0.0)(vue@3.5.11):
    resolution: {integrity: sha512-lRxCQ+V684FahkBWEhHhq1mOXgLJPkt/XEfNayYqQmzP8X01FlxLr+xJshnBbi6Hs6B/R1ak0d5vk8EsniQr1g==}
    dependencies:
      '@tencentcloud/call-engine-js': 2.9.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/call-engine-js': 3.2.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/tui-core': 2.4.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/tui-core': 2.5.1
      '@vue/composition-api': 1.7.2(vue@3.5.11)
    transitivePeerDependencies:
      - react
@@ -4124,47 +4124,49 @@
      - vue
    dev: false
  /@tencentcloud/call-uikit-vue2@4.0.0(react-native@0.76.5)(react@19.0.0):
    resolution: {integrity: sha512-RcBaH1xgdtOCu/gHtQL3G+BDzjPQyx5uGt6r3ekE/GoIGVjXc7TIJllEQlMNexQ2GoXf4RoIUNB5dWBMB1Q1Hw==}
  /@tencentcloud/call-uikit-vue2@4.0.8(react-native@0.76.5)(react@19.0.0):
    resolution: {integrity: sha512-vwWv/Wd7349EhI1JTCPpL4ZgHFrxAyuU5v8U2aqzElQO3Uv2HHAowr7DkbFfzbAm0oDvcXWBqwBcb7rDvM1h7w==}
    dependencies:
      '@tencentcloud/call-engine-js': 2.9.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/call-engine-js': 3.2.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/tui-core': 2.4.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/tui-core': 2.5.1
    transitivePeerDependencies:
      - react
      - react-native
    dev: false
  /@tencentcloud/call-uikit-vue@3.1.5(react-native@0.76.5)(react@19.0.0):
  /@tencentcloud/call-uikit-vue@3.1.5:
    resolution: {integrity: sha512-xblFYyol6rXMYKv5NAy45K/VwGIKPCheqUevjoE3Jt7dVqYQMdlXkbWcjcoY1lVmr2545Ej2QN0Xo+PGAHkD1g==}
    dependencies:
      '@tencentcloud/tui-core': 2.4.0(react-native@0.76.5)(react@19.0.0)
      tuicall-engine-webrtc: 3.1.6(react-native@0.76.5)(react@19.0.0)
    transitivePeerDependencies:
      - react
      - react-native
      '@tencentcloud/tui-core': 2.5.1
      tuicall-engine-webrtc: 3.1.7
    dev: false
  /@tencentcloud/call-uikit-vue@4.0.0(react-native@0.76.5)(react@19.0.0):
    resolution: {integrity: sha512-FfxugHiCEEtO75NV5UdNCPTpRXEChBNqfZy4M0NL4TbrGPob8LR10//8yPvaCQtm6pSe9NGvdKf3vJ2vg+xoKQ==}
  /@tencentcloud/call-uikit-vue@4.0.8(react-native@0.76.5)(react@19.0.0):
    resolution: {integrity: sha512-eRq0yfhojCJYpywJ2WhRf0UI+oNM5EPOc3F6wskkvHasoySp0NdxwlusX3LAq0WevnxCJl3xZD6fPMnzpndqjQ==}
    dependencies:
      '@tencentcloud/call-engine-js': 2.9.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/call-engine-js': 3.2.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/tui-core': 2.4.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/tui-core': 2.5.1
    transitivePeerDependencies:
      - react
      - react-native
    dev: false
  /@tencentcloud/chat-uikit-engine@2.4.0(react-native@0.76.5)(react@19.0.0):
  /@tencentcloud/chat-uikit-engine@2.4.0:
    resolution: {integrity: sha512-zE+bygEROaqgeMXXO+X2+2x8JH55mnb9c1sYQVQ507FlFT0maHxEQPOq8/EZBWowUDDlYoWbHh1EBAXEAI3dgA==}
    dependencies:
      '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/chat': 3.5.7
      tim-profanity-filter-plugin: 1.1.0
      tim-upload-plugin: 1.4.2
    transitivePeerDependencies:
      - react
      - react-native
      tim-upload-plugin: 1.4.3
    dev: false
  /@tencentcloud/chat-uikit-engine@2.5.1:
    resolution: {integrity: sha512-++6jXbEtc0HxVD4Zdbse1gp1pbMQfco9/NgQBenLwA38FI+v2kmtt5ccc/xHEMxqAqc671E8dB/zYZQTc1074g==}
    dependencies:
      '@tencentcloud/chat': 3.5.7
      tim-profanity-filter-plugin: 1.1.0
      tim-upload-plugin: 1.4.3
    dev: false
  /@tencentcloud/chat-uikit-vue@2.0.0(@tiptap/core@2.1.13)(@tiptap/extension-document@2.1.13)(@tiptap/extension-image@2.1.13)(@tiptap/extension-mention@2.1.13)(@tiptap/extension-paragraph@2.1.13)(@tiptap/extension-placeholder@2.1.13)(@tiptap/extension-text@2.1.13)(@tiptap/pm@2.1.13)(@tiptap/suggestion@2.1.13)(react-native@0.76.5)(react@19.0.0)(vue@3.5.11):
@@ -4180,12 +4182,12 @@
      '@tiptap/pm': ^2.0.0-beta.220
      '@tiptap/suggestion': ^2.0.0-beta.220
    dependencies:
      '@tencentcloud/call-uikit-vue': 4.0.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/call-uikit-vue2': 4.0.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/call-uikit-vue2.6': 4.0.0(react-native@0.76.5)(react@19.0.0)(vue@3.5.11)
      '@tencentcloud/chat-uikit-engine': 2.4.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/tui-core': 2.4.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/tui-customer-service-plugin': 2.2.6(@tencentcloud/tui-core@2.4.0)(vue@3.5.11)
      '@tencentcloud/call-uikit-vue': 4.0.8(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/call-uikit-vue2': 4.0.8(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/call-uikit-vue2.6': 4.0.8(react-native@0.76.5)(react@19.0.0)(vue@3.5.11)
      '@tencentcloud/chat-uikit-engine': 2.5.1
      '@tencentcloud/tui-core': 2.5.1
      '@tencentcloud/tui-customer-service-plugin': 2.2.6(@tencentcloud/tui-core@2.5.1)(vue@3.5.11)
      '@tiptap/core': 2.1.13(@tiptap/pm@2.1.13)
      '@tiptap/extension-document': 2.1.13(@tiptap/core@2.1.13)
      '@tiptap/extension-image': 2.1.13(@tiptap/core@2.1.13)
@@ -4209,15 +4211,19 @@
  /@tencentcloud/chat@3.5.2(react-native@0.76.5)(react@19.0.0):
    resolution: {integrity: sha512-UuGswGE3jaPgAFHA5kMDASI4Vq5p3lzeK9YisN5kkl9dcxh7BKbxTp5qtD8Fy7tj4VcWbytCb6ytCufmThbDXA==}
    dependencies:
      '@tencentcloud/react-native-push': 1.1.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/uni-app-push': 1.1.0
      '@tencentcloud/react-native-push': 1.2.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/uni-app-push': 1.2.0
    transitivePeerDependencies:
      - react
      - react-native
    dev: false
  /@tencentcloud/react-native-push@1.1.0(react-native@0.76.5)(react@19.0.0):
    resolution: {integrity: sha512-6TvPhNnKrBvd6j9dUwFLpkmV9WkdkaQstNvzdK1nIWQgWCTJGFnyiNDEn8zwN2VZkG+MzjYwNqMcVkMMU9Ao2g==}
  /@tencentcloud/chat@3.5.7:
    resolution: {integrity: sha512-uxACmaFPqV8jXcORBwVSHc0qgKvnHzRg9kC8kHAqCGbsnsm8525JwFzU6ByckGCNqNWUx/5W70EISYAboLuTvQ==}
    dev: false
  /@tencentcloud/react-native-push@1.2.0(react-native@0.76.5)(react@19.0.0):
    resolution: {integrity: sha512-/GI4J1LNnbCz1LxJ6WHtYhymoVg8ot5gASJ9o/YczgghynnZf7b9rfe2d8Z43YjhPog9Rx1Jfdqb3WVa8T7w0A==}
    peerDependencies:
      react: '*'
      react-native: '>= 0.75'
@@ -4226,29 +4232,23 @@
      react-native: 0.76.5(@babel/core@7.25.7)(@babel/preset-env@7.25.8)(react@19.0.0)
    dev: false
  /@tencentcloud/tui-core@2.0.0(react-native@0.76.5)(react@19.0.0):
  /@tencentcloud/tui-core@2.0.0:
    resolution: {integrity: sha512-KBwDFWFV+IGtAZ82uCjRi891nMQcAen0wZHdPUUTSNHaWGjYiwOAHD7yw4gC1c5DYqVYMa3tVA7bSBd/hKVZKg==}
    dependencies:
      '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/chat': 3.5.7
      tim-profanity-filter-plugin: 0.9.0
      tim-upload-plugin: 1.3.0
    transitivePeerDependencies:
      - react
      - react-native
    dev: false
  /@tencentcloud/tui-core@2.4.0(react-native@0.76.5)(react@19.0.0):
    resolution: {integrity: sha512-OFXHoi8CQlPtWvNRLApg0wonWbW79uoTgAqqffqWO1icx3xDYd2RZDHMzpBexOsE3CHpWokrfXrqiXkpOmYWew==}
  /@tencentcloud/tui-core@2.5.1:
    resolution: {integrity: sha512-aXZG0INkV9WvFUHgmVQRibCs10r2u/oVb8qAEjW3maytBiLWOJQiK7dzshK9fnfadJAWQ027cpR8lCKz5r5Tlw==}
    dependencies:
      '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/chat': 3.5.7
      tim-profanity-filter-plugin: 1.1.0
      tim-upload-plugin: 1.4.2
    transitivePeerDependencies:
      - react
      - react-native
      tim-upload-plugin: 1.4.3
    dev: false
  /@tencentcloud/tui-customer-service-plugin@2.2.6(@tencentcloud/tui-core@2.4.0)(vue@3.5.11):
  /@tencentcloud/tui-customer-service-plugin@2.2.6(@tencentcloud/tui-core@2.5.1)(vue@3.5.11):
    resolution: {integrity: sha512-Xc+Eii7qvptMqW3oONhl0UYKTJhotq0ZKdIVKy5fADMR1745aWwOxql5F0AOikuMR4iXEFQtxy7XvyfYp+o6UQ==}
    peerDependencies:
      '@tencentcloud/tui-core': latest
@@ -4258,14 +4258,14 @@
      '@vue/composition-api':
        optional: true
    dependencies:
      '@tencentcloud/tui-core': 2.4.0(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/tui-core': 2.5.1
      '@tencentcloud/universal-api': 2.4.0
      marked: 4.0.0
      vue: 3.5.11(typescript@4.8.4)
    dev: false
  /@tencentcloud/uni-app-push@1.1.0:
    resolution: {integrity: sha512-9z8zgAxExwuxzuxq1sFK3jmRJOKG/BNL8i9v+a3jVK/R7XL7ROE5EPWh4gRYABb9DC48NK9hwx2RFqPTlbR/xg==}
  /@tencentcloud/uni-app-push@1.2.0:
    resolution: {integrity: sha512-l+hTZ4IkfgTqVLkDMWaJyAdTSM6HArPZ1PYi/V7j21XwsIJh21bEBGQ6UwojuRlOIbQDuZ32o+ZkjcVn2Gj8HA==}
    engines: {HBuilderX: ^3.6.8}
    dev: false
@@ -5769,12 +5769,12 @@
      acorn: 7.4.1
    dev: false
  /acorn-jsx@5.3.2(acorn@8.8.2):
  /acorn-jsx@5.3.2(acorn@8.12.1):
    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
    peerDependencies:
      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
    dependencies:
      acorn: 8.8.2
      acorn: 8.12.1
  /acorn-walk@8.2.0:
    resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
@@ -5792,10 +5792,11 @@
    engines: {node: '>=0.4.0'}
    hasBin: true
  /acorn@8.8.2:
    resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
  /acorn@8.15.0:
    resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
    engines: {node: '>=0.4.0'}
    hasBin: true
    dev: true
  /add-stream@1.0.0:
    resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==}
@@ -7186,6 +7187,10 @@
  /confbox@0.1.8:
    resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
    dev: true
  /confbox@0.2.2:
    resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==}
    dev: true
  /config-chain@1.1.13:
@@ -8985,8 +8990,8 @@
    resolution: {integrity: sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==}
    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    dependencies:
      acorn: 8.8.2
      acorn-jsx: 5.3.2(acorn@8.8.2)
      acorn: 8.12.1
      acorn-jsx: 5.3.2(acorn@8.12.1)
      eslint-visitor-keys: 3.3.0
  /esprima@4.0.1:
@@ -9123,6 +9128,10 @@
    resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
    dev: false
  /exsolve@1.0.7:
    resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==}
    dev: true
  /ext@1.7.0:
    resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==}
    dependencies:
@@ -9236,6 +9245,17 @@
    dependencies:
      bser: 2.1.1
    dev: false
  /fdir@6.4.6(picomatch@4.0.3):
    resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==}
    peerDependencies:
      picomatch: ^3 || ^4
    peerDependenciesMeta:
      picomatch:
        optional: true
    dependencies:
      picomatch: 4.0.3
    dev: true
  /file-entry-cache@4.0.0:
    resolution: {integrity: sha512-AVSwsnbV8vH/UVbvgEhf3saVQXORNv0ZzSkvkhQIaia5Tia+JhGTaa/ePUSVoPHQyGayQNmYfkzFi3WZV5zcpA==}
@@ -10921,8 +10941,8 @@
  /js-tokens@8.0.0:
    resolution: {integrity: sha512-PC7MzqInq9OqKyTXfIvQNcjMkODJYC8A17kAaQgeW79yfhqTWSOfjHYQ2mDDcwJ96Iibtwkfh0C7R/OvqPlgVA==}
  /js-tokens@9.0.0:
    resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==}
  /js-tokens@9.0.1:
    resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
    dev: true
  /js-yaml@3.14.1:
@@ -11271,6 +11291,15 @@
      pkg-types: 1.2.1
    dev: true
  /local-pkg@1.1.1:
    resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==}
    engines: {node: '>=14'}
    dependencies:
      mlly: 1.7.4
      pkg-types: 2.2.0
      quansync: 0.2.10
    dev: true
  /locate-path@2.0.0:
    resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==}
    engines: {node: '>=4'}
@@ -11514,6 +11543,12 @@
    resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==}
    dependencies:
      '@jridgewell/sourcemap-codec': 1.5.0
  /magic-string@0.30.17:
    resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
    dependencies:
      '@jridgewell/sourcemap-codec': 1.5.0
    dev: true
  /make-dir@2.1.0:
    resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
@@ -12145,6 +12180,15 @@
      acorn: 8.12.1
      pathe: 1.1.2
      pkg-types: 1.2.1
      ufo: 1.5.4
    dev: true
  /mlly@1.7.4:
    resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
    dependencies:
      acorn: 8.15.0
      pathe: 2.0.3
      pkg-types: 1.3.1
      ufo: 1.5.4
    dev: true
@@ -13037,6 +13081,10 @@
    resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
    dev: true
  /pathe@2.0.3:
    resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
    dev: true
  /pause-stream@0.0.11:
    resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==}
    dependencies:
@@ -13056,6 +13104,11 @@
  /picomatch@2.3.1:
    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
    engines: {node: '>=8.6'}
  /picomatch@4.0.3:
    resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
    engines: {node: '>=12'}
    dev: true
  /pidtree@0.3.1:
    resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==}
@@ -13126,6 +13179,22 @@
      confbox: 0.1.8
      mlly: 1.7.2
      pathe: 1.1.2
    dev: true
  /pkg-types@1.3.1:
    resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
    dependencies:
      confbox: 0.1.8
      mlly: 1.7.4
      pathe: 2.0.3
    dev: true
  /pkg-types@2.2.0:
    resolution: {integrity: sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==}
    dependencies:
      confbox: 0.2.2
      exsolve: 1.0.7
      pathe: 2.0.3
    dev: true
  /platform@1.3.6:
@@ -14112,6 +14181,10 @@
    dependencies:
      side-channel: 1.0.4
    dev: false
  /quansync@0.2.10:
    resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==}
    dev: true
  /query-string@4.3.4:
    resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==}
@@ -15738,10 +15811,10 @@
    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
    engines: {node: '>=8'}
  /strip-literal@2.1.0:
    resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==}
  /strip-literal@3.0.0:
    resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==}
    dependencies:
      js-tokens: 9.0.0
      js-tokens: 9.0.1
    dev: true
  /stubborn-fs@1.2.5:
@@ -16292,8 +16365,8 @@
    resolution: {integrity: sha512-meoGeB3vOs3FvtBh+ik7zlOj8C03tC6MZEkjc8BKYvgTrCzBWVDXZi9a3X8AM/YtoyuTaeLuEmaLQj1O/5luuw==}
    dev: false
  /tim-upload-plugin@1.4.2:
    resolution: {integrity: sha512-ERhcRcSxr6YV4Ri1LBTclcruWVW2Z+tOLTaBkJ9FEoUzo1XNGxT5esl3NENEthBTWwqSlCwb6vK7Ef91uJ7ZLw==}
  /tim-upload-plugin@1.4.3:
    resolution: {integrity: sha512-3ZmbA36dr3eG9YGDon9MLBUtbNawYWkL+TBa+VS0Uviguc7PlVSOIVRG2C4irXX16slDT2Kj+HAZapp+Xqp2xg==}
    dev: false
  /timers-ext@0.1.8:
@@ -16315,6 +16388,14 @@
  /tiny-warning@1.0.3:
    resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
    dev: false
  /tinyglobby@0.2.14:
    resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
    engines: {node: '>=12.0.0'}
    dependencies:
      fdir: 6.4.6(picomatch@4.0.3)
      picomatch: 4.0.3
    dev: true
  /tmp@0.0.33:
    resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
@@ -16394,16 +16475,16 @@
    resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==}
    dev: false
  /trtc-cloud-js-sdk@2.5.0:
    resolution: {integrity: sha512-tWaKgAl7ENYSjfm7hxuoCLCc0V6KVfk8sDOSmR2V591Iaxjmnw7PyUtlvGQyC9on37txAxYKW0a4pZQE/H2p8g==}
    dependencies:
      trtc-sdk-v5: 5.6.2
    dev: false
  /trtc-cloud-js-sdk@2.8.7:
    resolution: {integrity: sha512-dEquaPzboMd5EhjcN6qTAbF/FJuiyLli1WhkYybNsh3YywMkKR+mg8v+9yFXvZ1UYInWTgeOdIr9Hs50MpmhFg==}
    dependencies:
      trtc-sdk-v5: 5.8.7-beta.1
    dev: false
  /trtc-cloud-js-sdk@2.9.3:
    resolution: {integrity: sha512-4pZmNNoD1RjmhCIEA1HVRe/NIWDO8+w9hBpy8fJYa2B07la4Xc7QzCHnVZb7JgNoa6f3MVfUuOrtyrMsUMnt/Q==}
    dependencies:
      trtc-sdk-v5: 5.11.1
    dev: false
  /trtc-js-sdk@4.15.19:
@@ -16412,8 +16493,8 @@
      webrtc-adapter: 8.2.3
    dev: false
  /trtc-sdk-v5@5.6.2:
    resolution: {integrity: sha512-Ylt9LePeHyet2+hABcDxKSMTRMY6IVukw72yvRXgpRi2iR/sDLFSKtj+i3EeQ/BJZZWSTuyFXbolHpVJMPxgPg==}
  /trtc-sdk-v5@5.11.1:
    resolution: {integrity: sha512-7EPZx3UUrvBAU9HynXsIcgI91wYWTYKbEkYUp186EDwgVEzc+v4uDL0427AY1PBI8tgf2ednO4qFk/C8crTSPQ==}
    dependencies:
      webrtc-adapter: 8.2.3
    dev: false
@@ -16500,15 +16581,12 @@
      tslib: 1.14.1
      typescript: 4.8.4
  /tuicall-engine-webrtc@3.1.6(react-native@0.76.5)(react@19.0.0):
    resolution: {integrity: sha512-NdRwZTHbqp4LnDEoRfQDa7Z1oH4g156j27awgy2PYO4dBtm7EjAJLFKZeaZZzErU67uW4EuSBRMeCeFx91JKpQ==}
  /tuicall-engine-webrtc@3.1.7:
    resolution: {integrity: sha512-MRye9/x/8Gy5aRAfEACLtGhK5RcBLAev7cgCGi7OLNt0Uj28mEJkt1tHs4p7xTQiQj6vcB+7OVTdsxuSq7EmOA==}
    dependencies:
      '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0)
      '@tencentcloud/chat': 3.5.7
      rtc-ai-denoiser: 1.1.7
      trtc-cloud-js-sdk: 2.5.0
    transitivePeerDependencies:
      - react
      - react-native
      trtc-cloud-js-sdk: 2.8.7
    dev: false
  /tuikit-logger@0.0.4-beta.1:
@@ -16744,25 +16822,24 @@
      vfile: 4.2.1
    dev: false
  /unimport@3.13.1:
    resolution: {integrity: sha512-nNrVzcs93yrZQOW77qnyOVHtb68LegvhYFwxFMfuuWScmwQmyVCG/NBuN8tYsaGzgQUVYv34E/af+Cc9u4og4A==}
  /unimport@4.2.0:
    resolution: {integrity: sha512-mYVtA0nmzrysnYnyb3ALMbByJ+Maosee2+WyE0puXl+Xm2bUwPorPaaeZt0ETfuroPOtG8jj1g/qeFZ6buFnag==}
    engines: {node: '>=18.12.0'}
    dependencies:
      '@rollup/pluginutils': 5.1.2
      acorn: 8.12.1
      acorn: 8.15.0
      escape-string-regexp: 5.0.0
      estree-walker: 3.0.3
      fast-glob: 3.3.2
      local-pkg: 0.5.0
      magic-string: 0.30.11
      mlly: 1.7.2
      pathe: 1.1.2
      pkg-types: 1.2.1
      local-pkg: 1.1.1
      magic-string: 0.30.17
      mlly: 1.7.4
      pathe: 2.0.3
      picomatch: 4.0.3
      pkg-types: 2.2.0
      scule: 1.3.0
      strip-literal: 2.1.0
      unplugin: 1.14.1
    transitivePeerDependencies:
      - rollup
      - webpack-sources
      strip-literal: 3.0.0
      tinyglobby: 0.2.14
      unplugin: 2.3.5
      unplugin-utils: 0.2.4
    dev: true
  /union-value@1.0.1:
@@ -16845,8 +16922,8 @@
    resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
    engines: {node: '>= 0.8'}
  /unplugin-auto-import@0.18.3(@vueuse/core@11.1.0):
    resolution: {integrity: sha512-q3FUtGQjYA2e+kb1WumyiQMjHM27MrTQ05QfVwtLRVhyYe+KF6TblBYaEX9L6Z0EibsqaXAiW+RFfkcQpfaXzg==}
  /unplugin-auto-import@19.3.0(@vueuse/core@11.1.0):
    resolution: {integrity: sha512-iIi0u4Gq2uGkAOGqlPJOAMI8vocvjh1clGTfSK4SOrJKrt+tirrixo/FjgBwXQNNdS7ofcr7OxzmOb/RjWxeEQ==}
    engines: {node: '>=14'}
    peerDependencies:
      '@nuxt/kit': ^3.2.2
@@ -16857,18 +16934,13 @@
      '@vueuse/core':
        optional: true
    dependencies:
      '@antfu/utils': 0.7.10
      '@rollup/pluginutils': 5.1.2
      '@vueuse/core': 11.1.0(vue@3.5.11)
      fast-glob: 3.3.2
      local-pkg: 0.5.0
      magic-string: 0.30.11
      minimatch: 9.0.5
      unimport: 3.13.1
      unplugin: 1.14.1
    transitivePeerDependencies:
      - rollup
      - webpack-sources
      local-pkg: 1.1.1
      magic-string: 0.30.17
      picomatch: 4.0.3
      unimport: 4.2.0
      unplugin: 2.3.5
      unplugin-utils: 0.2.4
    dev: true
  /unplugin-icons@0.14.12:
@@ -16897,6 +16969,14 @@
      unplugin: 0.9.6
    transitivePeerDependencies:
      - supports-color
    dev: true
  /unplugin-utils@0.2.4:
    resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==}
    engines: {node: '>=18.12.0'}
    dependencies:
      pathe: 2.0.3
      picomatch: 4.0.3
    dev: true
  /unplugin-vue-components@0.27.4(vue@3.5.11):
@@ -16951,6 +17031,15 @@
      webpack-virtual-modules: 0.6.2
    dev: true
  /unplugin@2.3.5:
    resolution: {integrity: sha512-RyWSb5AHmGtjjNQ6gIlA67sHOsWpsbWpwDokLwTcejVdOjEkJZh7QKu14J00gDDVSh8kGH4KYC/TNBceXFZhtw==}
    engines: {node: '>=18.12.0'}
    dependencies:
      acorn: 8.15.0
      picomatch: 4.0.3
      webpack-virtual-modules: 0.6.2
    dev: true
  /unset-value@1.0.0:
    resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
    engines: {node: '>=0.10.0'}
src/components/Dialog/ConfigureInsureProductDialog.vue
File was deleted
src/components/Form/CheckboxWithCustomize.vue
@@ -28,7 +28,6 @@
<script setup lang="ts">
import { ProFormCheckbox } from '@bole-core/components';
import { Message } from '@bole-core/core';
// import * as searchSettingServices from '@/services/api/SearchSetting';
import _ from 'lodash';
import { useSearchSettingType } from '@/hooks';
src/constants/apiEnum.ts
@@ -33,6 +33,14 @@
  NeedPower = 30,
}
/** 分页列表排序 */
export enum EnumPagedListOrder {
  /**升序 */
  Ascending = 0,
  /**降序 */
  Descending = 1,
}
/** 用户类型 */
export enum EnumUserType {
  /**个人 */
@@ -42,3 +50,15 @@
  /**运营 */
  Operation = 100,
}
/** 接口请求方式 */
export enum EnumWebApiMethod {
  /**查询 */
  Get = 10,
  /**提交 */
  Post = 20,
  /**修改 */
  Put = 30,
  /**删除 */
  Delete = 40,
}
src/hooks/dic.ts
@@ -1,4 +1,3 @@
import * as searchSettingServices from '@/services/api/SearchSetting';
import { useQuery } from '@tanstack/vue-query';
import { useQueryClient } from '@tanstack/vue-query';
import { SearchType } from '@/constants';
@@ -6,50 +5,5 @@
type UseSearchSettingTypeOptions = {
  searchType: number;
  belongType?: number;
  onSuccess?: (data: API.GetTypeSearchSettingList[]) => any;
  onSuccess?: (data: any[]) => any;
};
export function useSearchSettingType({
  searchType,
  belongType = null,
  onSuccess,
}: UseSearchSettingTypeOptions) {
  const { data, refetch } = useQuery({
    queryKey: ['searchSettingServices/getTypeSearchSettingList', { searchType, belongType }],
    queryFn: async () => {
      return await searchSettingServices.getTypeSearchSettingList(
        {
          searchType: searchType,
          belongType: belongType,
        },
        { showLoading: false }
      );
    },
    placeholderData: () => [] as API.GetTypeSearchSettingList[],
    onSuccess(data) {
      onSuccess?.(data);
    },
  });
  const queryClient = useQueryClient();
  async function ensureSearchSettingType() {
    return await queryClient.ensureQueryData({
      queryKey: [
        'searchSettingServices/getTypeSearchSettingList',
        { searchType: searchType, belongType: belongType },
      ],
    });
  }
  function getSearchSettingTypeNameById(id: string) {
    return data.value.find((x) => x.id === id)?.name ?? '';
  }
  return {
    searchSettingTypeList: data,
    ensureSearchSettingType,
    refetchSearchSettingType: refetch,
    getSearchSettingTypeNameById,
  };
}
src/hooks/useAccess.ts
@@ -6,7 +6,6 @@
  useGroupOperationBtns as useBoleGroupOperationBtns,
} from '@bole-core/components';
import type { Ref, ComputedRef } from 'vue';
import * as baseModuleServices from '@/services/api/BaseModule';
import { myClient } from '@/constants/query';
type UseAccessOptions = {
@@ -32,7 +31,12 @@
  return useBoleAccess({
    queryKey: ['baseModuleServices/getCurrentSubModuleList', { moduleId }],
    service: async () => {
      return await baseModuleServices.getCurrentSubModuleList({ moduleId }, { showLoading: false });
      // return await baseModuleServices.getCurrentSubModuleList({ moduleId }, { showLoading: false });
      return await Promise.resolve({
        pageButton: [],
        dataButton: [],
        column: [],
      });
    },
    ...options,
  });
src/hooks/useUser.ts
@@ -1,6 +1,5 @@
import { useUserStore } from '@/store/modules/user';
import { UserUtils } from '@bole-core/core';
// import * as userRoleServices from '@/services/api/UserRole';
import { useQuery, useQueryClient } from '@tanstack/vue-query';
export function useIsSystemAdmin() {
src/services/api/auth.ts
@@ -2,12 +2,12 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 密码登录 POST /api/user/auth/password-login */
/** 密码登录 POST /api/user/auth/passwordLogin */
export async function authPasswordLogin(
  body: API.AuthPasswordLoginCommand,
  body: API.PasswordLoginCommand,
  options?: API.RequestConfig
) {
  return request<API.AuthPasswordLoginCallback>('/api/user/auth/password-login', {
  return request<API.PasswordLoginCommandCallback>('/api/user/auth/passwordLogin', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
src/services/api/dictionary.ts
New file
@@ -0,0 +1,18 @@
/* eslint-disable */
// @ts-ignore
import { request } from '@/utils/request';
/** 获取字典数据分页列表 GET /api/main/dictionary/getDictionaryDatas */
export async function dictionaryGetDictionaryDatas(
  body: API.GetDictionaryDatasQuery,
  options?: API.RequestConfig
) {
  return request<API.GetDictionaryDatasQueryResult>('/api/main/dictionary/getDictionaryDatas', {
    method: 'GET',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
src/services/api/index.ts
@@ -4,7 +4,11 @@
// API 唯一标识:
import * as auth from './auth';
import * as menu from './menu';
import * as resource from './resource';
import * as dictionary from './dictionary';
export default {
  auth,
  menu,
  resource,
  dictionary,
};
src/services/api/menu.ts
@@ -2,10 +2,10 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 查询菜单/页面/模态框列表 POST /api/user/menu/list-query */
export async function menuListQuery(body: API.MenuListQuery, options?: API.RequestConfig) {
  return request<API.MenuListCallback>('/api/user/menu/list-query', {
    method: 'POST',
/** 删除菜单 DELETE /api/user/menu/deleteMenu */
export async function menuDeleteMenu(body: API.DeleteMenuCommand, options?: API.RequestConfig) {
  return request<number>('/api/user/menu/deleteMenu', {
    method: 'DELETE',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
@@ -14,10 +14,10 @@
  });
}
/** 保存菜单 POST /api/user/menu/save */
export async function menuSave(body: API.MenuSaveCommand, options?: API.RequestConfig) {
  return request<string>('/api/user/menu/save', {
    method: 'POST',
/** 查询菜单详情 GET /api/user/menu/getMenu */
export async function menuGetMenu(body: API.GetMenuQuery, options?: API.RequestConfig) {
  return request<API.GetMenuQueryResult>('/api/user/menu/getMenu', {
    method: 'GET',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
@@ -26,9 +26,21 @@
  });
}
/** 查询按钮/字段列表 POST /api/user/menu/sub-list-query */
export async function menuSubListQuery(body: API.MenuSubListQuery, options?: API.RequestConfig) {
  return request<API.MenuSubListCallback>('/api/user/menu/sub-list-query', {
/** 查询菜单列表 GET /api/user/menu/getMenus */
export async function menuGetMenus(body: API.GetMenusQuery, options?: API.RequestConfig) {
  return request<API.GetMenusQueryResultItem[]>('/api/user/menu/getMenus', {
    method: 'GET',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 保存菜单 POST /api/user/menu/saveMenu */
export async function menuSaveMenu(body: API.SaveMenuCommand, options?: API.RequestConfig) {
  return request<string>('/api/user/menu/saveMenu', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
src/services/api/resource.ts
New file
@@ -0,0 +1,33 @@
/* eslint-disable */
// @ts-ignore
import { request } from '@/utils/request';
/** 获取资源字段 GET /api/user/resource/getResourceFields */
export async function resourceGetResourceFields(
  body: API.GetResourceFieldsQuery,
  options?: API.RequestConfig
) {
  return request<API.GetResourceFieldsQueryResultItem[]>('/api/user/resource/getResourceFields', {
    method: 'GET',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 获取资源列表 GET /api/user/resource/getResources */
export async function resourceGetResources(
  body: API.GetResourcesQuery,
  options?: API.RequestConfig
) {
  return request<API.GetResourcesQueryResultItem[]>('/api/user/resource/getResources', {
    method: 'GET',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
src/services/api/typings.d.ts
@@ -3,15 +3,8 @@
    [key: string]: any;
  }
  type AuthPasswordLoginCallback = true;
  interface AuthPasswordLoginCommand {
    /** 账号 */
    userName: string;
    /** 密码 */
    password: string;
    type?: EnumUserType;
    clientType?: EnumClientType;
  interface DeleteMenuCommand {
    ids: string[];
  }
  enum EnumClientType {
@@ -43,6 +36,13 @@
    NeedPower = 30,
  }
  enum EnumPagedListOrder {
    /**升序 */
    Ascending = 0,
    /**降序 */
    Descending = 1,
  }
  enum EnumUserType {
    /**个人 */
    Personal = 10,
@@ -52,12 +52,39 @@
    Operation = 100,
  }
  interface FriendlyResultAuthPasswordLoginCallback {
  enum EnumWebApiMethod {
    /**查询 */
    Get = 10,
    /**提交 */
    Post = 20,
    /**修改 */
    Put = 30,
    /**删除 */
    Delete = 40,
  }
  interface FriendlyResultGetDictionaryDatasQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    data?: AuthPasswordLoginCallback;
    data?: GetDictionaryDatasQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    errors?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetMenuQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    data?: GetMenuQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -85,12 +112,13 @@
    timestamp?: number;
  }
  interface FriendlyResultMenuListCallback {
  interface FriendlyResultInt32 {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    data?: MenuListCallback;
    /** 数据 */
    data?: number;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -101,12 +129,13 @@
    timestamp?: number;
  }
  interface FriendlyResultMenuSubListCallback {
  interface FriendlyResultListGetMenusQueryResultItem {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    data?: MenuSubListCallback;
    /** 数据 */
    data?: GetMenusQueryResultItem[];
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -117,13 +146,78 @@
    timestamp?: number;
  }
  interface MenuListCallback {
    items?: MenuListCallbackItem[];
  interface FriendlyResultListGetResourceFieldsQueryResultItem {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 数据 */
    data?: GetResourceFieldsQueryResultItem[];
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    errors?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface MenuListCallbackItem {
  interface FriendlyResultListGetResourcesQueryResultItem {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 数据 */
    data?: GetResourcesQueryResultItem[];
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    errors?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultPasswordLoginCommandCallback {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    data?: PasswordLoginCommandCallback;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    errors?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface GetDictionaryDatasQuery {
    pageModel?: PagedListQueryPageModel;
  }
  interface GetDictionaryDatasQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** 数据 */
    data?: GetDictionaryDatasQueryResultItem[];
  }
  type GetDictionaryDatasQueryResultItem = true;
  interface GetMenuQuery {
    /** Id */
    id?: string;
  }
  interface GetMenuQueryResult {
    /** Id */
    id?: string;
    userType?: EnumUserType;
    clientType?: EnumClientType;
    /** 上级Id */
    parentId?: string;
    /** 菜单路径 */
@@ -140,8 +234,90 @@
    url?: string;
    /** 是否禁用 */
    isDisabled?: boolean;
    /** 是否隐藏 */
    isHidden?: boolean;
    /** 是否缓存 */
    isCache?: boolean;
    /** 排序 */
    sort?: number;
    /** 备注 */
    remark?: string;
    /** 分组 */
    groups?: GetMenuQueryResultGroup[];
  }
  interface GetMenuQueryResultButton {
    /** Id */
    id?: string;
    /** 编号 */
    code?: string;
    /** 名称 */
    name?: string;
    /** 图标 */
    icon?: string;
    /** 宽度(用于按钮/列/元素) */
    width?: string;
    /** 排序 */
    sort?: number;
    /** 备注 */
    remark?: string;
  }
  interface GetMenuQueryResultButtonLocation {
    /** 位置(用于按钮) */
    location?: string;
    /** 按钮 */
    buttons?: GetMenuQueryResultButton[];
  }
  interface GetMenuQueryResultField {
    /** Id */
    id?: string;
    /** 编号 */
    code?: string;
    /** 名称 */
    name?: string;
    /** 宽度(用于按钮/列/元素) */
    width?: string;
    /** 排序 */
    sort?: number;
    /** 备注 */
    remark?: string;
  }
  interface GetMenuQueryResultGroup {
    /** 分组名称(用于按钮/字段) */
    group?: string;
    /** 按钮位置 */
    buttonLocations?: GetMenuQueryResultButtonLocation[];
    /** 字段 */
    fields?: GetMenuQueryResultField[];
  }
  interface GetMenusQuery {
    userType?: EnumUserType;
    clientType?: EnumClientType;
  }
  interface GetMenusQueryResultItem {
    /** Id */
    id?: string;
    /** 上级Id */
    parentId?: string;
    /** 下级 */
    childrens?: GetMenusQueryResultItem[];
    /** 编号 */
    code?: string;
    /** 名称 */
    name?: string;
    /** 菜单路径 */
    path?: string;
    type?: EnumMenuType;
    visitLevel?: EnumMenuVisitLevel;
    /** 图标 */
    icon?: string;
    /** 链接地址 */
    url?: string;
    /** 是否禁用 */
    isDisabled?: boolean;
    /** 是否缓存 */
    isCache?: boolean;
    /** 排序 */
@@ -150,66 +326,95 @@
    remark?: string;
  }
  interface MenuListQuery {
    /** 上级Id */
    parentId?: string;
  interface GetResourceFieldsQuery {
    /** Id */
    id?: string;
  }
  interface GetResourceFieldsQueryResultItem {
    /** 编号 */
    code?: string;
    /** 名称 */
    name?: string;
  }
  interface GetResourcesQuery {
    /** 微服务 */
    service?: string;
    method?: EnumWebApiMethod;
    /** 关键字 */
    keywords?: string;
  }
  interface MenuSaveCommand {
  interface GetResourcesQueryResultItem {
    /** Id */
    id?: string;
    /** 上级Id */
    parentId?: string;
    /** 微服务 */
    service?: string;
    /** 编号 */
    code: string;
    /** 名称 */
    name: string;
    type?: EnumMenuType;
    visitLevel?: EnumMenuVisitLevel;
    /** 图标 */
    icon?: string;
    /** 链接地址 */
    url?: string;
    /** 分组名称(用于按钮/字段) */
    group?: string;
    /** 位置(用于按钮) */
    location?: string;
    /** 列宽(用于按钮/列/元素) */
    width?: string;
    /** 是否禁用 */
    isDisabled?: boolean;
    /** 是否隐藏 */
    isHidden?: boolean;
    /** 是否缓存 */
    isCache?: boolean;
    /** 排序 */
    sort?: number;
    /** 备注 */
    remark?: string;
  }
  interface MenuSubListCallback {
    groups?: MenuSubListCallbackGroup[];
  }
  interface MenuSubListCallbackGroup {
    code?: string;
    /** 名称 */
    name?: string;
    /** 按钮 */
    buttons?: MenuSubListCallbackItem[];
    /** 字段 */
    fields?: MenuSubListCallbackItem[];
    method?: EnumWebApiMethod;
    /** 路由 */
    route?: string;
    /** 请求类型名称 */
    requestTypeName?: string;
    /** 响应类型名称 */
    responseTypeName?: string;
  }
  interface MenuSubListCallbackItem {
  interface PagedListQueryPageModel {
    /** 行数 */
    rows?: number;
    /** 页码 */
    page?: number;
    /** 排序 */
    orderInput?: PagedListQueryPageModelOrderInput[];
  }
  interface PagedListQueryPageModelOrderInput {
    /** 属性 */
    property?: string;
    order?: EnumPagedListOrder;
  }
  interface PagedListQueryResultPageModel {
    /** 行数 */
    rows?: number;
    /** 页码 */
    page?: number;
    /** 排序 */
    orderInput?: PagedListQueryPageModelOrderInput[];
    /** 总数 */
    totalCount?: number;
    /** 页数 */
    totalPage?: number;
  }
  interface PasswordLoginCommand {
    /** 账号 */
    userName: string;
    /** 密码 */
    password: string;
    type?: EnumUserType;
    clientType?: EnumClientType;
  }
  interface PasswordLoginCommandCallback {
    /** 用户访问令牌 */
    accessToken?: string;
    /** 刷新令牌 */
    refreshToken?: string;
  }
  interface SaveMenuCommand {
    /** Id */
    id?: string;
    userType?: EnumUserType;
    clientType?: EnumClientType;
    /** 上级Id */
    parentId?: string;
    /** 菜单路径 */
    path?: string;
    /** 编号 */
    code?: string;
    /** 名称 */
@@ -220,26 +425,63 @@
    icon?: string;
    /** 链接地址 */
    url?: string;
    /** 分组名称(用于按钮/字段) */
    group?: string;
    /** 位置(用于按钮) */
    location?: string;
    /** 列宽(用于按钮/列/元素) */
    width?: string;
    /** 是否禁用 */
    isDisabled?: boolean;
    /** 是否隐藏 */
    isHidden?: boolean;
    /** 是否缓存 */
    isCache?: boolean;
    /** 排序 */
    sort?: number;
    /** 备注 */
    remark?: string;
    /** 分组 */
    groups?: SaveMenuCommandGroup[];
  }
  interface MenuSubListQuery {
    /** 上级Id */
    parentId?: string;
  interface SaveMenuCommandButton {
    /** Id */
    id?: string;
    /** 编号 */
    code?: string;
    /** 名称 */
    name?: string;
    /** 图标 */
    icon?: string;
    /** 宽度(用于按钮/列/元素) */
    width?: string;
    /** 排序 */
    sort?: number;
    /** 备注 */
    remark?: string;
  }
  interface SaveMenuCommandButtonLocation {
    /** 位置(用于按钮) */
    location?: string;
    /** 按钮 */
    buttons?: SaveMenuCommandButton[];
  }
  interface SaveMenuCommandField {
    /** Id */
    id?: string;
    /** 编号 */
    code?: string;
    /** 名称 */
    name?: string;
    /** 宽度(用于按钮/列/元素) */
    width?: string;
    /** 排序 */
    sort?: number;
    /** 备注 */
    remark?: string;
  }
  interface SaveMenuCommandGroup {
    /** 分组名称(用于按钮/字段) */
    group?: string;
    /** 按钮位置 */
    buttonLocations?: SaveMenuCommandButtonLocation[];
    /** 字段 */
    fields?: SaveMenuCommandField[];
  }
}
src/store/modules/permission.ts
@@ -3,7 +3,6 @@
// import { RouteConfigs } from "@/layout/types";
import { constantRoutes, Route } from '@/router';
import { addAsyncRoutes, ascending } from '@/router/utils';
import * as baseModuleServices from '@/services/api/BaseModule';
export interface PermissonState {
  routes: Route[];
@@ -27,12 +26,10 @@
    getModuleList() {
      return new Promise<Route[]>(async (resolve, reject) => {
        try {
          // let res = await userApiClient.apiUserUserMenusGet();
          // let userMenuList = res.data.data;
          // let userInfo = rootGetters['userInfo'] as Getter['userInfo'];
          const res = await baseModuleServices.getCurrentUserModuleList({
            showLoading: false,
          });
          // const res = await baseModuleServices.getCurrentUserModuleList({
          //   showLoading: false,
          // });
          const res = [];
          const accessedRoutes = ascending(addAsyncRoutes(formatModuleList(res, null))); // createAccessedRoutes(userMenuList, userInfo)
          //@ts-ignore
          accessedRoutes.push({ path: '/:pathMatch(.*)*', redirect: '/404', hidden: true });
src/store/modules/subModuleStore.ts
File was deleted
src/store/modules/user.ts
@@ -1,30 +1,32 @@
import { defineStore } from 'pinia';
import { store } from '@/store';
import { getToken, setToken, removeToken, removeUserInfo, setUserInfo, getUserInfo } from '@/utils';
import {
  getToken,
  setToken,
  removeToken,
  removeUserInfo,
  setUserInfo,
  getUserInfo,
  md5Encrypt,
} from '@/utils';
import { resetRouter, router } from '@/router';
import { useTagsViewStoreHook } from './tagsView';
import * as accountServices from '@/services/api/Account';
import { usePermissionStoreHook } from './permission';
import { getAccountInfoFromAccessToken, AccountInfo } from '@bole-core/core';
import { useClearSubModule } from '@/hooks';
import { myClient } from '@/constants/query';
import * as authServices from '@/services/api/auth';
export interface UserState {
  token: string;
  userInfo: API.IdentityModelTokenCacheItem;
  accountInfo: Partial<AccountInfo>;
  name: string;
  userInfo: API.PasswordLoginCommandCallback;
}
function getDefaultState() {
  const accessToken = getToken();
  const userInfo = getUserInfo();
  const accountInfo = getAccountInfoFromAccessToken(accessToken);
  return {
    token: accessToken,
    name: accountInfo.name,
    accountInfo: accountInfo || {},
    userInfo: userInfo || {},
  } as UserState;
}
@@ -40,51 +42,37 @@
      return state.userInfo;
    },
    userId(state) {
      return state.accountInfo.sub;
    },
    // userId(state) {
    //   return state.accountInfo.sub;
    // },
  },
  actions: {
    setToken(token: string) {
      this.token = token;
      setToken(token);
    },
    setName(name: string) {
      this.name = name;
    },
    setUserInfo(userInfo: API.IdentityModelTokenCacheItem) {
    setUserInfo(userInfo: API.PasswordLoginCommandCallback) {
      this.userInfo = userInfo;
      setUserInfo(userInfo);
    },
    setAccountInfo(accountInfo: Partial<AccountInfo>) {
      this.accountInfo = accountInfo;
    },
    // 用户登入
    loginByUsername(data: API.AccessRequestDto) {
      return new Promise<void>((resolve, reject) => {
        accountServices
          .getTokenForWeb(data, { showLoading: false })
          .then((res) => {
            if (res) {
              console.log('res: ', res);
              this.setToken(res.accessToken);
              const accountInfo = getAccountInfoFromAccessToken(res.accessToken);
              this.setName(accountInfo.name);
              this.setAccountInfo(accountInfo);
              // 获取用户信息
              this.setUserInfo(res);
              resolve();
            }
          })
          .catch((error) => {
            reject(error);
          });
      });
    async loginByUsername(params: API.PasswordLoginCommand) {
      let res = await authServices.authPasswordLogin(
        {
          ...params,
          password: md5Encrypt(params.password),
          type: EnumUserType.Operation,
          clientType: EnumClientType.PcWeb,
        },
        {
          showLoading: false,
        }
      );
      if (res) {
        this.setToken(res.accessToken);
        this.setUserInfo(res);
      }
    },
    // 登出 清空缓存
@@ -119,26 +107,32 @@
      Object.assign(this, getDefaultState());
    },
    refreshToken(params: API.AccessRefreshToken) {
      return new Promise<API.IdentityModelTokenCacheItem>(
        // eslint-disable-next-line no-async-promise-executor
        async (resolve, reject) => {
          try {
            const res = await accountServices.getTokenByRefreshToken(params, {
              showLoading: false,
            });
            if (res) {
              this.setToken(res.accessToken);
              this.setUserInfo(res);
              resolve(res);
              return;
            }
            reject('出错了');
          } catch (error) {
            reject(error);
          }
        }
      );
    async refreshToken(params: API.AccessRefreshToken) {
      return Promise.resolve({
        accessToken: '1222',
        expiresIn: 1000 * 60 * 24 * 60,
        creationTime: '2025-08-04 00:00:00',
        refreshToken: '1222',
      });
      // return new Promise<API.IdentityModelTokenCacheItem>(
      //   // eslint-disable-next-line no-async-promise-executor
      //   async (resolve, reject) => {
      //     try {
      //       const res = await accountServices.getTokenByRefreshToken(params, {
      //         showLoading: false,
      //       });
      //       if (res) {
      //         this.setToken(res.accessToken);
      //         this.setUserInfo(res);
      //         resolve(res);
      //         return;
      //       }
      //       reject('出错了');
      //     } catch (error) {
      //       reject(error);
      //     }
      //   }
      // );
    },
  },
});
src/utils/common/categoryUtils.ts
File was deleted
src/utils/common/encrypt.ts
New file
@@ -0,0 +1,13 @@
import CryptoJS from 'crypto-js';
/**
 * MD5加密函数
 * @param {string} data - 需要加密的数据
 * @returns {string} 加密后的16进制字符串
 */
export function md5Encrypt(data: string) {
  // 进行MD5加密,返回WordArray对象
  const hash = CryptoJS.MD5(data);
  // 转换为16进制字符串
  return hash.toString(CryptoJS.enc.Hex);
}
src/utils/common/index.ts
@@ -12,4 +12,4 @@
export * from './tree';
export * from './file';
export * from './vueHelper';
export * from './categoryUtils';
export * from './encrypt';
src/utils/oss/index.ts
@@ -1,15 +1,15 @@
import { BoleOss } from '@bole-core/core';
import { loadEnv } from '@build/index';
import AliOSS from 'ali-oss';
import * as accountServices from '@/services/api/Account';
export class OssManager {
  private static OssInstance: BoleOss;
  private static async getOssSTS() {
    return await accountServices.getOssSTS({
      showLoading: false,
    });
    return Promise.resolve({});
    // return await accountServices.getOssSTS({
    //   showLoading: false,
    // });
  }
  public static async getOssInstance() {
src/utils/request/index.ts
@@ -3,7 +3,6 @@
import qs from 'qs';
import NProgress from '../progress';
import { loadEnv } from '@build/index';
import { getToken, getUserInfo } from '../storage';
import { useUserStoreHook } from '@/store/modules/user';
import { ElLoading as Loading, ElNotification } from 'element-plus';
import { router } from '@/router';
@@ -176,9 +175,9 @@
          NProgress.start();
        }
        const token = getToken();
        const userStore = useUserStoreHook();
        const userInfo = getUserInfo();
        const userInfo = userStore.userInfo;
        const { showLoading = true, mock } = $config;
@@ -198,31 +197,10 @@
        }
        return new Promise((resolve) => {
          if (token && $config.withCredentials) {
            if (tokenIsExpired(userInfo)) {
              if (!BoleRequest.refreshTokenPending) {
                const userStore = useUserStoreHook();
                BoleRequest.refreshTokenPending = true;
                // token过期刷新
                userStore
                  .refreshToken({
                    refreshToken: userInfo.refreshToken,
                    clientId: userStore.accountInfo.client_id,
                  })
                  .then((res) => {
                    $config.headers['Authorization'] = 'Bearer ' + res.accessToken;
                    BoleRequest.requests.forEach((cb) => cb(res.accessToken));
                    BoleRequest.requests = [];
                  })
                  .finally(() => {
                    BoleRequest.refreshTokenPending = false;
                  });
              }
              resolve(BoleRequest.retryOriginalRequest($config));
            } else {
              $config.headers['Authorization'] = 'Bearer ' + token;
              resolve($config);
            }
          if (userInfo.accessToken && $config.withCredentials) {
            $config.headers['Authorization'] = 'Bearer ' + userInfo.accessToken;
            $config.headers['X-Authorizatio'] = 'Bearer ' + userInfo.refreshToken;
            resolve($config);
          } else {
            resolve($config);
          }
@@ -246,6 +224,16 @@
          NProgress.done();
        }
        const userStore = useUserStoreHook();
        if (response.headers['x-access-token']) {
          userStore.setToken(response.headers['access-token']);
          userStore.setUserInfo({
            accessToken: response.headers['access-token'],
            refreshToken: response.headers['x-access-token'],
          });
        }
        endLoading();
        return getResponse ? response : (response.data as any).result;
src/utils/storage/auth.ts
@@ -30,11 +30,11 @@
  return storageLocal.removeItem(StorageKey.REFRESH_TOKEN_KEY);
}
export function getUserInfo(): API.IdentityModelTokenCacheItem | null {
export function getUserInfo(): API.PasswordLoginCommandCallback | null {
  return storageLocal.getItem(StorageKey.USER_INFO_KEY);
}
export function setUserInfo(userInfo: API.IdentityModelTokenCacheItem) {
export function setUserInfo(userInfo: API.PasswordLoginCommandCallback) {
  return storageLocal.setItem(StorageKey.USER_INFO_KEY, userInfo);
}
src/views/Account/AccountManageList.vue
@@ -43,7 +43,6 @@
  useFormDialog,
} from '@bole-core/components';
import { useAccess } from '@/hooks';
// import * as userServices from '@/services/api/User';
import { RoleClientType } from '@/constants';
import { Message, OrderInputType } from '@bole-core/core';
import AddOrEditAccountDialog from './components/AddOrEditAccountDialog.vue';
src/views/CPersonManage/CPersonManageList.vue
@@ -78,7 +78,6 @@
  UploadUserFile,
} from '@bole-core/components';
import { useAccess, useGlobalEventContext } from '@/hooks';
import * as flexEnterpriseWokerServices from '@/services/api/FlexEnterpriseWoker';
import { Gender } from '@/constants';
import CPersonDetailDialog from './components/CPersonDetailDialog.vue';
import { OrderInputType } from '@bole-core/core';
src/views/CPersonManage/components/CPersonDetailDialog.vue
@@ -59,7 +59,6 @@
} from '@bole-core/components';
import { OrderInputType } from '@bole-core/core';
import _ from 'lodash';
import * as flexEnterpriseWokerServices from '@/services/api/FlexEnterpriseWoker';
import { setOSSLink } from '@/utils';
import {
  FlexTaskWorkerHireEnumText,
src/views/DictionaryManage/SearchSetting.vue
@@ -77,7 +77,6 @@
  FieldRadio,
} from '@bole-core/components';
import { useAccess } from '@/hooks';
import * as searchSettingServices from '@/services/api/SearchSetting';
import {
  SearchType,
  SearchTypeText,
src/views/EnterpriseManage/EnterpriseManageList.vue
@@ -54,7 +54,6 @@
  FieldRadio,
} from '@bole-core/components';
import { useAccess, useGlobalEventContext } from '@/hooks';
import * as flexEnterpriseServices from '@/services/api/FlexEnterprise';
import {
  SearchType,
  FlexEnterpriseSettingStatusText,
src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue
@@ -196,7 +196,6 @@
} from '@bole-core/components';
import { FormRules, FormInstance } from 'element-plus';
import { SearchType } from '@/constants';
import * as flexEnterpriseServices from '@/services/api/FlexEnterprise';
import { useRouteView, useGlobalEventContext, GlobalEvent, useSearchSettingType } from '@/hooks';
import _ from 'lodash';
import { validateFormList, filterCN } from '@/utils';
src/views/Login/Login.vue
@@ -179,7 +179,7 @@
    loading.value = true;
    await userStore.loginByUsername({
      userName: unref(user),
      userPassword: unref(pwd),
      password: unref(pwd),
    });
    loading.value = false;
    router.push({
src/views/OperationManage/OperationManageList.vue
@@ -88,7 +88,6 @@
import { useAccess } from '@/hooks';
import { FlexWorkerEleSignEnumText } from '@/constants';
import { ModelValueType } from 'element-plus';
import * as flexEnterpriseWokerServices from '@/services/api/FlexEnterpriseWoker';
import { format, setOSSLink, convertApi2FormUrl, convertFormUrl2Api } from '@/utils';
import { OrderInputType, Message } from '@bole-core/core';
src/views/Permission/RoleManage.vue
@@ -46,7 +46,6 @@
  useFormDialog,
} from '@bole-core/components';
import { useAccess, useAllRoleList } from '@/hooks';
// import * as userServices from '@/services/api/User';
import { Message, OrderInputType } from '@bole-core/core';
import AddOrEditRoleDialog from './components/AddOrEditRoleDialog.vue';
import { DataRangeEnum, DataRangeEnumText } from '@/constants';
src/views/Permission/components/dialogAuthorize.vue
@@ -155,7 +155,6 @@
<script setup lang="ts">
import { computed, reactive, watch } from 'vue';
import * as baseModuleServices from '@/services/api/BaseModule';
import { Message } from '@bole-core/core';
import { AuthorizeType, SubModuleType, SubModuleTitle } from '@/constants';
import { getTree } from '@/utils';
src/views/System/ModuleManage.vue
@@ -95,7 +95,6 @@
  OperationBtnType,
  SearchInput,
} from '@bole-core/components';
import * as baseModuleServices from '@/services/api/BaseModule';
import { ModuleUtils, TreeModuleDtoGroupDto, Message, TreeStore } from '@/utils';
import { TableInstance } from 'element-plus';
import { SubModuleType, SubModuleTitle, SubModuleKey, FastBtn, ModuleColumns } from '@/constants';
src/views/TaskManage/TaskManageList.vue
@@ -75,7 +75,6 @@
import { useAccess } from '@/hooks';
import { FlexWorkerEleSignEnumText } from '@/constants';
import { ModelValueType } from 'element-plus';
import * as flexEnterpriseWokerServices from '@/services/api/FlexEnterpriseWoker';
import { OrderInputType } from '@bole-core/core';
defineOptions({
vite.config.ts
@@ -72,7 +72,7 @@
                // ws: true,
                changeOrigin: true,
                rewrite: (path: string) => {
                  console.log('path: ', path);
                  console.log('path: ', path, path.replace(/^\/api/, ''));
                  return path.replace(/^\/api/, '');
                },
              },