• 首页
  • 产品中心
    • 数式Oinone四大产品

      低代码开发平台无代码开发平台集成开发平台AI大模型开发
    • 数式Oinone体系能力

      用户与组织权限管理文件管理消息中心国际化业务审计
    • 数式Oinone核心产品特性

      低无一体面向软件公司场景无限制应用级扩容可分可合
  • 服务中心
    • 客户服务

      预约演示方案咨询私有部署找人定制
    • 开发者

      问答下载
    • Oinone学院

      社区学习

    《精讲面向软件公司的低代码平台——以Oinone为例》

  • 合作伙伴
    渠道申请伙伴名录专家库
  • 关于数式
0571-88757863

Router


路由组件是 Oinone 路由中的核心组件,与其他组件一样,都是通过 SPI 注册组件的方式实现的,下面将对这一类路由组件的注册以及内置路由组件进行介绍。

更多关于 路由 的内容请参考:Router Service

一、路由组件的注册

(一)路由组件的注册可选项

/**
 * Router组件注册可选项
 */
export interface BaseRouterOptions extends SPIOptions {
  /**
   * 指定组件名称或别称
   */
  widget?: string | string[];
}

从上述类型声明中不难发现,路由组件的注册仅包含一个属性:widget 。由于路由组件本身没有其他上下文信息,因此不能像 字段 或 动作 组件那样具备 位置描述 的一些上下文信息,这一点在自定义路由小节中就可以看出。

(二)注册组件

与其他类型组件一样,路由组件也是通过 SPI 完成注册的。以 LoginWidget 组件为例:

@SPI.ClassFactory(
  RouterWidget.Token({
    widget: 'Login'
  })
)
export class LoginWidget extends BaseI18nRouterWidget

二、Reference List

(一)抽象基类

1、RouterWidget

继承:BaseRouterWidget

2、BaseI18nRouterWidget

继承:RouterWidget

属性:

  • moduleName:模块名称。(string)
  • isoStorageKey:ISO 存储键。(string)
  • translateBrowserTitle:是否翻译浏览器标题。(boolean)

(二)路由组件

1、LoginPageWidget

类型声明:

@SPI.ClassFactory(
  RouterWidget.Token({
    widget: 'Login'
  })
)
export class LoginWidget extends BaseI18nRouterWidget

属性:

  • accountLoginLabel:账号登录标签。(string)
  • accountPlaceholder:账号输入框占位文本。(string)
  • authForm:登录表单数据,包含登录相关字段。(Record<string, string>)
  • buttonContent:验证码按钮文本。(string)
  • canClick:验证码按钮是否可点击。(boolean)
  • codeLogin:是否启用验证码登录模式。(boolean)
  • codeLoginLabel:验证码登录标签。(string)
  • codePlaceholder:验证码输入框占位文本。(string)
  • copyrightYear:版权年份,自动获取当前年份。(string)
  • countryList:国家 / 地区电话区号列表。(any[])
  • currentLoginTheme:当前登录主题。(any)
  • currentLanguage:当前选择的语言对象。(RuntimeLanguage)
  • email:是否启用邮箱登录模式。(boolean)
  • emailCodePlaceholder:邮箱验证码输入框占位文本。(string)
  • emailLoginLabel:邮箱登录标签。(string)
  • emailPlaceholder:邮箱输入框占位文本。(string)
  • enableI18n:是否启用国际化配置。(boolean | undefined)
  • error:登录错误信息对象,包含各字段错误信息。(LoginData)
  • errorMessages:登录错误信息配置,包含默认错误文案。(any)
  • forgetPassword:是否显示忘记密码选项。(boolean)
  • forgetPasswordLabel:忘记密码标签。(string)
  • graphCode:图形验证码路径。(string)
  • languages:支持的语言列表。(RuntimeLanguage[])
  • loginLabel:登录按钮标签。(string)
  • loginMode:当前登录模式(账号 / 验证码 / 邮箱)。(LoginMode)
  • loginModeTitle:当前登录模式的显示标题。(string)
  • moduleName:模块名称,标识为用户模块。(string)
  • passwordPlaceholder:密码输入框占位文本。(string)
  • phonePlaceholder:手机输入框占位文本。(string)
  • register:是否显示注册选项。(string)
  • registerLabel:注册标签。(string)
  • selectCountry:选择的国家 / 地区电话区号,默认+86。(string)
  • systemMajorConfig:系统主要配置信息。(MajorConfig)
  • validation:表单验证状态,包含状态和消息。(Record<string, string>)
  • year:当前年份,自动获取。(string)
  • isAccount:是否为账号登录模式。(boolean)
  • isCode:是否为验证码登录模式。(boolean)
  • isEmail:是否为邮箱登录模式。(boolean)

方法:

afterClick

  • 功能描述:处理登录接口调用后的逻辑,可修改后端返回的错误文案,只有返回 true 才会执行默认跳转事件。
  • 类型:(result?: any) => Promise<any | null | undefined>
  • 参数:
    • result:后端接口返回的数据,包含错误字段、错误信息等。
  • 返回值:若返回 true 则执行默认跳转,否则终止后续操作。

beforeClick

  • 功能描述:处理点击「登录」前的事件,可进行二次确认或其他逻辑,只有返回 true 才会继续执行登录流程。
  • 类型:() => Promise<Boolean | null | undefined>
  • 返回值:布尔值,决定是否继续执行登录。

beforeMount

  • 功能描述:在组件挂载前初始化国际化配置,加载语言列表并设置当前语言。
  • 类型:async () => void

clearErrorMessage

  • 功能描述:清除所有登录错误信息。
  • 类型:() => void

countDown

  • 功能描述:验证码发送倒计时逻辑,60 秒后重置按钮状态。
  • 类型:() => void

getCode

  • 功能描述:根据当前登录模式发送相应的验证码(手机或邮箱)。
  • 类型:async () => void

getCurrentLanguage

  • 功能描述:获取本地存储的当前语言代码,默认返回系统默认语言。
  • 类型:async () => string
  • 返回值:当前语言代码。

getCurrentLanguageIsoCode

  • 功能描述:获取本地存储的当前语言 ISO 代码。
  • 类型:async () => string | null
  • 返回值:当前语言 ISO 代码。

getEmailCode

  • 功能描述:发送邮箱验证码,验证邮箱有效性并处理错误。
  • 类型:async () => boolean
  • 返回值:布尔值,标识验证码发送是否成功。

getLoginConfig

  • 功能描述:获取登录配置信息,从运行时配置中解析登录相关参数。
  • 类型:() => LoginConfig
  • 返回值:登录配置对象,包含登录模式、标签等配置。

getPhoneCode

  • 功能描述:发送手机验证码,验证手机号有效性并处理错误。
  • 类型:async () => boolean
  • 返回值:布尔值,标识验证码发送是否成功。

getPicCode

  • 功能描述:获取图形验证码,可自定义错误信息提示。
  • 类型:async (message?: string) => void
  • 参数:
    • message:图形验证码错误信息提示文本。

handleCountryChange

  • 功能描述:处理国家 / 地区电话区号选择变化,更新当前选择的区号。
  • 类型:(val: string) => void
  • 参数:
    • val:选择的国家 / 地区电话区号(如+86)。

handleRegister

  • 功能描述:处理注册事件,默认输出错误提示,需在子类中重写以实现注册功能。
  • 类型:() => void

initCurrentLanguage

  • 功能描述:初始化当前语言设置,更新窗口语言标识并设置当前语言对象。
  • 类型:(code: string) => void
  • 参数:
    • code:语言代码(如zh-CN)。

initLanguages

  • 功能描述:初始化支持的语言列表,从后端查询并处理语言数据。
  • 类型:async () => Promise<void>

login

  • 功能描述:执行登录操作,根据当前登录模式(账号 / 验证码 / 邮箱)提交对应表单数据,并处理登录结果。
  • 类型:async () => void

onLanguageChange

  • 功能描述:处理语言切换事件,更新当前语言并刷新页面。
  • 类型:(value: RuntimeLanguage) => void
  • 参数:
    • value:选择的语言对象。

onResetPicCode

  • 功能描述:当登录表单的登录字段变化时,重置图形验证码。
  • 类型:async () => void

picCode

  • 功能描述:获取图形验证码路径,根据当前登录模式拼接请求参数。
  • 类型:async () => string
  • 返回值:图形验证码的完整 URL 路径。

queryCountryList

  • 功能描述:查询国家 / 地区电话区号列表,用于验证码登录模式下的国家选择。
  • 类型:async () => any[]
  • 返回值:国家 / 地区列表,包含 ID、名称、电话区号等信息。

queryLanguageList

  • 功能描述:查询支持的语言列表,用于登录页面的语言切换功能。
  • 类型:async () => RuntimeLanguage[]
  • 返回值:语言列表,包含语言 ID、名称、代码等信息。

queryLanguageSetting

  • 功能描述:查询指定语言的配置信息。
  • 类型:async (langCode: string) => any
  • 参数:
    • langCode:语言代码(如zh-CN)。
  • 返回值:语言配置信息。

searchMethod

  • 功能描述:搜索方法,用于筛选国家 / 地区列表,匹配搜索关键词。
  • 类型:(keyword: string, option: any) => boolean
  • 参数:
    • keyword:搜索关键词。
    • option:选项对象,包含国家 / 地区信息。
  • 返回值:布尔值,标识是否匹配搜索条件。

setCurrentLanguage

  • 功能描述:设置当前语言并存储到本地缓存,触发页面语言更新。
  • 类型:async (language: RuntimeLanguage) => void
  • 参数:
    • language:语言对象,包含代码和 ISO 代码。

setLoginMode

  • 功能描述:设置登录模式,清除错误信息和图形验证码。
  • 类型:(mode: LoginMode) => void
  • 参数:
    • mode:登录模式(LoginMode.ACCOUNT/CODE/EMAIL)。

executeResult

  • 功能描述:处理登录接口返回结果,包括错误处理、页面跳转和首次登录密码修改逻辑。
  • 类型:async (result: any, isByLogin?: boolean) => void
  • 参数:
    • result:登录接口返回结果,包含错误字段、错误信息等。
    • isByLogin:标识是否通过登录接口调用(默认false)。

gotoForget

  • 功能描述:跳转到忘记密码页面。
  • 类型:() => void

getUserMutation

  • 功能描述:执行用户相关的 mutation 操作,构造请求参数并处理返回结果。
  • 类型:async (mutation: string, data: any) => any
  • 参数:
    • mutation:mutation 操作名称。
    • data:请求参数对象。
  • 返回值:mutation 操作的执行结果。

watchError

  • 功能描述:监听登录相关错误信息,当收到特定错误码时重新获取图形验证码。
  • 类型:() => void

watchSwitch

  • 功能描述:监听登录模式切换事件,当切换到验证码模式且国家列表为空时,加载国家 / 地区列表。
  • 类型:async (mode: LoginMode) => void
  • 参数:
    • mode:新的登录模式。

2、ForgetPasswordWidget

类型声明:

@SPI.ClassFactory(
  RouterWidget.Token({
    widget: 'ForgetPassword'
  })
)
export class ForgetPasswordWidget extends BaseI18nRouterWidget

属性:

  • formData:重置密码表单数据,包含手机号、验证码等字段。(ResetPasswordData)
  • majorConfig:系统主要配置信息。(MajorConfig | undefined)
  • countryList:国家 / 地区电话区号列表,用于手机号选择。(SelectItem<ResourceCountry>[])
  • selectedCountry:当前选择的国家 / 地区。(SelectItem<ResourceCountry> | undefined)
  • copyrightYear:版权年份,自动获取当前年份。(string)
  • verificationRules:表单验证规则,定义各字段的验证逻辑。(Record<string, FormItemRule[]>)

方法:

getFormInstance

  • 功能描述:获取表单实例。
  • 类型:() => OioFormInstance | undefined
  • 返回值:表单实例对象或 undefined。

setFormInstance

  • 功能描述:设置表单实例。
  • 类型:(formInstance: OioFormInstance | undefined) => void
  • 参数:
    • formInstance:表单实例对象或 undefined。

validateNewPassword

  • 功能描述:验证新密码字段,确保输入不为空。
  • 类型:(rule: FormItemRule, value: string) => Promise<void | never>
  • 参数:
    • rule:验证规则对象。
    • value:输入的新密码值。
  • 返回值:验证成功返回 resolved Promise,失败返回 rejected Promise 并携带错误信息。

validateConfirmPassword

  • 功能描述:验证确认密码字段,确保与新密码一致且不为空。
  • 类型:(role: FormItemRule, value: string) => Promise<void | never>
  • 参数:
    • rule:验证规则对象。
    • value:输入的确认密码值。
  • 返回值:验证成功返回 resolved Promise,失败返回 rejected Promise 并携带错误信息。

onSelectCountry

  • 功能描述:处理国家 / 地区选择变化,更新当前选择的国家 / 地区。
  • 类型:(selected: SelectItem<ResourceCountry> | undefined) => void
  • 参数:
    • selected:选择的国家 / 地区对象或 undefined。

gotoLogin

  • 功能描述:跳转到登录页面。
  • 类型:() => void

fetchVerificationCode

  • 功能描述:发送重置密码验证码到指定手机号。
  • 类型:async () => boolean
  • 返回值:布尔值,标识验证码是否发送成功。

refreshPicCodeImage

  • 功能描述:刷新图形验证码图片。
  • 类型:async () => void

getPicCode

  • 功能描述:获取图形验证码 URL,包含时间戳和手机号参数。
  • 类型:() => string
  • 返回值:图形验证码的完整 URL 路径。

onOk

  • 功能描述:执行重置密码操作,验证表单数据并提交请求,成功后跳转登录页。
  • 类型:async () => void

executeResetPasswordByPhone

  • 功能描述:通过手机号执行重置密码操作。
  • 类型:async (phone: string, verificationCode: string, password: string, confirmPassword: string) => boolean
  • 参数:
    • phone:手机号。
    • verificationCode:验证码。
    • password:新密码。
    • confirmPassword:确认密码。
  • 返回值:布尔值,标识密码重置是否成功。

initMajorConfig

  • 功能描述:初始化系统主要配置信息。
  • 类型:async () => void

initCountryList

  • 功能描述:初始化国家 / 地区电话区号列表,并设置默认选择项。
  • 类型:async () => void

3、FirstResetPasswordWidget

类型声明:

@SPI.ClassFactory(
  RouterWidget.Token({
    widget: 'FirstResetPassword'
  })
)
export class FirstResetPasswordWidget extends ForgetPasswordWidget

属性:

  • verificationRules:表单验证规则,定义新密码和确认密码的验证逻辑。(继承并重写父类属性)(Record<string, FormItemRule[]>)

方法:

onOk

  • 功能描述:执行首次重置密码操作,验证表单数据并提交请求,成功后跳转首页。
  • 类型:async () => void

executeResetPasswordByFirst

  • 功能描述:执行首次登录重置密码操作,处理返回结果并跳转相应页面。
  • 类型:async (password: string, confirmPassword: string) => boolean
  • 参数:
    • password:新密码。
    • confirmPassword:确认密码。
  • 返回值:布尔值,标识密码重置是否成功。

(三)功能组件

1、SharedMainViewWidget

类型声明:

@SPI.ClassFactory(
  RouterWidget.Token({
    widget: 'Shared'
  })
)
export class SharedMainViewWidget extends RouterWidget

属性:

  • metadataViewWidget:元数据视图组件实例。(MetadataViewWidget | undefined)
  • runtimeContext:运行时上下文。(RuntimeContext | undefined)
  • reloadMainViewCallChaining:用于刷新主视图的链式调用对象。(CallChaining<void>)
  • loading:页面加载状态标识。(boolean)
  • metadataHandle:元数据视图组件的句柄。(string | undefined)

方法:

createMetadataViewWidget

  • 功能描述:创建元数据视图组件实例。
  • 类型:() => MetadataViewWidget
  • 返回值:元数据视图组件实例。

reloadPage

  • 功能描述:根据分享码重新加载分享页面数据。
  • 类型:async (sharedCode: string) => void
  • 参数:
    • sharedCode:分享码。

fetchSharedRuntimeViewAction

  • 功能描述:获取分享页面的运行时视图动作及参数。
  • 类型:async (sharedCode: string) => { action: SharedRuntimeViewAction; page: ViewActionQueryParameter } | undefined
  • 参数:
    • sharedCode:分享码。
  • 返回值:包含视图动作和页面参数的对象,或undefined。

beforeRender

  • 功能描述:渲染前准备工作,设置页面语言、标题和样式类。
  • 类型:(action: SharedRuntimeViewAction) => void
  • 参数:
    • action:分享运行时视图动作对象。

initView

  • 功能描述:初始化视图上下文,基于运行时视图动作配置元数据视图。
  • 类型:(action: SharedRuntimeViewAction) => void
  • 参数:
    • action:分享运行时视图动作对象。

renderMainView

  • 功能描述:渲染主视图内容,触发主视图刷新链式调用。
  • 类型:(page: ViewActionQueryParameter) => Promise<void>
  • 参数:
    • page:视图动作查询参数对象。
  • 返回值:Promise 对象,resolve 时完成视图渲染。

2、DebugMainViewWidget

类型声明:

@SPI.ClassFactory(RouterWidget.Token({ widget: DEBUG_VIEW_WIDGET }))
export class DebugMainViewWidget extends RouterWidget

属性:

  • activeDebugTab:当前激活的调试标签页,默认值为'debugView'。(string)

方法:

changeActiveDebugTab

  • 功能描述:切换激活的调试标签页。
  • 类型:(activeDebugTab: string) => void
  • 参数:
    • activeDebugTab:要激活的标签页名称。

responseAnalysis

  • 功能描述:处理调试响应数据,调用子组件进行响应分析并更新存储。
  • 类型:async (responseBody: DebugResponseData | DebugResponseData[]) => void
  • 参数:
    • responseBody:调试响应数据(单个或数组)。
编辑此页
最近更新:2026/1/15 04:02
上一页
Gallery Field
下一页
Vue UI Antd
默认页脚
Copyright © 2026 Mr.Hope