diff --git a/404.html b/404.html index 34fd10fe0..2bf62a808 100644 --- a/404.html +++ b/404.html @@ -1 +1 @@ -一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file +一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file diff --git a/404/index.html b/404/index.html index 3479a1a16..066a03cda 100644 --- a/404/index.html +++ b/404/index.html @@ -377,7 +377,7 @@

社区

} - + \ No newline at end of file diff --git a/acl/control/en/index.html b/acl/control/en/index.html index ca2865930..0b2f1f5f1 100644 --- a/acl/control/en/index.html +++ b/acl/control/en/index.html @@ -12,4 +12,4 @@ return str.startsWith('ability.') ? { ability: [ str ] } : null; } } -};

因此,当传递一个带有 ability. 开头的字符串会被认为这是一个权限点,例如:

<button acl="ability.user.edit"></button>

API

*aclIf

参数说明类型默认值
[aclIf]can 方法参数体ACLCanType-
[aclIfThen]已授权时显示模板TemplateRef<void> | null-
[aclIfElse]未授权时显示模板TemplateRef<void> | null-
[except]未授权时显示booleanfalse
Loading...
\ No newline at end of file +};

因此,当传递一个带有 ability. 开头的字符串会被认为这是一个权限点,例如:

<button acl="ability.user.edit"></button>

API

*aclIf

参数说明类型默认值
[aclIf]can 方法参数体ACLCanType-
[aclIfThen]已授权时显示模板TemplateRef<void> | null-
[aclIfElse]未授权时显示模板TemplateRef<void> | null-
[except]未授权时显示booleanfalse
Loading...
\ No newline at end of file diff --git a/acl/control/zh/index.html b/acl/control/zh/index.html index 9d7a7d8b7..76fe03515 100644 --- a/acl/control/zh/index.html +++ b/acl/control/zh/index.html @@ -12,4 +12,4 @@ return str.startsWith('ability.') ? { ability: [ str ] } : null; } } -};

因此,当传递一个带有 ability. 开头的字符串会被认为这是一个权限点,例如:

<button acl="ability.user.edit"></button>

API

*aclIf

参数说明类型默认值
[aclIf]can 方法参数体ACLCanType-
[aclIfThen]已授权时显示模板TemplateRef<void> | null-
[aclIfElse]未授权时显示模板TemplateRef<void> | null-
[except]未授权时显示booleanfalse
开始使用 路由守卫
Loading...
\ No newline at end of file +};

因此,当传递一个带有 ability. 开头的字符串会被认为这是一个权限点,例如:

<button acl="ability.user.edit"></button>

API

*aclIf

参数说明类型默认值
[aclIf]can 方法参数体ACLCanType-
[aclIfThen]已授权时显示模板TemplateRef<void> | null-
[aclIfElse]未授权时显示模板TemplateRef<void> | null-
[except]未授权时显示booleanfalse
开始使用 路由守卫
Loading...
\ No newline at end of file diff --git a/acl/getting-started/en/index.html b/acl/getting-started/en/index.html index 6e2702df4..4af17884d 100644 --- a/acl/getting-started/en/index.html +++ b/acl/getting-started/en/index.html @@ -5,4 +5,4 @@ DelonACLModule ] }) -export class AppModule { }

API

参数

参数说明类型默认值全局配置
[guard_url]string路由守卫失败后跳转/403
[preCan](roleOrAbility: ACLCanType) => ACLTypecan 执行前回调-

可以通过全局配置覆盖它们。

ACLService

方法说明
[change]监听ACL变更通知
[data]获取所有ACL数据
setFull(val: boolean)标识当前用户为全量,即不受限
set(value: ACLType)设置当前用户角色或权限能力(会先清除所有)
setRole(roles: string[])设置当前用户角色(会先清除所有)
setAbility(abilities: (number | string)[])设置当前用户权限能力(会先清除所有)
add(value: ACLType)为当前用户增加角色或权限能力
attachRole(roles: string[])为当前用户附加角色
attachAbility(abilities: (number | string)[])为当前用户附加权限
removeRole(roles: string[])为当前用户移除角色
removeAbility(abilities: (number | string)[])为当前用户移除权限
can(roleOrAbility: ACLCanType)当前用户是否有对应角色
canAbility(ability: ACLCanType)当前用户是否有对应权限点

ACLCanType

type ACLCanType = number | number[] | string | string[] | ACLType

ACLType

属性类型说明默认
[role]string[]角色-
[ability]number[], string[]权限点-
[mode]allOf, oneOfallOf 表示必须满足所有角色或权限点数组算有效
oneOf 表示只须满足角色或权限点数组中的一项算有效
oneOf
[except]boolean是否取反,即结果为 true 时表示未授权false
Loading...
\ No newline at end of file +export class AppModule { }

API

参数

参数说明类型默认值全局配置
[guard_url]string路由守卫失败后跳转/403
[preCan](roleOrAbility: ACLCanType) => ACLTypecan 执行前回调-

可以通过全局配置覆盖它们。

ACLService

方法说明
[change]监听ACL变更通知
[data]获取所有ACL数据
setFull(val: boolean)标识当前用户为全量,即不受限
set(value: ACLType)设置当前用户角色或权限能力(会先清除所有)
setRole(roles: string[])设置当前用户角色(会先清除所有)
setAbility(abilities: (number | string)[])设置当前用户权限能力(会先清除所有)
add(value: ACLType)为当前用户增加角色或权限能力
attachRole(roles: string[])为当前用户附加角色
attachAbility(abilities: (number | string)[])为当前用户附加权限
removeRole(roles: string[])为当前用户移除角色
removeAbility(abilities: (number | string)[])为当前用户移除权限
can(roleOrAbility: ACLCanType)当前用户是否有对应角色
canAbility(ability: ACLCanType)当前用户是否有对应权限点

ACLCanType

type ACLCanType = number | number[] | string | string[] | ACLType

ACLType

属性类型说明默认
[role]string[]角色-
[ability]number[], string[]权限点-
[mode]allOf, oneOfallOf 表示必须满足所有角色或权限点数组算有效
oneOf 表示只须满足角色或权限点数组中的一项算有效
oneOf
[except]boolean是否取反,即结果为 true 时表示未授权false
Loading...
\ No newline at end of file diff --git a/acl/getting-started/zh/index.html b/acl/getting-started/zh/index.html index c6d7ea387..8ae75b33b 100644 --- a/acl/getting-started/zh/index.html +++ b/acl/getting-started/zh/index.html @@ -5,4 +5,4 @@ DelonACLModule ] }) -export class AppModule { }

API

参数

参数说明类型默认值全局配置
[guard_url]string路由守卫失败后跳转/403
[preCan](roleOrAbility: ACLCanType) => ACLTypecan 执行前回调-

可以通过全局配置覆盖它们。

ACLService

方法说明
[change]监听ACL变更通知
[data]获取所有ACL数据
setFull(val: boolean)标识当前用户为全量,即不受限
set(value: ACLType)设置当前用户角色或权限能力(会先清除所有)
setRole(roles: string[])设置当前用户角色(会先清除所有)
setAbility(abilities: (number | string)[])设置当前用户权限能力(会先清除所有)
add(value: ACLType)为当前用户增加角色或权限能力
attachRole(roles: string[])为当前用户附加角色
attachAbility(abilities: (number | string)[])为当前用户附加权限
removeRole(roles: string[])为当前用户移除角色
removeAbility(abilities: (number | string)[])为当前用户移除权限
can(roleOrAbility: ACLCanType)当前用户是否有对应角色
canAbility(ability: ACLCanType)当前用户是否有对应权限点

ACLCanType

type ACLCanType = number | number[] | string | string[] | ACLType

ACLType

属性类型说明默认
[role]string[]角色-
[ability]number[], string[]权限点-
[mode]allOf, oneOfallOf 表示必须满足所有角色或权限点数组算有效
oneOf 表示只须满足角色或权限点数组中的一项算有效
oneOf
[except]boolean是否取反,即结果为 true 时表示未授权false
粒度控制
Loading...
\ No newline at end of file +export class AppModule { }

API

参数

参数说明类型默认值全局配置
[guard_url]string路由守卫失败后跳转/403
[preCan](roleOrAbility: ACLCanType) => ACLTypecan 执行前回调-

可以通过全局配置覆盖它们。

ACLService

方法说明
[change]监听ACL变更通知
[data]获取所有ACL数据
setFull(val: boolean)标识当前用户为全量,即不受限
set(value: ACLType)设置当前用户角色或权限能力(会先清除所有)
setRole(roles: string[])设置当前用户角色(会先清除所有)
setAbility(abilities: (number | string)[])设置当前用户权限能力(会先清除所有)
add(value: ACLType)为当前用户增加角色或权限能力
attachRole(roles: string[])为当前用户附加角色
attachAbility(abilities: (number | string)[])为当前用户附加权限
removeRole(roles: string[])为当前用户移除角色
removeAbility(abilities: (number | string)[])为当前用户移除权限
can(roleOrAbility: ACLCanType)当前用户是否有对应角色
canAbility(ability: ACLCanType)当前用户是否有对应权限点

ACLCanType

type ACLCanType = number | number[] | string | string[] | ACLType

ACLType

属性类型说明默认
[role]string[]角色-
[ability]number[], string[]权限点-
[mode]allOf, oneOfallOf 表示必须满足所有角色或权限点数组算有效
oneOf 表示只须满足角色或权限点数组中的一项算有效
oneOf
[except]boolean是否取反,即结果为 true 时表示未授权false
粒度控制
Loading...
\ No newline at end of file diff --git a/acl/guard/en/index.html b/acl/guard/en/index.html index 3a86bdc2b..837a751bc 100644 --- a/acl/guard/en/index.html +++ b/acl/guard/en/index.html @@ -41,4 +41,4 @@ }, { path: 'pro', loadChildren: './pro/pro.module#ProModule', canMatch: [ aclCanMatch ], data: { guard: 1 } }, { path: 'pro', loadChildren: './pro/pro.module#ProModule', canMatch: [ aclCanMatch ], data: { guard: of(false).pipe(map(v => 'admin')) } } -];
Loading...
\ No newline at end of file +];
Loading...
\ No newline at end of file diff --git a/acl/guard/zh/index.html b/acl/guard/zh/index.html index 2ae63ed79..5a79c72e9 100644 --- a/acl/guard/zh/index.html +++ b/acl/guard/zh/index.html @@ -41,4 +41,4 @@ }, { path: 'pro', loadChildren: './pro/pro.module#ProModule', canMatch: [ aclCanMatch ], data: { guard: 1 } }, { path: 'pro', loadChildren: './pro/pro.module#ProModule', canMatch: [ aclCanMatch ], data: { guard: of(false).pipe(map(v => 'admin')) } } -];
粒度控制
Loading...
\ No newline at end of file +];
粒度控制
Loading...
\ No newline at end of file diff --git a/acl/index.html b/acl/index.html index 34fd10fe0..2bf62a808 100644 --- a/acl/index.html +++ b/acl/index.html @@ -1 +1 @@ -一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file +一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file diff --git a/auth/get/en/index.html b/auth/get/en/index.html index 6e219e346..96b150043 100644 --- a/auth/get/en/index.html +++ b/auth/get/en/index.html @@ -21,4 +21,4 @@ name: 'cipchk', id: 10000, time: +new Date -});

callback() 会把URL自动转换成效的 ITokenModel

注:对于 { useHash: true } 的路由在很多第三方授权框是不支持回调,若是自己的账号体系,你依然可以使用第3种示例中的URL形式。

Loading...
\ No newline at end of file +});

callback() 会把URL自动转换成效的 ITokenModel

注:对于 { useHash: true } 的路由在很多第三方授权框是不支持回调,若是自己的账号体系,你依然可以使用第3种示例中的URL形式。

Loading...
\ No newline at end of file diff --git a/auth/get/zh/index.html b/auth/get/zh/index.html index 6371e750d..20d2d5182 100644 --- a/auth/get/zh/index.html +++ b/auth/get/zh/index.html @@ -21,4 +21,4 @@ name: 'cipchk', id: 10000, time: +new Date -});

callback() 会把URL自动转换成效的 ITokenModel

注:对于 { useHash: true } 的路由在很多第三方授权框是不支持回调,若是自己的账号体系,你依然可以使用第3种示例中的URL形式。

TokenService 常见问题
Loading...
\ No newline at end of file +});

callback() 会把URL自动转换成效的 ITokenModel

注:对于 { useHash: true } 的路由在很多第三方授权框是不支持回调,若是自己的账号体系,你依然可以使用第3种示例中的URL形式。

TokenService 常见问题
Loading...
\ No newline at end of file diff --git a/auth/getting-started/en/index.html b/auth/getting-started/en/index.html index 156776ba6..873799375 100644 --- a/auth/getting-started/en/index.html +++ b/auth/getting-started/en/index.html @@ -1,4 +1,4 @@ 开始使用 - NG-ALAIN

开始使用

写在前面

@delon/auth 是对认证过程进一步处理,通常其核心在于 Access token 的获取、使用环节,因此将集中解决以下三个问题:

  • 如何获取认证信息行为方式,例如:账密、社会化登录Github等

  • 如何存取认证信息,监听认证信息变化

  • 何时使用认证信息,区分不同的认证方式的使用规则,例如:JWT

@delon/auth 并不会关心用户界面是怎么样,只需要当登录成功后将 Token 信息转化为 ITokenService 类型,它会存储在 localStorage 当中(默认情况下)。当你操作 HTTP 请求时,它会自动在 header (或其他地方) 里加入 Token 信息。

因此,@delon/auth 不限于 ng-alain 脚手架,任何 Angular 项目都可以使用它。

@delon/auth 只是解决认证环节,有关于权限控制可以使用 @delon/acl

流程

  • 获取 Token

  • 存储 Token

  • 利用HTTP拦截器,将 Token 发送给后端

名词解释

Token

@delon/auth 认为请求时需要发送的加密字符串称它为 Token 值,不管是采用 JWT 的 Authorization 参数,还是 OAuth2 的 access_token,这也是每个 HTTP 请求时所携带的值。 因此,ITokenModel 接口用于表述认证信息,且只有一个 token 属性。

注意:Token 值务必是一个字符串值。

认证风格

目前衍生两种风格:Simple Web Token (使用 SimpleTokenModel)、Json Web Token(使用 JWTTokenModel)具有解析 payload 能力。如果有特殊需求也可以自定义实现 ITokenModel 接口。

如何使用

安装 @delon/auth 依赖包:

npm i -S @delon/auth

app.config.ts 中配置 provideAuth 环境:

providers: [
   // 表示使用JWT风格并用 `localStorage` 存储 Token
   provideAuth(withJWT(), withLocalStorage()),
-]

AlainAuthConfig

成员说明类型默认值全局配置
[store_key]string_tokenlocalStorage 的存储KEY值
[token_invalid_redirect]booleantrue无效时跳转至登录页,包括:无效token值、token已过期(限JWT)
[token_exp_offset]number10JWT token过期时间偏移值(单位:秒)
[token_send_key]stringToken发送token参数名
[token_send_template]string${token}发送token模板,以 ${属性名} 表示占位符,属性名要确保存在否则以空字符代替
[token_send_place]header,body,urlheader发送token参数位置
[login_url]string/login登录页路由地址
[ignores]RegExp[][ /\/login/, /assets\// ]忽略 URL 地址清单,除此之外还可以通过 ALLOW_ANONYMOUS 进行控制是否忽略。
[refreshTime]number3000刷新时长(单位:ms)
[refreshOffset]number6000偏移值(单位:ms),建议根据 refreshTime 倍数来设置

可以通过全局配置覆盖它们。

FAQ

解决同域下多个NG-ALAIN项目Token污染问题

可以在每个项目里通过全局配置修改 store_key 用于区分。

Loading...
\ No newline at end of file +]

AlainAuthConfig

成员说明类型默认值全局配置
[store_key]string_tokenlocalStorage 的存储KEY值
[token_invalid_redirect]booleantrue无效时跳转至登录页,包括:无效token值、token已过期(限JWT)
[token_exp_offset]number10JWT token过期时间偏移值(单位:秒)
[token_send_key]stringToken发送token参数名
[token_send_template]string${token}发送token模板,以 ${属性名} 表示占位符,属性名要确保存在否则以空字符代替
[token_send_place]header,body,urlheader发送token参数位置
[login_url]string/login登录页路由地址
[ignores]RegExp[][ /\/login/, /assets\// ]忽略 URL 地址清单,除此之外还可以通过 ALLOW_ANONYMOUS 进行控制是否忽略。
[refreshTime]number3000刷新时长(单位:ms)
[refreshOffset]number6000偏移值(单位:ms),建议根据 refreshTime 倍数来设置

可以通过全局配置覆盖它们。

FAQ

解决同域下多个NG-ALAIN项目Token污染问题

可以在每个项目里通过全局配置修改 store_key 用于区分。

Loading...
\ No newline at end of file diff --git a/auth/getting-started/zh/index.html b/auth/getting-started/zh/index.html index 75c72c008..b645f433a 100644 --- a/auth/getting-started/zh/index.html +++ b/auth/getting-started/zh/index.html @@ -1,4 +1,4 @@ 开始使用 - NG-ALAIN

开始使用

写在前面

@delon/auth 是对认证过程进一步处理,通常其核心在于 Access token 的获取、使用环节,因此将集中解决以下三个问题:

  • 如何获取认证信息行为方式,例如:账密、社会化登录Github等

  • 如何存取认证信息,监听认证信息变化

  • 何时使用认证信息,区分不同的认证方式的使用规则,例如:JWT

@delon/auth 并不会关心用户界面是怎么样,只需要当登录成功后将 Token 信息转化为 ITokenService 类型,它会存储在 localStorage 当中(默认情况下)。当你操作 HTTP 请求时,它会自动在 header (或其他地方) 里加入 Token 信息。

因此,@delon/auth 不限于 ng-alain 脚手架,任何 Angular 项目都可以使用它。

@delon/auth 只是解决认证环节,有关于权限控制可以使用 @delon/acl

流程

  • 获取 Token

  • 存储 Token

  • 利用HTTP拦截器,将 Token 发送给后端

名词解释

Token

@delon/auth 认为请求时需要发送的加密字符串称它为 Token 值,不管是采用 JWT 的 Authorization 参数,还是 OAuth2 的 access_token,这也是每个 HTTP 请求时所携带的值。 因此,ITokenModel 接口用于表述认证信息,且只有一个 token 属性。

注意:Token 值务必是一个字符串值。

认证风格

目前衍生两种风格:Simple Web Token (使用 SimpleTokenModel)、Json Web Token(使用 JWTTokenModel)具有解析 payload 能力。如果有特殊需求也可以自定义实现 ITokenModel 接口。

如何使用

安装 @delon/auth 依赖包:

npm i -S @delon/auth

app.config.ts 中配置 provideAuth 环境:

providers: [
   // 表示使用JWT风格并用 `localStorage` 存储 Token
   provideAuth(withJWT(), withLocalStorage()),
-]

AlainAuthConfig

成员说明类型默认值全局配置
[store_key]string_tokenlocalStorage 的存储KEY值
[token_invalid_redirect]booleantrue无效时跳转至登录页,包括:无效token值、token已过期(限JWT)
[token_exp_offset]number10JWT token过期时间偏移值(单位:秒)
[token_send_key]stringToken发送token参数名
[token_send_template]string${token}发送token模板,以 ${属性名} 表示占位符,属性名要确保存在否则以空字符代替
[token_send_place]header,body,urlheader发送token参数位置
[login_url]string/login登录页路由地址
[ignores]RegExp[][ /\/login/, /assets\// ]忽略 URL 地址清单,除此之外还可以通过 ALLOW_ANONYMOUS 进行控制是否忽略。
[refreshTime]number3000刷新时长(单位:ms)
[refreshOffset]number6000偏移值(单位:ms),建议根据 refreshTime 倍数来设置

可以通过全局配置覆盖它们。

FAQ

解决同域下多个NG-ALAIN项目Token污染问题

可以在每个项目里通过全局配置修改 store_key 用于区分。

Loading...
\ No newline at end of file +]

AlainAuthConfig

成员说明类型默认值全局配置
[store_key]string_tokenlocalStorage 的存储KEY值
[token_invalid_redirect]booleantrue无效时跳转至登录页,包括:无效token值、token已过期(限JWT)
[token_exp_offset]number10JWT token过期时间偏移值(单位:秒)
[token_send_key]stringToken发送token参数名
[token_send_template]string${token}发送token模板,以 ${属性名} 表示占位符,属性名要确保存在否则以空字符代替
[token_send_place]header,body,urlheader发送token参数位置
[login_url]string/login登录页路由地址
[ignores]RegExp[][ /\/login/, /assets\// ]忽略 URL 地址清单,除此之外还可以通过 ALLOW_ANONYMOUS 进行控制是否忽略。
[refreshTime]number3000刷新时长(单位:ms)
[refreshOffset]number6000偏移值(单位:ms),建议根据 refreshTime 倍数来设置

可以通过全局配置覆盖它们。

FAQ

解决同域下多个NG-ALAIN项目Token污染问题

可以在每个项目里通过全局配置修改 store_key 用于区分。

TokenService
Loading...
\ No newline at end of file diff --git a/auth/guard/en/index.html b/auth/guard/en/index.html index b9802505d..4fac3f944 100644 --- a/auth/guard/en/index.html +++ b/auth/guard/en/index.html @@ -15,4 +15,4 @@ path: 'login', component: MockComponent, }, -]

如何选择?

同样,针对不同认证风格分别为:

Loading...
\ No newline at end of file +]

如何选择?

同样,针对不同认证风格分别为:

Loading...
\ No newline at end of file diff --git a/auth/guard/zh/index.html b/auth/guard/zh/index.html index bb2c9599c..62e2525de 100644 --- a/auth/guard/zh/index.html +++ b/auth/guard/zh/index.html @@ -15,4 +15,4 @@ path: 'login', component: MockComponent, }, -]

如何选择?

同样,针对不同认证风格分别为:

发送Token
Loading...
\ No newline at end of file +]

如何选择?

同样,针对不同认证风格分别为:

发送Token
Loading...
\ No newline at end of file diff --git a/auth/index.html b/auth/index.html index 34fd10fe0..2bf62a808 100644 --- a/auth/index.html +++ b/auth/index.html @@ -1 +1 @@ -一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file +一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file diff --git a/auth/qa/en/index.html b/auth/qa/en/index.html index 8a8368663..b3df967d7 100644 --- a/auth/qa/en/index.html +++ b/auth/qa/en/index.html @@ -13,4 +13,4 @@ console.error('error', err); return of({}); }) -).subscribe();
Loading...
\ No newline at end of file +).subscribe();
Loading...
\ No newline at end of file diff --git a/auth/qa/zh/index.html b/auth/qa/zh/index.html index 8073c14ee..070db55a1 100644 --- a/auth/qa/zh/index.html +++ b/auth/qa/zh/index.html @@ -13,4 +13,4 @@ console.error('error', err); return of({}); }) -).subscribe();
获取Token 存储Token
Loading...
\ No newline at end of file +).subscribe();
获取Token 存储Token
Loading...
\ No newline at end of file diff --git a/auth/send/en/index.html b/auth/send/en/index.html index 80cc90db4..b3b02d0a6 100644 --- a/auth/send/en/index.html +++ b/auth/send/en/index.html @@ -4,4 +4,4 @@ provideAuth(withSimple()), // Or JWT provideAuth(withJWT()), -]

示例

DEMO,账密或其他登录方式登录,并观察浏览器 localStorage 存储数据的变化。

Loading...
\ No newline at end of file +]

示例

DEMO,账密或其他登录方式登录,并观察浏览器 localStorage 存储数据的变化。

Loading...
\ No newline at end of file diff --git a/auth/send/zh/index.html b/auth/send/zh/index.html index 58b45159d..438c706b4 100644 --- a/auth/send/zh/index.html +++ b/auth/send/zh/index.html @@ -4,4 +4,4 @@ provideAuth(withSimple()), // Or JWT provideAuth(withJWT()), -]

示例

DEMO,账密或其他登录方式登录,并观察浏览器 localStorage 存储数据的变化。

存储Token 路由守卫
Loading...
\ No newline at end of file +]

示例

DEMO,账密或其他登录方式登录,并观察浏览器 localStorage 存储数据的变化。

存储Token 路由守卫
Loading...
\ No newline at end of file diff --git a/auth/service/en/index.html b/auth/service/en/index.html index 8d351bbcd..004a89c61 100644 --- a/auth/service/en/index.html +++ b/auth/service/en/index.html @@ -2,4 +2,4 @@ console.log(tokenService.get().token); // 如果是 JWT console.log(tokenService.get(JWTTokenModel).token); -}

过期刷新

订阅 refresh 后 Token 过期时会自动触发,当后端支持 Token 刷新可以,可以在过期前刷新 Token 来延长用户授权时长。

建议 refresh 在整个应用中只订阅一次。

API

属性

参数名类型描述
[login_url]string获取 DelonAuthConfig 配置的登录地址
[referrer]AuthReferrer获取授权失败前路由信息
[refresh]Observable<ITokenModel>订阅刷新,订阅时会自动产生一个定时器,每隔一段时间进行一些校验;注意 会多次触发,请务必做好业务判断

方法

方法名返回类型描述
change()Observable<ITokenModel>监听 Token 变化回调
set(data: ITokenModel)boolean设置 Token
get(type?: any)ITokenModel获取 Token
clear(options?: { onlyToken: boolean })void清空 Token
Loading...
\ No newline at end of file +}

过期刷新

订阅 refresh 后 Token 过期时会自动触发,当后端支持 Token 刷新可以,可以在过期前刷新 Token 来延长用户授权时长。

建议 refresh 在整个应用中只订阅一次。

API

属性

参数名类型描述
[login_url]string获取 DelonAuthConfig 配置的登录地址
[referrer]AuthReferrer获取授权失败前路由信息
[refresh]Observable<ITokenModel>订阅刷新,订阅时会自动产生一个定时器,每隔一段时间进行一些校验;注意 会多次触发,请务必做好业务判断

方法

方法名返回类型描述
change()Observable<ITokenModel>监听 Token 变化回调
set(data: ITokenModel)boolean设置 Token
get(type?: any)ITokenModel获取 Token
clear(options?: { onlyToken: boolean })void清空 Token
Loading...
\ No newline at end of file diff --git a/auth/service/zh/index.html b/auth/service/zh/index.html index bb5024fb9..e37498a5f 100644 --- a/auth/service/zh/index.html +++ b/auth/service/zh/index.html @@ -2,4 +2,4 @@ console.log(tokenService.get().token); // 如果是 JWT console.log(tokenService.get(JWTTokenModel).token); -}

过期刷新

订阅 refresh 后 Token 过期时会自动触发,当后端支持 Token 刷新可以,可以在过期前刷新 Token 来延长用户授权时长。

建议 refresh 在整个应用中只订阅一次。

API

属性

参数名类型描述
[login_url]string获取 DelonAuthConfig 配置的登录地址
[referrer]AuthReferrer获取授权失败前路由信息
[refresh]Observable<ITokenModel>订阅刷新,订阅时会自动产生一个定时器,每隔一段时间进行一些校验;注意 会多次触发,请务必做好业务判断

方法

方法名返回类型描述
change()Observable<ITokenModel>监听 Token 变化回调
set(data: ITokenModel)boolean设置 Token
get(type?: any)ITokenModel获取 Token
clear(options?: { onlyToken: boolean })void清空 Token
开始使用 获取Token
Loading...
\ No newline at end of file +}

过期刷新

订阅 refresh 后 Token 过期时会自动触发,当后端支持 Token 刷新可以,可以在过期前刷新 Token 来延长用户授权时长。

建议 refresh 在整个应用中只订阅一次。

API

属性

参数名类型描述
[login_url]string获取 DelonAuthConfig 配置的登录地址
[referrer]AuthReferrer获取授权失败前路由信息
[refresh]Observable<ITokenModel>订阅刷新,订阅时会自动产生一个定时器,每隔一段时间进行一些校验;注意 会多次触发,请务必做好业务判断

方法

方法名返回类型描述
change()Observable<ITokenModel>监听 Token 变化回调
set(data: ITokenModel)boolean设置 Token
get(type?: any)ITokenModel获取 Token
clear(options?: { onlyToken: boolean })void清空 Token
开始使用 获取Token
Loading...
\ No newline at end of file diff --git a/auth/set/en/index.html b/auth/set/en/index.html index 30133f322..4e3fffeae 100644 --- a/auth/set/en/index.html +++ b/auth/set/en/index.html @@ -4,4 +4,4 @@ service.get().token; // output: asdf }

存储类型

默认是采用 withLocalStorage 持久化存储,你可以在 app.config.ts 变更其他存储方式。

providers: [
   provideAuth(withJWT(), withLocalStorage()),
-]

包含三种存储类型:

withLocalStorage

localStorage 存储,关掉浏览器后不丢失

withSessionStorage

sessionStorage 存储,关掉浏览器后丢失

withMemoryStorage

内存存储,关掉浏览器标签后丢失

withCookie

Cookie 存储。

Loading...
\ No newline at end of file +]

包含三种存储类型:

withLocalStorage

localStorage 存储,关掉浏览器后不丢失

withSessionStorage

sessionStorage 存储,关掉浏览器后丢失

withMemoryStorage

内存存储,关掉浏览器标签后丢失

withCookie

Cookie 存储。

Loading...
\ No newline at end of file diff --git a/auth/set/zh/index.html b/auth/set/zh/index.html index 4e51e6d19..0195e86c4 100644 --- a/auth/set/zh/index.html +++ b/auth/set/zh/index.html @@ -4,4 +4,4 @@ service.get().token; // output: asdf }

存储类型

默认是采用 withLocalStorage 持久化存储,你可以在 app.config.ts 变更其他存储方式。

providers: [
   provideAuth(withJWT(), withLocalStorage()),
-]

包含三种存储类型:

withLocalStorage

localStorage 存储,关掉浏览器后不丢失

withSessionStorage

sessionStorage 存储,关掉浏览器后丢失

withMemoryStorage

内存存储,关掉浏览器标签后丢失

withCookie

Cookie 存储。

常见问题 发送Token
Loading...
\ No newline at end of file +]

包含三种存储类型:

withLocalStorage

localStorage 存储,关掉浏览器后不丢失

withSessionStorage

sessionStorage 存储,关掉浏览器后丢失

withMemoryStorage

内存存储,关掉浏览器标签后丢失

withCookie

Cookie 存储。

常见问题 发送Token
Loading...
\ No newline at end of file diff --git a/cache/getting-started/en/index.html b/cache/getting-started/en/index.html index e29096769..24221affb 100644 --- a/cache/getting-started/en/index.html +++ b/cache/getting-started/en/index.html @@ -74,4 +74,4 @@ ngOnDestroy(): void { if (this.notify$) this.notify$.unsubscribe(); } -}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/cache/getting-started/zh/index.html b/cache/getting-started/zh/index.html index 22f7ff338..8ffb9fa22 100644 --- a/cache/getting-started/zh/index.html +++ b/cache/getting-started/zh/index.html @@ -74,4 +74,4 @@ ngOnDestroy(): void { if (this.notify$) this.notify$.unsubscribe(); } -}
CacheService
Loading...
\ No newline at end of file +}
CacheService
Loading...
\ No newline at end of file diff --git a/cache/index.html b/cache/index.html index 34fd10fe0..2bf62a808 100644 --- a/cache/index.html +++ b/cache/index.html @@ -1 +1 @@ -一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file +一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file diff --git a/cache/service/en/index.html b/cache/service/en/index.html index 6ae080b28..f945c621d 100644 --- a/cache/service/en/index.html +++ b/cache/service/en/index.html @@ -80,4 +80,4 @@ .get('/data/unit') .pipe( map(units => this.http.get(`/trade?unit=${units}`)) - );
Loading...
\ No newline at end of file + );
Loading...
\ No newline at end of file diff --git a/cache/service/zh/index.html b/cache/service/zh/index.html index 2821aa657..9d66d96f7 100644 --- a/cache/service/zh/index.html +++ b/cache/service/zh/index.html @@ -80,4 +80,4 @@ .get('/data/unit') .pipe( map(units => this.http.get(`/trade?unit=${units}`)) - );
开始使用
Loading...
\ No newline at end of file + );
开始使用
Loading...
\ No newline at end of file diff --git a/chart/bar/en/index.html b/chart/bar/en/index.html index 6397654e0..52dc9f9a4 100644 --- a/chart/bar/en/index.html +++ b/chart/bar/en/index.html @@ -29,4 +29,4 @@ handleClick(data: G2BarClickItem): void { this.msg.info(`${data.item.x} - ${data.item.y}`); } -}

API

g2-bar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[color]图表颜色stringrgba(24, 144, 255, 0.85)
[padding]图表内部间距Array<number | string> | string[32, 0, 32, 40]
[height]图表高度number-
[data]数据G2BarData[][]
[autoLabel]在宽度不足时,自动隐藏 x 轴的 labelbooleantrue
[interaction]交互类型,none 无 element-active 图形元素,active-region 图表组件,brush 框选,drag-move 移动InteractionTypenone
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2BarClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2BarData

参数说明类型默认值
[x]x轴any-
[y]y轴any-
[color]轴颜色string-
Loading...
\ No newline at end of file +}

API

g2-bar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[color]图表颜色stringrgba(24, 144, 255, 0.85)
[padding]图表内部间距Array<number | string> | string[32, 0, 32, 40]
[height]图表高度number-
[data]数据G2BarData[][]
[autoLabel]在宽度不足时,自动隐藏 x 轴的 labelbooleantrue
[interaction]交互类型,none 无 element-active 图形元素,active-region 图表组件,brush 框选,drag-move 移动InteractionTypenone
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2BarClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2BarData

参数说明类型默认值
[x]x轴any-
[y]y轴any-
[color]轴颜色string-
Loading...
\ No newline at end of file diff --git a/chart/bar/zh/index.html b/chart/bar/zh/index.html index fab42aaff..efd2c342f 100644 --- a/chart/bar/zh/index.html +++ b/chart/bar/zh/index.html @@ -29,4 +29,4 @@ handleClick(data: G2BarClickItem): void { this.msg.info(`${data.item.x} - ${data.item.y}`); } -}

API

g2-bar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[color]图表颜色stringrgba(24, 144, 255, 0.85)
[padding]图表内部间距Array<number | string> | string[32, 0, 32, 40]
[height]图表高度number-
[data]数据G2BarData[][]
[autoLabel]在宽度不足时,自动隐藏 x 轴的 labelbooleantrue
[interaction]交互类型,none 无 element-active 图形元素,active-region 图表组件,brush 框选,drag-move 移动InteractionTypenone
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2BarClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2BarData

参数说明类型默认值
[x]x轴any-
[y]y轴any-
[color]轴颜色string-
常见问题 g2-card 图表卡片
Loading...
\ No newline at end of file +}

API

g2-bar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[color]图表颜色stringrgba(24, 144, 255, 0.85)
[padding]图表内部间距Array<number | string> | string[32, 0, 32, 40]
[height]图表高度number-
[data]数据G2BarData[][]
[autoLabel]在宽度不足时,自动隐藏 x 轴的 labelbooleantrue
[interaction]交互类型,none 无 element-active 图形元素,active-region 图表组件,brush 框选,drag-move 移动InteractionTypenone
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2BarClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2BarData

参数说明类型默认值
[x]x轴any-
[y]y轴any-
[color]轴颜色string-
常见问题 g2-card 图表卡片
Loading...
\ No newline at end of file diff --git a/chart/card/en/index.html b/chart/card/en/index.html index 3c1f9a73f..a1561cf29 100644 --- a/chart/card/en/index.html +++ b/chart/card/en/index.html @@ -40,4 +40,4 @@ </g2-card> `, }) -export class ChartCardStyle2Component {}

API

g2-card

参数说明类型默认值
[title]卡片标题string,TemplateRef<void>-
[avatar]头像string,TemplateRef<void>-
[action]卡片操作string,TemplateRef<void>-
[total]数据总量(支持HTML)string-
[footer]卡片底部string,TemplateRef<void>-
[contentHeight]内容区域高度(单位:pxstring-
[bordered]是否显示边框booleanfalse
Loading...
\ No newline at end of file +export class ChartCardStyle2Component {}

API

g2-card

参数说明类型默认值
[title]卡片标题string,TemplateRef<void>-
[avatar]头像string,TemplateRef<void>-
[action]卡片操作string,TemplateRef<void>-
[total]数据总量(支持HTML)string-
[footer]卡片底部string,TemplateRef<void>-
[contentHeight]内容区域高度(单位:pxstring-
[bordered]是否显示边框booleanfalse
Loading...
\ No newline at end of file diff --git a/chart/card/zh/index.html b/chart/card/zh/index.html index 5c20489d9..9ba890d91 100644 --- a/chart/card/zh/index.html +++ b/chart/card/zh/index.html @@ -40,4 +40,4 @@ </g2-card> `, }) -export class ChartCardStyle2Component {}

API

g2-card

参数说明类型默认值
[title]卡片标题string,TemplateRef<void>-
[avatar]头像string,TemplateRef<void>-
[action]卡片操作string,TemplateRef<void>-
[total]数据总量(支持HTML)string-
[footer]卡片底部string,TemplateRef<void>-
[contentHeight]内容区域高度(单位:pxstring-
[bordered]是否显示边框booleanfalse
g2-bar 柱状图 g2-chart 自定义图表
Loading...
\ No newline at end of file +export class ChartCardStyle2Component {}

API

g2-card

参数说明类型默认值
[title]卡片标题string,TemplateRef<void>-
[avatar]头像string,TemplateRef<void>-
[action]卡片操作string,TemplateRef<void>-
[total]数据总量(支持HTML)string-
[footer]卡片底部string,TemplateRef<void>-
[contentHeight]内容区域高度(单位:pxstring-
[bordered]是否显示边框booleanfalse
g2-bar 柱状图 g2-chart 自定义图表
Loading...
\ No newline at end of file diff --git a/chart/chart-echarts/en/index.html b/chart/chart-echarts/en/index.html index 7d548e7e0..5688a6fde 100644 --- a/chart/chart-echarts/en/index.html +++ b/chart/chart-echarts/en/index.html @@ -99,4 +99,4 @@ }; constructor(private msg: NzMessageService) {} -}

API

chart-echarts

参数说明类型默认值
[width]图表宽度number, string100%
[height]图表高度number, string400px
[option]配置项ChartEChartsOption-
[theme]主题配置string, object-
[on]等同于 ECharts onChartEChartsOn[]-
(events)事件回调EventEmitter<ChartEChartsEvent>-
Loading...
\ No newline at end of file +}

API

chart-echarts

参数说明类型默认值
[width]图表宽度number, string100%
[height]图表高度number, string400px
[option]配置项ChartEChartsOption-
[theme]主题配置string, object-
[on]等同于 ECharts onChartEChartsOn[]-
(events)事件回调EventEmitter<ChartEChartsEvent>-
Loading...
\ No newline at end of file diff --git a/chart/chart-echarts/zh/index.html b/chart/chart-echarts/zh/index.html index 40177d52b..7d19a620f 100644 --- a/chart/chart-echarts/zh/index.html +++ b/chart/chart-echarts/zh/index.html @@ -99,4 +99,4 @@ }; constructor(private msg: NzMessageService) {} -}

API

chart-echarts

参数说明类型默认值
[width]图表宽度number, string100%
[height]图表高度number, string400px
[option]配置项ChartEChartsOption-
[theme]主题配置string, object-
[on]等同于 ECharts onChartEChartsOn[]-
(events)事件回调EventEmitter<ChartEChartsEvent>-
g2-water-wave 水波图
Loading...
\ No newline at end of file +}

API

chart-echarts

参数说明类型默认值
[width]图表宽度number, string100%
[height]图表高度number, string400px
[option]配置项ChartEChartsOption-
[theme]主题配置string, object-
[on]等同于 ECharts onChartEChartsOn[]-
(events)事件回调EventEmitter<ChartEChartsEvent>-
g2-water-wave 水波图
Loading...
\ No newline at end of file diff --git a/chart/custom/en/index.html b/chart/custom/en/index.html index 7d4ebcbd8..a0319234a 100644 --- a/chart/custom/en/index.html +++ b/chart/custom/en/index.html @@ -121,4 +121,4 @@ chart.render(); } -}

API

g2-custom

参数说明类型默认值
[delay]延迟渲染,单位:毫秒number0
[height]number-
[resizeTime]resize 事件去抖时长number200
(render)渲染事件EventEmitter<ElementRef>-
(resize)resize 事件EventEmitter<ElementRef>-
(destroy)销毁事件EventEmitter<ElementRef>-
[theme]定制图表主题string | LooseObject-
Loading...
\ No newline at end of file +}

API

g2-custom

参数说明类型默认值
[delay]延迟渲染,单位:毫秒number0
[height]number-
[resizeTime]resize 事件去抖时长number200
(render)渲染事件EventEmitter<ElementRef>-
(resize)resize 事件EventEmitter<ElementRef>-
(destroy)销毁事件EventEmitter<ElementRef>-
[theme]定制图表主题string | LooseObject-
Loading...
\ No newline at end of file diff --git a/chart/custom/zh/index.html b/chart/custom/zh/index.html index a76310881..1de23b4dd 100644 --- a/chart/custom/zh/index.html +++ b/chart/custom/zh/index.html @@ -121,4 +121,4 @@ chart.render(); } -}

API

g2-custom

参数说明类型默认值
[delay]延迟渲染,单位:毫秒number0
[height]number-
[resizeTime]resize 事件去抖时长number200
(render)渲染事件EventEmitter<ElementRef>-
(resize)resize 事件EventEmitter<ElementRef>-
(destroy)销毁事件EventEmitter<ElementRef>-
[theme]定制图表主题string | LooseObject-
g2-card 图表卡片 g2-gauge 仪表盘
Loading...
\ No newline at end of file +}

API

g2-custom

参数说明类型默认值
[delay]延迟渲染,单位:毫秒number0
[height]number-
[resizeTime]resize 事件去抖时长number200
(render)渲染事件EventEmitter<ElementRef>-
(resize)resize 事件EventEmitter<ElementRef>-
(destroy)销毁事件EventEmitter<ElementRef>-
[theme]定制图表主题string | LooseObject-
g2-card 图表卡片 g2-gauge 仪表盘
Loading...
\ No newline at end of file diff --git a/chart/faq/en/index.html b/chart/faq/en/index.html index df1bbbab3..32f535760 100644 --- a/chart/faq/en/index.html +++ b/chart/faq/en/index.html @@ -1 +1 @@ -常见问题 - NG-ALAIN

常见问题

如何自适应容器宽高?

G2 当前版本并不会根据容器宽高自适应,目前只会根据浏览器窗体大小才会重新变更图表尺寸,因此需要手动监听容器大小的变化并调用 chart.forceFit() 重新渲染图表尺寸。

Loading...
\ No newline at end of file +常见问题 - NG-ALAIN

常见问题

如何自适应容器宽高?

G2 当前版本并不会根据容器宽高自适应,目前只会根据浏览器窗体大小才会重新变更图表尺寸,因此需要手动监听容器大小的变化并调用 chart.forceFit() 重新渲染图表尺寸。

Loading...
\ No newline at end of file diff --git a/chart/faq/zh/index.html b/chart/faq/zh/index.html index 56dab9edb..b2f34102f 100644 --- a/chart/faq/zh/index.html +++ b/chart/faq/zh/index.html @@ -1 +1 @@ -常见问题 - NG-ALAIN

常见问题

如何自适应容器宽高?

G2 当前版本并不会根据容器宽高自适应,目前只会根据浏览器窗体大小才会重新变更图表尺寸,因此需要手动监听容器大小的变化并调用 chart.forceFit() 重新渲染图表尺寸。

Loading...
\ No newline at end of file +常见问题 - NG-ALAIN

常见问题

如何自适应容器宽高?

G2 当前版本并不会根据容器宽高自适应,目前只会根据浏览器窗体大小才会重新变更图表尺寸,因此需要手动监听容器大小的变化并调用 chart.forceFit() 重新渲染图表尺寸。

Loading...
\ No newline at end of file diff --git a/chart/gauge/en/index.html b/chart/gauge/en/index.html index 1f76d2e2d..da2556cb4 100644 --- a/chart/gauge/en/index.html +++ b/chart/gauge/en/index.html @@ -26,4 +26,4 @@ ngOnDestroy(): void { clearInterval(this.time$); } -}

API

g2-gauge

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string-
[height]图表高度number-
[color]图表颜色string#2F9CFF
[bgColor]图表背景色string#F0F2F5
[percent]进度比例number-
[padding]内边距Array<number | string>[10, 10, 30, 10]
[format]坐标轴格式(text: string, item: {}, index: number) => string-
[theme]定制图表主题string | LooseObject-
(ready)当G2完成初始化后调用EventEmitter<Chart>-
Loading...
\ No newline at end of file +}

API

g2-gauge

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string-
[height]图表高度number-
[color]图表颜色string#2F9CFF
[bgColor]图表背景色string#F0F2F5
[percent]进度比例number-
[padding]内边距Array<number | string>[10, 10, 30, 10]
[format]坐标轴格式(text: string, item: {}, index: number) => string-
[theme]定制图表主题string | LooseObject-
(ready)当G2完成初始化后调用EventEmitter<Chart>-
Loading...
\ No newline at end of file diff --git a/chart/gauge/zh/index.html b/chart/gauge/zh/index.html index 4236f7488..feb8e481c 100644 --- a/chart/gauge/zh/index.html +++ b/chart/gauge/zh/index.html @@ -26,4 +26,4 @@ ngOnDestroy(): void { clearInterval(this.time$); } -}

API

g2-gauge

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string-
[height]图表高度number-
[color]图表颜色string#2F9CFF
[bgColor]图表背景色string#F0F2F5
[percent]进度比例number-
[padding]内边距Array<number | string>[10, 10, 30, 10]
[format]坐标轴格式(text: string, item: {}, index: number) => string-
[theme]定制图表主题string | LooseObject-
(ready)当G2完成初始化后调用EventEmitter<Chart>-
g2-chart 自定义图表 g2-mini-area 迷你区域图
Loading...
\ No newline at end of file +}

API

g2-gauge

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string-
[height]图表高度number-
[color]图表颜色string#2F9CFF
[bgColor]图表背景色string#F0F2F5
[percent]进度比例number-
[padding]内边距Array<number | string>[10, 10, 30, 10]
[format]坐标轴格式(text: string, item: {}, index: number) => string-
[theme]定制图表主题string | LooseObject-
(ready)当G2完成初始化后调用EventEmitter<Chart>-
g2-chart 自定义图表 g2-mini-area 迷你区域图
Loading...
\ No newline at end of file diff --git a/chart/getting-started/en/index.html b/chart/getting-started/en/index.html index 8ba85a95d..aced3adb7 100644 --- a/chart/getting-started/en/index.html +++ b/chart/getting-started/en/index.html @@ -58,4 +58,4 @@ ] }; } -}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/chart/getting-started/zh/index.html b/chart/getting-started/zh/index.html index 9ad1dcfe3..d7e0303d8 100644 --- a/chart/getting-started/zh/index.html +++ b/chart/getting-started/zh/index.html @@ -58,4 +58,4 @@ ] }; } -}
常见问题
Loading...
\ No newline at end of file +}
常见问题
Loading...
\ No newline at end of file diff --git a/chart/index.html b/chart/index.html index 34fd10fe0..2bf62a808 100644 --- a/chart/index.html +++ b/chart/index.html @@ -1 +1 @@ -一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file +一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file diff --git a/chart/mini-area/en/index.html b/chart/mini-area/en/index.html index b70a869d9..489d0cc0e 100644 --- a/chart/mini-area/en/index.html +++ b/chart/mini-area/en/index.html @@ -72,4 +72,4 @@ }); } } -}

API

g2-mini-area

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[color]图表颜色stringrgba(24, 144, 255, 0.2)
[borderColor]图表边颜色string#1890FF
[height]图表高度number56
[line]是否显示描边booleanfalse
[animate]是否显示动画booleantrue
[padding]图表内部间距array[8, 8, 8, 8]
[xAxis]x 轴配置object-
[yAxis]y 轴配置object-
[yTooltipSuffix]y 轴Tooltip后缀,一般指定单位string-
[tooltipType]Tooltip显示类型'mini','default''default'
[data]数据G2MiniAreaData[]-
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2MiniAreaClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2MiniAreaData

参数说明类型默认值
[x]x轴any-
[y]y轴any-
Loading...
\ No newline at end of file +}

API

g2-mini-area

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[color]图表颜色stringrgba(24, 144, 255, 0.2)
[borderColor]图表边颜色string#1890FF
[height]图表高度number56
[line]是否显示描边booleanfalse
[animate]是否显示动画booleantrue
[padding]图表内部间距array[8, 8, 8, 8]
[xAxis]x 轴配置object-
[yAxis]y 轴配置object-
[yTooltipSuffix]y 轴Tooltip后缀,一般指定单位string-
[tooltipType]Tooltip显示类型'mini','default''default'
[data]数据G2MiniAreaData[]-
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2MiniAreaClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2MiniAreaData

参数说明类型默认值
[x]x轴any-
[y]y轴any-
Loading...
\ No newline at end of file diff --git a/chart/mini-area/zh/index.html b/chart/mini-area/zh/index.html index 5168aa5c4..5f4572175 100644 --- a/chart/mini-area/zh/index.html +++ b/chart/mini-area/zh/index.html @@ -72,4 +72,4 @@ }); } } -}

API

g2-mini-area

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[color]图表颜色stringrgba(24, 144, 255, 0.2)
[borderColor]图表边颜色string#1890FF
[height]图表高度number56
[line]是否显示描边booleanfalse
[animate]是否显示动画booleantrue
[padding]图表内部间距array[8, 8, 8, 8]
[xAxis]x 轴配置object-
[yAxis]y 轴配置object-
[yTooltipSuffix]y 轴Tooltip后缀,一般指定单位string-
[tooltipType]Tooltip显示类型'mini','default''default'
[data]数据G2MiniAreaData[]-
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2MiniAreaClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2MiniAreaData

参数说明类型默认值
[x]x轴any-
[y]y轴any-
g2-gauge 仪表盘 g2-mini-bar 迷你柱状图
Loading...
\ No newline at end of file +}

API

g2-mini-area

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[color]图表颜色stringrgba(24, 144, 255, 0.2)
[borderColor]图表边颜色string#1890FF
[height]图表高度number56
[line]是否显示描边booleanfalse
[animate]是否显示动画booleantrue
[padding]图表内部间距array[8, 8, 8, 8]
[xAxis]x 轴配置object-
[yAxis]y 轴配置object-
[yTooltipSuffix]y 轴Tooltip后缀,一般指定单位string-
[tooltipType]Tooltip显示类型'mini','default''default'
[data]数据G2MiniAreaData[]-
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2MiniAreaClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2MiniAreaData

参数说明类型默认值
[x]x轴any-
[y]y轴any-
g2-gauge 仪表盘 g2-mini-bar 迷你柱状图
Loading...
\ No newline at end of file diff --git a/chart/mini-bar/en/index.html b/chart/mini-bar/en/index.html index 904d00496..0ff0e0a78 100644 --- a/chart/mini-bar/en/index.html +++ b/chart/mini-bar/en/index.html @@ -72,4 +72,4 @@ }); } } -}

API

g2-mini-bar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[color]图表颜色string#1890FF
[height]图表高度number-
[yTooltipSuffix]y 轴Tooltip后缀,一般指定单位string-
[tooltipType]Tooltip显示类型'mini','default''default'
[borderWidth]线条粗细number5
[padding]图表内部间距array[8, 8, 8, 8]
[data]数据G2MiniBarData[]-
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2MiniBarClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2MiniBarData

参数说明类型默认值
[x]x轴any-
[y]y轴any-
[color]轴颜色string-
Loading...
\ No newline at end of file +}

API

g2-mini-bar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[color]图表颜色string#1890FF
[height]图表高度number-
[yTooltipSuffix]y 轴Tooltip后缀,一般指定单位string-
[tooltipType]Tooltip显示类型'mini','default''default'
[borderWidth]线条粗细number5
[padding]图表内部间距array[8, 8, 8, 8]
[data]数据G2MiniBarData[]-
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2MiniBarClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2MiniBarData

参数说明类型默认值
[x]x轴any-
[y]y轴any-
[color]轴颜色string-
Loading...
\ No newline at end of file diff --git a/chart/mini-bar/zh/index.html b/chart/mini-bar/zh/index.html index 0b16227f5..0349b8c6c 100644 --- a/chart/mini-bar/zh/index.html +++ b/chart/mini-bar/zh/index.html @@ -72,4 +72,4 @@ }); } } -}

API

g2-mini-bar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[color]图表颜色string#1890FF
[height]图表高度number-
[yTooltipSuffix]y 轴Tooltip后缀,一般指定单位string-
[tooltipType]Tooltip显示类型'mini','default''default'
[borderWidth]线条粗细number5
[padding]图表内部间距array[8, 8, 8, 8]
[data]数据G2MiniBarData[]-
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2MiniBarClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2MiniBarData

参数说明类型默认值
[x]x轴any-
[y]y轴any-
[color]轴颜色string-
g2-mini-area 迷你区域图 g2-mini-progress 迷你进度条
Loading...
\ No newline at end of file +}

API

g2-mini-bar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[color]图表颜色string#1890FF
[height]图表高度number-
[yTooltipSuffix]y 轴Tooltip后缀,一般指定单位string-
[tooltipType]Tooltip显示类型'mini','default''default'
[borderWidth]线条粗细number5
[padding]图表内部间距array[8, 8, 8, 8]
[data]数据G2MiniBarData[]-
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2MiniBarClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2MiniBarData

参数说明类型默认值
[x]x轴any-
[y]y轴any-
[color]轴颜色string-
g2-mini-area 迷你区域图 g2-mini-progress 迷你进度条
Loading...
\ No newline at end of file diff --git a/chart/mini-progress/en/index.html b/chart/mini-progress/en/index.html index a91796662..72e9e0dc9 100644 --- a/chart/mini-progress/en/index.html +++ b/chart/mini-progress/en/index.html @@ -4,4 +4,4 @@ selector: 'chart-mini-progress-basic', template: ` <g2-mini-progress percent="78" strokeWidth="8" target="80"></g2-mini-progress> `, }) -export class ChartMiniProgressBasicComponent {}

API

g2-mini-progress

参数说明类型默认值
[target]目标比例number-
[color]进度条颜色string-
[strokeWidth]进度条高度number-
[percent]进度比例number-
Loading...
\ No newline at end of file +export class ChartMiniProgressBasicComponent {}

API

g2-mini-progress

参数说明类型默认值
[target]目标比例number-
[color]进度条颜色string-
[strokeWidth]进度条高度number-
[percent]进度比例number-
Loading...
\ No newline at end of file diff --git a/chart/mini-progress/zh/index.html b/chart/mini-progress/zh/index.html index 34dea4101..c4b7df58a 100644 --- a/chart/mini-progress/zh/index.html +++ b/chart/mini-progress/zh/index.html @@ -4,4 +4,4 @@ selector: 'chart-mini-progress-basic', template: ` <g2-mini-progress percent="78" strokeWidth="8" target="80"></g2-mini-progress> `, }) -export class ChartMiniProgressBasicComponent {}

API

g2-mini-progress

参数说明类型默认值
[target]目标比例number-
[color]进度条颜色string-
[strokeWidth]进度条高度number-
[percent]进度比例number-
g2-mini-bar 迷你柱状图 number-info 数据文本
Loading...
\ No newline at end of file +export class ChartMiniProgressBasicComponent {}

API

g2-mini-progress

参数说明类型默认值
[target]目标比例number-
[color]进度条颜色string-
[strokeWidth]进度条高度number-
[percent]进度比例number-
g2-mini-bar 迷你柱状图 number-info 数据文本
Loading...
\ No newline at end of file diff --git a/chart/number-info/en/index.html b/chart/number-info/en/index.html index 09ddf1ff6..2425493ad 100644 --- a/chart/number-info/en/index.html +++ b/chart/number-info/en/index.html @@ -20,4 +20,4 @@ selector: 'chart-number-info-theme', template: ` <number-info subTitle="本周访问" total="12,321" subTotal="17.1" status="down" theme="default"></number-info> `, }) -export class ChartNumberInfoThemeComponent {}

API

number-info

参数说明类型默认值
[title]标题TemplateRef<void>-
[subTitle]子标题TemplateRef<void>-
[total]总量string, number-
[suffix]总量后缀string-
[subTotal]子总量string, number-
[status]增加状态'up','down'-
[theme]状态样式'light','default''light'
[gap]设置数字和描述直接的间距(像素)number8
Loading...
\ No newline at end of file +export class ChartNumberInfoThemeComponent {}

API

number-info

参数说明类型默认值
[title]标题TemplateRef<void>-
[subTitle]子标题TemplateRef<void>-
[total]总量string, number-
[suffix]总量后缀string-
[subTotal]子总量string, number-
[status]增加状态'up','down'-
[theme]状态样式'light','default''light'
[gap]设置数字和描述直接的间距(像素)number8
Loading...
\ No newline at end of file diff --git a/chart/number-info/zh/index.html b/chart/number-info/zh/index.html index 8108fdbb1..97ddb0f41 100644 --- a/chart/number-info/zh/index.html +++ b/chart/number-info/zh/index.html @@ -20,4 +20,4 @@ selector: 'chart-number-info-theme', template: ` <number-info subTitle="本周访问" total="12,321" subTotal="17.1" status="down" theme="default"></number-info> `, }) -export class ChartNumberInfoThemeComponent {}

API

number-info

参数说明类型默认值
[title]标题TemplateRef<void>-
[subTitle]子标题TemplateRef<void>-
[total]总量string, number-
[suffix]总量后缀string-
[subTotal]子总量string, number-
[status]增加状态'up','down'-
[theme]状态样式'light','default''light'
[gap]设置数字和描述直接的间距(像素)number8
g2-mini-progress 迷你进度条 g2-pie 饼状图
Loading...
\ No newline at end of file +export class ChartNumberInfoThemeComponent {}

API

number-info

参数说明类型默认值
[title]标题TemplateRef<void>-
[subTitle]子标题TemplateRef<void>-
[total]总量string, number-
[suffix]总量后缀string-
[subTotal]子总量string, number-
[status]增加状态'up','down'-
[theme]状态样式'light','default''light'
[gap]设置数字和描述直接的间距(像素)number8
g2-mini-progress 迷你进度条 g2-pie 饼状图
Loading...
\ No newline at end of file diff --git a/chart/pie/en/index.html b/chart/pie/en/index.html index a9e4fa22b..45841210e 100644 --- a/chart/pie/en/index.html +++ b/chart/pie/en/index.html @@ -1,4 +1,4 @@ -g2-pie - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

饼状图
IMPORT MODULE

用于显示跟速度相关图形再适合不过。

代码演示

销售额

¥ 12740.00
基础

基础用法。默认情况下丝滑更新数据的判断标准是以只更新 data 为准,这里利用 repaint 进行手动调用 changeData 改变数据达到丝滑更新的效果。

expand code expand code
import { Component, ViewChild } from '@angular/core';
+g2-pie - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

饼状图
IMPORT MODULE

用于显示跟速度相关图形再适合不过。

代码演示

销售额

¥ 9888.00
基础

基础用法。默认情况下丝滑更新数据的判断标准是以只更新 data 为准,这里利用 repaint 进行手动调用 changeData 改变数据达到丝滑更新的效果。

expand code expand code
import { Component, ViewChild } from '@angular/core';
 import { G2PieClickItem, G2PieComponent, G2PieData } from '@delon/chart/pie';
 import { NzMessageService } from 'ng-zorro-antd/message';
 
@@ -83,4 +83,4 @@
     </div>
   `,
 })
-export class ChartPieMiniComponent {}

API

g2-pie

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[animate]是否显示动画booleantrue
[color]图表颜色stringrgba(24, 144, 255, 0.85)
[height]图表高度number-
[hasLegend]是否显示 legendbooleanfalse
[padding]图表内部间距number[][12, 0, 12, 0]
[percent]占比number-
[lineWidth]边框粗细number0
[inner]内部极坐标系的半径number0.75
[blockMaxWidth]多少宽度为块显示number380
[tooltip]是否显示 tooltipbooleantrue
[subTitle]图表子标题string,TemplateRef<void>-
[total]总量string,number,TemplateRef<void>-
[valueFormat]y轴格式化(y: number) => string-
[data]数据G2PieData[]-
[colors]颜色列表string[]-
[interaction]交互类型,none 无 element-active 图形元素,active-region 图表组件,brush 框选,drag-move 移动InteractionTypenone
[ratio]百分比配置项G2PieRatio{ text: '占比', inverse: '反比', color: '', inverseColor: '#F0F2F5' }
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2PieClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2PieData

参数说明类型默认值
[x]x轴any-
[y]y轴number-
Loading...
\ No newline at end of file +export class ChartPieMiniComponent {}

API

g2-pie

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[animate]是否显示动画booleantrue
[color]图表颜色stringrgba(24, 144, 255, 0.85)
[height]图表高度number-
[hasLegend]是否显示 legendbooleanfalse
[padding]图表内部间距number[][12, 0, 12, 0]
[percent]占比number-
[lineWidth]边框粗细number0
[inner]内部极坐标系的半径number0.75
[blockMaxWidth]多少宽度为块显示number380
[tooltip]是否显示 tooltipbooleantrue
[subTitle]图表子标题string,TemplateRef<void>-
[total]总量string,number,TemplateRef<void>-
[valueFormat]y轴格式化(y: number) => string-
[data]数据G2PieData[]-
[colors]颜色列表string[]-
[interaction]交互类型,none 无 element-active 图形元素,active-region 图表组件,brush 框选,drag-move 移动InteractionTypenone
[ratio]百分比配置项G2PieRatio{ text: '占比', inverse: '反比', color: '', inverseColor: '#F0F2F5' }
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2PieClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2PieData

参数说明类型默认值
[x]x轴any-
[y]y轴number-
Loading...
\ No newline at end of file diff --git a/chart/pie/zh/index.html b/chart/pie/zh/index.html index 2e001f0ce..441887365 100644 --- a/chart/pie/zh/index.html +++ b/chart/pie/zh/index.html @@ -1,4 +1,4 @@ -g2-pie - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

饼状图
IMPORT MODULE

用于显示跟速度相关图形再适合不过。

代码演示

销售额

¥ 11663.00
基础

基础用法。默认情况下丝滑更新数据的判断标准是以只更新 data 为准,这里利用 repaint 进行手动调用 changeData 改变数据达到丝滑更新的效果。

expand code expand code
import { Component, ViewChild } from '@angular/core';
+g2-pie - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

饼状图
IMPORT MODULE

用于显示跟速度相关图形再适合不过。

代码演示

销售额

¥ 16877.00
基础

基础用法。默认情况下丝滑更新数据的判断标准是以只更新 data 为准,这里利用 repaint 进行手动调用 changeData 改变数据达到丝滑更新的效果。

expand code expand code
import { Component, ViewChild } from '@angular/core';
 import { G2PieClickItem, G2PieComponent, G2PieData } from '@delon/chart/pie';
 import { NzMessageService } from 'ng-zorro-antd/message';
 
@@ -83,4 +83,4 @@
     </div>
   `,
 })
-export class ChartPieMiniComponent {}

API

g2-pie

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[animate]是否显示动画booleantrue
[color]图表颜色stringrgba(24, 144, 255, 0.85)
[height]图表高度number-
[hasLegend]是否显示 legendbooleanfalse
[padding]图表内部间距number[][12, 0, 12, 0]
[percent]占比number-
[lineWidth]边框粗细number0
[inner]内部极坐标系的半径number0.75
[blockMaxWidth]多少宽度为块显示number380
[tooltip]是否显示 tooltipbooleantrue
[subTitle]图表子标题string,TemplateRef<void>-
[total]总量string,number,TemplateRef<void>-
[valueFormat]y轴格式化(y: number) => string-
[data]数据G2PieData[]-
[colors]颜色列表string[]-
[interaction]交互类型,none 无 element-active 图形元素,active-region 图表组件,brush 框选,drag-move 移动InteractionTypenone
[ratio]百分比配置项G2PieRatio{ text: '占比', inverse: '反比', color: '', inverseColor: '#F0F2F5' }
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2PieClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2PieData

参数说明类型默认值
[x]x轴any-
[y]y轴number-
Loading...
\ No newline at end of file +export class ChartPieMiniComponent {}

API

g2-pie

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[animate]是否显示动画booleantrue
[color]图表颜色stringrgba(24, 144, 255, 0.85)
[height]图表高度number-
[hasLegend]是否显示 legendbooleanfalse
[padding]图表内部间距number[][12, 0, 12, 0]
[percent]占比number-
[lineWidth]边框粗细number0
[inner]内部极坐标系的半径number0.75
[blockMaxWidth]多少宽度为块显示number380
[tooltip]是否显示 tooltipbooleantrue
[subTitle]图表子标题string,TemplateRef<void>-
[total]总量string,number,TemplateRef<void>-
[valueFormat]y轴格式化(y: number) => string-
[data]数据G2PieData[]-
[colors]颜色列表string[]-
[interaction]交互类型,none 无 element-active 图形元素,active-region 图表组件,brush 框选,drag-move 移动InteractionTypenone
[ratio]百分比配置项G2PieRatio{ text: '占比', inverse: '反比', color: '', inverseColor: '#F0F2F5' }
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2PieClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2PieData

参数说明类型默认值
[x]x轴any-
[y]y轴number-
Loading...
\ No newline at end of file diff --git a/chart/radar/en/index.html b/chart/radar/en/index.html index e00042c84..db28b5a82 100644 --- a/chart/radar/en/index.html +++ b/chart/radar/en/index.html @@ -54,4 +54,4 @@ handleClick(data: G2RadarClickItem): void { this.msg.info(`${data.item.label} - ${data.item.name} - ${data.item.value}`); } -}

API

g2-radar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[height]图表高度number-
[hasLegend]是否显示 legendbooleanfalse
[padding]图表内部间距array[24, 30, 16, 30]
[colors]颜色列表string[]-
[data]数据G2RadarData[]-
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2RadarClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2RadarData

参数说明类型默认值
[name]名称string-
[label]标签string-
[value]number-
Loading...
\ No newline at end of file +}

API

g2-radar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[height]图表高度number-
[hasLegend]是否显示 legendbooleanfalse
[padding]图表内部间距array[24, 30, 16, 30]
[colors]颜色列表string[]-
[data]数据G2RadarData[]-
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2RadarClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2RadarData

参数说明类型默认值
[name]名称string-
[label]标签string-
[value]number-
Loading...
\ No newline at end of file diff --git a/chart/radar/zh/index.html b/chart/radar/zh/index.html index 67d30fa16..10e15a874 100644 --- a/chart/radar/zh/index.html +++ b/chart/radar/zh/index.html @@ -54,4 +54,4 @@ handleClick(data: G2RadarClickItem): void { this.msg.info(`${data.item.label} - ${data.item.name} - ${data.item.value}`); } -}

API

g2-radar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[height]图表高度number-
[hasLegend]是否显示 legendbooleanfalse
[padding]图表内部间距array[24, 30, 16, 30]
[colors]颜色列表string[]-
[data]数据G2RadarData[]-
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2RadarClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2RadarData

参数说明类型默认值
[name]名称string-
[label]标签string-
[value]number-
g2-pie 饼状图 g2-single-bar 单一柱状图
Loading...
\ No newline at end of file +}

API

g2-radar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[height]图表高度number-
[hasLegend]是否显示 legendbooleanfalse
[padding]图表内部间距array[24, 30, 16, 30]
[colors]颜色列表string[]-
[data]数据G2RadarData[]-
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2RadarClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2RadarData

参数说明类型默认值
[name]名称string-
[label]标签string-
[value]number-
g2-pie 饼状图 g2-single-bar 单一柱状图
Loading...
\ No newline at end of file diff --git a/chart/single-bar/en/index.html b/chart/single-bar/en/index.html index 2c35d83de..bd9152125 100644 --- a/chart/single-bar/en/index.html +++ b/chart/single-bar/en/index.html @@ -49,4 +49,4 @@ v.other = Math.floor(Math.random() * 100) > 50 ? Math.floor(Math.random() * 100) : -Math.floor(Math.random() * 100); }); } -}

API

g2-single-bar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[plusColor]图表颜色string#40a9ff
[minusColor]负值图表颜色string#ff4d4f
[height]图表高度number60
[barSize]柱状高度number30
[min]最小值number0
[max]最大值,若小于0表示显示负值number100
[padding]图表内部间距any0
[value]number0
[format]显示值格式(value: number) => string-
[textStyle]显示值样式any{ fontSize: 12, color: '#595959' }
[theme]定制图表主题string | LooseObject-
(ready)当G2完成初始化后调用EventEmitter<Chart>-
Loading...
\ No newline at end of file +}

API

g2-single-bar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[plusColor]图表颜色string#40a9ff
[minusColor]负值图表颜色string#ff4d4f
[height]图表高度number60
[barSize]柱状高度number30
[min]最小值number0
[max]最大值,若小于0表示显示负值number100
[padding]图表内部间距any0
[value]number0
[format]显示值格式(value: number) => string-
[textStyle]显示值样式any{ fontSize: 12, color: '#595959' }
[theme]定制图表主题string | LooseObject-
(ready)当G2完成初始化后调用EventEmitter<Chart>-
Loading...
\ No newline at end of file diff --git a/chart/single-bar/zh/index.html b/chart/single-bar/zh/index.html index f8ca1a73a..7ea9c84af 100644 --- a/chart/single-bar/zh/index.html +++ b/chart/single-bar/zh/index.html @@ -49,4 +49,4 @@ v.other = Math.floor(Math.random() * 100) > 50 ? Math.floor(Math.random() * 100) : -Math.floor(Math.random() * 100); }); } -}

API

g2-single-bar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[plusColor]图表颜色string#40a9ff
[minusColor]负值图表颜色string#ff4d4f
[height]图表高度number60
[barSize]柱状高度number30
[min]最小值number0
[max]最大值,若小于0表示显示负值number100
[padding]图表内部间距any0
[value]number0
[format]显示值格式(value: number) => string-
[textStyle]显示值样式any{ fontSize: 12, color: '#595959' }
[theme]定制图表主题string | LooseObject-
(ready)当G2完成初始化后调用EventEmitter<Chart>-
g2-radar 雷达图 g2-tag-cloud 标签云
Loading...
\ No newline at end of file +}

API

g2-single-bar

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[plusColor]图表颜色string#40a9ff
[minusColor]负值图表颜色string#ff4d4f
[height]图表高度number60
[barSize]柱状高度number30
[min]最小值number0
[max]最大值,若小于0表示显示负值number100
[padding]图表内部间距any0
[value]number0
[format]显示值格式(value: number) => string-
[textStyle]显示值样式any{ fontSize: 12, color: '#595959' }
[theme]定制图表主题string | LooseObject-
(ready)当G2完成初始化后调用EventEmitter<Chart>-
g2-radar 雷达图 g2-tag-cloud 标签云
Loading...
\ No newline at end of file diff --git a/chart/tag-cloud/en/index.html b/chart/tag-cloud/en/index.html index 3788af667..a393a03ed 100644 --- a/chart/tag-cloud/en/index.html +++ b/chart/tag-cloud/en/index.html @@ -206,4 +206,4 @@ handleClick(data: G2TagCloudClickItem): void { this.msg.info(`${data.item.name} - ${data.item.value}`); } -}

API

g2-tag-cloud

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number200
[height]高度值number200
[width]宽度值,若不指定自动按宿主元素的宽度number0
[data]数据G2TagCloudData[][]
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2TagCloudClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2TagCloudData

参数说明类型默认值
[name]名称string-
[value]number-
Loading...
\ No newline at end of file +}

API

g2-tag-cloud

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number200
[height]高度值number200
[width]宽度值,若不指定自动按宿主元素的宽度number0
[data]数据G2TagCloudData[][]
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2TagCloudClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2TagCloudData

参数说明类型默认值
[name]名称string-
[value]number-
Loading...
\ No newline at end of file diff --git a/chart/tag-cloud/zh/index.html b/chart/tag-cloud/zh/index.html index 4074cc224..68f9ba8ad 100644 --- a/chart/tag-cloud/zh/index.html +++ b/chart/tag-cloud/zh/index.html @@ -206,4 +206,4 @@ handleClick(data: G2TagCloudClickItem): void { this.msg.info(`${data.item.name} - ${data.item.value}`); } -}

API

g2-tag-cloud

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number200
[height]高度值number200
[width]宽度值,若不指定自动按宿主元素的宽度number0
[data]数据G2TagCloudData[][]
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2TagCloudClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2TagCloudData

参数说明类型默认值
[name]名称string-
[value]number-
g2-single-bar 单一柱状图 g2-timeline 折线图
Loading...
\ No newline at end of file +}

API

g2-tag-cloud

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number200
[height]高度值number200
[width]宽度值,若不指定自动按宿主元素的宽度number0
[data]数据G2TagCloudData[][]
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2TagCloudClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2TagCloudData

参数说明类型默认值
[name]名称string-
[value]number-
g2-single-bar 单一柱状图 g2-timeline 折线图
Loading...
\ No newline at end of file diff --git a/chart/timeline/en/index.html b/chart/timeline/en/index.html index c4ddbfa59..578309308 100644 --- a/chart/timeline/en/index.html +++ b/chart/timeline/en/index.html @@ -112,4 +112,4 @@ handleClick(data: G2TimelineClickItem): void { this.msg.info(`客流量: ${data.item.y1}, 支付笔数: ${data.item.y2}`); } -}

API

g2-timeline

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[maxAxis]最大指标数量number2
[data]数据,注:根据 maxAxis 值传递指标数据G2TimelineData[]-
[titleMap]指标别名G2TimelineMap-
[colorMap]颜色G2TimelineMap{ y1: '#5B8FF9', y2: '#5AD8A6', y3: '#5D7092', y4: '#F6BD16', y5: '#E86452' }
[height]高度值number400
[padding]图表内部间距number[][40, 8, 64, 40]
[borderWidth]线条number2
[mask]日期格式,使用 G2 Mask日期格式stringHH:mm
[maskSlider]滑动条日期格式,使用 date-fns 日期格式stringHH:mm
[position]标题位置'top','right','bottom','left''top'
[slider]是否需要滑动条booleantrue
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2TimelineClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2TimelineData

参数说明类型默认值
[time]日期格式Date | number-
[y1]指标1数据number-
[y2]指标2数据number-
[y3]指标3数据number-
[y4]指标4数据number-
[y5]指标5数据number-

G2TimelineMap

参数说明类型默认值
[y1]指标1string-
[y2]指标2string-
[y3]指标3string-
[y4]指标4string-
[y5]指标5string-
Loading...
\ No newline at end of file +}

API

g2-timeline

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[maxAxis]最大指标数量number2
[data]数据,注:根据 maxAxis 值传递指标数据G2TimelineData[]-
[titleMap]指标别名G2TimelineMap-
[colorMap]颜色G2TimelineMap{ y1: '#5B8FF9', y2: '#5AD8A6', y3: '#5D7092', y4: '#F6BD16', y5: '#E86452' }
[height]高度值number400
[padding]图表内部间距number[][40, 8, 64, 40]
[borderWidth]线条number2
[mask]日期格式,使用 G2 Mask日期格式stringHH:mm
[maskSlider]滑动条日期格式,使用 date-fns 日期格式stringHH:mm
[position]标题位置'top','right','bottom','left''top'
[slider]是否需要滑动条booleantrue
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2TimelineClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2TimelineData

参数说明类型默认值
[time]日期格式Date | number-
[y1]指标1数据number-
[y2]指标2数据number-
[y3]指标3数据number-
[y4]指标4数据number-
[y5]指标5数据number-

G2TimelineMap

参数说明类型默认值
[y1]指标1string-
[y2]指标2string-
[y3]指标3string-
[y4]指标4string-
[y5]指标5string-
Loading...
\ No newline at end of file diff --git a/chart/timeline/zh/index.html b/chart/timeline/zh/index.html index 83106a2fd..f47cf8fc8 100644 --- a/chart/timeline/zh/index.html +++ b/chart/timeline/zh/index.html @@ -112,4 +112,4 @@ handleClick(data: G2TimelineClickItem): void { this.msg.info(`客流量: ${data.item.y1}, 支付笔数: ${data.item.y2}`); } -}

API

g2-timeline

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[maxAxis]最大指标数量number2
[data]数据,注:根据 maxAxis 值传递指标数据G2TimelineData[]-
[titleMap]指标别名G2TimelineMap-
[colorMap]颜色G2TimelineMap{ y1: '#5B8FF9', y2: '#5AD8A6', y3: '#5D7092', y4: '#F6BD16', y5: '#E86452' }
[height]高度值number400
[padding]图表内部间距number[][40, 8, 64, 40]
[borderWidth]线条number2
[mask]日期格式,使用 G2 Mask日期格式stringHH:mm
[maskSlider]滑动条日期格式,使用 date-fns 日期格式stringHH:mm
[position]标题位置'top','right','bottom','left''top'
[slider]是否需要滑动条booleantrue
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2TimelineClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2TimelineData

参数说明类型默认值
[time]日期格式Date | number-
[y1]指标1数据number-
[y2]指标2数据number-
[y3]指标3数据number-
[y4]指标4数据number-
[y5]指标5数据number-

G2TimelineMap

参数说明类型默认值
[y1]指标1string-
[y2]指标2string-
[y3]指标3string-
[y4]指标4string-
[y5]指标5string-
g2-tag-cloud 标签云 trend 趋势标记
Loading...
\ No newline at end of file +}

API

g2-timeline

参数说明类型默认值
[repaint]数据再次变更时是否重绘booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[maxAxis]最大指标数量number2
[data]数据,注:根据 maxAxis 值传递指标数据G2TimelineData[]-
[titleMap]指标别名G2TimelineMap-
[colorMap]颜色G2TimelineMap{ y1: '#5B8FF9', y2: '#5AD8A6', y3: '#5D7092', y4: '#F6BD16', y5: '#E86452' }
[height]高度值number400
[padding]图表内部间距number[][40, 8, 64, 40]
[borderWidth]线条number2
[mask]日期格式,使用 G2 Mask日期格式stringHH:mm
[maskSlider]滑动条日期格式,使用 date-fns 日期格式stringHH:mm
[position]标题位置'top','right','bottom','left''top'
[slider]是否需要滑动条booleantrue
[theme]定制图表主题string | LooseObject-
(clickItem)点击项回调EventEmitter<G2TimelineClickItem>-
(ready)当G2完成初始化后调用EventEmitter<Chart>-

G2TimelineData

参数说明类型默认值
[time]日期格式Date | number-
[y1]指标1数据number-
[y2]指标2数据number-
[y3]指标3数据number-
[y4]指标4数据number-
[y5]指标5数据number-

G2TimelineMap

参数说明类型默认值
[y1]指标1string-
[y2]指标2string-
[y3]指标3string-
[y4]指标4string-
[y5]指标5string-
g2-tag-cloud 标签云 trend 趋势标记
Loading...
\ No newline at end of file diff --git a/chart/trend/en/index.html b/chart/trend/en/index.html index 405c35eae..e5a3de413 100644 --- a/chart/trend/en/index.html +++ b/chart/trend/en/index.html @@ -16,4 +16,4 @@ <trend flag="down" reverseColor class="ml-sm">11%</trend> `, }) -export class ChartTrendReverseComponent {}

API

trend

成员说明类型默认值
[colorful]是否彩色标记booleantrue
[flag]上升下降标识'up','down'-
[reverseColor]颜色反转booleanfalse
Loading...
\ No newline at end of file +export class ChartTrendReverseComponent {}

API

trend

成员说明类型默认值
[colorful]是否彩色标记booleantrue
[flag]上升下降标识'up','down'-
[reverseColor]颜色反转booleanfalse
Loading...
\ No newline at end of file diff --git a/chart/trend/zh/index.html b/chart/trend/zh/index.html index 30c3db3e5..3d9e5a18f 100644 --- a/chart/trend/zh/index.html +++ b/chart/trend/zh/index.html @@ -16,4 +16,4 @@ <trend flag="down" reverseColor class="ml-sm">11%</trend> `, }) -export class ChartTrendReverseComponent {}

API

trend

成员说明类型默认值
[colorful]是否彩色标记booleantrue
[flag]上升下降标识'up','down'-
[reverseColor]颜色反转booleanfalse
g2-timeline 折线图 g2-water-wave 水波图
Loading...
\ No newline at end of file +export class ChartTrendReverseComponent {}

API

trend

成员说明类型默认值
[colorful]是否彩色标记booleantrue
[flag]上升下降标识'up','down'-
[reverseColor]颜色反转booleanfalse
g2-timeline 折线图 g2-water-wave 水波图
Loading...
\ No newline at end of file diff --git a/chart/water-wave/en/index.html b/chart/water-wave/en/index.html index 0f0927e77..f49e66944 100644 --- a/chart/water-wave/en/index.html +++ b/chart/water-wave/en/index.html @@ -9,4 +9,4 @@ '[class.d-block]': 'true' } }) -export class ChartWaterWaveBasicComponent {}

API

g2-water-wave

参数说明类型默认值
[animate]是否显示动画booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[height]图表高度number160
[color]图表颜色string#1890FF
[percent]进度比例number-
Loading...
\ No newline at end of file +export class ChartWaterWaveBasicComponent {}

API

g2-water-wave

参数说明类型默认值
[animate]是否显示动画booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[height]图表高度number160
[color]图表颜色string#1890FF
[percent]进度比例number-
Loading...
\ No newline at end of file diff --git a/chart/water-wave/zh/index.html b/chart/water-wave/zh/index.html index 4010253ab..ef5139bd9 100644 --- a/chart/water-wave/zh/index.html +++ b/chart/water-wave/zh/index.html @@ -9,4 +9,4 @@ '[class.d-block]': 'true' } }) -export class ChartWaterWaveBasicComponent {}

API

g2-water-wave

参数说明类型默认值
[animate]是否显示动画booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[height]图表高度number160
[color]图表颜色string#1890FF
[percent]进度比例number-
trend 趋势标记 chart-echarts ECharts
Loading...
\ No newline at end of file +export class ChartWaterWaveBasicComponent {}

API

g2-water-wave

参数说明类型默认值
[animate]是否显示动画booleantrue
[delay]延迟渲染,单位:毫秒number0
[title]图表标题string,TemplateRef<void>-
[height]图表高度number160
[color]图表颜色string#1890FF
[percent]进度比例number-
trend 趋势标记 chart-echarts ECharts
Loading...
\ No newline at end of file diff --git a/chunk-QT5GDMGI.js b/chunk-I2IRRHUX.js similarity index 93% rename from chunk-QT5GDMGI.js rename to chunk-I2IRRHUX.js index fb349f3d5..715584d12 100644 --- a/chunk-QT5GDMGI.js +++ b/chunk-I2IRRHUX.js @@ -234,7 +234,7 @@ this.titleService.suffix = res.app.name;

ACL

{ path: 'exception', loadChildren: () => import('./exception/routes').then(m => m.routes) }, // All missed routes will jump to the \`exception/404\` page { path: '**', redirectTo: 'dashboard' } -];

The above mentioned LayoutBasicComponent basic layout is used in the business module, user authorization uses LayoutPassportComponent user authorization layout and LayoutBlankComponent blank layout. The above three layouts can be used in layout directory.

NG-ALAIN also provides some commercial themes to chooses.

For example, when a user accesses the /dashboard route, they will first go through LayoutBasicComponent -> DashboardComponent, and eventually form a huge component tree to represent a specific page. NG-ALAIN scaffolding helps you complete most of the work, and a newbie only needs to care about how to implement the DashboardComponent business component.

Routing permission control

The routing URL may be affected by the browser's own historical memory, so that users may access the unprivileged route. If you want a better experience, you need to configure the canActivate option on the route. When the user has no permission, it will utomatically jump to the relevant page. see the ACL Routing Guard section for details.

Intercept network requests

Network requests are a very frequent task. If you want to use network request actions elegantly within business components, it is essential to centrally handle server-side URL prefixes, exception handling, token refresh and other operations. NG-ALAIN scaffolding Provide a net file. It uses the token HttpInterceptorFn to act as an interceptor.

For details of the above centralized processing actions, please refer to default.interceptor.ts file.

IDE

A developer must first sharpen his tools if he is to do his work well, NG-ALAIN recommended to use the Visual Studio Code IDE, because ng-alain adds some extra features to VSCode to better help you. Development.

Or use the NG-ALAIN Extension Pack suite directly.

Code fragment

Class style smart reminder

ng-alain has a lot of built-in toolkit styles (API), and the following plugins can be installed directly into the HTML template.

`,meta:{order:0,title:"How to start",type:"Dev",i18n:"need-update"},toc:[{id:"First,pre-orderpreparation",title:"First, pre-order preparation",h:2},{id:"Second,thestartupprocess",title:"Second, the startup process",h:2,children:[{id:"1APP_INITIALIZER",title:"1) APP_INITIALIZER",h:3},{id:"2Businessrouting",title:"2) Business routing",h:3},{id:"Routingpermissioncontrol",title:"Routing permission control",h:3},{id:"Interceptnetworkrequests",title:"Intercept network requests",h:3}]},{id:"IDE",title:"IDE",h:2,children:[{id:"Codefragment",title:"Code fragment",h:3},{id:"Classstylesmartreminder",title:"Class style smart reminder",h:3}]}]},"zh-CN":{content:`

\u524D\u5E8F\u51C6\u5907

NG-ALAIN \u6280\u672F\u6808\u57FA\u4E8E Typescript\u3001Angular\u3001\u56FE\u8868G2 \u548C NG-ZORRO\uFF0C\u5728\u5F00\u59CB\u5C1D\u8BD5\u4F7F\u7528 NG-ALAIN \u811A\u624B\u67B6\u524D\uFF0C\u8BF7\u5148\u63D0\u524D\u4E86\u89E3\u548C\u5B66\u4E60\u8FD9\u4E9B\u77E5\u8BC6\u4F1A\u975E\u5E38\u6709\u5E2E\u52A9\u3002\u5982\u679C\u4F60\u662F\u4E00\u540D Java \u6216 C# \u540E\u7AEF\u5F00\u53D1\u4EBA\u5458\uFF0C\u90A3\u4E48\u606D\u559C\u4F60\uFF0C\u4F60\u6240\u89C1\u5230\u7684\u4E0D\u7BA1\u662F\u7ED3\u6784\u3001\u4EE3\u7801\u3001\u5F00\u53D1\u4F53\u9A8C\u7B49\u90FD\u662F\u4F60\u6240\u60F3\u7684\u90A3\u6837\u3002\u4F46\u4E0D\u7BA1\u600E\u4E48\u6837\uFF0C\u60F3\u5199\u597D Angular \u4EE3\u7801\uFF0C\u4EE5\u4E0B\u8FD9\u4E9B\u6587\u7AE0\u53CA\u793E\u533A\u662F\u4F60\u5FC5\u987B\u8981\u77E5\u9053\u7684\uFF1A

\u5199\u5728\u524D\u9762

\u5F88\u591A\u4EBA\u5728\u5B66\u4E60\u4E00\u9879\u65B0\u4E1C\u897F\u65F6\uFF0C\u65E0\u5916\u4E4E\u5199\u4E2A Hello World \u6216\u662F\u5199\u4E00\u4E2A Http \u8BF7\u6C42\uFF0C\u7136\u540E\u6162\u6162\u5F00\u59CB\u8F90\u5C04\u6240\u9700\u8981\u7684\u6280\u672F\u77E5\u8BC6\u3002\u4E00\u4E2A HTTP \u8BF7\u6C42\u5BF9\u4E2D\u540E\u53F0\u800C\u8A00\u4FBF\u662F\u6DB5\u76D6\u4E86 CURD \u4E3B\u8981\u4EFB\u52A1\uFF0C\u751A\u81F3\u53EF\u4EE5\u8BF490%\u65F6\u95F4\u53CA\u529F\u80FD\u90FD\u5728\u505A\u8FD9\u9879\u5DE5\u4F5C\u3002\u5728\u4ECB\u7ECD\u7AE0\u8282\u4E2D\u5DF2\u7ECF\u63CF\u8FF0\u521B\u5EFA\u4E00\u4E2A NG-ALAIN \u9879\u76EE\u5E76\u5982\u4F55\u8FD0\u884C\u5B83\uFF0C\u5982\u679C\u6B64\u65F6\u4F60\u4E5F\u60F3\u8981\u5199\u4E2A Hello World\uFF0C\u90A3\u4E48\u53EA\u9700\u8981\u5229\u7528 VSCode \u6253\u5F00\u8FD9\u4E2A\u9879\u76EE\uFF0C\u5E76\u5728 dashboard.component.html \u6587\u4EF6\u5185\u8F93\u5165\u6587\u672C\uFF0C500ms \u540E\u5C31\u4F1A\u5728\u9875\u9762\u4E0A\u7ACB\u5373\u5448\u73B0\u3002

\u6D41\u7A0B

\u56DE\u8FC7\u5934\u6765\u6211\u4EEC\u8BD5\u7740\u56DE\u60F3\u4E00\u4E0B\uFF0C\u4E00\u4E2A\u4E2D\u540E\u53F0\u9879\u76EE\uFF0C\u4ECE\u542F\u52A8\u518D\u5230\u5448\u73B0\u4E00\u4EFD\u8BA2\u5355\u5217\u8868\u7684\u529F\u80FD\uFF0C\u5BF9\u4E8E\u5F00\u53D1\u8005\u800C\u8A00\u5305\u542B\u4E86\u54EA\u4E9B\u4E8B\u4EF6\u3002\u65E0\u5916\u4E4E\u9879\u76EE\u542F\u52A8\u65F6\u5E94\u8BE5\u52A0\u8F7D\u70B9\u4EC0\u4E48\u7CFB\u7EDF\u914D\u7F6E\u9879\uFF0C\u54EA\u4E9B\u9875\u9762\u7528\u6237\u65E0\u6743\u8FDB\u5165\uFF1B\u628A\u7C92\u5EA6\u518D\u60F3\u7EC6\u4E00\u70B9\uFF0C\u540C\u4E00\u4E2A\u9875\u9762\u4E0D\u540C\u7684\u6309\u94AE\u7ED9\u4E0D\u540C\u7684\u4EBA\u7528\uFF0CHTTP\u8BF7\u6C42\u82E5\u4EA7\u751F\u9519\u8BEF\u662F\u4E0D\u662F\u5F97\u6BCF\u6B21\u90FD\u5199\u76F8\u540C\u7684\u5904\u7406\u4EE3\u7801\u7B49\u7B49\u3002

\u521D\u59CB\u5316\u9879\u76EE\u6570\u636E

Angular \u63D0\u4F9B\u4E00\u4E2ADI\uFF08\u4F9D\u8D56\u6CE8\u5165\uFF09\u4EE4\u724C APP_INITIALIZER \u8BA9\u5E94\u7528\u542F\u52A8\u65F6\u53EF\u4EE5\u505A\u4E00\u4E9B\u4F1A\u5F71\u54CD\u6E32\u67D3\u7ED3\u679C\u7684\u6570\u636E\uFF0C\u6BD4\u5982\uFF1A\u8BED\u8A00\u6570\u636E\u3001\u83DC\u5355\u6570\u636E\u3001\u7528\u6237\u4FE1\u606F\u6570\u636E\u3001\u5B57\u5178\u6570\u636E\u7B49\uFF0C\u5E76\u4E14\u5FC5\u987B\u8FD4\u56DE\u4E00\u4E2A Observable \u5F02\u6B65\uFF0C\u5F02\u6B65\u610F\u5473\u8005\u53EF\u4EE5\u505A\u5F88\u591A\u6709\u8DA3\u7684\u4E8B\uFF0C\u6BD4\u5982\u6570\u636E\u6765\u81EA\u8FDC\u7A0B\u3002APP_INITIALIZER \u53EA\u4F1A\u6267\u884C\u4E00\u6B21\uFF0C\u53EA\u9700\u8981\u5728 ApplicationConfig \u6A21\u5757\u6CE8\u518C\u5B83\u5C31\u884C\u4E86\u3002

NG-ALAIN \u811A\u624B\u67B6\u63D0\u4F9B\u4E86\u4E00\u4E2A\u5982\u4F55\u5728\u542F\u52A8 Angular \u540E\u5148\u52A0\u8F7D\u57FA\u7840\u6570\u636E\u4EE5\u540E\u624D\u4F1A\u5F00\u59CB\u6E32\u67D3\u7684\u6837\u677F\u4EE3\u7801 startup.service.ts\u3002

  1. \u63D0\u4F9B\u7EDF\u4E00\u6CE8\u518C provideStartup \u51FD\u6570\uFF0C\u53EA\u9700\u8981\u5728 app.config.ts \u6CE8\u518C\u5C31\u80FD\u751F\u6548

  2. \u63D0\u4F9B load() \u51FD\u6570\uFF0C\u5E76\u786E\u4FDD\u65E0\u8BBA\u8BF7\u6C42\u662F\u5426\u6210\u529F\u90FD\u5FC5\u987B\u8FD4\u56DE\u4E00\u4E2A Observable<void> \u4EE5\u4F9BAngular\u6B63\u5E38\u6E32\u67D3\uFF0C\u5426\u5219\u4F1A\u5BFC\u81F4Angular\u65E0\u6CD5\u542F\u52A8

\u6CE8\uFF1ANG-ALAIN \u63D0\u4F9B\u6388\u6743\u670D\u52A1\uFF0C\u82E5\u5728\u8BF7\u6C42\u6570\u636E\u63A5\u53E3\u65E0\u6CD5\u6388\u6743\u65F6\uFF0C\u53EF\u52A0 ALLOW_ANONYMOUS \u6765\u6807\u8BB0

NG-ALAIN \u63D0\u4F9B\u7684 startup.service.ts \u5185\u5BB9\u66F4\u52A0\u4E30\u5BCC\u4E00\u70B9\uFF0C\u5BF9\u4E8E\u5B8C\u6574\u7684\u4E2D\u540E\u53F0\u800C\u8A00\uFF0C\u5927\u591A\u6570\u9879\u76EE\u4E2D\u4EE5\u4E0B\u8FD9\u4E9B\u4FE1\u606F\u90FD\u53EF\u4EE5\u5FC5\u5907\u7684\uFF1A

\u6570\u636E\u7C7B\u578B\u63CF\u8FF0
\u5E94\u7528\u4FE1\u606F\u5E94\u7528\u540D\u79F0\u3001\u63CF\u8FF0\u3001\u5E74\u4EFD\uFF0C\u4FE1\u606F\u53EF\u4EE5\u76F4\u63A5\u6CE8\u5165 SettingsService\uFF08API\uFF09\u540E\u76F4\u63A5\u5728HTML\u6A21\u677F\u4E2D\u8BBF\u95EE\u3002
\u4F8B\u5982\uFF1Athis.settingService.setApp(res.app);
\u7528\u6237\u4FE1\u606F\u5F53\u524D\u7528\u6237\u7684\u59D3\u540D\u3001\u5934\u50CF\u3001\u90AE\u7BB1\u5730\u5740\u7B49\uFF0C\u4FE1\u606F\u53EF\u4EE5\u76F4\u63A5\u6CE8\u5165 SettingsService\uFF08API\uFF09\u540E\u76F4\u63A5\u5728HTML\u6A21\u677F\u4E2D\u8BBF\u95EE\u3002
\u4F8B\u5982\uFF1Athis.settingService.setUser(res.user);
\u5E03\u5C40\u4FE1\u606F\u8C03\u6574\u4E3B\u9898\u914D\u7F6E\uFF0C\u4F8B\u5982\uFF1A\u56FA\u5B9A\u9876\u90E8\u83DC\u5355\u3001\u6298\u53E0\u83DC\u5355\u7B49\u3002
\u4F8B\u5982\uFF1Athis.settingService.setLayout("fixed", false); \u6216 this.settingService.setLayout("collapsed", false);
\u83DC\u5355\u6570\u636ENG-ALAIN \u8BA4\u4E3A\u83DC\u5355\u6570\u636E\u4E5F\u662F\u6765\u81EA\u8FDC\u7A0B\uFF0C\u4E5F\u53EF\u4EE5\u4EFB\u610F\u4F4D\u7F6E\u6CE8\u5165 MenuService\uFF08API\uFF09\u6765\u6539\u53D8\u83DC\u5355\u6570\u636E\uFF0C\u5F53\u7136\u5728 Angular \u542F\u52A8\u4E4B\u524D\u6267\u884C\u83DC\u5355\u8D4B\u503C\u66F4\u4E3A\u5408\u7406\u3002
\u83DC\u5355\u6570\u636E\u52A1\u5FC5\u786E\u4FDD Menu \u683C\u5F0F\uFF0C\u83DC\u5355\u6570\u636E\u8D2F\u7A7F\u6574\u4E2A\u5E94\u7528\uFF0C\u4F8B\u5982\uFF1A\u9875\u5934\u81EA\u52A8\u5BFC\u822A page-header\uFF0C\u9875\u6807\u9898\u6587\u672C TitleService \u7B49\u3002
\u4F8B\u5982\uFF1Athis.menuService.add(res.menu);
\u9875\u9762\u6807\u9898\u82E5\u9875\u9762\u6807\u9898\u603B\u5E0C\u671B\u52A0\u4E0A\u5E94\u7528\u540D\u79F0\u4E3A\u540E\u7F00\u65F6\uFF0C\u53EF\u4EE5\u6CE8\u5165 TitleService\uFF08API\uFF09\u91CD\u65B0\u8C03\u6574 suffix \u5C5E\u6027\u503C\u3002
\u4F8B\u5982\u8BBE\u7F6E\u9875\u9762\u6807\u9898\u7684\u540E\u7F00\uFF1Athis.titleService.suffix = res.app.name;
ACL\u8BBF\u95EE\u63A7\u5236\u5217\u8868\u6570\u636E\uFF0C\u5EFA\u8BAE\u5728\u542F\u52A8\u524D\u52A0\u8F7DACL\u8BBF\u95EE\u63A7\u5236\u6743\u9650\u6570\u636E\uFF0C\u6709\u5173\u66F4\u591A\u7EC6\u8282\u53EF\u53C2\u8003 \u8BBF\u95EE\u63A7\u5236\u5217\u8868\u3002
\u4F8B\u5982\u8BBE\u7F6E\u5168\u91CF\u6743\u9650\uFF1Athis.aclService.setFull(true);
\u56FD\u9645\u5316\u5EFA\u8BAE\u5728\u542F\u52A8\u524D\u4F18\u5148\u52A0\u8F7D\u56FD\u9645\u5316\u6570\u636E\u5305\uFF0C\u8FD9\u6837\u53EF\u786E\u4FDD\u9879\u76EE\u542F\u52A8\u540E\u9875\u9762\u6E32\u67D3\u4E3A\u76EE\u6807\u8BED\u8A00\u3002\u66F4\u591A\u7EC6\u8282\u53C2\u8003\u56FD\u9645\u5316\u3002

\u4E1A\u52A1\u8DEF\u7531

\u5F53 Angular \u9879\u76EE\u6B63\u5F0F\u542F\u52A8\u540E\u4F1A\u8FDB\u5165\u6E32\u67D3\u52A8\u4F5C\uFF0C\u6839\u636E\u5F53\u524D\u7684\u8DEF\u7531\u5730\u5740\u6765\u51B3\u5B9A\u4E00\u4E2A\u9875\u9762\u5982\u4F55\u6E32\u67D3\uFF0C\u4ECE\u6700\u9876\u5C42\u8DEF\u7531 routes.ts \u5F00\u59CB\u4E00\u5C42\u5C42\u5BFB\u627E\uFF0C\u5176\u7ED3\u6784\u5982\u4E0B\uFF1A

const routes: Routes = [
+];

The above mentioned LayoutBasicComponent basic layout is used in the business module, user authorization uses LayoutPassportComponent user authorization layout and LayoutBlankComponent blank layout. The above three layouts can be used in layout directory.

NG-ALAIN also provides some commercial themes to chooses.

For example, when a user accesses the /dashboard route, they will first go through LayoutBasicComponent -> DashboardComponent, and eventually form a huge component tree to represent a specific page. NG-ALAIN scaffolding helps you complete most of the work, and a newbie only needs to care about how to implement the DashboardComponent business component.

Routing permission control

The routing URL may be affected by the browser's own historical memory, so that users may access the unprivileged route. If you want a better experience, you need to configure the canActivate option on the route. When the user has no permission, it will utomatically jump to the relevant page. see the ACL Routing Guard section for details.

Intercept network requests

Network requests are a very frequent task. If you want to use network request actions elegantly within business components, it is essential to centrally handle server-side URL prefixes, exception handling, token refresh and other operations. NG-ALAIN scaffolding Provide a net file. It uses the token HttpInterceptorFn to act as an interceptor.

For details, please refer to default.interceptor.ts file.

IDE

A developer must first sharpen his tools if he is to do his work well, NG-ALAIN recommended to use the Visual Studio Code IDE, because ng-alain adds some extra features to VSCode to better help you. Development.

Or use the NG-ALAIN Extension Pack suite directly.

Code fragment

Class style smart reminder

ng-alain has a lot of built-in toolkit styles (API), and the following plugins can be installed directly into the HTML template.

`,meta:{order:0,title:"How to start",type:"Dev",i18n:"need-update"},toc:[{id:"First,pre-orderpreparation",title:"First, pre-order preparation",h:2},{id:"Second,thestartupprocess",title:"Second, the startup process",h:2,children:[{id:"1APP_INITIALIZER",title:"1) APP_INITIALIZER",h:3},{id:"2Businessrouting",title:"2) Business routing",h:3},{id:"Routingpermissioncontrol",title:"Routing permission control",h:3},{id:"Interceptnetworkrequests",title:"Intercept network requests",h:3}]},{id:"IDE",title:"IDE",h:2,children:[{id:"Codefragment",title:"Code fragment",h:3},{id:"Classstylesmartreminder",title:"Class style smart reminder",h:3}]}]},"zh-CN":{content:`

\u524D\u5E8F\u51C6\u5907

NG-ALAIN \u6280\u672F\u6808\u57FA\u4E8E Typescript\u3001Angular\u3001\u56FE\u8868G2 \u548C NG-ZORRO\uFF0C\u5728\u5F00\u59CB\u5C1D\u8BD5\u4F7F\u7528 NG-ALAIN \u811A\u624B\u67B6\u524D\uFF0C\u8BF7\u5148\u63D0\u524D\u4E86\u89E3\u548C\u5B66\u4E60\u8FD9\u4E9B\u77E5\u8BC6\u4F1A\u975E\u5E38\u6709\u5E2E\u52A9\u3002\u5982\u679C\u4F60\u662F\u4E00\u540D Java \u6216 C# \u540E\u7AEF\u5F00\u53D1\u4EBA\u5458\uFF0C\u90A3\u4E48\u606D\u559C\u4F60\uFF0C\u4F60\u6240\u89C1\u5230\u7684\u4E0D\u7BA1\u662F\u7ED3\u6784\u3001\u4EE3\u7801\u3001\u5F00\u53D1\u4F53\u9A8C\u7B49\u90FD\u662F\u4F60\u6240\u60F3\u7684\u90A3\u6837\u3002\u4F46\u4E0D\u7BA1\u600E\u4E48\u6837\uFF0C\u60F3\u5199\u597D Angular \u4EE3\u7801\uFF0C\u4EE5\u4E0B\u8FD9\u4E9B\u6587\u7AE0\u53CA\u793E\u533A\u662F\u4F60\u5FC5\u987B\u8981\u77E5\u9053\u7684\uFF1A

\u5199\u5728\u524D\u9762

\u5F88\u591A\u4EBA\u5728\u5B66\u4E60\u4E00\u9879\u65B0\u4E1C\u897F\u65F6\uFF0C\u65E0\u5916\u4E4E\u5199\u4E2A Hello World \u6216\u662F\u5199\u4E00\u4E2A Http \u8BF7\u6C42\uFF0C\u7136\u540E\u6162\u6162\u5F00\u59CB\u8F90\u5C04\u6240\u9700\u8981\u7684\u6280\u672F\u77E5\u8BC6\u3002\u4E00\u4E2A HTTP \u8BF7\u6C42\u5BF9\u4E2D\u540E\u53F0\u800C\u8A00\u4FBF\u662F\u6DB5\u76D6\u4E86 CURD \u4E3B\u8981\u4EFB\u52A1\uFF0C\u751A\u81F3\u53EF\u4EE5\u8BF490%\u65F6\u95F4\u53CA\u529F\u80FD\u90FD\u5728\u505A\u8FD9\u9879\u5DE5\u4F5C\u3002\u5728\u4ECB\u7ECD\u7AE0\u8282\u4E2D\u5DF2\u7ECF\u63CF\u8FF0\u521B\u5EFA\u4E00\u4E2A NG-ALAIN \u9879\u76EE\u5E76\u5982\u4F55\u8FD0\u884C\u5B83\uFF0C\u5982\u679C\u6B64\u65F6\u4F60\u4E5F\u60F3\u8981\u5199\u4E2A Hello World\uFF0C\u90A3\u4E48\u53EA\u9700\u8981\u5229\u7528 VSCode \u6253\u5F00\u8FD9\u4E2A\u9879\u76EE\uFF0C\u5E76\u5728 dashboard.component.html \u6587\u4EF6\u5185\u8F93\u5165\u6587\u672C\uFF0C500ms \u540E\u5C31\u4F1A\u5728\u9875\u9762\u4E0A\u7ACB\u5373\u5448\u73B0\u3002

\u6D41\u7A0B

\u56DE\u8FC7\u5934\u6765\u6211\u4EEC\u8BD5\u7740\u56DE\u60F3\u4E00\u4E0B\uFF0C\u4E00\u4E2A\u4E2D\u540E\u53F0\u9879\u76EE\uFF0C\u4ECE\u542F\u52A8\u518D\u5230\u5448\u73B0\u4E00\u4EFD\u8BA2\u5355\u5217\u8868\u7684\u529F\u80FD\uFF0C\u5BF9\u4E8E\u5F00\u53D1\u8005\u800C\u8A00\u5305\u542B\u4E86\u54EA\u4E9B\u4E8B\u4EF6\u3002\u65E0\u5916\u4E4E\u9879\u76EE\u542F\u52A8\u65F6\u5E94\u8BE5\u52A0\u8F7D\u70B9\u4EC0\u4E48\u7CFB\u7EDF\u914D\u7F6E\u9879\uFF0C\u54EA\u4E9B\u9875\u9762\u7528\u6237\u65E0\u6743\u8FDB\u5165\uFF1B\u628A\u7C92\u5EA6\u518D\u60F3\u7EC6\u4E00\u70B9\uFF0C\u540C\u4E00\u4E2A\u9875\u9762\u4E0D\u540C\u7684\u6309\u94AE\u7ED9\u4E0D\u540C\u7684\u4EBA\u7528\uFF0CHTTP\u8BF7\u6C42\u82E5\u4EA7\u751F\u9519\u8BEF\u662F\u4E0D\u662F\u5F97\u6BCF\u6B21\u90FD\u5199\u76F8\u540C\u7684\u5904\u7406\u4EE3\u7801\u7B49\u7B49\u3002

\u521D\u59CB\u5316\u9879\u76EE\u6570\u636E

Angular \u63D0\u4F9B\u4E00\u4E2ADI\uFF08\u4F9D\u8D56\u6CE8\u5165\uFF09\u4EE4\u724C APP_INITIALIZER \u8BA9\u5E94\u7528\u542F\u52A8\u65F6\u53EF\u4EE5\u505A\u4E00\u4E9B\u4F1A\u5F71\u54CD\u6E32\u67D3\u7ED3\u679C\u7684\u6570\u636E\uFF0C\u6BD4\u5982\uFF1A\u8BED\u8A00\u6570\u636E\u3001\u83DC\u5355\u6570\u636E\u3001\u7528\u6237\u4FE1\u606F\u6570\u636E\u3001\u5B57\u5178\u6570\u636E\u7B49\uFF0C\u5E76\u4E14\u5FC5\u987B\u8FD4\u56DE\u4E00\u4E2A Observable \u5F02\u6B65\uFF0C\u5F02\u6B65\u610F\u5473\u8005\u53EF\u4EE5\u505A\u5F88\u591A\u6709\u8DA3\u7684\u4E8B\uFF0C\u6BD4\u5982\u6570\u636E\u6765\u81EA\u8FDC\u7A0B\u3002APP_INITIALIZER \u53EA\u4F1A\u6267\u884C\u4E00\u6B21\uFF0C\u53EA\u9700\u8981\u5728 ApplicationConfig \u6A21\u5757\u6CE8\u518C\u5B83\u5C31\u884C\u4E86\u3002

NG-ALAIN \u811A\u624B\u67B6\u63D0\u4F9B\u4E86\u4E00\u4E2A\u5982\u4F55\u5728\u542F\u52A8 Angular \u540E\u5148\u52A0\u8F7D\u57FA\u7840\u6570\u636E\u4EE5\u540E\u624D\u4F1A\u5F00\u59CB\u6E32\u67D3\u7684\u6837\u677F\u4EE3\u7801 startup.service.ts\u3002

  1. \u63D0\u4F9B\u7EDF\u4E00\u6CE8\u518C provideStartup \u51FD\u6570\uFF0C\u53EA\u9700\u8981\u5728 app.config.ts \u6CE8\u518C\u5C31\u80FD\u751F\u6548

  2. \u63D0\u4F9B load() \u51FD\u6570\uFF0C\u5E76\u786E\u4FDD\u65E0\u8BBA\u8BF7\u6C42\u662F\u5426\u6210\u529F\u90FD\u5FC5\u987B\u8FD4\u56DE\u4E00\u4E2A Observable<void> \u4EE5\u4F9BAngular\u6B63\u5E38\u6E32\u67D3\uFF0C\u5426\u5219\u4F1A\u5BFC\u81F4Angular\u65E0\u6CD5\u542F\u52A8

\u6CE8\uFF1ANG-ALAIN \u63D0\u4F9B\u6388\u6743\u670D\u52A1\uFF0C\u82E5\u5728\u8BF7\u6C42\u6570\u636E\u63A5\u53E3\u65E0\u6CD5\u6388\u6743\u65F6\uFF0C\u53EF\u52A0 ALLOW_ANONYMOUS \u6765\u6807\u8BB0

NG-ALAIN \u63D0\u4F9B\u7684 startup.service.ts \u5185\u5BB9\u66F4\u52A0\u4E30\u5BCC\u4E00\u70B9\uFF0C\u5BF9\u4E8E\u5B8C\u6574\u7684\u4E2D\u540E\u53F0\u800C\u8A00\uFF0C\u5927\u591A\u6570\u9879\u76EE\u4E2D\u4EE5\u4E0B\u8FD9\u4E9B\u4FE1\u606F\u90FD\u53EF\u4EE5\u5FC5\u5907\u7684\uFF1A

\u6570\u636E\u7C7B\u578B\u63CF\u8FF0
\u5E94\u7528\u4FE1\u606F\u5E94\u7528\u540D\u79F0\u3001\u63CF\u8FF0\u3001\u5E74\u4EFD\uFF0C\u4FE1\u606F\u53EF\u4EE5\u76F4\u63A5\u6CE8\u5165 SettingsService\uFF08API\uFF09\u540E\u76F4\u63A5\u5728HTML\u6A21\u677F\u4E2D\u8BBF\u95EE\u3002
\u4F8B\u5982\uFF1Athis.settingService.setApp(res.app);
\u7528\u6237\u4FE1\u606F\u5F53\u524D\u7528\u6237\u7684\u59D3\u540D\u3001\u5934\u50CF\u3001\u90AE\u7BB1\u5730\u5740\u7B49\uFF0C\u4FE1\u606F\u53EF\u4EE5\u76F4\u63A5\u6CE8\u5165 SettingsService\uFF08API\uFF09\u540E\u76F4\u63A5\u5728HTML\u6A21\u677F\u4E2D\u8BBF\u95EE\u3002
\u4F8B\u5982\uFF1Athis.settingService.setUser(res.user);
\u5E03\u5C40\u4FE1\u606F\u8C03\u6574\u4E3B\u9898\u914D\u7F6E\uFF0C\u4F8B\u5982\uFF1A\u56FA\u5B9A\u9876\u90E8\u83DC\u5355\u3001\u6298\u53E0\u83DC\u5355\u7B49\u3002
\u4F8B\u5982\uFF1Athis.settingService.setLayout("fixed", false); \u6216 this.settingService.setLayout("collapsed", false);
\u83DC\u5355\u6570\u636ENG-ALAIN \u8BA4\u4E3A\u83DC\u5355\u6570\u636E\u4E5F\u662F\u6765\u81EA\u8FDC\u7A0B\uFF0C\u4E5F\u53EF\u4EE5\u4EFB\u610F\u4F4D\u7F6E\u6CE8\u5165 MenuService\uFF08API\uFF09\u6765\u6539\u53D8\u83DC\u5355\u6570\u636E\uFF0C\u5F53\u7136\u5728 Angular \u542F\u52A8\u4E4B\u524D\u6267\u884C\u83DC\u5355\u8D4B\u503C\u66F4\u4E3A\u5408\u7406\u3002
\u83DC\u5355\u6570\u636E\u52A1\u5FC5\u786E\u4FDD Menu \u683C\u5F0F\uFF0C\u83DC\u5355\u6570\u636E\u8D2F\u7A7F\u6574\u4E2A\u5E94\u7528\uFF0C\u4F8B\u5982\uFF1A\u9875\u5934\u81EA\u52A8\u5BFC\u822A page-header\uFF0C\u9875\u6807\u9898\u6587\u672C TitleService \u7B49\u3002
\u4F8B\u5982\uFF1Athis.menuService.add(res.menu);
\u9875\u9762\u6807\u9898\u82E5\u9875\u9762\u6807\u9898\u603B\u5E0C\u671B\u52A0\u4E0A\u5E94\u7528\u540D\u79F0\u4E3A\u540E\u7F00\u65F6\uFF0C\u53EF\u4EE5\u6CE8\u5165 TitleService\uFF08API\uFF09\u91CD\u65B0\u8C03\u6574 suffix \u5C5E\u6027\u503C\u3002
\u4F8B\u5982\u8BBE\u7F6E\u9875\u9762\u6807\u9898\u7684\u540E\u7F00\uFF1Athis.titleService.suffix = res.app.name;
ACL\u8BBF\u95EE\u63A7\u5236\u5217\u8868\u6570\u636E\uFF0C\u5EFA\u8BAE\u5728\u542F\u52A8\u524D\u52A0\u8F7DACL\u8BBF\u95EE\u63A7\u5236\u6743\u9650\u6570\u636E\uFF0C\u6709\u5173\u66F4\u591A\u7EC6\u8282\u53EF\u53C2\u8003 \u8BBF\u95EE\u63A7\u5236\u5217\u8868\u3002
\u4F8B\u5982\u8BBE\u7F6E\u5168\u91CF\u6743\u9650\uFF1Athis.aclService.setFull(true);
\u56FD\u9645\u5316\u5EFA\u8BAE\u5728\u542F\u52A8\u524D\u4F18\u5148\u52A0\u8F7D\u56FD\u9645\u5316\u6570\u636E\u5305\uFF0C\u8FD9\u6837\u53EF\u786E\u4FDD\u9879\u76EE\u542F\u52A8\u540E\u9875\u9762\u6E32\u67D3\u4E3A\u76EE\u6807\u8BED\u8A00\u3002\u66F4\u591A\u7EC6\u8282\u53C2\u8003\u56FD\u9645\u5316\u3002

\u4E1A\u52A1\u8DEF\u7531

\u5F53 Angular \u9879\u76EE\u6B63\u5F0F\u542F\u52A8\u540E\u4F1A\u8FDB\u5165\u6E32\u67D3\u52A8\u4F5C\uFF0C\u6839\u636E\u5F53\u524D\u7684\u8DEF\u7531\u5730\u5740\u6765\u51B3\u5B9A\u4E00\u4E2A\u9875\u9762\u5982\u4F55\u6E32\u67D3\uFF0C\u4ECE\u6700\u9876\u5C42\u8DEF\u7531 routes.ts \u5F00\u59CB\u4E00\u5C42\u5C42\u5BFB\u627E\uFF0C\u5176\u7ED3\u6784\u5982\u4E0B\uFF1A

const routes: Routes = [
   {
     path: '',
     component: LayoutBasicComponent,
@@ -278,7 +278,7 @@ this.titleService.suffix = res.app.name;

ACL

{ path: 'config', component: ConfigComponent }, ] }, -];

\u6B64\u65F6\uFF0C\u5F53\u4E00\u4E2A\u672A\u6388\u6743 admin \u89D2\u8272\u7684\u7528\u6237\u5C1D\u8BD5\u8BBF\u95EE /sys/config \u9875\u9762\u65F6\u4F1A\u88AB\u8DF3\u8F6C\u81F3\u672A\u6388\u6743\u9519\u8BEF\u9875\u4E0A\u3002

\u5F53\u7136\u8FD8\u652F\u6301\u7C92\u5EA6\u6709\u66F4\u7EC6\u64CD\u4F5C\uFF0C\u6BD4\u5982\u67D0\u4E2A\u6309\u94AE\uFF0C\u8BF7\u53C2\u8003ACL\u7AE0\u8282\u3002

\u62E6\u622A\u7F51\u7EDC\u8BF7\u6C42

\u7F51\u7EDC\u8BF7\u6C42\u662F\u4E00\u9879\u975E\u5E38\u9891\u7E41\u7684\u5DE5\u4F5C\uFF0C\u5982\u679C\u60F3\u4F18\u96C5\u7684\u5728\u4E1A\u52A1\u7EC4\u4EF6\u5185\u4F7F\u7528\u7F51\u7EDC\u8BF7\u6C42\u52A8\u4F5C\u7684\u8BDD\uFF0C\u90A3\u4E48\u5C06\u670D\u52A1\u7AEFURL\u524D\u7F00\u3001\u5F02\u5E38\u5904\u7406\u3001Token \u5237\u65B0\u7B49\u64CD\u4F5C\u96C6\u4E2D\u5904\u7406\u662F\u5FC5\u4E0D\u53EF\u5C11\u7684\uFF0CNG-ALAIN \u811A\u624B\u67B6\u63D0\u4F9B\u4E00\u4E2A net \u6587\u4EF6\u3002\u5B83\u4F1A\u5229\u7528\u4EE4\u724C HttpInterceptorFn \u8D77\u5230\u4E00\u79CD\u62E6\u622A\u5668\u7684\u6548\u679C\u3002

\u6709\u5173\u4EE5\u4E0A\u96C6\u4E2D\u5904\u7406\u7684\u52A8\u4F5C\u7EC6\u8282\uFF0C\u8BF7\u53C2\u8003 default.interceptor.ts \u6587\u4EF6\u3002

IDE

\u201C\u5DE5\u6B32\u5584\u5176\u4E8B\uFF0C\u5FC5\u5148\u5229\u5176\u5668\u662F\u201D\uFF0CNG-ALAIN \u811A\u624B\u67B6\u63A8\u8350\u4F7F\u7528 Visual Studio Code IDE\uFF0C\u56E0\u4E3A NG-ALAIN \u9488\u5BF9 VSCode \u589E\u52A0\u4E00\u4E9B\u989D\u5916\u7684\u7279\u6027\uFF0C\u53EF\u4EE5\u66F4\u597D\u7684\u5E2E\u52A9\u4F60\u5F00\u53D1\u3002

\u6216\u8005\u76F4\u63A5\u4F7F\u7528 NG-ALAIN Extension Pack \u5957\u4EF6\u3002

\u4EE3\u7801\u7247\u65AD

Class\u6837\u5F0F\u667A\u80FD\u63D0\u9192

ng-alain \u5185\u7F6E\u4E86\u5927\u91CF\u7684\u5DE5\u5177\u96C6\u6837\u5F0F\uFF08API\uFF09\uFF0C\u5B89\u88C5\u4EE5\u4E0B\u63D2\u4EF6\u53EF\u4EE5\u76F4\u63A5\u5728HTML\u6A21\u677F\u91CC\u76F4\u63A5\u8BBF\u95EE\u5230\u5B83\u4EEC\u3002

`,meta:{order:0,title:"\u5982\u4F55\u5F00\u59CB",type:"Dev",i18n:"need-update"},toc:[{id:"\u524D\u5E8F\u51C6\u5907",title:"\u524D\u5E8F\u51C6\u5907",h:2},{id:"\u5199\u5728\u524D\u9762",title:"\u5199\u5728\u524D\u9762",h:2},{id:"\u6D41\u7A0B",title:"\u6D41\u7A0B",h:2,children:[{id:"\u521D\u59CB\u5316\u9879\u76EE\u6570\u636E",title:"\u521D\u59CB\u5316\u9879\u76EE\u6570\u636E",h:3},{id:"\u4E1A\u52A1\u8DEF\u7531",title:"\u4E1A\u52A1\u8DEF\u7531",h:3},{id:"\u7528\u6237\u8BA4\u8BC1\u4E0E\u6388\u6743",title:"\u7528\u6237\u8BA4\u8BC1\u4E0E\u6388\u6743",h:3},{id:"\u62E6\u622A\u7F51\u7EDC\u8BF7\u6C42",title:"\u62E6\u622A\u7F51\u7EDC\u8BF7\u6C42",h:3}]},{id:"IDE",title:"IDE",h:2,children:[{id:"\u4EE3\u7801\u7247\u65AD",title:"\u4EE3\u7801\u7247\u65AD",h:3},{id:"Class\u6837\u5F0F\u667A\u80FD\u63D0\u9192",title:"Class\u6837\u5F0F\u667A\u80FD\u63D0\u9192",h:3}]}]}},demo:!1},this.codes=[]}};e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=i({type:e,selectors:[["app-docs-how-to-start"]],hostVars:2,hostBindings:function(t,o){t&2&&r("d-block","true")},standalone:!0,features:[d],decls:1,vars:2,consts:[[3,"codes","item"]],template:function(t,o){t&1&&l(0,"app-docs",0),t&2&&s("codes",o.codes)("item",o.item)},dependencies:[c],encapsulation:2});let a=e;return a})();var S=(()=>{let e=class e{constructor(){this.item={cols:1,urls:{"en-US":"docs/i18n.en-US.md","zh-CN":"docs/i18n.zh-CN.md"},content:{"en-US":{content:`

Angular internationalization provides a solution for extracting language files, but for NG-ALAIN, this is not the best way; this is mainly limited by @Delon/* The component library needs to provide a set of dynamic translation Service, therefore, NG-ALAIN has built-in a simple internationalized service ALAIN_I18N_TOKEN interface.

How to configure

Scaffolding is composed of two important parts: ng-zorro-antd and @delon/*. These two libraries have their own international configuration. When internationalizing, they need to be the same for these libraries. Language configuration.

Angular

Angular configuration is mainly for currency, date format, etc., such as Chinese version:

import { registerLocaleData } from '@angular/common';
+];

\u6B64\u65F6\uFF0C\u5F53\u4E00\u4E2A\u672A\u6388\u6743 admin \u89D2\u8272\u7684\u7528\u6237\u5C1D\u8BD5\u8BBF\u95EE /sys/config \u9875\u9762\u65F6\u4F1A\u88AB\u8DF3\u8F6C\u81F3\u672A\u6388\u6743\u9519\u8BEF\u9875\u4E0A\u3002

\u5F53\u7136\u8FD8\u652F\u6301\u7C92\u5EA6\u6709\u66F4\u7EC6\u64CD\u4F5C\uFF0C\u6BD4\u5982\u67D0\u4E2A\u6309\u94AE\uFF0C\u8BF7\u53C2\u8003ACL\u7AE0\u8282\u3002

\u62E6\u622A\u7F51\u7EDC\u8BF7\u6C42

\u7F51\u7EDC\u8BF7\u6C42\u662F\u4E00\u9879\u975E\u5E38\u9891\u7E41\u7684\u5DE5\u4F5C\uFF0C\u5982\u679C\u60F3\u4F18\u96C5\u7684\u5728\u4E1A\u52A1\u7EC4\u4EF6\u5185\u4F7F\u7528\u7F51\u7EDC\u8BF7\u6C42\u52A8\u4F5C\u7684\u8BDD\uFF0C\u90A3\u4E48\u5C06\u670D\u52A1\u7AEFURL\u524D\u7F00\u3001\u5F02\u5E38\u5904\u7406\u3001Token \u5237\u65B0\u7B49\u64CD\u4F5C\u96C6\u4E2D\u5904\u7406\u662F\u5FC5\u4E0D\u53EF\u5C11\u7684\uFF0CNG-ALAIN \u811A\u624B\u67B6\u63D0\u4F9B\u4E00\u4E2A net \u6587\u4EF6\u3002\u5B83\u4F1A\u5229\u7528\u4EE4\u724C HttpInterceptorFn \u8D77\u5230\u4E00\u79CD\u62E6\u622A\u5668\u7684\u6548\u679C\u3002

\u6709\u5173\u66F4\u591A\u7EC6\u8282\uFF0C\u8BF7\u53C2\u8003 default.interceptor.ts \u6587\u4EF6\u3002

IDE

\u201C\u5DE5\u6B32\u5584\u5176\u4E8B\uFF0C\u5FC5\u5148\u5229\u5176\u5668\u662F\u201D\uFF0CNG-ALAIN \u811A\u624B\u67B6\u63A8\u8350\u4F7F\u7528 Visual Studio Code IDE\uFF0C\u56E0\u4E3A NG-ALAIN \u9488\u5BF9 VSCode \u589E\u52A0\u4E00\u4E9B\u989D\u5916\u7684\u7279\u6027\uFF0C\u53EF\u4EE5\u66F4\u597D\u7684\u5E2E\u52A9\u4F60\u5F00\u53D1\u3002

\u6216\u8005\u76F4\u63A5\u4F7F\u7528 NG-ALAIN Extension Pack \u5957\u4EF6\u3002

\u4EE3\u7801\u7247\u65AD

Class\u6837\u5F0F\u667A\u80FD\u63D0\u9192

ng-alain \u5185\u7F6E\u4E86\u5927\u91CF\u7684\u5DE5\u5177\u96C6\u6837\u5F0F\uFF08API\uFF09\uFF0C\u5B89\u88C5\u4EE5\u4E0B\u63D2\u4EF6\u53EF\u4EE5\u76F4\u63A5\u5728HTML\u6A21\u677F\u91CC\u76F4\u63A5\u8BBF\u95EE\u5230\u5B83\u4EEC\u3002

`,meta:{order:0,title:"\u5982\u4F55\u5F00\u59CB",type:"Dev",i18n:"need-update"},toc:[{id:"\u524D\u5E8F\u51C6\u5907",title:"\u524D\u5E8F\u51C6\u5907",h:2},{id:"\u5199\u5728\u524D\u9762",title:"\u5199\u5728\u524D\u9762",h:2},{id:"\u6D41\u7A0B",title:"\u6D41\u7A0B",h:2,children:[{id:"\u521D\u59CB\u5316\u9879\u76EE\u6570\u636E",title:"\u521D\u59CB\u5316\u9879\u76EE\u6570\u636E",h:3},{id:"\u4E1A\u52A1\u8DEF\u7531",title:"\u4E1A\u52A1\u8DEF\u7531",h:3},{id:"\u7528\u6237\u8BA4\u8BC1\u4E0E\u6388\u6743",title:"\u7528\u6237\u8BA4\u8BC1\u4E0E\u6388\u6743",h:3},{id:"\u62E6\u622A\u7F51\u7EDC\u8BF7\u6C42",title:"\u62E6\u622A\u7F51\u7EDC\u8BF7\u6C42",h:3}]},{id:"IDE",title:"IDE",h:2,children:[{id:"\u4EE3\u7801\u7247\u65AD",title:"\u4EE3\u7801\u7247\u65AD",h:3},{id:"Class\u6837\u5F0F\u667A\u80FD\u63D0\u9192",title:"Class\u6837\u5F0F\u667A\u80FD\u63D0\u9192",h:3}]}]}},demo:!1},this.codes=[]}};e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=i({type:e,selectors:[["app-docs-how-to-start"]],hostVars:2,hostBindings:function(t,o){t&2&&r("d-block","true")},standalone:!0,features:[d],decls:1,vars:2,consts:[[3,"codes","item"]],template:function(t,o){t&1&&l(0,"app-docs",0),t&2&&s("codes",o.codes)("item",o.item)},dependencies:[c],encapsulation:2});let a=e;return a})();var S=(()=>{let e=class e{constructor(){this.item={cols:1,urls:{"en-US":"docs/i18n.en-US.md","zh-CN":"docs/i18n.zh-CN.md"},content:{"en-US":{content:`

Angular internationalization provides a solution for extracting language files, but for NG-ALAIN, this is not the best way; this is mainly limited by @Delon/* The component library needs to provide a set of dynamic translation Service, therefore, NG-ALAIN has built-in a simple internationalized service ALAIN_I18N_TOKEN interface.

How to configure

Scaffolding is composed of two important parts: ng-zorro-antd and @delon/*. These two libraries have their own international configuration. When internationalizing, they need to be the same for these libraries. Language configuration.

Angular

Angular configuration is mainly for currency, date format, etc., such as Chinese version:

import { registerLocaleData } from '@angular/common';
 import zh from '@angular/common/locales/zh';
 registerLocaleData(zh);

ng-zorro-antd

ng-zorro-antd internationalization defaults to the Chinese version, for example the default English version:

import { en_US, provideNzI18n } from 'ng-zorro-antd/i18n';
 export const appConfig: ApplicationConfig = {
diff --git a/cli/add/en/index.html b/cli/add/en/index.html
index 170ed9988..7e0a6c10f 100644
--- a/cli/add/en/index.html
+++ b/cli/add/en/index.html
@@ -1,3 +1,3 @@
 ng add - NG-ALAIN

创建脚手架

命令格式

ng add ng-alain
 # 如果你想创建一个英文版本,则:
-ng add ng-alain --defaultLanguage=en

额外参数

参数名默认值描述
--formtrue是否需要动态表单
--mocktrue是否需要 mock 功能
--defaultLanguagezh默认语言,支持语言列表
--codeStylefalse是否需要代码风格
--i18nfalse是否需要国际化支持

例如生成一个带有国际化项目:

ng add ng-alain --i18n --defaultLanguage=en

查看更多插件

Loading...
\ No newline at end of file +ng add ng-alain --defaultLanguage=en

额外参数

参数名默认值描述
--formtrue是否需要动态表单
--mocktrue是否需要 mock 功能
--defaultLanguagezh默认语言,支持语言列表
--codeStylefalse是否需要代码风格
--i18nfalse是否需要国际化支持

例如生成一个带有国际化项目:

ng add ng-alain --i18n --defaultLanguage=en

查看更多插件

Loading...
\ No newline at end of file diff --git a/cli/add/zh/index.html b/cli/add/zh/index.html index 148afab64..eaf081ddc 100644 --- a/cli/add/zh/index.html +++ b/cli/add/zh/index.html @@ -1,3 +1,3 @@ ng add - NG-ALAIN

创建脚手架

命令格式

ng add ng-alain
 # 如果你想创建一个英文版本,则:
-ng add ng-alain --defaultLanguage=en

额外参数

参数名默认值描述
--formtrue是否需要动态表单
--mocktrue是否需要 mock 功能
--defaultLanguagezh默认语言,支持语言列表
--codeStylefalse是否需要代码风格
--i18nfalse是否需要国际化支持

例如生成一个带有国际化项目:

ng add ng-alain --i18n --defaultLanguage=en

查看更多插件

Loading...
\ No newline at end of file +ng add ng-alain --defaultLanguage=en

额外参数

参数名默认值描述
--formtrue是否需要动态表单
--mocktrue是否需要 mock 功能
--defaultLanguagezh默认语言,支持语言列表
--codeStylefalse是否需要代码风格
--i18nfalse是否需要国际化支持

例如生成一个带有国际化项目:

ng add ng-alain --i18n --defaultLanguage=en

查看更多插件

开始使用 ng g 业务页
Loading...
\ No newline at end of file diff --git a/cli/default/en/index.html b/cli/default/en/index.html index 9de5c5fa5..e4dbed9e2 100644 --- a/cli/default/en/index.html +++ b/cli/default/en/index.html @@ -34,4 +34,4 @@ "skipTests": false } } -}

可以通过执行下列命令来获取所有参数描述:

ng g ng-alain:list --help
Loading...
\ No newline at end of file +}

可以通过执行下列命令来获取所有参数描述:

ng g ng-alain:list --help
Loading...
\ No newline at end of file diff --git a/cli/default/zh/index.html b/cli/default/zh/index.html index f86481020..b76869917 100644 --- a/cli/default/zh/index.html +++ b/cli/default/zh/index.html @@ -34,4 +34,4 @@ "skipTests": false } } -}

可以通过执行下列命令来获取所有参数描述:

ng g ng-alain:list --help
sta Swagger API 生成器
Loading...
\ No newline at end of file +}

可以通过执行下列命令来获取所有参数描述:

ng g ng-alain:list --help
sta Swagger API 生成器
Loading...
\ No newline at end of file diff --git a/cli/generate/en/index.html b/cli/generate/en/index.html index 982c43049..c1bbbbac1 100644 --- a/cli/generate/en/index.html +++ b/cli/generate/en/index.html @@ -52,4 +52,4 @@ } }

你可以将 newData 应用到模板当中,例如 __name@dasherize__.component.html

<page-header></page-header>
 <%= extraArgs.newData %>

结果为:

<page-header></page-header>
-asdf
Loading...
\ No newline at end of file +asdf
Loading...
\ No newline at end of file diff --git a/cli/generate/zh/index.html b/cli/generate/zh/index.html index 267cb714e..3d0626992 100644 --- a/cli/generate/zh/index.html +++ b/cli/generate/zh/index.html @@ -52,4 +52,4 @@ } }

你可以将 newData 应用到模板当中,例如 __name@dasherize__.component.html

<page-header></page-header>
 <%= extraArgs.newData %>

结果为:

<page-header></page-header>
-asdf
ng add 创建脚手架 插件
Loading...
\ No newline at end of file +asdf
ng add 创建脚手架 插件
Loading...
\ No newline at end of file diff --git a/cli/getting-started/en/index.html b/cli/getting-started/en/index.html index 8280136bb..a70628058 100644 --- a/cli/getting-started/en/index.html +++ b/cli/getting-started/en/index.html @@ -1,4 +1,4 @@ 开始使用 - NG-ALAIN

开始使用

写在前面

使用 ng-alain 脚手架应尽可能的使用 Angular CLI 所提供的 ng 命令组,来构建、升级等,ng-alain 也实现了一些比较酷的事:

  • 使用 ng add 构建空脚手架

  • 使用 ng g 来构建模块、业务页

  • 可插拔 插件

如何使用

我们不建议直接克隆 Github 源代码,而应该使用 ng add 来构建 ng-alain 项目,而构建一个空 ng-alain 只需要简单几个动作:

1、创建一个空 angular 项目

# 确保使用的是最新版本 Angular cli
 ng new demo --style less

2、添加 ng-alain 脚手架

ng add ng-alain
 # 如果你想创建一个英文版本,则:
-ng add ng-alain --defaultLanguage=en

遇到问题请阅读 常见问题

3、运行项目

ng serve

如何升级

建议 Star 或 Watch 源代码仓库,有助于你更好的在第一时间了解变更细节。

除DEMO示例页以外,会有一些影响外,对于大版本会提供 ng update 来解决破坏性变更,对于其他情况的升级请参考 升级脚手架

Loading...
\ No newline at end of file +ng add ng-alain --defaultLanguage=en

遇到问题请阅读 常见问题

3、运行项目

ng serve

如何升级

建议 Star 或 Watch 源代码仓库,有助于你更好的在第一时间了解变更细节。

除DEMO示例页以外,会有一些影响外,对于大版本会提供 ng update 来解决破坏性变更,对于其他情况的升级请参考 升级脚手架

Loading...
\ No newline at end of file diff --git a/cli/getting-started/zh/index.html b/cli/getting-started/zh/index.html index 941d97859..a4d58567b 100644 --- a/cli/getting-started/zh/index.html +++ b/cli/getting-started/zh/index.html @@ -1,4 +1,4 @@ 开始使用 - NG-ALAIN

开始使用

写在前面

使用 ng-alain 脚手架应尽可能的使用 Angular CLI 所提供的 ng 命令组,来构建、升级等,ng-alain 也实现了一些比较酷的事:

  • 使用 ng add 构建空脚手架

  • 使用 ng g 来构建模块、业务页

  • 可插拔 插件

如何使用

我们不建议直接克隆 Github 源代码,而应该使用 ng add 来构建 ng-alain 项目,而构建一个空 ng-alain 只需要简单几个动作:

1、创建一个空 angular 项目

# 确保使用的是最新版本 Angular cli
 ng new demo --style less

2、添加 ng-alain 脚手架

ng add ng-alain
 # 如果你想创建一个英文版本,则:
-ng add ng-alain --defaultLanguage=en

遇到问题请阅读 常见问题

3、运行项目

ng serve

如何升级

建议 Star 或 Watch 源代码仓库,有助于你更好的在第一时间了解变更细节。

除DEMO示例页以外,会有一些影响外,对于大版本会提供 ng update 来解决破坏性变更,对于其他情况的升级请参考 升级脚手架

Loading...
\ No newline at end of file +ng add ng-alain --defaultLanguage=en

遇到问题请阅读 常见问题

3、运行项目

ng serve

如何升级

建议 Star 或 Watch 源代码仓库,有助于你更好的在第一时间了解变更细节。

除DEMO示例页以外,会有一些影响外,对于大版本会提供 ng update 来解决破坏性变更,对于其他情况的升级请参考 升级脚手架

ng add 创建脚手架
Loading...
\ No newline at end of file diff --git a/cli/index.html b/cli/index.html index 34fd10fe0..2bf62a808 100644 --- a/cli/index.html +++ b/cli/index.html @@ -1 +1 @@ -一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file +一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file diff --git a/cli/plugin/en/index.html b/cli/plugin/en/index.html index c8d3177c4..6e7a10e50 100644 --- a/cli/plugin/en/index.html +++ b/cli/plugin/en/index.html @@ -30,4 +30,4 @@ <i nz-icon [nzType]="d.status === 'NORMAL' ? 'close1' : 'close2'"></i> <i nz-icon nzType="{{ type ? 'arrow-left' : 'arrow-right' }}"></i> <i nz-icon nzType="filter" theme="outline"></i> -<nz-input-group [nzAddOnBeforeIcon]="focus ? 'anticon anticon-arrow-down' : 'anticon anticon-search'"></nz-input-group>

rtl

支持 RTL 插件,即文本方向设置为“从右向左”。

ng g ng-alain:plugin rtl

该插件不支持移除功能,需要自行手动移除相关代码。

Loading...
\ No newline at end of file +<nz-input-group [nzAddOnBeforeIcon]="focus ? 'anticon anticon-arrow-down' : 'anticon anticon-search'"></nz-input-group>

rtl

支持 RTL 插件,即文本方向设置为“从右向左”。

ng g ng-alain:plugin rtl

该插件不支持移除功能,需要自行手动移除相关代码。

Loading...
\ No newline at end of file diff --git a/cli/plugin/zh/index.html b/cli/plugin/zh/index.html index e6a5d9ade..a692acb84 100644 --- a/cli/plugin/zh/index.html +++ b/cli/plugin/zh/index.html @@ -30,4 +30,4 @@ <i nz-icon [nzType]="d.status === 'NORMAL' ? 'close1' : 'close2'"></i> <i nz-icon nzType="{{ type ? 'arrow-left' : 'arrow-right' }}"></i> <i nz-icon nzType="filter" theme="outline"></i> -<nz-input-group [nzAddOnBeforeIcon]="focus ? 'anticon anticon-arrow-down' : 'anticon anticon-search'"></nz-input-group>

rtl

支持 RTL 插件,即文本方向设置为“从右向左”。

ng g ng-alain:plugin rtl

该插件不支持移除功能,需要自行手动移除相关代码。

ng g 业务页 sta Swagger API 生成器
Loading...
\ No newline at end of file +<nz-input-group [nzAddOnBeforeIcon]="focus ? 'anticon anticon-arrow-down' : 'anticon anticon-search'"></nz-input-group>

rtl

支持 RTL 插件,即文本方向设置为“从右向左”。

ng g ng-alain:plugin rtl

该插件不支持移除功能,需要自行手动移除相关代码。

ng g 业务页 sta Swagger API 生成器
Loading...
\ No newline at end of file diff --git a/cli/sta/en/index.html b/cli/sta/en/index.html index 62a838824..9737eed1d 100644 --- a/cli/sta/en/index.html +++ b/cli/sta/en/index.html @@ -16,4 +16,4 @@ "status": 200, "error": "Error Message", "result": {} -}

若是通过拦截器来处理异常消息时,订阅时只需要始终获取 result 字段数据时,可以通过指定 --responseDataField="result" 来解决。

Loading...
\ No newline at end of file +}

若是通过拦截器来处理异常消息时,订阅时只需要始终获取 result 字段数据时,可以通过指定 --responseDataField="result" 来解决。

Loading...
\ No newline at end of file diff --git a/cli/sta/zh/index.html b/cli/sta/zh/index.html index 64c40b095..194e56386 100644 --- a/cli/sta/zh/index.html +++ b/cli/sta/zh/index.html @@ -16,4 +16,4 @@ "status": 200, "error": "Error Message", "result": {} -}

若是通过拦截器来处理异常消息时,订阅时只需要始终获取 result 字段数据时,可以通过指定 --responseDataField="result" 来解决。

插件 默认参数
Loading...
\ No newline at end of file +}

若是通过拦截器来处理异常消息时,订阅时只需要始终获取 result 字段数据时,可以通过指定 --responseDataField="result" 来解决。

插件 默认参数
Loading...
\ No newline at end of file diff --git a/components/auto-focus/en/index.html b/components/auto-focus/en/index.html index 307e48a95..c17887f1b 100644 --- a/components/auto-focus/en/index.html +++ b/components/auto-focus/en/index.html @@ -13,4 +13,4 @@ }) export class ComponentsAutoFocusSimpleComponent { showInput = false; -}

API

auto-focus

成员说明类型默认值
[enabled]是否启用booleantrue
[delay]延迟时长(单位:毫秒)number300
Loading...
\ No newline at end of file +}

API

auto-focus

成员说明类型默认值
[enabled]是否启用booleantrue
[delay]延迟时长(单位:毫秒)number300
Loading...
\ No newline at end of file diff --git a/components/auto-focus/zh/index.html b/components/auto-focus/zh/index.html index f261f127a..343c417ef 100644 --- a/components/auto-focus/zh/index.html +++ b/components/auto-focus/zh/index.html @@ -13,4 +13,4 @@ }) export class ComponentsAutoFocusSimpleComponent { showInput = false; -}

API

auto-focus

成员说明类型默认值
[enabled]是否启用booleantrue
[delay]延迟时长(单位:毫秒)number300
Mock模拟数据 highlight 高亮
Loading...
\ No newline at end of file +}

API

auto-focus

成员说明类型默认值
[enabled]是否启用booleantrue
[delay]延迟时长(单位:毫秒)number300
Mock模拟数据 highlight 高亮
Loading...
\ No newline at end of file diff --git a/components/avatar-list/en/index.html b/components/avatar-list/en/index.html index ca96bcf71..5b655996e 100644 --- a/components/avatar-list/en/index.html +++ b/components/avatar-list/en/index.html @@ -22,4 +22,4 @@ <avatar-list-item tips="heart-o" icon="heart-o"></avatar-list-item> </avatar-list>`, }) -export class ComponentsAvatarListSimpleComponent {}

API

avatar-list

成员说明类型默认值
[size]头像大小'large','small','mini','default''default'
[maxLength]要显示的最大项目number-
[excessItemsStyle]多余的项目风格{ [key: string]: string }-

avatar-list-item

成员说明类型默认值
[tips]头像展示文案string-
[src]头像图片连接string-
[text]文本类头像string-
[icon]图标类型string-
Loading...
\ No newline at end of file +export class ComponentsAvatarListSimpleComponent {}

API

avatar-list

成员说明类型默认值
[size]头像大小'large','small','mini','default''default'
[maxLength]要显示的最大项目number-
[excessItemsStyle]多余的项目风格{ [key: string]: string }-

avatar-list-item

成员说明类型默认值
[tips]头像展示文案string-
[src]头像图片连接string-
[text]文本类头像string-
[icon]图标类型string-
Loading...
\ No newline at end of file diff --git a/components/avatar-list/zh/index.html b/components/avatar-list/zh/index.html index 32d2a9afd..250cb9fa0 100644 --- a/components/avatar-list/zh/index.html +++ b/components/avatar-list/zh/index.html @@ -22,4 +22,4 @@ <avatar-list-item tips="heart-o" icon="heart-o"></avatar-list-item> </avatar-list>`, }) -export class ComponentsAvatarListSimpleComponent {}

API

avatar-list

成员说明类型默认值
[size]头像大小'large','small','mini','default''default'
[maxLength]要显示的最大项目number-
[excessItemsStyle]多余的项目风格{ [key: string]: string }-

avatar-list-item

成员说明类型默认值
[tips]头像展示文案string-
[src]头像图片连接string-
[text]文本类头像string-
[icon]图标类型string-
图表 G2 count-down 倒计时
Loading...
\ No newline at end of file +export class ComponentsAvatarListSimpleComponent {}

API

avatar-list

成员说明类型默认值
[size]头像大小'large','small','mini','default''default'
[maxLength]要显示的最大项目number-
[excessItemsStyle]多余的项目风格{ [key: string]: string }-

avatar-list-item

成员说明类型默认值
[tips]头像展示文案string-
[src]头像图片连接string-
[text]文本类头像string-
[icon]图标类型string-
图表 G2 count-down 倒计时
Loading...
\ No newline at end of file diff --git a/components/cell/en/index.html b/components/cell/en/index.html index 14d7a48af..20e986a43 100644 --- a/components/cell/en/index.html +++ b/components/cell/en/index.html @@ -1,4 +1,4 @@ -cell - NG-ALAIN

单元格数据
IMPORT MODULE

内置支持十几种数据类型的格式化,且支持小部件自定义模式。

代码演示

"string" =>string
true =>
false =>
100 =>100
1000000 =>1000000
"2023-11-26T06:41:04.395Z" =>2023-11-26 06:41:04
date-fn =>3 天
mega =>15.9亿
mask =>159****0000
currency =>100000$
cny =>壹拾万元整
img =>
img preview =>
img list =>
html =>Strong
SafeHtml =>Strong HtmlupdateSafeHtml
badge =>Done
tag =>Wait
checkbox =>Change Disabled
enum =>SuccessChange Value(enum value: 1)
default =>-
primary =>primary
success =>success
danger =>danger
warning =>warning
size =>small,default,large
tooltip =>tooltip
loading =>Change
Async =>1700980864471Again
Unit =>3
Text Unit =>100
custom widget =>
基础样例

最简单的用法。

expand code expand code
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';
+cell - NG-ALAIN

单元格数据
IMPORT MODULE

内置支持十几种数据类型的格式化,且支持小部件自定义模式。

代码演示

"string" =>string
true =>
false =>
100 =>100
1000000 =>1000000
"2023-11-26T06:55:15.397Z" =>2023-11-26 06:55:15
date-fn =>3 天
mega =>15.9亿
mask =>159****0000
currency =>100000$
cny =>壹拾万元整
img =>
img preview =>
img list =>
html =>Strong
SafeHtml =>Strong HtmlupdateSafeHtml
badge =>Done
tag =>Wait
checkbox =>Change Disabled
enum =>SuccessChange Value(enum value: 1)
default =>-
primary =>primary
success =>success
danger =>danger
warning =>warning
size =>small,default,large
tooltip =>tooltip
loading =>Change
Async =>1700981715462Again
Unit =>3
Text Unit =>100
custom widget =>
基础样例

最简单的用法。

expand code expand code
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';
 import { DomSanitizer } from '@angular/platform-browser';
 import { delay, finalize, of, take } from 'rxjs';
 
@@ -232,4 +232,4 @@
       { KEY: CellTestWidget.KEY, type: CellTestWidget }
     ),
   ]
-}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/components/cell/zh/index.html b/components/cell/zh/index.html index d1e8a794b..7c52120a1 100644 --- a/components/cell/zh/index.html +++ b/components/cell/zh/index.html @@ -1,4 +1,4 @@ -cell - NG-ALAIN

单元格数据
IMPORT MODULE

内置支持十几种数据类型的格式化,且支持小部件自定义模式。

代码演示

"string" =>string
true =>
false =>
100 =>100
1000000 =>1000000
"2023-11-26T06:41:04.412Z" =>2023-11-26 06:41:04
date-fn =>3 天
mega =>15.9亿
mask =>159****0000
currency =>100000$
cny =>壹拾万元整
img =>
img preview =>
img list =>
html =>Strong
SafeHtml =>Strong HtmlupdateSafeHtml
badge =>Done
tag =>Wait
checkbox =>Change Disabled
enum =>SuccessChange Value(enum value: 1)
default =>-
primary =>primary
success =>success
danger =>danger
warning =>warning
size =>small,default,large
tooltip =>tooltip
loading =>Change
Async =>1700980864529Again
Unit =>3
Text Unit =>100
custom widget =>
基础样例

最简单的用法。

expand code expand code
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';
+cell - NG-ALAIN

单元格数据
IMPORT MODULE

内置支持十几种数据类型的格式化,且支持小部件自定义模式。

代码演示

"string" =>string
true =>
false =>
100 =>100
1000000 =>1000000
"2023-11-26T06:55:15.595Z" =>2023-11-26 06:55:15
date-fn =>3 天
mega =>15.9亿
mask =>159****0000
currency =>100000$
cny =>壹拾万元整
img =>
img preview =>
img list =>
html =>Strong
SafeHtml =>Strong HtmlupdateSafeHtml
badge =>Done
tag =>Wait
checkbox =>Change Disabled
enum =>SuccessChange Value(enum value: 1)
default =>-
primary =>primary
success =>success
danger =>danger
warning =>warning
size =>small,default,large
tooltip =>tooltip
loading =>Change
Async =>1700981715654Again
Unit =>3
Text Unit =>100
custom widget =>
基础样例

最简单的用法。

expand code expand code
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';
 import { DomSanitizer } from '@angular/platform-browser';
 import { delay, finalize, of, take } from 'rxjs';
 
@@ -232,4 +232,4 @@
       { KEY: CellTestWidget.KEY, type: CellTestWidget }
     ),
   ]
-}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/components/count-down/en/index.html b/components/count-down/en/index.html index 146b8564a..7dc83c8b4 100644 --- a/components/count-down/en/index.html +++ b/components/count-down/en/index.html @@ -32,4 +32,4 @@ format: `s.S`, leftTime: 30, }; -}

API

count-down

成员说明类型默认值
[target]目标时间,number 表示秒number | Date-
[config]完整 Config 参数CountdownConfig-
(event)事件通知EventEmitter<CountdownEvent>-
Loading...
\ No newline at end of file +}

API

count-down

成员说明类型默认值
[target]目标时间,number 表示秒number | Date-
[config]完整 Config 参数CountdownConfig-
(event)事件通知EventEmitter<CountdownEvent>-
Loading...
\ No newline at end of file diff --git a/components/count-down/zh/index.html b/components/count-down/zh/index.html index 26e47af1b..15138544f 100644 --- a/components/count-down/zh/index.html +++ b/components/count-down/zh/index.html @@ -32,4 +32,4 @@ format: `s.S`, leftTime: 30, }; -}

API

count-down

成员说明类型默认值
[target]目标时间,number 表示秒number | Date-
[config]完整 Config 参数CountdownConfig-
(event)事件通知EventEmitter<CountdownEvent>-
avatar-list 用户头像列表 down-file 下载文件
Loading...
\ No newline at end of file +}

API

count-down

成员说明类型默认值
[target]目标时间,number 表示秒number | Date-
[config]完整 Config 参数CountdownConfig-
(event)事件通知EventEmitter<CountdownEvent>-
avatar-list 用户头像列表 down-file 下载文件
Loading...
\ No newline at end of file diff --git a/components/date-picker/en/index.html b/components/date-picker/en/index.html index a6634a652..8d2be1ae5 100644 --- a/components/date-picker/en/index.html +++ b/components/date-picker/en/index.html @@ -20,4 +20,4 @@ }) export class ComponentsDatePickerShortcutComponent { i: { start?: Date; end?: Date } = {}; -}

API

extend

需要配合 nz-range-picker 一起使用,例如:

<nz-range-picker [(ngModel)]="i.start" extend [(ngModelEnd)]="i.end"></nz-range-picker>
成员说明类型默认值全局配置
[(ngModelEnd)]结束日期,开始与结束同时有值才会生效Date-
[shortcut]设置快捷键boolean, DateRangePickerShortcutfalse

DateRangePickerShortcut

成员说明类型默认值
[enabled]是否启用booleanfalse
[closed]是否点击后立即关闭面板booleantrue
[enabled]快捷列表DateRangePickerShortcutItem[]今天,昨天,近3天,近7天,本周,本月,全年
Loading...
\ No newline at end of file +}

API

extend

需要配合 nz-range-picker 一起使用,例如:

<nz-range-picker [(ngModel)]="i.start" extend [(ngModelEnd)]="i.end"></nz-range-picker>
成员说明类型默认值全局配置
[(ngModelEnd)]结束日期,开始与结束同时有值才会生效Date-
[shortcut]设置快捷键boolean, DateRangePickerShortcutfalse

DateRangePickerShortcut

成员说明类型默认值
[enabled]是否启用booleanfalse
[closed]是否点击后立即关闭面板booleantrue
[enabled]快捷列表DateRangePickerShortcutItem[]今天,昨天,近3天,近7天,本周,本月,全年
Loading...
\ No newline at end of file diff --git a/components/date-picker/zh/index.html b/components/date-picker/zh/index.html index 2d12d9d42..b9f21b26a 100644 --- a/components/date-picker/zh/index.html +++ b/components/date-picker/zh/index.html @@ -20,4 +20,4 @@ }) export class ComponentsDatePickerShortcutComponent { i: { start?: Date; end?: Date } = {}; -}

API

extend

需要配合 nz-range-picker 一起使用,例如:

<nz-range-picker [(ngModel)]="i.start" extend [(ngModelEnd)]="i.end"></nz-range-picker>
成员说明类型默认值全局配置
[(ngModelEnd)]结束日期,开始与结束同时有值才会生效Date-
[shortcut]设置快捷键boolean, DateRangePickerShortcutfalse

DateRangePickerShortcut

成员说明类型默认值
[enabled]是否启用booleanfalse
[closed]是否点击后立即关闭面板booleantrue
[enabled]快捷列表DateRangePickerShortcutItem[]今天,昨天,近3天,近7天,本周,本月,全年
工具集 error-collect 表单异常消息采集器
Loading...
\ No newline at end of file +}

API

extend

需要配合 nz-range-picker 一起使用,例如:

<nz-range-picker [(ngModel)]="i.start" extend [(ngModelEnd)]="i.end"></nz-range-picker>
成员说明类型默认值全局配置
[(ngModelEnd)]结束日期,开始与结束同时有值才会生效Date-
[shortcut]设置快捷键boolean, DateRangePickerShortcutfalse

DateRangePickerShortcut

成员说明类型默认值
[enabled]是否启用booleanfalse
[closed]是否点击后立即关闭面板booleantrue
[enabled]快捷列表DateRangePickerShortcutItem[]今天,昨天,近3天,近7天,本周,本月,全年
工具集 error-collect 表单异常消息采集器
Loading...
\ No newline at end of file diff --git a/components/down-file/en/index.html b/components/down-file/en/index.html index 2c07ca699..c15a4f9b9 100644 --- a/components/down-file/en/index.html +++ b/components/down-file/en/index.html @@ -24,4 +24,4 @@ otherdata: 1, time: new Date(), }; -}

API

down-file

成员说明类型默认值
[http-data]URL请求参数{}-
[http-body]POST请求响应体{}-
[http-method]请求类型'POST','GET','HEAD','PUT','PATCH','DELETE''GET'
[http-url]下载地址string-
[file-name]指定文件名,若为空从服务端返回的 header 中获取 filenamex-filenamestring, (rep: HttpResponse<Blob>) => string-
[pre]下载前回调(ev: MouseEvent) => Promise<boolean>-
(success)成功回调EventEmitter<HttpResponse>-
(error)错误回调EventEmitter<any>-

常见问题

文件名获取顺序

  1. file-name

  2. content-dispositionfilename*filename

  3. header 参数 filenamex-filename

兼容性

使用 new Blob() 来校验浏览器兼容,若不兼容会在目标元素上增加 down-file__not-support 样式。

默认不兼容处理行为为隐藏,可以设置 Less 变量为 @down-file-not-support-behavior: 'disabled' 表示禁止点击。

Loading...
\ No newline at end of file +}

API

down-file

成员说明类型默认值
[http-data]URL请求参数{}-
[http-body]POST请求响应体{}-
[http-method]请求类型'POST','GET','HEAD','PUT','PATCH','DELETE''GET'
[http-url]下载地址string-
[file-name]指定文件名,若为空从服务端返回的 header 中获取 filenamex-filenamestring, (rep: HttpResponse<Blob>) => string-
[pre]下载前回调(ev: MouseEvent) => Promise<boolean>-
(success)成功回调EventEmitter<HttpResponse>-
(error)错误回调EventEmitter<any>-

常见问题

文件名获取顺序

  1. file-name

  2. content-dispositionfilename*filename

  3. header 参数 filenamex-filename

兼容性

使用 new Blob() 来校验浏览器兼容,若不兼容会在目标元素上增加 down-file__not-support 样式。

默认不兼容处理行为为隐藏,可以设置 Less 变量为 @down-file-not-support-behavior: 'disabled' 表示禁止点击。

Loading...
\ No newline at end of file diff --git a/components/down-file/zh/index.html b/components/down-file/zh/index.html index 9800885f5..d93a36cac 100644 --- a/components/down-file/zh/index.html +++ b/components/down-file/zh/index.html @@ -24,4 +24,4 @@ otherdata: 1, time: new Date(), }; -}

API

down-file

成员说明类型默认值
[http-data]URL请求参数{}-
[http-body]POST请求响应体{}-
[http-method]请求类型'POST','GET','HEAD','PUT','PATCH','DELETE''GET'
[http-url]下载地址string-
[file-name]指定文件名,若为空从服务端返回的 header 中获取 filenamex-filenamestring, (rep: HttpResponse<Blob>) => string-
[pre]下载前回调(ev: MouseEvent) => Promise<boolean>-
(success)成功回调EventEmitter<HttpResponse>-
(error)错误回调EventEmitter<any>-

常见问题

文件名获取顺序

  1. file-name

  2. content-dispositionfilename*filename

  3. header 参数 filenamex-filename

兼容性

使用 new Blob() 来校验浏览器兼容,若不兼容会在目标元素上增加 down-file__not-support 样式。

默认不兼容处理行为为隐藏,可以设置 Less 变量为 @down-file-not-support-behavior: 'disabled' 表示禁止点击。

count-down 倒计时 主题系统
Loading...
\ No newline at end of file +}

API

down-file

成员说明类型默认值
[http-data]URL请求参数{}-
[http-body]POST请求响应体{}-
[http-method]请求类型'POST','GET','HEAD','PUT','PATCH','DELETE''GET'
[http-url]下载地址string-
[file-name]指定文件名,若为空从服务端返回的 header 中获取 filenamex-filenamestring, (rep: HttpResponse<Blob>) => string-
[pre]下载前回调(ev: MouseEvent) => Promise<boolean>-
(success)成功回调EventEmitter<HttpResponse>-
(error)错误回调EventEmitter<any>-

常见问题

文件名获取顺序

  1. file-name

  2. content-dispositionfilename*filename

  3. header 参数 filenamex-filename

兼容性

使用 new Blob() 来校验浏览器兼容,若不兼容会在目标元素上增加 down-file__not-support 样式。

默认不兼容处理行为为隐藏,可以设置 Less 变量为 @down-file-not-support-behavior: 'disabled' 表示禁止点击。

count-down 倒计时 主题系统
Loading...
\ No newline at end of file diff --git a/components/ellipsis/en/index.html b/components/ellipsis/en/index.html index 4d5a18149..cbbdc89fc 100644 --- a/components/ellipsis/en/index.html +++ b/components/ellipsis/en/index.html @@ -24,4 +24,4 @@ </ellipsis> `, }) -export class ComponentsEllipsisLineComponent {}

API

ellipsis

成员说明类型默认值
[tooltip]移动到文本展示完整内容的提示booleanfalse
[length]在按照长度截取下的文本最大字符数,超过则截取省略number-
[lines]在按照行数截取下最大的行数,超过则截取省略number-
[fullWidthRecognition]是否将全角字符的长度视为2来计算字符串长度booleanfalse
[tail]指定溢出尾巴string'...'
Loading...
\ No newline at end of file +export class ComponentsEllipsisLineComponent {}

API

ellipsis

成员说明类型默认值
[tooltip]移动到文本展示完整内容的提示booleanfalse
[length]在按照长度截取下的文本最大字符数,超过则截取省略number-
[lines]在按照行数截取下最大的行数,超过则截取省略number-
[fullWidthRecognition]是否将全角字符的长度视为2来计算字符串长度booleanfalse
[tail]指定溢出尾巴string'...'
Loading...
\ No newline at end of file diff --git a/components/ellipsis/zh/index.html b/components/ellipsis/zh/index.html index dae37f890..c05659df1 100644 --- a/components/ellipsis/zh/index.html +++ b/components/ellipsis/zh/index.html @@ -24,4 +24,4 @@ </ellipsis> `, }) -export class ComponentsEllipsisLineComponent {}

API

ellipsis

成员说明类型默认值
[tooltip]移动到文本展示完整内容的提示booleanfalse
[length]在按照长度截取下的文本最大字符数,超过则截取省略number-
[lines]在按照行数截取下最大的行数,超过则截取省略number-
[fullWidthRecognition]是否将全角字符的长度视为2来计算字符串长度booleanfalse
[tail]指定溢出尾巴string'...'
sg 简易栅格 exception 异常
Loading...
\ No newline at end of file +export class ComponentsEllipsisLineComponent {}

API

ellipsis

成员说明类型默认值
[tooltip]移动到文本展示完整内容的提示booleanfalse
[length]在按照长度截取下的文本最大字符数,超过则截取省略number-
[lines]在按照行数截取下最大的行数,超过则截取省略number-
[fullWidthRecognition]是否将全角字符的长度视为2来计算字符串长度booleanfalse
[tail]指定溢出尾巴string'...'
sg 简易栅格 exception 异常
Loading...
\ No newline at end of file diff --git a/components/error-collect/en/index.html b/components/error-collect/en/index.html index 427233771..68cd5e919 100644 --- a/components/error-collect/en/index.html +++ b/components/error-collect/en/index.html @@ -26,4 +26,4 @@ ngOnInit(): void { this.email.markAsDirty(); } -}

API

error-collect

成员说明类型默认值全局配置
[freq]监听频率,单位:毫秒number500
[offsetTop]顶部偏移值,单位:pxnumber145
Loading...
\ No newline at end of file +}

API

error-collect

成员说明类型默认值全局配置
[freq]监听频率,单位:毫秒number500
[offsetTop]顶部偏移值,单位:pxnumber145
Loading...
\ No newline at end of file diff --git a/components/error-collect/zh/index.html b/components/error-collect/zh/index.html index cf287b773..ed2cf7f29 100644 --- a/components/error-collect/zh/index.html +++ b/components/error-collect/zh/index.html @@ -26,4 +26,4 @@ ngOnInit(): void { this.email.markAsDirty(); } -}

API

error-collect

成员说明类型默认值全局配置
[freq]监听频率,单位:毫秒number500
[offsetTop]顶部偏移值,单位:pxnumber145
range-picker 日期范围 sg 简易栅格
Loading...
\ No newline at end of file +}

API

error-collect

成员说明类型默认值全局配置
[freq]监听频率,单位:毫秒number500
[offsetTop]顶部偏移值,单位:pxnumber145
range-picker 日期范围 sg 简易栅格
Loading...
\ No newline at end of file diff --git a/components/exception/en/index.html b/components/exception/en/index.html index 1e478952a..f31018626 100644 --- a/components/exception/en/index.html +++ b/components/exception/en/index.html @@ -21,4 +21,4 @@ </exception> `, }) -export class ComponentsException403Component {}

API

exception

成员说明类型默认值全局配置
[type]页面类型,若配置,则自带对应类型默认的 titledescimg,此默认设置可以被 titledescimg 覆盖'403','404','500'-
[title]标题string--
[desc]补充描述string--
[img]背景图片地址string--
[backRouterLink]后退路由链接string, any[]/-
ng-content建议操作,配置此属性时默认的『返回首页』按钮不生效TemplateRef<void>--
Loading...
\ No newline at end of file +export class ComponentsException403Component {}

API

exception

成员说明类型默认值全局配置
[type]页面类型,若配置,则自带对应类型默认的 titledescimg,此默认设置可以被 titledescimg 覆盖'403','404','500'-
[title]标题string--
[desc]补充描述string--
[img]背景图片地址string--
[backRouterLink]后退路由链接string, any[]/-
ng-content建议操作,配置此属性时默认的『返回首页』按钮不生效TemplateRef<void>--
Loading...
\ No newline at end of file diff --git a/components/exception/zh/index.html b/components/exception/zh/index.html index 2a8711751..6133db204 100644 --- a/components/exception/zh/index.html +++ b/components/exception/zh/index.html @@ -21,4 +21,4 @@ </exception> `, }) -export class ComponentsException403Component {}

API

exception

成员说明类型默认值全局配置
[type]页面类型,若配置,则自带对应类型默认的 titledescimg,此默认设置可以被 titledescimg 覆盖'403','404','500'-
[title]标题string--
[desc]补充描述string--
[img]背景图片地址string--
[backRouterLink]后退路由链接string, any[]/-
ng-content建议操作,配置此属性时默认的『返回首页』按钮不生效TemplateRef<void>--
ellipsis 文本自动省略号 footer-toolbar 底部工具栏
Loading...
\ No newline at end of file +export class ComponentsException403Component {}

API

exception

成员说明类型默认值全局配置
[type]页面类型,若配置,则自带对应类型默认的 titledescimg,此默认设置可以被 titledescimg 覆盖'403','404','500'-
[title]标题string--
[desc]补充描述string--
[img]背景图片地址string--
[backRouterLink]后退路由链接string, any[]/-
ng-content建议操作,配置此属性时默认的『返回首页』按钮不生效TemplateRef<void>--
ellipsis 文本自动省略号 footer-toolbar 底部工具栏
Loading...
\ No newline at end of file diff --git a/components/footer-toolbar/en/index.html b/components/footer-toolbar/en/index.html index d3ca2e007..944d2eb86 100644 --- a/components/footer-toolbar/en/index.html +++ b/components/footer-toolbar/en/index.html @@ -28,4 +28,4 @@ ngOnInit(): void { this.name.markAsDirty(); } -}

API

成员说明类型默认值
ng-content工具栏内容,向右对齐--
[errorCollect]是否需要 error-collect,务必包裹在 <form> 元素内booleanfalse
[extra]额外信息,向左对齐string,TemplateRef<void>-
Loading...
\ No newline at end of file +}

API

成员说明类型默认值
ng-content工具栏内容,向右对齐--
[errorCollect]是否需要 error-collect,务必包裹在 <form> 元素内booleanfalse
[extra]额外信息,向左对齐string,TemplateRef<void>-
Loading...
\ No newline at end of file diff --git a/components/footer-toolbar/zh/index.html b/components/footer-toolbar/zh/index.html index 564af12c6..66f4f4ca3 100644 --- a/components/footer-toolbar/zh/index.html +++ b/components/footer-toolbar/zh/index.html @@ -28,4 +28,4 @@ ngOnInit(): void { this.name.markAsDirty(); } -}

API

成员说明类型默认值
ng-content工具栏内容,向右对齐--
[errorCollect]是否需要 error-collect,务必包裹在 <form> 元素内booleanfalse
[extra]额外信息,向左对齐string,TemplateRef<void>-
exception 异常 full-content 全屏工作区
Loading...
\ No newline at end of file +}

API

成员说明类型默认值
ng-content工具栏内容,向右对齐--
[errorCollect]是否需要 error-collect,务必包裹在 <form> 元素内booleanfalse
[extra]额外信息,向左对齐string,TemplateRef<void>-
exception 异常 full-content 全屏工作区
Loading...
\ No newline at end of file diff --git a/components/full-content/en/index.html b/components/full-content/en/index.html index b82f1db32..6e6a39df6 100644 --- a/components/full-content/en/index.html +++ b/components/full-content/en/index.html @@ -1 +1 @@ -full-content - NG-ALAIN

全屏工作区
IMPORT MODULE

全屏工作区,常用于带有滚动条表格,一个在线示例

API

full-content

参数说明类型默认值
[(fullscreen)]是否完整全屏(不包括顶部、侧边栏等)boolean-
[hideTitle]完整全屏时是否隐藏标题booleantrue
[padding]工作区内边距number24

full-toggle

切换是否全屏。

全屏控制

包含三种方式:

  • 使用 fullscreen 双向绑定

  • 使用 [full-toggle] 指令

  • 使用 FullContentService.toggle() 服务

Loading...
\ No newline at end of file +full-content - NG-ALAIN

全屏工作区
IMPORT MODULE

全屏工作区,常用于带有滚动条表格,一个在线示例

API

full-content

参数说明类型默认值
[(fullscreen)]是否完整全屏(不包括顶部、侧边栏等)boolean-
[hideTitle]完整全屏时是否隐藏标题booleantrue
[padding]工作区内边距number24

full-toggle

切换是否全屏。

全屏控制

包含三种方式:

  • 使用 fullscreen 双向绑定

  • 使用 [full-toggle] 指令

  • 使用 FullContentService.toggle() 服务

Loading...
\ No newline at end of file diff --git a/components/full-content/zh/index.html b/components/full-content/zh/index.html index fd048a8ef..2635d1e3a 100644 --- a/components/full-content/zh/index.html +++ b/components/full-content/zh/index.html @@ -1 +1 @@ -full-content - NG-ALAIN

全屏工作区
IMPORT MODULE

全屏工作区,常用于带有滚动条表格,一个在线示例

API

full-content

参数说明类型默认值
[(fullscreen)]是否完整全屏(不包括顶部、侧边栏等)boolean-
[hideTitle]完整全屏时是否隐藏标题booleantrue
[padding]工作区内边距number24

full-toggle

切换是否全屏。

全屏控制

包含三种方式:

  • 使用 fullscreen 双向绑定

  • 使用 [full-toggle] 指令

  • 使用 FullContentService.toggle() 服务

Loading...
\ No newline at end of file +full-content - NG-ALAIN

全屏工作区
IMPORT MODULE

全屏工作区,常用于带有滚动条表格,一个在线示例

API

full-content

参数说明类型默认值
[(fullscreen)]是否完整全屏(不包括顶部、侧边栏等)boolean-
[hideTitle]完整全屏时是否隐藏标题booleantrue
[padding]工作区内边距number24

full-toggle

切换是否全屏。

全屏控制

包含三种方式:

  • 使用 fullscreen 双向绑定

  • 使用 [full-toggle] 指令

  • 使用 FullContentService.toggle() 服务

Loading...
\ No newline at end of file diff --git a/components/global-footer/en/index.html b/components/global-footer/en/index.html index d2ea43be9..868870ade 100644 --- a/components/global-footer/en/index.html +++ b/components/global-footer/en/index.html @@ -58,4 +58,4 @@ `, ], }) -export class ComponentsGlobalFooterCustomComponent {}

API

参数说明类型默认值
[links]链接数据GlobalFooterLink-
[copyright]版权信息TemplateRef-
参数说明类型默认值
ng-content标题string-
[href]路由链接string-
[blankTarget]是否打开新窗口booleanfalse
参数说明类型默认值
[title]标题string-
[href]路由链接string-
[blankTarget]是否打开新窗口booleanfalse
Loading...
\ No newline at end of file +export class ComponentsGlobalFooterCustomComponent {}

API

参数说明类型默认值
[links]链接数据GlobalFooterLink-
[copyright]版权信息TemplateRef-
参数说明类型默认值
ng-content标题string-
[href]路由链接string-
[blankTarget]是否打开新窗口booleanfalse
参数说明类型默认值
[title]标题string-
[href]路由链接string-
[blankTarget]是否打开新窗口booleanfalse
Loading...
\ No newline at end of file diff --git a/components/global-footer/zh/index.html b/components/global-footer/zh/index.html index c78d48c2a..b18b595df 100644 --- a/components/global-footer/zh/index.html +++ b/components/global-footer/zh/index.html @@ -58,4 +58,4 @@ `, ], }) -export class ComponentsGlobalFooterCustomComponent {}

API

参数说明类型默认值
[links]链接数据GlobalFooterLink-
[copyright]版权信息TemplateRef-
参数说明类型默认值
ng-content标题string-
[href]路由链接string-
[blankTarget]是否打开新窗口booleanfalse
参数说明类型默认值
[title]标题string-
[href]路由链接string-
[blankTarget]是否打开新窗口booleanfalse
full-content 全屏工作区 page-header 页头
Loading...
\ No newline at end of file +export class ComponentsGlobalFooterCustomComponent {}

API

参数说明类型默认值
[links]链接数据GlobalFooterLink-
[copyright]版权信息TemplateRef-
参数说明类型默认值
ng-content标题string-
[href]路由链接string-
[blankTarget]是否打开新窗口booleanfalse
参数说明类型默认值
[title]标题string-
[href]路由链接string-
[blankTarget]是否打开新窗口booleanfalse
full-content 全屏工作区 page-header 页头
Loading...
\ No newline at end of file diff --git a/components/highlight/en/index.html b/components/highlight/en/index.html index c98f03dc9..3c887c046 100644 --- a/components/highlight/en/index.html +++ b/components/highlight/en/index.html @@ -22,4 +22,4 @@ export class ComponentsHighlightSimpleComponent { str = [...Array(26)].map((_, i) => (i + 10).toString(36)).join(''); searchValue = 'mn'; -}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/components/highlight/zh/index.html b/components/highlight/zh/index.html index 0fd618b91..c83f3c998 100644 --- a/components/highlight/zh/index.html +++ b/components/highlight/zh/index.html @@ -22,4 +22,4 @@ export class ComponentsHighlightSimpleComponent { str = [...Array(26)].map((_, i) => (i + 10).toString(36)).join(''); searchValue = 'mn'; -}
auto-focus 自动获得焦点
Loading...
\ No newline at end of file +}
auto-focus 自动获得焦点
Loading...
\ No newline at end of file diff --git a/components/hotkey/en/index.html b/components/hotkey/en/index.html index 515d5ca8d..b78a016cd 100644 --- a/components/hotkey/en/index.html +++ b/components/hotkey/en/index.html @@ -53,4 +53,4 @@ selectText(el: HTMLTextAreaElement): void { el.select(); } -}

API

hotkey

成员说明类型默认值
hotkey指定热键格式string-
Loading...
\ No newline at end of file +}

API

hotkey

成员说明类型默认值
hotkey指定热键格式string-
Loading...
\ No newline at end of file diff --git a/components/hotkey/zh/index.html b/components/hotkey/zh/index.html index 0fe7fe738..76de42e1c 100644 --- a/components/hotkey/zh/index.html +++ b/components/hotkey/zh/index.html @@ -53,4 +53,4 @@ selectText(el: HTMLTextAreaElement): void { el.select(); } -}

API

hotkey

成员说明类型默认值
hotkey指定热键格式string-
sf 动态表单 let 定义
Loading...
\ No newline at end of file +}

API

hotkey

成员说明类型默认值
hotkey指定热键格式string-
sf 动态表单 let 定义
Loading...
\ No newline at end of file diff --git a/components/index.html b/components/index.html index 34fd10fe0..2bf62a808 100644 --- a/components/index.html +++ b/components/index.html @@ -1 +1 @@ -一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file +一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file diff --git a/components/let/en/index.html b/components/let/en/index.html index 5aa0125d1..7ed41c2bb 100644 --- a/components/let/en/index.html +++ b/components/let/en/index.html @@ -66,4 +66,4 @@ this.timer$ = interval(1000).pipe(startWith(0)); } -}

API

let

参数说明类型默认值全局配置
[let]表达式T--
Loading...
\ No newline at end of file +}

API

let

参数说明类型默认值全局配置
[let]表达式T--
Loading...
\ No newline at end of file diff --git a/components/let/zh/index.html b/components/let/zh/index.html index 5c15d6b8e..70c9a38df 100644 --- a/components/let/zh/index.html +++ b/components/let/zh/index.html @@ -66,4 +66,4 @@ this.timer$ = interval(1000).pipe(startWith(0)); } -}

API

let

参数说明类型默认值全局配置
[let]表达式T--
hotkey 热键 media HTML5媒体
Loading...
\ No newline at end of file +}

API

let

参数说明类型默认值全局配置
[let]表达式T--
hotkey 热键 media HTML5媒体
Loading...
\ No newline at end of file diff --git a/components/loading/en/index.html b/components/loading/en/index.html index 33e60af6c..c85376a48 100644 --- a/components/loading/en/index.html +++ b/components/loading/en/index.html @@ -256,4 +256,4 @@ close(): void { this.loadingSrv.close(); } -}

API

LoadingService

名称说明
open(options?: LoadingShowOptions)打开一个新加载指示符
close()关闭一个加载指示符

LoadingShowOptions

成员说明类型默认值全局配置
type显示类型LoadingTypespin
text描述文案string加载中...
icon类型为 icon 的配置项LoadingIcon-
custom类型为 custom 的配置项LoadingCustom-
delay延迟显示加载效果的时间(防止闪烁),单位:毫秒number-
Loading...
\ No newline at end of file +}

API

LoadingService

名称说明
open(options?: LoadingShowOptions)打开一个新加载指示符
close()关闭一个加载指示符

LoadingShowOptions

成员说明类型默认值全局配置
type显示类型LoadingTypespin
text描述文案string加载中...
icon类型为 icon 的配置项LoadingIcon-
custom类型为 custom 的配置项LoadingCustom-
delay延迟显示加载效果的时间(防止闪烁),单位:毫秒number-
Loading...
\ No newline at end of file diff --git a/components/loading/zh/index.html b/components/loading/zh/index.html index 0656a3be7..8e6ee286c 100644 --- a/components/loading/zh/index.html +++ b/components/loading/zh/index.html @@ -256,4 +256,4 @@ close(): void { this.loadingSrv.close(); } -}

API

LoadingService

名称说明
open(options?: LoadingShowOptions)打开一个新加载指示符
close()关闭一个加载指示符

LoadingShowOptions

成员说明类型默认值全局配置
type显示类型LoadingTypespin
text描述文案string加载中...
icon类型为 icon 的配置项LoadingIcon-
custom类型为 custom 的配置项LoadingCustom-
delay延迟显示加载效果的时间(防止闪烁),单位:毫秒number-
reuse-tab 路由复用标签 pdf Pdf
Loading...
\ No newline at end of file +}

API

LoadingService

名称说明
open(options?: LoadingShowOptions)打开一个新加载指示符
close()关闭一个加载指示符

LoadingShowOptions

成员说明类型默认值全局配置
type显示类型LoadingTypespin
text描述文案string加载中...
icon类型为 icon 的配置项LoadingIcon-
custom类型为 custom 的配置项LoadingCustom-
delay延迟显示加载效果的时间(防止闪烁),单位:毫秒number-
reuse-tab 路由复用标签 pdf Pdf
Loading...
\ No newline at end of file diff --git a/components/lodop/en/index.html b/components/lodop/en/index.html index 8ab4afc4e..8b8047e96 100644 --- a/components/lodop/en/index.html +++ b/components/lodop/en/index.html @@ -245,4 +245,4 @@ } }); } -}

API

LodopService

成员说明类型默认值
cog获取或设置配置项AlainLodopConfig-
events打印过程通知Observable<LodopPrintResult>-
lodop获取 Lodop 对象Observable<LodopResult>-

Lodop加载成功后辅助API

成员说明类型默认值
printer获取打印机列表string[]-
attachCode()附加代码至 lodop 对象上void-
design()运行打印设计手动关闭后返回代码Promise<string>-
print()立即打印,一般用于批量套打void-

LodopPrintResult

成员说明类型默认值
ok是否打印成功boolean-
error错误信息string-
code代码string-
item动态参数上下文对象any-
parser代码解析表达式RegExp-

LodopResult

成员说明类型默认值
ok表示是否加载成功boolean-
status状态码string-
lodopLodop 对象Lodop-
error错误明细any-

AlainLodopConfig

成员说明类型默认值全局配置
companyName注册单位名称string-
license主注册号string-
licenseA附加注册号Astring-
licenseB附加注册号Bstring-
urlLodop 远程脚本URL地址,注意务必使用 name 属性指定变量值string//localhost:8443/Lodopfuncs.js
nameLodop 变量名stringLODOP
checkMaxCount检查次数,默认 100,当检查超过时视为异常,这是因为 Lodop 需要连接 WebSocketnumber100
Loading...
\ No newline at end of file +}

API

LodopService

成员说明类型默认值
cog获取或设置配置项AlainLodopConfig-
events打印过程通知Observable<LodopPrintResult>-
lodop获取 Lodop 对象Observable<LodopResult>-

Lodop加载成功后辅助API

成员说明类型默认值
printer获取打印机列表string[]-
attachCode()附加代码至 lodop 对象上void-
design()运行打印设计手动关闭后返回代码Promise<string>-
print()立即打印,一般用于批量套打void-

LodopPrintResult

成员说明类型默认值
ok是否打印成功boolean-
error错误信息string-
code代码string-
item动态参数上下文对象any-
parser代码解析表达式RegExp-

LodopResult

成员说明类型默认值
ok表示是否加载成功boolean-
status状态码string-
lodopLodop 对象Lodop-
error错误明细any-

AlainLodopConfig

成员说明类型默认值全局配置
companyName注册单位名称string-
license主注册号string-
licenseA附加注册号Astring-
licenseB附加注册号Bstring-
urlLodop 远程脚本URL地址,注意务必使用 name 属性指定变量值string//localhost:8443/Lodopfuncs.js
nameLodop 变量名stringLODOP
checkMaxCount检查次数,默认 100,当检查超过时视为异常,这是因为 Lodop 需要连接 WebSocketnumber100
Loading...
\ No newline at end of file diff --git a/components/lodop/zh/index.html b/components/lodop/zh/index.html index 10cbf25a7..c53a1be5b 100644 --- a/components/lodop/zh/index.html +++ b/components/lodop/zh/index.html @@ -245,4 +245,4 @@ } }); } -}

API

LodopService

成员说明类型默认值
cog获取或设置配置项AlainLodopConfig-
events打印过程通知Observable<LodopPrintResult>-
lodop获取 Lodop 对象Observable<LodopResult>-

Lodop加载成功后辅助API

成员说明类型默认值
printer获取打印机列表string[]-
attachCode()附加代码至 lodop 对象上void-
design()运行打印设计手动关闭后返回代码Promise<string>-
print()立即打印,一般用于批量套打void-

LodopPrintResult

成员说明类型默认值
ok是否打印成功boolean-
error错误信息string-
code代码string-
item动态参数上下文对象any-
parser代码解析表达式RegExp-

LodopResult

成员说明类型默认值
ok表示是否加载成功boolean-
status状态码string-
lodopLodop 对象Lodop-
error错误明细any-

AlainLodopConfig

成员说明类型默认值全局配置
companyName注册单位名称string-
license主注册号string-
licenseA附加注册号Astring-
licenseB附加注册号Bstring-
urlLodop 远程脚本URL地址,注意务必使用 name 属性指定变量值string//localhost:8443/Lodopfuncs.js
nameLodop 变量名stringLODOP
checkMaxCount检查次数,默认 100,当检查超过时视为异常,这是因为 Lodop 需要连接 WebSocketnumber100
qr 二维码 xlsx Excel 操作
Loading...
\ No newline at end of file +}

API

LodopService

成员说明类型默认值
cog获取或设置配置项AlainLodopConfig-
events打印过程通知Observable<LodopPrintResult>-
lodop获取 Lodop 对象Observable<LodopResult>-

Lodop加载成功后辅助API

成员说明类型默认值
printer获取打印机列表string[]-
attachCode()附加代码至 lodop 对象上void-
design()运行打印设计手动关闭后返回代码Promise<string>-
print()立即打印,一般用于批量套打void-

LodopPrintResult

成员说明类型默认值
ok是否打印成功boolean-
error错误信息string-
code代码string-
item动态参数上下文对象any-
parser代码解析表达式RegExp-

LodopResult

成员说明类型默认值
ok表示是否加载成功boolean-
status状态码string-
lodopLodop 对象Lodop-
error错误明细any-

AlainLodopConfig

成员说明类型默认值全局配置
companyName注册单位名称string-
license主注册号string-
licenseA附加注册号Astring-
licenseB附加注册号Bstring-
urlLodop 远程脚本URL地址,注意务必使用 name 属性指定变量值string//localhost:8443/Lodopfuncs.js
nameLodop 变量名stringLODOP
checkMaxCount检查次数,默认 100,当检查超过时视为异常,这是因为 Lodop 需要连接 WebSocketnumber100
qr 二维码 xlsx Excel 操作
Loading...
\ No newline at end of file diff --git a/components/media/en/index.html b/components/media/en/index.html index f764d61e2..1f124f00c 100644 --- a/components/media/en/index.html +++ b/components/media/en/index.html @@ -94,4 +94,4 @@ }) export class ComponentsMediaMp3Component { mp3 = `https://cdn.plyr.io/static/demo/Kishi_Bashi_-_It_All_Began_With_a_Burst.mp3`; -}

API

media

成员说明类型默认值全局配置
[type]媒体类型audio, videovideo-
[source]媒体数据源string, PlyrMediaSource--
[options]播放器参数 plyr optionsany-
[delay]延迟初始化,单位:毫秒number--
(ready)准备就绪回调EventEmitter<Plyr>--

FAQ

如何更友好的使用 Plyr 类型

import type Plyr from 'plyr';
Loading...
\ No newline at end of file +}

API

media

成员说明类型默认值全局配置
[type]媒体类型audio, videovideo-
[source]媒体数据源string, PlyrMediaSource--
[options]播放器参数 plyr optionsany-
[delay]延迟初始化,单位:毫秒number--
(ready)准备就绪回调EventEmitter<Plyr>--

FAQ

如何更友好的使用 Plyr 类型

import type Plyr from 'plyr';
Loading...
\ No newline at end of file diff --git a/components/media/zh/index.html b/components/media/zh/index.html index a858cfe85..ab6ebef65 100644 --- a/components/media/zh/index.html +++ b/components/media/zh/index.html @@ -94,4 +94,4 @@ }) export class ComponentsMediaMp3Component { mp3 = `https://cdn.plyr.io/static/demo/Kishi_Bashi_-_It_All_Began_With_a_Burst.mp3`; -}

API

media

成员说明类型默认值全局配置
[type]媒体类型audio, videovideo-
[source]媒体数据源string, PlyrMediaSource--
[options]播放器参数 plyr optionsany-
[delay]延迟初始化,单位:毫秒number--
(ready)准备就绪回调EventEmitter<Plyr>--

FAQ

如何更友好的使用 Plyr 类型

import type Plyr from 'plyr';
let 定义 reuse-tab 路由复用标签
Loading...
\ No newline at end of file +}

API

media

成员说明类型默认值全局配置
[type]媒体类型audio, videovideo-
[source]媒体数据源string, PlyrMediaSource--
[options]播放器参数 plyr optionsany-
[delay]延迟初始化,单位:毫秒number--
(ready)准备就绪回调EventEmitter<Plyr>--

FAQ

如何更友好的使用 Plyr 类型

import type Plyr from 'plyr';
let 定义 reuse-tab 路由复用标签
Loading...
\ No newline at end of file diff --git a/components/notice-icon/en/index.html b/components/notice-icon/en/index.html index 1edbbe96b..50e19d337 100644 --- a/components/notice-icon/en/index.html +++ b/components/notice-icon/en/index.html @@ -204,4 +204,4 @@ showOK(): void { this.msg.info(`ok`); } -}

API

notice-icon

参数说明类型默认值
[data]数据NoticeItem[]-
[count]图标上的消息总数number-
[loading]弹出卡片加载状态booleanfalse
[centered]标签页是否居中booleanfalse
(select)点击列表项的回调EventEmitter<NoticeIconSelect>-
(clear)点击清空按钮的回调EventEmitter<string>-
[popoverVisible]手动控制Popover显示booleanfalse
(popoverVisibleChange)Popover显隐回调EventEmitter<boolean>-
[btnClass]按钮类ngClass-
[btnIconClass]Icon图标类ngClass-

NoticeItem

参数说明类型默认值
[title]标题string-
[list]列表数据,格式参照下表NoticeIconList[]-
[emptyText]针对每个 Tab 定制空数据文案string | TemplateRef<void>无通知
[emptyImage]针对每个 Tab 定制空数据图片string-
[clearText]针对每个 Tab 清空按钮文本string清空

NoticeIconList

参数说明类型默认值
[avatar]头像图片链接string-
[title]标题string | TemplateRef<{ $implicit: NoticeIconList }>-
[description]描述信息string | TemplateRef<{ $implicit: NoticeIconList }>-
[datetime]时间戳string-
[extra]额外信息,在列表项右上角string-
[read]是否已读状态boolean-

NoticeIconSelect

参数说明类型默认值
[title]标题string-
[item]数据项NoticeItem-
Loading...
\ No newline at end of file +}

API

notice-icon

参数说明类型默认值
[data]数据NoticeItem[]-
[count]图标上的消息总数number-
[loading]弹出卡片加载状态booleanfalse
[centered]标签页是否居中booleanfalse
(select)点击列表项的回调EventEmitter<NoticeIconSelect>-
(clear)点击清空按钮的回调EventEmitter<string>-
[popoverVisible]手动控制Popover显示booleanfalse
(popoverVisibleChange)Popover显隐回调EventEmitter<boolean>-
[btnClass]按钮类ngClass-
[btnIconClass]Icon图标类ngClass-

NoticeItem

参数说明类型默认值
[title]标题string-
[list]列表数据,格式参照下表NoticeIconList[]-
[emptyText]针对每个 Tab 定制空数据文案string | TemplateRef<void>无通知
[emptyImage]针对每个 Tab 定制空数据图片string-
[clearText]针对每个 Tab 清空按钮文本string清空

NoticeIconList

参数说明类型默认值
[avatar]头像图片链接string-
[title]标题string | TemplateRef<{ $implicit: NoticeIconList }>-
[description]描述信息string | TemplateRef<{ $implicit: NoticeIconList }>-
[datetime]时间戳string-
[extra]额外信息,在列表项右上角string-
[read]是否已读状态boolean-

NoticeIconSelect

参数说明类型默认值
[title]标题string-
[item]数据项NoticeItem-
Loading...
\ No newline at end of file diff --git a/components/notice-icon/zh/index.html b/components/notice-icon/zh/index.html index 563570781..3234f2114 100644 --- a/components/notice-icon/zh/index.html +++ b/components/notice-icon/zh/index.html @@ -204,4 +204,4 @@ showOK(): void { this.msg.info(`ok`); } -}

API

notice-icon

参数说明类型默认值
[data]数据NoticeItem[]-
[count]图标上的消息总数number-
[loading]弹出卡片加载状态booleanfalse
[centered]标签页是否居中booleanfalse
(select)点击列表项的回调EventEmitter<NoticeIconSelect>-
(clear)点击清空按钮的回调EventEmitter<string>-
[popoverVisible]手动控制Popover显示booleanfalse
(popoverVisibleChange)Popover显隐回调EventEmitter<boolean>-
[btnClass]按钮类ngClass-
[btnIconClass]Icon图标类ngClass-

NoticeItem

参数说明类型默认值
[title]标题string-
[list]列表数据,格式参照下表NoticeIconList[]-
[emptyText]针对每个 Tab 定制空数据文案string | TemplateRef<void>无通知
[emptyImage]针对每个 Tab 定制空数据图片string-
[clearText]针对每个 Tab 清空按钮文本string清空

NoticeIconList

参数说明类型默认值
[avatar]头像图片链接string-
[title]标题string | TemplateRef<{ $implicit: NoticeIconList }>-
[description]描述信息string | TemplateRef<{ $implicit: NoticeIconList }>-
[datetime]时间戳string-
[extra]额外信息,在列表项右上角string-
[read]是否已读状态boolean-

NoticeIconSelect

参数说明类型默认值
[title]标题string-
[item]数据项NoticeItem-
用户认证 quick-menu 快速菜单
Loading...
\ No newline at end of file +}

API

notice-icon

参数说明类型默认值
[data]数据NoticeItem[]-
[count]图标上的消息总数number-
[loading]弹出卡片加载状态booleanfalse
[centered]标签页是否居中booleanfalse
(select)点击列表项的回调EventEmitter<NoticeIconSelect>-
(clear)点击清空按钮的回调EventEmitter<string>-
[popoverVisible]手动控制Popover显示booleanfalse
(popoverVisibleChange)Popover显隐回调EventEmitter<boolean>-
[btnClass]按钮类ngClass-
[btnIconClass]Icon图标类ngClass-

NoticeItem

参数说明类型默认值
[title]标题string-
[list]列表数据,格式参照下表NoticeIconList[]-
[emptyText]针对每个 Tab 定制空数据文案string | TemplateRef<void>无通知
[emptyImage]针对每个 Tab 定制空数据图片string-
[clearText]针对每个 Tab 清空按钮文本string清空

NoticeIconList

参数说明类型默认值
[avatar]头像图片链接string-
[title]标题string | TemplateRef<{ $implicit: NoticeIconList }>-
[description]描述信息string | TemplateRef<{ $implicit: NoticeIconList }>-
[datetime]时间戳string-
[extra]额外信息,在列表项右上角string-
[read]是否已读状态boolean-

NoticeIconSelect

参数说明类型默认值
[title]标题string-
[item]数据项NoticeItem-
用户认证 quick-menu 快速菜单
Loading...
\ No newline at end of file diff --git a/components/observers/en/index.html b/components/observers/en/index.html index 1ef044675..2255505eb 100644 --- a/components/observers/en/index.html +++ b/components/observers/en/index.html @@ -49,4 +49,4 @@ reduceWidth(): void { this.width -= 100; } -}

API

observeSize

观察DOM大小变化。

成员说明类型默认值全局配置
(observeSize)事件MutationRecord[]-
Loading...
\ No newline at end of file +}

API

observeSize

观察DOM大小变化。

成员说明类型默认值全局配置
(observeSize)事件MutationRecord[]-
Loading...
\ No newline at end of file diff --git a/components/observers/zh/index.html b/components/observers/zh/index.html index 9df2412c0..fb1d6b7bf 100644 --- a/components/observers/zh/index.html +++ b/components/observers/zh/index.html @@ -49,4 +49,4 @@ reduceWidth(): void { this.width -= 100; } -}

API

observeSize

观察DOM大小变化。

成员说明类型默认值全局配置
(observeSize)事件MutationRecord[]-
xlsx Excel 操作 onboarding 用户引导流程
Loading...
\ No newline at end of file +}

API

observeSize

观察DOM大小变化。

成员说明类型默认值全局配置
(observeSize)事件MutationRecord[]-
xlsx Excel 操作 onboarding 用户引导流程
Loading...
\ No newline at end of file diff --git a/components/onboarding/en/index.html b/components/onboarding/en/index.html index 5cb5972a3..1f5a6f858 100644 --- a/components/onboarding/en/index.html +++ b/components/onboarding/en/index.html @@ -112,4 +112,4 @@ ], }); } -}

API

OnboardingService

组件只支持使用 OnboardingService 服务来构建。

成员说明
start(data: OnboardingData)开启新的用户引导流程
next()下一项
prev()上一项
done()完成

OnboardingData

成员说明类型默认值
[key]存储标识Key;默认 localStorage 本地存储,允许使用 ONBOARDING_STORE_TOKEN 变更存储方式string-
[keyVersion]当前版本unknown-
[items]引导项列表OnboardingItem[][]
[mask]是否展示遮罩booleantrue
[maskClosable]点击蒙层是否允许关闭booleantrue
[showTotal]是否显示总量booleanfalse

OnboardingItem

成员说明类型默认值
[selectors]CSS选项项,用于查找目标元素string-
[position]引导面板显示位置top, left, right, bottom, topLeft, topRight, bottomLeft, bottomRight, leftTop, leftBottom, rightTop, rightBottombottomLeft
[className]引导面板类名string-
[width]引导面板宽度number-
[title]引导面板标题string, TemplateRef<void>-
[content]引导面板内容string, SafeHtml, TemplateRef<void>-
[skip]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null跳过
[prev]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null上一项
[next]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null下一项
[done]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null完成
[url]目标路由页string-
[before]当触发 next 时表示进入前回调,number 表示延迟Observable<any>, number-
[after]当触发 prev 时表示进入前回调,number 表示延迟Observable<any>, number-
Loading...
\ No newline at end of file +}

API

OnboardingService

组件只支持使用 OnboardingService 服务来构建。

成员说明
start(data: OnboardingData)开启新的用户引导流程
next()下一项
prev()上一项
done()完成

OnboardingData

成员说明类型默认值
[key]存储标识Key;默认 localStorage 本地存储,允许使用 ONBOARDING_STORE_TOKEN 变更存储方式string-
[keyVersion]当前版本unknown-
[items]引导项列表OnboardingItem[][]
[mask]是否展示遮罩booleantrue
[maskClosable]点击蒙层是否允许关闭booleantrue
[showTotal]是否显示总量booleanfalse

OnboardingItem

成员说明类型默认值
[selectors]CSS选项项,用于查找目标元素string-
[position]引导面板显示位置top, left, right, bottom, topLeft, topRight, bottomLeft, bottomRight, leftTop, leftBottom, rightTop, rightBottombottomLeft
[className]引导面板类名string-
[width]引导面板宽度number-
[title]引导面板标题string, TemplateRef<void>-
[content]引导面板内容string, SafeHtml, TemplateRef<void>-
[skip]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null跳过
[prev]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null上一项
[next]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null下一项
[done]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null完成
[url]目标路由页string-
[before]当触发 next 时表示进入前回调,number 表示延迟Observable<any>, number-
[after]当触发 prev 时表示进入前回调,number 表示延迟Observable<any>, number-
Loading...
\ No newline at end of file diff --git a/components/onboarding/zh/index.html b/components/onboarding/zh/index.html index b5bd7f869..b751a20de 100644 --- a/components/onboarding/zh/index.html +++ b/components/onboarding/zh/index.html @@ -112,4 +112,4 @@ ], }); } -}

API

OnboardingService

组件只支持使用 OnboardingService 服务来构建。

成员说明
start(data: OnboardingData)开启新的用户引导流程
next()下一项
prev()上一项
done()完成

OnboardingData

成员说明类型默认值
[key]存储标识Key;默认 localStorage 本地存储,允许使用 ONBOARDING_STORE_TOKEN 变更存储方式string-
[keyVersion]当前版本unknown-
[items]引导项列表OnboardingItem[][]
[mask]是否展示遮罩booleantrue
[maskClosable]点击蒙层是否允许关闭booleantrue
[showTotal]是否显示总量booleanfalse

OnboardingItem

成员说明类型默认值
[selectors]CSS选项项,用于查找目标元素string-
[position]引导面板显示位置top, left, right, bottom, topLeft, topRight, bottomLeft, bottomRight, leftTop, leftBottom, rightTop, rightBottombottomLeft
[className]引导面板类名string-
[width]引导面板宽度number-
[title]引导面板标题string, TemplateRef<void>-
[content]引导面板内容string, SafeHtml, TemplateRef<void>-
[skip]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null跳过
[prev]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null上一项
[next]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null下一项
[done]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null完成
[url]目标路由页string-
[before]当触发 next 时表示进入前回调,number 表示延迟Observable<any>, number-
[after]当触发 prev 时表示进入前回调,number 表示延迟Observable<any>, number-
Observers 观察者 zip Zip 操作
Loading...
\ No newline at end of file +}

API

OnboardingService

组件只支持使用 OnboardingService 服务来构建。

成员说明
start(data: OnboardingData)开启新的用户引导流程
next()下一项
prev()上一项
done()完成

OnboardingData

成员说明类型默认值
[key]存储标识Key;默认 localStorage 本地存储,允许使用 ONBOARDING_STORE_TOKEN 变更存储方式string-
[keyVersion]当前版本unknown-
[items]引导项列表OnboardingItem[][]
[mask]是否展示遮罩booleantrue
[maskClosable]点击蒙层是否允许关闭booleantrue
[showTotal]是否显示总量booleanfalse

OnboardingItem

成员说明类型默认值
[selectors]CSS选项项,用于查找目标元素string-
[position]引导面板显示位置top, left, right, bottom, topLeft, topRight, bottomLeft, bottomRight, leftTop, leftBottom, rightTop, rightBottombottomLeft
[className]引导面板类名string-
[width]引导面板宽度number-
[title]引导面板标题string, TemplateRef<void>-
[content]引导面板内容string, SafeHtml, TemplateRef<void>-
[skip]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null跳过
[prev]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null上一项
[next]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null下一项
[done]跳过按钮文本,null 表示强击不显示string, TemplateRef<void>, null完成
[url]目标路由页string-
[before]当触发 next 时表示进入前回调,number 表示延迟Observable<any>, number-
[after]当触发 prev 时表示进入前回调,number 表示延迟Observable<any>, number-
Observers 观察者 zip Zip 操作
Loading...
\ No newline at end of file diff --git a/components/page-header/en/index.html b/components/page-header/en/index.html index ed445377e..5732c234c 100644 --- a/components/page-header/en/index.html +++ b/components/page-header/en/index.html @@ -170,4 +170,4 @@ </page-header> `, }) -export class ComponentsPageHeaderSimpleComponent {}

API

成员说明类型默认值全局配置
[title]标题名string,TemplateRef<void>-
[titleSub]子标题string,TemplateRef<void>-
[autoTitle]是否自动生成标题,以当前路由从主菜单中定位booleantrue
[syncTitle]是否自动将标题同步至 TitleServiceReuseService 下,仅 titlestring 类型时有效booleantrue
[home]首页文本,若指定空表示不显示string首页
[homeLink]首页链接string/
[homeI18n]首页链接国际化参数string-
[autoBreadcrumb]是否自动生成导航,以当前路由从主菜单中定位booleantrue
[recursiveBreadcrumb]是否自动向上递归查找,菜单数据源包含 /ware,则 /ware/1 也视为 /warebooleanfalse
[loading]是否加载中booleanfalse-
[wide]是否定宽booleanfalse-
[fixed]是否固定模式booleanfalse
[fixedOffsetTop]固定偏移值number64
[breadcrumb]自定义导航区域TemplateRef<void>--
[logo]自定义LOGO区域TemplateRef<void>--
[action]自定义操作区域TemplateRef<void>--
[content]自定义内容区域TemplateRef<void>--
[extra]自定义额外信息区域TemplateRef<void>--
[tab]自定义标签区域TemplateRef<void>--

常见问题

自动生成导航

默认情况下会根据菜单数据自动生成导航,有时你可能希望隐藏某个节点菜单数据时,可以指定菜单的 hideInBreadcrumb: true

固定模式

固定模式在滚动过程中会覆盖 reuse-tab 组件。

Loading...
\ No newline at end of file +export class ComponentsPageHeaderSimpleComponent {}

API

成员说明类型默认值全局配置
[title]标题名string,TemplateRef<void>-
[titleSub]子标题string,TemplateRef<void>-
[autoTitle]是否自动生成标题,以当前路由从主菜单中定位booleantrue
[syncTitle]是否自动将标题同步至 TitleServiceReuseService 下,仅 titlestring 类型时有效booleantrue
[home]首页文本,若指定空表示不显示string首页
[homeLink]首页链接string/
[homeI18n]首页链接国际化参数string-
[autoBreadcrumb]是否自动生成导航,以当前路由从主菜单中定位booleantrue
[recursiveBreadcrumb]是否自动向上递归查找,菜单数据源包含 /ware,则 /ware/1 也视为 /warebooleanfalse
[loading]是否加载中booleanfalse-
[wide]是否定宽booleanfalse-
[fixed]是否固定模式booleanfalse
[fixedOffsetTop]固定偏移值number64
[breadcrumb]自定义导航区域TemplateRef<void>--
[logo]自定义LOGO区域TemplateRef<void>--
[action]自定义操作区域TemplateRef<void>--
[content]自定义内容区域TemplateRef<void>--
[extra]自定义额外信息区域TemplateRef<void>--
[tab]自定义标签区域TemplateRef<void>--

常见问题

自动生成导航

默认情况下会根据菜单数据自动生成导航,有时你可能希望隐藏某个节点菜单数据时,可以指定菜单的 hideInBreadcrumb: true

固定模式

固定模式在滚动过程中会覆盖 reuse-tab 组件。

Loading...
\ No newline at end of file diff --git a/components/page-header/zh/index.html b/components/page-header/zh/index.html index e2f05d87e..319c579cb 100644 --- a/components/page-header/zh/index.html +++ b/components/page-header/zh/index.html @@ -170,4 +170,4 @@ </page-header> `, }) -export class ComponentsPageHeaderSimpleComponent {}

API

成员说明类型默认值全局配置
[title]标题名string,TemplateRef<void>-
[titleSub]子标题string,TemplateRef<void>-
[autoTitle]是否自动生成标题,以当前路由从主菜单中定位booleantrue
[syncTitle]是否自动将标题同步至 TitleServiceReuseService 下,仅 titlestring 类型时有效booleantrue
[home]首页文本,若指定空表示不显示string首页
[homeLink]首页链接string/
[homeI18n]首页链接国际化参数string-
[autoBreadcrumb]是否自动生成导航,以当前路由从主菜单中定位booleantrue
[recursiveBreadcrumb]是否自动向上递归查找,菜单数据源包含 /ware,则 /ware/1 也视为 /warebooleanfalse
[loading]是否加载中booleanfalse-
[wide]是否定宽booleanfalse-
[fixed]是否固定模式booleanfalse
[fixedOffsetTop]固定偏移值number64
[breadcrumb]自定义导航区域TemplateRef<void>--
[logo]自定义LOGO区域TemplateRef<void>--
[action]自定义操作区域TemplateRef<void>--
[content]自定义内容区域TemplateRef<void>--
[extra]自定义额外信息区域TemplateRef<void>--
[tab]自定义标签区域TemplateRef<void>--

常见问题

自动生成导航

默认情况下会根据菜单数据自动生成导航,有时你可能希望隐藏某个节点菜单数据时,可以指定菜单的 hideInBreadcrumb: true

固定模式

固定模式在滚动过程中会覆盖 reuse-tab 组件。

global-footer 全局页脚 result 处理结果
Loading...
\ No newline at end of file +export class ComponentsPageHeaderSimpleComponent {}

API

成员说明类型默认值全局配置
[title]标题名string,TemplateRef<void>-
[titleSub]子标题string,TemplateRef<void>-
[autoTitle]是否自动生成标题,以当前路由从主菜单中定位booleantrue
[syncTitle]是否自动将标题同步至 TitleServiceReuseService 下,仅 titlestring 类型时有效booleantrue
[home]首页文本,若指定空表示不显示string首页
[homeLink]首页链接string/
[homeI18n]首页链接国际化参数string-
[autoBreadcrumb]是否自动生成导航,以当前路由从主菜单中定位booleantrue
[recursiveBreadcrumb]是否自动向上递归查找,菜单数据源包含 /ware,则 /ware/1 也视为 /warebooleanfalse
[loading]是否加载中booleanfalse-
[wide]是否定宽booleanfalse-
[fixed]是否固定模式booleanfalse
[fixedOffsetTop]固定偏移值number64
[breadcrumb]自定义导航区域TemplateRef<void>--
[logo]自定义LOGO区域TemplateRef<void>--
[action]自定义操作区域TemplateRef<void>--
[content]自定义内容区域TemplateRef<void>--
[extra]自定义额外信息区域TemplateRef<void>--
[tab]自定义标签区域TemplateRef<void>--

常见问题

自动生成导航

默认情况下会根据菜单数据自动生成导航,有时你可能希望隐藏某个节点菜单数据时,可以指定菜单的 hideInBreadcrumb: true

固定模式

固定模式在滚动过程中会覆盖 reuse-tab 组件。

global-footer 全局页脚 result 处理结果
Loading...
\ No newline at end of file diff --git a/components/pdf/en/index.html b/components/pdf/en/index.html index beecc6f94..3a31f58db 100644 --- a/components/pdf/en/index.html +++ b/components/pdf/en/index.html @@ -233,4 +233,4 @@ navigateTo(dest: string): void { this.comp.linkService?.goToDestination(dest); } -}

API

pdf

成员说明类型默认值全局配置
[src]指定文档路径string, object, UInt8Array--
[pi]当前页number1-
[showAll]是否显示全部页booleantrue
[renderText]是否启用文字层,开启后允许文字选择booleantrue
[textLayerMode]文字层渲染模式PdfTextLayerModeENABLE-
[showBorders]是否显示页面边框booleanfalse
[stickToPage]是否视野保持在 pi 页上booleanfalse-
[originalSize]控制文档显示大小,true 按原始大小,false 按容器大小booleantrue
[fitToPage]控制原始尺寸不会超出容器大小booleanfalse
[zoom]控制缩放文档number1-
[zoomScale]缩放文档的计算方式PdfZoomScalepage-width-
[rotation]旋转文档number0-
[autoReSize]是否自动缩放booleantrue
[externalLinkTarget]外部链接打开形式PdfExternalLinkTargetBLANK-
[delay]延迟初始化,单位:毫秒number--
(change)变更时回调EventEmitter<PdfChangeEvent>--

组件属性

提供一些常用的API接口。

名称说明
pdf当前 PDF 实例
eventBusPDF 文件的事件总线,例如:查找文档等
findController查找控制器,不够新版本已经被 eventBus 替代
pageViewer查看控件
linkService导航服务

常见问题

为什么有时需要指定高度

当启用显示全部页时,如果要让页码的控制产生有效,需要确保组件的高度是一个有效值。

Loading...
\ No newline at end of file +}

API

pdf

成员说明类型默认值全局配置
[src]指定文档路径string, object, UInt8Array--
[pi]当前页number1-
[showAll]是否显示全部页booleantrue
[renderText]是否启用文字层,开启后允许文字选择booleantrue
[textLayerMode]文字层渲染模式PdfTextLayerModeENABLE-
[showBorders]是否显示页面边框booleanfalse
[stickToPage]是否视野保持在 pi 页上booleanfalse-
[originalSize]控制文档显示大小,true 按原始大小,false 按容器大小booleantrue
[fitToPage]控制原始尺寸不会超出容器大小booleanfalse
[zoom]控制缩放文档number1-
[zoomScale]缩放文档的计算方式PdfZoomScalepage-width-
[rotation]旋转文档number0-
[autoReSize]是否自动缩放booleantrue
[externalLinkTarget]外部链接打开形式PdfExternalLinkTargetBLANK-
[delay]延迟初始化,单位:毫秒number--
(change)变更时回调EventEmitter<PdfChangeEvent>--

组件属性

提供一些常用的API接口。

名称说明
pdf当前 PDF 实例
eventBusPDF 文件的事件总线,例如:查找文档等
findController查找控制器,不够新版本已经被 eventBus 替代
pageViewer查看控件
linkService导航服务

常见问题

为什么有时需要指定高度

当启用显示全部页时,如果要让页码的控制产生有效,需要确保组件的高度是一个有效值。

Loading...
\ No newline at end of file diff --git a/components/pdf/zh/index.html b/components/pdf/zh/index.html index ec0d9b6c5..e473eef2a 100644 --- a/components/pdf/zh/index.html +++ b/components/pdf/zh/index.html @@ -233,4 +233,4 @@ navigateTo(dest: string): void { this.comp.linkService?.goToDestination(dest); } -}

API

pdf

成员说明类型默认值全局配置
[src]指定文档路径string, object, UInt8Array--
[pi]当前页number1-
[showAll]是否显示全部页booleantrue
[renderText]是否启用文字层,开启后允许文字选择booleantrue
[textLayerMode]文字层渲染模式PdfTextLayerModeENABLE-
[showBorders]是否显示页面边框booleanfalse
[stickToPage]是否视野保持在 pi 页上booleanfalse-
[originalSize]控制文档显示大小,true 按原始大小,false 按容器大小booleantrue
[fitToPage]控制原始尺寸不会超出容器大小booleanfalse
[zoom]控制缩放文档number1-
[zoomScale]缩放文档的计算方式PdfZoomScalepage-width-
[rotation]旋转文档number0-
[autoReSize]是否自动缩放booleantrue
[externalLinkTarget]外部链接打开形式PdfExternalLinkTargetBLANK-
[delay]延迟初始化,单位:毫秒number--
(change)变更时回调EventEmitter<PdfChangeEvent>--

组件属性

提供一些常用的API接口。

名称说明
pdf当前 PDF 实例
eventBusPDF 文件的事件总线,例如:查找文档等
findController查找控制器,不够新版本已经被 eventBus 替代
pageViewer查看控件
linkService导航服务

常见问题

为什么有时需要指定高度

当启用显示全部页时,如果要让页码的控制产生有效,需要确保组件的高度是一个有效值。

loading 加载指示符 qr 二维码
Loading...
\ No newline at end of file +}

API

pdf

成员说明类型默认值全局配置
[src]指定文档路径string, object, UInt8Array--
[pi]当前页number1-
[showAll]是否显示全部页booleantrue
[renderText]是否启用文字层,开启后允许文字选择booleantrue
[textLayerMode]文字层渲染模式PdfTextLayerModeENABLE-
[showBorders]是否显示页面边框booleanfalse
[stickToPage]是否视野保持在 pi 页上booleanfalse-
[originalSize]控制文档显示大小,true 按原始大小,false 按容器大小booleantrue
[fitToPage]控制原始尺寸不会超出容器大小booleanfalse
[zoom]控制缩放文档number1-
[zoomScale]缩放文档的计算方式PdfZoomScalepage-width-
[rotation]旋转文档number0-
[autoReSize]是否自动缩放booleantrue
[externalLinkTarget]外部链接打开形式PdfExternalLinkTargetBLANK-
[delay]延迟初始化,单位:毫秒number--
(change)变更时回调EventEmitter<PdfChangeEvent>--

组件属性

提供一些常用的API接口。

名称说明
pdf当前 PDF 实例
eventBusPDF 文件的事件总线,例如:查找文档等
findController查找控制器,不够新版本已经被 eventBus 替代
pageViewer查看控件
linkService导航服务

常见问题

为什么有时需要指定高度

当启用显示全部页时,如果要让页码的控制产生有效,需要确保组件的高度是一个有效值。

loading 加载指示符 qr 二维码
Loading...
\ No newline at end of file diff --git a/components/qr/en/index.html b/components/qr/en/index.html index c3a8610b1..e6836fc5c 100644 --- a/components/qr/en/index.html +++ b/components/qr/en/index.html @@ -167,4 +167,4 @@ change(dataURL: string): void { console.log(dataURL); } -}

API

qr

成员说明类型默认值全局配置
[value]string | () => string-
[background]背景stringwhite
[backgroundAlpha]背景透明级别,范围:0-1 之间number1
[foreground]前景stringwhite
[foregroundAlpha]前景透明级别,范围:0-1 之间number1
[level]误差校正级别'L','M','Q','H''L'
[mime]二维码输出图片MIME类型stringimage/png
[padding]内边距(单位:px)number,null10
[size]大小(单位:px)number220
[delay]延迟渲染,单位:毫秒number0
(change)变更时回调,返回二维码dataURL值EventEmitter<string>-

常见问题

参考 #100 的写法。

为什么没有居中

原因请参考 #111,解决的办法设置 paddingnull,例如:

<qr [value]="value" [padding]="null"></qr>
Loading...
\ No newline at end of file +}

API

qr

成员说明类型默认值全局配置
[value]string | () => string-
[background]背景stringwhite
[backgroundAlpha]背景透明级别,范围:0-1 之间number1
[foreground]前景stringwhite
[foregroundAlpha]前景透明级别,范围:0-1 之间number1
[level]误差校正级别'L','M','Q','H''L'
[mime]二维码输出图片MIME类型stringimage/png
[padding]内边距(单位:px)number,null10
[size]大小(单位:px)number220
[delay]延迟渲染,单位:毫秒number0
(change)变更时回调,返回二维码dataURL值EventEmitter<string>-

常见问题

参考 #100 的写法。

为什么没有居中

原因请参考 #111,解决的办法设置 paddingnull,例如:

<qr [value]="value" [padding]="null"></qr>
Loading...
\ No newline at end of file diff --git a/components/qr/zh/index.html b/components/qr/zh/index.html index 650a22677..0da53a743 100644 --- a/components/qr/zh/index.html +++ b/components/qr/zh/index.html @@ -167,4 +167,4 @@ change(dataURL: string): void { console.log(dataURL); } -}

API

qr

成员说明类型默认值全局配置
[value]string | () => string-
[background]背景stringwhite
[backgroundAlpha]背景透明级别,范围:0-1 之间number1
[foreground]前景stringwhite
[foregroundAlpha]前景透明级别,范围:0-1 之间number1
[level]误差校正级别'L','M','Q','H''L'
[mime]二维码输出图片MIME类型stringimage/png
[padding]内边距(单位:px)number,null10
[size]大小(单位:px)number220
[delay]延迟渲染,单位:毫秒number0
(change)变更时回调,返回二维码dataURL值EventEmitter<string>-

常见问题

参考 #100 的写法。

为什么没有居中

原因请参考 #111,解决的办法设置 paddingnull,例如:

<qr [value]="value" [padding]="null"></qr>
pdf Pdf lodop Lodop打印
Loading...
\ No newline at end of file +}

API

qr

成员说明类型默认值全局配置
[value]string | () => string-
[background]背景stringwhite
[backgroundAlpha]背景透明级别,范围:0-1 之间number1
[foreground]前景stringwhite
[foregroundAlpha]前景透明级别,范围:0-1 之间number1
[level]误差校正级别'L','M','Q','H''L'
[mime]二维码输出图片MIME类型stringimage/png
[padding]内边距(单位:px)number,null10
[size]大小(单位:px)number220
[delay]延迟渲染,单位:毫秒number0
(change)变更时回调,返回二维码dataURL值EventEmitter<string>-

常见问题

参考 #100 的写法。

为什么没有居中

原因请参考 #111,解决的办法设置 paddingnull,例如:

<qr [value]="value" [padding]="null"></qr>
pdf Pdf lodop Lodop打印
Loading...
\ No newline at end of file diff --git a/components/quick-menu/en/index.html b/components/quick-menu/en/index.html index 99accd5dc..ecf23821e 100644 --- a/components/quick-menu/en/index.html +++ b/components/quick-menu/en/index.html @@ -17,4 +17,4 @@ }) export class ComponentsQuickMenuSimpleComponent { expand = false; -}

API

quick-menu

成员说明类型默认值
[icon]图标string,TemplateRef<void>question-circle
[top]距离顶部number120
[width]打开后宽度number200
[bgColor]背景string-
[borderColor]边框颜色string-
[expand]当前展开状态,可双向绑定boolean-
(expandChange)当前展开状态改变回调函数EventEmitter<boolean>-
Loading...
\ No newline at end of file +}

API

quick-menu

成员说明类型默认值
[icon]图标string,TemplateRef<void>question-circle
[top]距离顶部number120
[width]打开后宽度number200
[bgColor]背景string-
[borderColor]边框颜色string-
[expand]当前展开状态,可双向绑定boolean-
(expandChange)当前展开状态改变回调函数EventEmitter<boolean>-
Loading...
\ No newline at end of file diff --git a/components/quick-menu/zh/index.html b/components/quick-menu/zh/index.html index 34adc5b17..00621e27b 100644 --- a/components/quick-menu/zh/index.html +++ b/components/quick-menu/zh/index.html @@ -17,4 +17,4 @@ }) export class ComponentsQuickMenuSimpleComponent { expand = false; -}

API

quick-menu

成员说明类型默认值
[icon]图标string,TemplateRef<void>question-circle
[top]距离顶部number120
[width]打开后宽度number200
[bgColor]背景string-
[borderColor]边框颜色string-
[expand]当前展开状态,可双向绑定boolean-
(expandChange)当前展开状态改变回调函数EventEmitter<boolean>-
notice-icon 通知菜单 访问控制列表
Loading...
\ No newline at end of file +}

API

quick-menu

成员说明类型默认值
[icon]图标string,TemplateRef<void>question-circle
[top]距离顶部number120
[width]打开后宽度number200
[bgColor]背景string-
[borderColor]边框颜色string-
[expand]当前展开状态,可双向绑定boolean-
(expandChange)当前展开状态改变回调函数EventEmitter<boolean>-
notice-icon 通知菜单 访问控制列表
Loading...
\ No newline at end of file diff --git a/components/result/en/index.html b/components/result/en/index.html index c6e006dbf..9c6a01618 100644 --- a/components/result/en/index.html +++ b/components/result/en/index.html @@ -91,4 +91,4 @@ </result> `, }) -export class ComponentsResultStructureComponent {}

API

result

成员说明类型默认值
[type]类型,不同类型自带对应的图标string-
[title]标题string,TemplateRef<void>-
[description]结果描述string,TemplateRef<void>-
[extra]补充信息,有默认的灰色背景string,TemplateRef<void>-
ng-content操作建议,推荐放置跳转链接,按钮组等ng-content-
Loading...
\ No newline at end of file +export class ComponentsResultStructureComponent {}

API

result

成员说明类型默认值
[type]类型,不同类型自带对应的图标string-
[title]标题string,TemplateRef<void>-
[description]结果描述string,TemplateRef<void>-
[extra]补充信息,有默认的灰色背景string,TemplateRef<void>-
ng-content操作建议,推荐放置跳转链接,按钮组等ng-content-
Loading...
\ No newline at end of file diff --git a/components/result/zh/index.html b/components/result/zh/index.html index 3f822a9ec..12c414dc6 100644 --- a/components/result/zh/index.html +++ b/components/result/zh/index.html @@ -91,4 +91,4 @@ </result> `, }) -export class ComponentsResultStructureComponent {}

API

result

成员说明类型默认值
[type]类型,不同类型自带对应的图标string-
[title]标题string,TemplateRef<void>-
[description]结果描述string,TemplateRef<void>-
[extra]补充信息,有默认的灰色背景string,TemplateRef<void>-
ng-content操作建议,推荐放置跳转链接,按钮组等ng-content-
page-header 页头 tag-select 标签选择器
Loading...
\ No newline at end of file +export class ComponentsResultStructureComponent {}

API

result

成员说明类型默认值
[type]类型,不同类型自带对应的图标string-
[title]标题string,TemplateRef<void>-
[description]结果描述string,TemplateRef<void>-
[extra]补充信息,有默认的灰色背景string,TemplateRef<void>-
ng-content操作建议,推荐放置跳转链接,按钮组等ng-content-
page-header 页头 tag-select 标签选择器
Loading...
\ No newline at end of file diff --git a/components/reuse-tab/en/index.html b/components/reuse-tab/en/index.html index 62210e2d7..ba58fcd3f 100644 --- a/components/reuse-tab/en/index.html +++ b/components/reuse-tab/en/index.html @@ -26,4 +26,4 @@ }

滚动条位置

开启 keepingScroll 会在复用后恢复之前的滚动条位置,有几项注意细节:

务必使用路由选项 scrollPositionRestoration 来管理滚动条位置

API

ReuseTabService

属性

成员说明类型默认值
[max]允许最多复用多少个页面,值发生变更时会强制关闭且忽略可关闭条件number10
[mode]设置匹配模式ReuseTabMatchMode0
[debug]是否Debug模式booleanfalse
[keepingScroll]保持滚动条位置booleanfalse
[keepingScrollContainer]保持滚动条容器Elementwindow
[excludes]排除规则,限 mode=URLRegExp[]-
[items]获取已缓存的路由ReuseTabCached[]-
[count]获取当前缓存的路由总数number-
[change]订阅缓存变更通知Observable<ReuseTabNotify>-
[title]自定义当前标题string-
[closable]自定义当前 closable 状态boolean-

方法

方法名说明返回类型
index(url)获取指定路径缓存所在位置,-1 表示无缓存number
exists(url)获取指定路径缓存是否存在boolean
get(url)获取指定路径缓存ReuseTabCached
getTitle(url, route?: ActivatedRouteSnapshot)获取标题string
clearTitleCached()清空自定义标题数据void
getClosable(url, route?: ActivatedRouteSnapshot)获取 closable 状态string
clearClosableCached()清空 closable 缓存void
remove(url)根据URL移除标签,同时触 change remove事件void
move(url, position)移动缓存数据,同时触 change move事件void
clear()清除所有缓存,同时触 change clear事件void
refresh()无任何动作,但会触 change refresh事件void
replace(url)强制关闭当前路由(包含不可关闭状态),并重新导航至 newUrl 路由void

reuse-tab

成员说明类型默认值
[i18n]右击菜单国际化,支持HTMLReuseContextI18n-
[mode]设置匹配模式ReuseTabMatchMode0
[debug]是否Debug模式booleanfalse
[max]允许最多复用多少个页面number10
[keepingScroll]保持滚动条位置booleanfalse
[keepingScrollContainer]保持滚动条容器string | Elementwindow
[excludes]排除规则,限 mode=URLRegExp[]-
[allowClose]允许关闭booleantrue
[customContextMenu]自定义右键菜单ReuseCustomContextMenu[]-
[tabBarExtraContent]tab bar 上额外的元素TemplateRef<void>-
[tabBarStyle]tab bar 的样式对象object-
[tabBarGutter]tabs 之间的间隙number-
[tabType]tabs 页签的基本样式line, cardline
[tabMaxWidth]tabs 页签每一项最大宽度,单位:pxnumber-
[routeParamMatchMode]包含路由参数时匹配模式,例如:/view/:id
- strict 严格模式 /view/1/view/2 不同页
- loose 宽松模式 /view/1/view/2 相同页且只呈现一个标签
strict,loosestrict
[disabled]是否禁用booleanfalse
[titleRender]自定义标题渲染TemplateRef<{ $implicit: ReuseItem }>-
[storageState]是否存储状态,保持最后一次浏览器的状态booleanfalse
[canClose]关闭时二次校验(options: { item: ReuseItem; includeNonCloseable: boolean }) => Observable<boolean>-
(close)关闭回调EventEmitter-
(change)切换时回调,接收的参数至少包含:activelist 两个参数EventEmitter-

右击菜单

当按下键盘 ctrl 时会强制移除不可关闭项。

ReuseTabCached

成员说明类型默认值
[title]标题string-
[url]URL地址string-
[closable]是否允许关闭boolean-

ReuseTabNotify

成员说明类型默认值
[active]事件类型title,close,closeRight,clear,move,closable,refresh,add-

ReuseContextI18n

成员说明类型默认值
[close]关闭string-
[closeOther]关闭其它string-
[closeRight]关闭右边string-
[clear]清空string-

ReuseCustomContextMenu

成员说明类型默认值
[id]唯一标识符string-
[title]标题string-
[fn]处理方法(item: ReuseItem, menu: ReuseCustomContextMenu) => void-
[disabled]是否禁用(item: ReuseItem) => boolean-

路由data

透过路由 data 附加数据,可以对部分页面提供覆盖全局配置,例如:

// 指定不复路由
 { path: 'p1', component: DemoComponent, data: { reuse: false } }
 // 指定标签标题
-{ path: 'p1', component: DemoComponent, data: { title: 'New Title' } }
成员说明类型默认值
[reuse]是否复用boolean-
[title]标题string-
[titleI18n]I18n标题Keystring-
[reuseClosable]是否允许关闭boolean-
[keepingScroll]是否保持滚动条boolean-

注: 以上数据也可在 Menu 数据中体现。

常见问题

如何Debug?

路由复用会保留组件状态,这可能会带来另一个弊端;复用过程中不会触发Angular生命周期勾子,大部分情况下都能正常运行,有几个常见问题:

Max参数

限定最大复用数据可以减少内存的增长,有几个问题需要注意:

不支持 QueryString 查询参数

复用采用URL来区分是否同一个页面,而 QueryString 查询参数很容易产生重复性误用,因此不支持查询参数,且在复用过程中会强制忽略掉 QueryString 部分。

多应用缓存处理

使用 provideReuseTabConfig(storeKey: 'newKey') 或通过覆盖 REUSE_TAB_CACHED_MANAGER 改变缓存存储 ,例如在使用微前端(类似ngx-planet)可以重写缓存数据到 window 下来实现数据共享。

Loading...
\ No newline at end of file +{ path: 'p1', component: DemoComponent, data: { title: 'New Title' } }
成员说明类型默认值
[reuse]是否复用boolean-
[title]标题string-
[titleI18n]I18n标题Keystring-
[reuseClosable]是否允许关闭boolean-
[keepingScroll]是否保持滚动条boolean-

注: 以上数据也可在 Menu 数据中体现。

常见问题

如何Debug?

路由复用会保留组件状态,这可能会带来另一个弊端;复用过程中不会触发Angular生命周期勾子,大部分情况下都能正常运行,有几个常见问题:

Max参数

限定最大复用数据可以减少内存的增长,有几个问题需要注意:

不支持 QueryString 查询参数

复用采用URL来区分是否同一个页面,而 QueryString 查询参数很容易产生重复性误用,因此不支持查询参数,且在复用过程中会强制忽略掉 QueryString 部分。

多应用缓存处理

使用 provideReuseTabConfig(storeKey: 'newKey') 或通过覆盖 REUSE_TAB_CACHED_MANAGER 改变缓存存储 ,例如在使用微前端(类似ngx-planet)可以重写缓存数据到 window 下来实现数据共享。

Loading...
\ No newline at end of file diff --git a/components/reuse-tab/zh/index.html b/components/reuse-tab/zh/index.html index a440062fc..ed59a4964 100644 --- a/components/reuse-tab/zh/index.html +++ b/components/reuse-tab/zh/index.html @@ -26,4 +26,4 @@ }

滚动条位置

开启 keepingScroll 会在复用后恢复之前的滚动条位置,有几项注意细节:

务必使用路由选项 scrollPositionRestoration 来管理滚动条位置

API

ReuseTabService

属性

成员说明类型默认值
[max]允许最多复用多少个页面,值发生变更时会强制关闭且忽略可关闭条件number10
[mode]设置匹配模式ReuseTabMatchMode0
[debug]是否Debug模式booleanfalse
[keepingScroll]保持滚动条位置booleanfalse
[keepingScrollContainer]保持滚动条容器Elementwindow
[excludes]排除规则,限 mode=URLRegExp[]-
[items]获取已缓存的路由ReuseTabCached[]-
[count]获取当前缓存的路由总数number-
[change]订阅缓存变更通知Observable<ReuseTabNotify>-
[title]自定义当前标题string-
[closable]自定义当前 closable 状态boolean-

方法

方法名说明返回类型
index(url)获取指定路径缓存所在位置,-1 表示无缓存number
exists(url)获取指定路径缓存是否存在boolean
get(url)获取指定路径缓存ReuseTabCached
getTitle(url, route?: ActivatedRouteSnapshot)获取标题string
clearTitleCached()清空自定义标题数据void
getClosable(url, route?: ActivatedRouteSnapshot)获取 closable 状态string
clearClosableCached()清空 closable 缓存void
remove(url)根据URL移除标签,同时触 change remove事件void
move(url, position)移动缓存数据,同时触 change move事件void
clear()清除所有缓存,同时触 change clear事件void
refresh()无任何动作,但会触 change refresh事件void
replace(url)强制关闭当前路由(包含不可关闭状态),并重新导航至 newUrl 路由void

reuse-tab

成员说明类型默认值
[i18n]右击菜单国际化,支持HTMLReuseContextI18n-
[mode]设置匹配模式ReuseTabMatchMode0
[debug]是否Debug模式booleanfalse
[max]允许最多复用多少个页面number10
[keepingScroll]保持滚动条位置booleanfalse
[keepingScrollContainer]保持滚动条容器string | Elementwindow
[excludes]排除规则,限 mode=URLRegExp[]-
[allowClose]允许关闭booleantrue
[customContextMenu]自定义右键菜单ReuseCustomContextMenu[]-
[tabBarExtraContent]tab bar 上额外的元素TemplateRef<void>-
[tabBarStyle]tab bar 的样式对象object-
[tabBarGutter]tabs 之间的间隙number-
[tabType]tabs 页签的基本样式line, cardline
[tabMaxWidth]tabs 页签每一项最大宽度,单位:pxnumber-
[routeParamMatchMode]包含路由参数时匹配模式,例如:/view/:id
- strict 严格模式 /view/1/view/2 不同页
- loose 宽松模式 /view/1/view/2 相同页且只呈现一个标签
strict,loosestrict
[disabled]是否禁用booleanfalse
[titleRender]自定义标题渲染TemplateRef<{ $implicit: ReuseItem }>-
[storageState]是否存储状态,保持最后一次浏览器的状态booleanfalse
[canClose]关闭时二次校验(options: { item: ReuseItem; includeNonCloseable: boolean }) => Observable<boolean>-
(close)关闭回调EventEmitter-
(change)切换时回调,接收的参数至少包含:activelist 两个参数EventEmitter-

右击菜单

当按下键盘 ctrl 时会强制移除不可关闭项。

ReuseTabCached

成员说明类型默认值
[title]标题string-
[url]URL地址string-
[closable]是否允许关闭boolean-

ReuseTabNotify

成员说明类型默认值
[active]事件类型title,close,closeRight,clear,move,closable,refresh,add-

ReuseContextI18n

成员说明类型默认值
[close]关闭string-
[closeOther]关闭其它string-
[closeRight]关闭右边string-
[clear]清空string-

ReuseCustomContextMenu

成员说明类型默认值
[id]唯一标识符string-
[title]标题string-
[fn]处理方法(item: ReuseItem, menu: ReuseCustomContextMenu) => void-
[disabled]是否禁用(item: ReuseItem) => boolean-

路由data

透过路由 data 附加数据,可以对部分页面提供覆盖全局配置,例如:

// 指定不复路由
 { path: 'p1', component: DemoComponent, data: { reuse: false } }
 // 指定标签标题
-{ path: 'p1', component: DemoComponent, data: { title: 'New Title' } }
成员说明类型默认值
[reuse]是否复用boolean-
[title]标题string-
[titleI18n]I18n标题Keystring-
[reuseClosable]是否允许关闭boolean-
[keepingScroll]是否保持滚动条boolean-

注: 以上数据也可在 Menu 数据中体现。

常见问题

如何Debug?

路由复用会保留组件状态,这可能会带来另一个弊端;复用过程中不会触发Angular生命周期勾子,大部分情况下都能正常运行,有几个常见问题:

Max参数

限定最大复用数据可以减少内存的增长,有几个问题需要注意:

不支持 QueryString 查询参数

复用采用URL来区分是否同一个页面,而 QueryString 查询参数很容易产生重复性误用,因此不支持查询参数,且在复用过程中会强制忽略掉 QueryString 部分。

多应用缓存处理

使用 provideReuseTabConfig(storeKey: 'newKey') 或通过覆盖 REUSE_TAB_CACHED_MANAGER 改变缓存存储 ,例如在使用微前端(类似ngx-planet)可以重写缓存数据到 window 下来实现数据共享。

media HTML5媒体 loading 加载指示符
Loading...
\ No newline at end of file +{ path: 'p1', component: DemoComponent, data: { title: 'New Title' } }
成员说明类型默认值
[reuse]是否复用boolean-
[title]标题string-
[titleI18n]I18n标题Keystring-
[reuseClosable]是否允许关闭boolean-
[keepingScroll]是否保持滚动条boolean-

注: 以上数据也可在 Menu 数据中体现。

常见问题

如何Debug?

路由复用会保留组件状态,这可能会带来另一个弊端;复用过程中不会触发Angular生命周期勾子,大部分情况下都能正常运行,有几个常见问题:

Max参数

限定最大复用数据可以减少内存的增长,有几个问题需要注意:

不支持 QueryString 查询参数

复用采用URL来区分是否同一个页面,而 QueryString 查询参数很容易产生重复性误用,因此不支持查询参数,且在复用过程中会强制忽略掉 QueryString 部分。

多应用缓存处理

使用 provideReuseTabConfig(storeKey: 'newKey') 或通过覆盖 REUSE_TAB_CACHED_MANAGER 改变缓存存储 ,例如在使用微前端(类似ngx-planet)可以重写缓存数据到 window 下来实现数据共享。

media HTML5媒体 loading 加载指示符
Loading...
\ No newline at end of file diff --git a/components/se/en/index.html b/components/se/en/index.html index 0f359dd06..3462ee5e8 100644 --- a/components/se/en/index.html +++ b/components/se/en/index.html @@ -328,4 +328,4 @@ comment: '' }; columns: STColumn[] = [{ title: 'id' }]; -}

API

se-container

成员说明类型默认值全局配置
[gutter]间距,当 nzLayout:horizontal 时有效number32
[se-container]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定'1','2','3','4','5','6'-
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定'1','2','3','4','5','6'-
[labelWidth]表单元素默认标签文本宽度,单位:pxnumber150
[nzLayout]表单布局,当 inline 时强制大小为 compact'horizontal','vertical','inline''horizontal'
[size]大小 compact 紧凑型,强制忽略 errorextra 展示'default','compact''default'
[firstVisual]是否立即呈现错误视觉booleanfalse
[ingoreDirty]是否忽略 dirty 校验booleanfalse
[line]分隔线booleanfalse-
[title]标题string,TemplateRef<void>-
[errors]批量修改 se 错误消息描述SEErrorRefresh[]-
[noColon]默认是否不显示 label 后面的冒号booleanfalse-

se

成员说明类型默认值
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定(继承于 se-container'1','2','3','4','5','6'-
[label]标签文本string, TemplateRef<void>-
[labelWidth]标签文本宽度,单位:px(继承于 se-containernumber-
[hideLabel]是否隐藏当前 labelbooleanfalse
[optional]标签可选信息string, TemplateRef<void>-
[optionalHelp]标签可选帮助string, TemplateRef<void>-
[optionalHelpColor]标签可选帮助背景颜色string-
[error]错误描述string, TemplateRef<void>, { [key: string]: string, TemplateRef}-
[extra]额外提示信息string, TemplateRef<void>-
[required]是否必填项标识符,若不设置自动根据表单元素是否有 RequiredValidator 校验来设置值string-
[controlClass]控件区域样式名string-
[id]自定义组件 idstring-
[line]分隔线(继承于 se-containerboolean-
[noColon]是否不显示 label 后面的冒号booleanfalse-

se-title

用于展示标题,单独一行。

常见问题

什么时候自定义组件id

点击表单的 Label 会将光标定位至相应组件下,而 ng-edit 会自动根据 ngModel 状态合理的设定 id,绝大多数情况下你无须关心 id 的绑定状态,当然若你手动指定 id 值则优先级更高但同时你需要自己维护组件对应的 id 值。

Loading...
\ No newline at end of file +}

API

se-container

成员说明类型默认值全局配置
[gutter]间距,当 nzLayout:horizontal 时有效number32
[se-container]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定'1','2','3','4','5','6'-
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定'1','2','3','4','5','6'-
[labelWidth]表单元素默认标签文本宽度,单位:pxnumber150
[nzLayout]表单布局,当 inline 时强制大小为 compact'horizontal','vertical','inline''horizontal'
[size]大小 compact 紧凑型,强制忽略 errorextra 展示'default','compact''default'
[firstVisual]是否立即呈现错误视觉booleanfalse
[ingoreDirty]是否忽略 dirty 校验booleanfalse
[line]分隔线booleanfalse-
[title]标题string,TemplateRef<void>-
[errors]批量修改 se 错误消息描述SEErrorRefresh[]-
[noColon]默认是否不显示 label 后面的冒号booleanfalse-

se

成员说明类型默认值
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定(继承于 se-container'1','2','3','4','5','6'-
[label]标签文本string, TemplateRef<void>-
[labelWidth]标签文本宽度,单位:px(继承于 se-containernumber-
[hideLabel]是否隐藏当前 labelbooleanfalse
[optional]标签可选信息string, TemplateRef<void>-
[optionalHelp]标签可选帮助string, TemplateRef<void>-
[optionalHelpColor]标签可选帮助背景颜色string-
[error]错误描述string, TemplateRef<void>, { [key: string]: string, TemplateRef}-
[extra]额外提示信息string, TemplateRef<void>-
[required]是否必填项标识符,若不设置自动根据表单元素是否有 RequiredValidator 校验来设置值string-
[controlClass]控件区域样式名string-
[id]自定义组件 idstring-
[line]分隔线(继承于 se-containerboolean-
[noColon]是否不显示 label 后面的冒号booleanfalse-

se-title

用于展示标题,单独一行。

常见问题

什么时候自定义组件id

点击表单的 Label 会将光标定位至相应组件下,而 ng-edit 会自动根据 ngModel 状态合理的设定 id,绝大多数情况下你无须关心 id 的绑定状态,当然若你手动指定 id 值则优先级更高但同时你需要自己维护组件对应的 id 值。

Loading...
\ No newline at end of file diff --git a/components/se/zh/index.html b/components/se/zh/index.html index 941dbd0aa..56d4ec681 100644 --- a/components/se/zh/index.html +++ b/components/se/zh/index.html @@ -8,7 +8,7 @@ <se> <button nz-button nzType="primary" [disabled]="f.invalid">Save</button> </se> -</form>

同时,会自动处理所有 Angular 内置校验指令,例如:requiredmaxlengthminpattern 等,并以红色边框来表示无效值状态。

代码演示

基础

一行两列表单。

expand code expand code
import { Component } from '@angular/core';
+</form>

同时,会自动处理所有 Angular 内置校验指令,例如:requiredmaxlengthminpattern 等,并以红色边框来表示无效值状态。

代码演示

基础

一行两列表单。

expand code expand code
import { Component } from '@angular/core';
 import { NzMessageService } from 'ng-zorro-antd/message';
 
 @Component({
@@ -47,7 +47,7 @@
   i: { ak?: string; sk?: string } = {};
 
   constructor(public msg: NzMessageService) {}
-}
响应式表单

支持响应式表单。

注意:

  • 响应式表单无法自动获取 Validators.required 来判断是否需要必填项标识符,因此需要手动标识 required 属性。

  • 当需要使用 patchValue 赋值时,因为 dirty 依然保持为 false 的因素,需要对所有表单元素设置 markAsDirty() 或者使用 ingoreDirty 属性强制忽略 dirty 的校验。

expand code expand code
import { Component } from '@angular/core';
+}
响应式表单

支持响应式表单。

注意:

  • 响应式表单无法自动获取 Validators.required 来判断是否需要必填项标识符,因此需要手动标识 required 属性。

  • 当需要使用 patchValue 赋值时,因为 dirty 依然保持为 false 的因素,需要对所有表单元素设置 markAsDirty() 或者使用 ingoreDirty 属性强制忽略 dirty 的校验。

expand code expand code
import { Component } from '@angular/core';
 import { FormControl, FormGroup, Validators } from '@angular/forms';
 
 import { NzMessageService } from 'ng-zorro-antd/message';
@@ -86,7 +86,7 @@
   updateValue(): void {
     this.validateForm.patchValue({ userName: 'a' });
   }
-}
紧凑型

强制忽略 errorextra 展示。

expand code expand code
import { Component } from '@angular/core';
+}
紧凑型

强制忽略 errorextra 展示。

expand code expand code
import { Component } from '@angular/core';
 
 @Component({
   selector: 'components-se-compact',
@@ -104,7 +104,7 @@
 })
 export class ComponentsSeCompactComponent {
   i: { ak?: string; sk?: string } = {};
-}
额外提示信息
水平排列

一行一列表单。

expand code expand code
import { Component } from '@angular/core';
+}
额外提示信息
水平排列

一行一列表单。

expand code expand code
import { Component } from '@angular/core';
 
 @Component({
   selector: 'components-se-horizontal',
@@ -122,7 +122,7 @@
 })
 export class ComponentsSeHorizontalComponent {
   i: { ak?: string; sk?: string } = {};
-}
内联布局

nzLayout: inline 时强制使用紧凑型,一般用于搜索框。

expand code expand code
import { Component } from '@angular/core';
+}
内联布局

nzLayout: inline 时强制使用紧凑型,一般用于搜索框。

expand code expand code
import { Component } from '@angular/core';
 
 @Component({
   selector: 'components-se-inline',
@@ -141,7 +141,7 @@
 })
 export class ComponentsSeInlineComponent {
   i: { ak?: string; sk?: string } = {};
-}
额外提示信息
垂直布局

垂直布局表单。

expand code expand code
import { Component } from '@angular/core';
+}
额外提示信息
垂直布局

垂直布局表单。

expand code expand code
import { Component } from '@angular/core';
 
 @Component({
   selector: 'components-se-vertical',
@@ -159,7 +159,7 @@
 })
 export class ComponentsSeVerticalComponent {
   i: { ak?: string; sk?: string } = {};
-}
头像
分隔线

构建一个左右结构的标准表单行。

expand code expand code
import { Component } from '@angular/core';
+}
头像
分隔线

构建一个左右结构的标准表单行。

expand code expand code
import { Component } from '@angular/core';
 
 @Component({
   selector: 'components-se-line',
@@ -175,7 +175,7 @@
     </se>
   </form>`,
 })
-export class ComponentsSeLineComponent {}

Operating

Reactive

批量重置错误消息

利用 errors 可以批量对所有 se 组件重置 error 值。

expand code expand code
import { Component } from '@angular/core';
+export class ComponentsSeLineComponent {}

Operating

Reactive

批量重置错误消息

利用 errors 可以批量对所有 se 组件重置 error 值。

expand code expand code
import { Component } from '@angular/core';
 import { FormControl, FormGroup, Validators } from '@angular/forms';
 
 import { SEErrorRefresh } from '@delon/abc/se';
@@ -251,7 +251,7 @@
       { name: 'password', error: 'Required password' }
     ];
   }
-}
Title 1
1000
3
+86
Title 2
id

暂无数据

不规则布局

利用 col 可以构建复杂不规则布局。

expand code expand code
import { Component } from '@angular/core';
+}
Title 1
1000
3
+86
Title 2
id

暂无数据

不规则布局

利用 col 可以构建复杂不规则布局。

expand code expand code
import { Component } from '@angular/core';
 
 import { STColumn } from '@delon/abc/st';
 
@@ -328,4 +328,4 @@
     comment: ''
   };
   columns: STColumn[] = [{ title: 'id' }];
-}

API

se-container

成员说明类型默认值全局配置
[gutter]间距,当 nzLayout:horizontal 时有效number32
[se-container]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定'1','2','3','4','5','6'-
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定'1','2','3','4','5','6'-
[labelWidth]表单元素默认标签文本宽度,单位:pxnumber150
[nzLayout]表单布局,当 inline 时强制大小为 compact'horizontal','vertical','inline''horizontal'
[size]大小 compact 紧凑型,强制忽略 errorextra 展示'default','compact''default'
[firstVisual]是否立即呈现错误视觉booleanfalse
[ingoreDirty]是否忽略 dirty 校验booleanfalse
[line]分隔线booleanfalse-
[title]标题string,TemplateRef<void>-
[errors]批量修改 se 错误消息描述SEErrorRefresh[]-
[noColon]默认是否不显示 label 后面的冒号booleanfalse-

se

成员说明类型默认值
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定(继承于 se-container'1','2','3','4','5','6'-
[label]标签文本string, TemplateRef<void>-
[labelWidth]标签文本宽度,单位:px(继承于 se-containernumber-
[hideLabel]是否隐藏当前 labelbooleanfalse
[optional]标签可选信息string, TemplateRef<void>-
[optionalHelp]标签可选帮助string, TemplateRef<void>-
[optionalHelpColor]标签可选帮助背景颜色string-
[error]错误描述string, TemplateRef<void>, { [key: string]: string, TemplateRef}-
[extra]额外提示信息string, TemplateRef<void>-
[required]是否必填项标识符,若不设置自动根据表单元素是否有 RequiredValidator 校验来设置值string-
[controlClass]控件区域样式名string-
[id]自定义组件 idstring-
[line]分隔线(继承于 se-containerboolean-
[noColon]是否不显示 label 后面的冒号booleanfalse-

se-title

用于展示标题,单独一行。

常见问题

什么时候自定义组件id

点击表单的 Label 会将光标定位至相应组件下,而 ng-edit 会自动根据 ngModel 状态合理的设定 id,绝大多数情况下你无须关心 id 的绑定状态,当然若你手动指定 id 值则优先级更高但同时你需要自己维护组件对应的 id 值。

sv 查看 cell 单元格数据
Loading...
\ No newline at end of file +}

API

se-container

成员说明类型默认值全局配置
[gutter]间距,当 nzLayout:horizontal 时有效number32
[se-container]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定'1','2','3','4','5','6'-
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定'1','2','3','4','5','6'-
[labelWidth]表单元素默认标签文本宽度,单位:pxnumber150
[nzLayout]表单布局,当 inline 时强制大小为 compact'horizontal','vertical','inline''horizontal'
[size]大小 compact 紧凑型,强制忽略 errorextra 展示'default','compact''default'
[firstVisual]是否立即呈现错误视觉booleanfalse
[ingoreDirty]是否忽略 dirty 校验booleanfalse
[line]分隔线booleanfalse-
[title]标题string,TemplateRef<void>-
[errors]批量修改 se 错误消息描述SEErrorRefresh[]-
[noColon]默认是否不显示 label 后面的冒号booleanfalse-

se

成员说明类型默认值
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定(继承于 se-container'1','2','3','4','5','6'-
[label]标签文本string, TemplateRef<void>-
[labelWidth]标签文本宽度,单位:px(继承于 se-containernumber-
[hideLabel]是否隐藏当前 labelbooleanfalse
[optional]标签可选信息string, TemplateRef<void>-
[optionalHelp]标签可选帮助string, TemplateRef<void>-
[optionalHelpColor]标签可选帮助背景颜色string-
[error]错误描述string, TemplateRef<void>, { [key: string]: string, TemplateRef}-
[extra]额外提示信息string, TemplateRef<void>-
[required]是否必填项标识符,若不设置自动根据表单元素是否有 RequiredValidator 校验来设置值string-
[controlClass]控件区域样式名string-
[id]自定义组件 idstring-
[line]分隔线(继承于 se-containerboolean-
[noColon]是否不显示 label 后面的冒号booleanfalse-

se-title

用于展示标题,单独一行。

常见问题

什么时候自定义组件id

点击表单的 Label 会将光标定位至相应组件下,而 ng-edit 会自动根据 ngModel 状态合理的设定 id,绝大多数情况下你无须关心 id 的绑定状态,当然若你手动指定 id 值则优先级更高但同时你需要自己维护组件对应的 id 值。

sv 查看 cell 单元格数据
Loading...
\ No newline at end of file diff --git a/components/sg/en/index.html b/components/sg/en/index.html index f70cd188a..b9c5e32a0 100644 --- a/components/sg/en/index.html +++ b/components/sg/en/index.html @@ -41,4 +41,4 @@ }) export class ComponentsSgBasicComponent { ls = Array(11).fill(0); -}

API

sg-container

成员说明类型默认值全局配置
[gutter]间距,当 nzLayout:horizontal 时有效number32
[sg-container]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'--
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'2

sg

成员说明类型默认值
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'-
Loading...
\ No newline at end of file +}

API

sg-container

成员说明类型默认值全局配置
[gutter]间距,当 nzLayout:horizontal 时有效number32
[sg-container]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'--
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'2

sg

成员说明类型默认值
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'-
Loading...
\ No newline at end of file diff --git a/components/sg/zh/index.html b/components/sg/zh/index.html index 7de05d27e..eea1f8ed8 100644 --- a/components/sg/zh/index.html +++ b/components/sg/zh/index.html @@ -41,4 +41,4 @@ }) export class ComponentsSgBasicComponent { ls = Array(11).fill(0); -}

API

sg-container

成员说明类型默认值全局配置
[gutter]间距,当 nzLayout:horizontal 时有效number32
[sg-container]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'--
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'2

sg

成员说明类型默认值
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'-
error-collect 表单异常消息采集器 ellipsis 文本自动省略号
Loading...
\ No newline at end of file +}

API

sg-container

成员说明类型默认值全局配置
[gutter]间距,当 nzLayout:horizontal 时有效number32
[sg-container]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'--
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'2

sg

成员说明类型默认值
[col]指定表单元素最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'-
error-collect 表单异常消息采集器 ellipsis 文本自动省略号
Loading...
\ No newline at end of file diff --git a/components/st/en/index.html b/components/st/en/index.html index ced3be6f6..b81d4cbb6 100644 --- a/components/st/en/index.html +++ b/components/st/en/index.html @@ -1,4 +1,4 @@ -st - NG-ALAIN

表格
IMPORT MODULE

st 并不是在创造另一个表格组件,而是在 nz-table 基础上以可配置形式渲染表格,在中后台里这种方式可以满足绝大多数场景,但又可以更易地管理表格渲染动作。

关于数据源

data 支持三种不同格式数据源,整体分为:URL和静态数据两类;但可以透过参数的配置达到不同的效果,同时有非常多参数可通过 AlainSTConfig 重置默认值,使整个 st 组件模板达到极简。

URL

指的是通过一个 URL 字符串来获取数据。

  • 通过 req.paramsreq.method 等参数解决请求数据格式问题

  • 通过 res.reName 重置数据 key 而无须担心后端数据格式是否满足 st 需求

  • 通过 res.process 可以对表格渲染前对数据进一步优化

  • 通过 page.zeroIndexed 可以调整 http 请求时 pi 参数是否遵循 0 基索引,默认情况下为 1 基索引

  • 若返回体的值是数组类型,则强制不分页

  • 使用 _HttpClient 发起请求,因此满足 AlainThemeConfig 的配置也适用

静态数据

指的是通过指定值为 STData[]Observable<STData[]>,二者都遵循以下规则:

  • page.front 前端分页,默认:true

    • truest 根据 data 长度受控分页,包括:排序、过滤等

    • false 由用户通过 totaldata 参数受控分页,并维护 (change) 当分页变更时重新加载数据

  • page.show 是否显示分页器;当未指定时若 ps>total 情况下自动不显示

常见问题

Cannot read property 'text' of undefined

若组件已经加载完毕,此时如果再次改变 columns 时可能会出现该错误,这是因为 st 每次只会根据 columns 对数据处理,当列定义发生改变后可能会因为列定义与现有数据无法配对,可能需要使用 this.st.resetColumns({ columns: [], emitReload: true }) 来更新列定义并重新加载数据。

某列显示INVALID DATA

当在解析列数据时抛出异常时,会强制显示 INVALID DATA,例如当某指定 type: 'number' 时,而实际获得值为非有效数字型时就会抛出异常。

代码演示

编号头像邮箱电话佣金(单位:元)注册时间

暂无数据

基本

快速生成表格;利用 res 可以适配后端数据格式。

expand code expand code
import { Component, ViewChild } from '@angular/core';
+st - NG-ALAIN

表格
IMPORT MODULE

st 并不是在创造另一个表格组件,而是在 nz-table 基础上以可配置形式渲染表格,在中后台里这种方式可以满足绝大多数场景,但又可以更易地管理表格渲染动作。

关于数据源

data 支持三种不同格式数据源,整体分为:URL和静态数据两类;但可以透过参数的配置达到不同的效果,同时有非常多参数可通过 AlainSTConfig 重置默认值,使整个 st 组件模板达到极简。

URL

指的是通过一个 URL 字符串来获取数据。

  • 通过 req.paramsreq.method 等参数解决请求数据格式问题

  • 通过 res.reName 重置数据 key 而无须担心后端数据格式是否满足 st 需求

  • 通过 res.process 可以对表格渲染前对数据进一步优化

  • 通过 page.zeroIndexed 可以调整 http 请求时 pi 参数是否遵循 0 基索引,默认情况下为 1 基索引

  • 若返回体的值是数组类型,则强制不分页

  • 使用 _HttpClient 发起请求,因此满足 AlainThemeConfig 的配置也适用

静态数据

指的是通过指定值为 STData[]Observable<STData[]>,二者都遵循以下规则:

  • page.front 前端分页,默认:true

    • truest 根据 data 长度受控分页,包括:排序、过滤等

    • false 由用户通过 totaldata 参数受控分页,并维护 (change) 当分页变更时重新加载数据

  • page.show 是否显示分页器;当未指定时若 ps>total 情况下自动不显示

常见问题

Cannot read property 'text' of undefined

若组件已经加载完毕,此时如果再次改变 columns 时可能会出现该错误,这是因为 st 每次只会根据 columns 对数据处理,当列定义发生改变后可能会因为列定义与现有数据无法配对,可能需要使用 this.st.resetColumns({ columns: [], emitReload: true }) 来更新列定义并重新加载数据。

某列显示INVALID DATA

当在解析列数据时抛出异常时,会强制显示 INVALID DATA,例如当某指定 type: 'number' 时,而实际获得值为非有效数字型时就会抛出异常。

代码演示

编号头像邮箱电话佣金(单位:元)注册时间

暂无数据

基本

快速生成表格;利用 res 可以适配后端数据格式。

expand code expand code
import { Component, ViewChild } from '@angular/core';
 
 import { STColumn, STComponent } from '@delon/abc/st';
 
@@ -197,7 +197,7 @@
   change(e: STChange): void {
     console.log(e);
   }
-}
行号姓名年龄HTMLTexttagbadgeEnumyn
行号1姓名name 1年龄16HTML1 OtherText<strong>1</strong> Othertag错误badge默认Enumyn
行号2姓名name 2年龄47HTML2 OtherText<strong>2</strong> Othertag默认badge成功Enumyn
行号3姓名name 3年龄49HTML3 OtherText<strong>3</strong> Othertag进行中badge错误Enumyn
列类型

支持十种不同列类型:行号、多选、单选、徽标、标签、图片、数字、货币、日期、布尔徽章、枚举。也可以使用自定义列完成更复杂渲染。

expand code expand code
import { Component } from '@angular/core';
+}
行号姓名年龄HTMLTexttagbadgeEnumyn
行号1姓名name 1年龄41HTML1 OtherText<strong>1</strong> Othertag成功badge默认Enumyn
行号2姓名name 2年龄19HTML2 OtherText<strong>2</strong> Othertag进行中badge进行中Enumyn
行号3姓名name 3年龄49HTML3 OtherText<strong>3</strong> Othertag成功badge进行中Enumyn
列类型

支持十种不同列类型:行号、多选、单选、徽标、标签、图片、数字、货币、日期、布尔徽章、枚举。也可以使用自定义列完成更复杂渲染。

expand code expand code
import { Component } from '@angular/core';
 
 import { STColumn, STColumnBadge, STColumnTag, STData } from '@delon/abc/st';
 
@@ -462,7 +462,7 @@
       },
     ];
   };
-}
编号姓名年龄启用OP
编号1姓名name 1年龄26启用YOPEdit
编号2姓名name 2年龄26启用NOPEdit
编号3姓名name 3年龄22启用YOPEdit
可编辑行

定制带行编辑功能的表格,自由操作行内容。

expand code expand code
import { Component, ViewChild } from '@angular/core';
+}
编号姓名年龄启用OP
编号1姓名name 1年龄23启用YOPEdit
编号2姓名name 2年龄26启用NOPEdit
编号3姓名name 3年龄30启用YOPEdit
可编辑行

定制带行编辑功能的表格,自由操作行内容。

expand code expand code
import { Component, ViewChild } from '@angular/core';
 import { STColumn, STComponent, STData } from '@delon/abc/st';
 import { NzMessageService } from 'ng-zorro-antd/message';
 
@@ -655,7 +655,7 @@
     },
     { title: '注册时间', type: 'date', index: 'registered' },
   ];
-}
编号姓名年龄
编号1姓名name 1年龄21Button
编号2姓名name 2年龄27Button
编号3姓名name 3年龄23Button
可展开

使用 #expand 模板实现可展开,允许接收 itemindexcolumn 三个值。附加可实现:嵌套子表格。

expand code expand code
import { Component } from '@angular/core';
+}
编号姓名年龄
编号1姓名name 1年龄30Button
编号2姓名name 2年龄30Button
编号3姓名name 3年龄28Button
可展开

使用 #expand 模板实现可展开,允许接收 itemindexcolumn 三个值。附加可实现:嵌套子表格。

expand code expand code
import { Component } from '@angular/core';
 import { STColumn, STData } from '@delon/abc/st';
 
 @Component({
@@ -691,7 +691,7 @@
       ],
     },
   ];
-}
编号姓名年龄自定义
编号1姓名name 1年龄21自定义tooltip: 21-0
编号2姓名name 2年龄30自定义tooltip: 30-1
编号3姓名name 3年龄25自定义tooltip: 25-2
自定义列

创建一个带有 st-row="custom-name"ng-template,并在列描述 render: 'custom-name' 指定名称;模板允许接收 itemindexcolumn 三个值。

如果指定 type="title" 表示是对标题自定义列。附加可实现:表头分组。

expand code expand code
import { Component } from '@angular/core';
+}
编号姓名年龄自定义
编号1姓名name 1年龄27自定义tooltip: 27-0
编号2姓名name 2年龄23自定义tooltip: 23-1
编号3姓名name 3年龄29自定义tooltip: 29-2
自定义列

创建一个带有 st-row="custom-name"ng-template,并在列描述 render: 'custom-name' 指定名称;模板允许接收 itemindexcolumn 三个值。

如果指定 type="title" 表示是对标题自定义列。附加可实现:表头分组。

expand code expand code
import { Component } from '@angular/core';
 import { STColumn, STData } from '@delon/abc/st';
 
 @Component({
@@ -754,7 +754,7 @@
   isChoose(key: string): boolean {
     return !!this.customColumns.find(w => w.value === key && w.checked);
   }
-}
序号编号姓名年龄操作区
序号1编号1姓名name 1年龄28操作区EditDrawer更多
序号2编号2姓名name 2年龄25操作区EditDrawer更多
序号3编号3姓名name 3年龄26操作区EditDrawer更多
自定义按钮组

透过简单的配置产生一组日常按钮组(目标组件示例:DemoModalComponentDemoDrawerComponent)。

对话框由ModalHelper处理,抽屉由DrawerHelper处理。

expand code expand code
import { Component, ViewChild } from '@angular/core';
+}
序号编号姓名年龄操作区
序号1编号1姓名name 1年龄23操作区EditDrawer更多
序号2编号2姓名name 2年龄26操作区EditDrawer更多
序号3编号3姓名name 3年龄27操作区EditDrawer更多
自定义按钮组

透过简单的配置产生一组日常按钮组(目标组件示例:DemoModalComponentDemoDrawerComponent)。

对话框由ModalHelper处理,抽屉由DrawerHelper处理。

expand code expand code
import { Component, ViewChild } from '@angular/core';
 
 import { DemoDrawerComponent, DemoModalComponent } from '@shared';
 
@@ -950,7 +950,7 @@
     },
     { title: 'last', index: 'name.last', onCell: sharedOnCell }
   ];
-}
编号1编号2编号3编号4编号5编号6编号7编号8编号8编号8编号8编号8姓名10姓名11年龄12
编号11编号21编号31编号41编号51编号61编号71编号81编号81编号81编号81编号81姓名10name 1姓名11name 1年龄1228
编号12编号22编号32编号42编号52编号62编号72编号82编号82编号82编号82编号82姓名10name 2姓名11name 2年龄1229
编号13编号23编号33编号43编号53编号63编号73编号83编号83编号83编号83编号83姓名10name 3姓名11name 3年龄1229
固定列

对于列数很多的数据,可以使用 leftright 固定前后的列,横向滚动查看其它数据,需要和 scroll.x 配合使用。

固定列使用了 sticky 属性,浏览器支持情况可以参考这里

  • 若列头与内容不对齐或出现列重复,请指定列的宽度 width

  • 建议指定 scroll.x 为大于表格宽度的固定值或百分比。注意,且非固定列宽度之和不要超过 scroll.x

expand code expand code
import { Component } from '@angular/core';
+}
编号1编号2编号3编号4编号5编号6编号7编号8编号8编号8编号8编号8姓名10姓名11年龄12
编号11编号21编号31编号41编号51编号61编号71编号81编号81编号81编号81编号81姓名10name 1姓名11name 1年龄1221
编号12编号22编号32编号42编号52编号62编号72编号82编号82编号82编号82编号82姓名10name 2姓名11name 2年龄1227
编号13编号23编号33编号43编号53编号63编号73编号83编号83编号83编号83编号83姓名10name 3姓名11name 3年龄1221
固定列

对于列数很多的数据,可以使用 leftright 固定前后的列,横向滚动查看其它数据,需要和 scroll.x 配合使用。

固定列使用了 sticky 属性,浏览器支持情况可以参考这里

  • 若列头与内容不对齐或出现列重复,请指定列的宽度 width

  • 建议指定 scroll.x 为大于表格宽度的固定值或百分比。注意,且非固定列宽度之和不要超过 scroll.x

expand code expand code
import { Component } from '@angular/core';
 import { STColumn, STData } from '@delon/abc/st';
 
 @Component({
@@ -1037,7 +1037,7 @@
     { title: '电话', index: 'phone' },
     { title: '注册时间', type: 'date', index: 'registered' },
   ];
-}
行号编号性别SumAverageMinMaxCustom
行号1编号1性别Sum4Average4Min4Max4Custom4
行号2编号2性别Sum77Average77Min77Max77Custom77
行号3编号3性别Sum25Average25Min25Max25Custom25
合计3 个110635.334774
性别平均值35.33
统计

支持 countdistinctCountsumaveragemaxmin、自定义统计方法。

expand code expand code
import { Component } from '@angular/core';
+}
行号编号性别SumAverageMinMaxCustom
行号1编号1性别Sum97Average97Min97Max97Custom97
行号2编号2性别Sum52Average52Min52Max52Custom52
行号3编号3性别Sum73Average73Min73Max73Custom73
合计3 个222274529797
性别平均值74
统计

支持 countdistinctCountsumaveragemaxmin、自定义统计方法。

expand code expand code
import { Component } from '@angular/core';
 import { STColumn, STData } from '@delon/abc/st';
 
 @Component({
@@ -1140,7 +1140,7 @@
       console.log('scroll index to', data);
     });
   }
-}
编号头像邮箱电话数字货币注册时间
编号1头像邮箱e1@qq.com电话phone - 1数字13,720,489货币13,720,489注册时间2023-11-26 06:41
编号2头像邮箱e2@qq.com电话phone - 2数字12,641,332货币12,641,332注册时间2023-11-26 06:41
编号3头像邮箱e3@qq.com电话phone - 3数字13,448,687货币13,448,687注册时间2023-11-26 06:41
导出Excel

将表格数据保存为 Excel。

expand code expand code
import { Component, ViewChild } from '@angular/core';
+}
编号头像邮箱电话数字货币注册时间
编号1头像邮箱e1@qq.com电话phone - 1数字14,337,209货币14,337,209注册时间2023-11-26 06:55
编号2头像邮箱e2@qq.com电话phone - 2数字17,301,556货币17,301,556注册时间2023-11-26 06:55
编号3头像邮箱e3@qq.com电话phone - 3数字13,809,352货币13,809,352注册时间2023-11-26 06:55
导出Excel

将表格数据保存为 Excel。

expand code expand code
import { Component, ViewChild } from '@angular/core';
 import { STColumn, STComponent, STData } from '@delon/abc/st';
 
 @Component({
@@ -1234,4 +1234,4 @@
   col: STColumn,
   list: STData[],
   rawData?: any,
-) => STStatisticalResult

STResizable

成员说明类型默认值
[disabled]Disable resizebooleantrue
[bounds]调整尺寸的边界window, parent, ElementRef<HTMLElement>window
[maxWidth]最大宽度(超过边界部分忽略)number360
[minWidth]最小宽度number60
[preview]开启预览booleantrue

Theme

成员说明默认值
@nz-table-img-radius图像圆角大小4px
@nz-table-img-margin-right图像右边距4px
@nz-table-img-max-height图像最大高度32px
@nz-table-img-max-width图像最大宽度32px
@nz-table-even-background行奇偶背景色none
@nz-table-rep-max-width可视区域小于时触发
@nz-table-rep-min-width可视区域大于时触发
@nz-table-rep-header-background响应式下标题背景颜色@border-color-split
@nz-table-rep-even-background响应式下奇偶颜色#f9f9f9
@nz-table-rep-column-name-color响应式下文本颜色rgba(0, 0, 0, 0.5)
@nz-table-rep-column-name-text-align响应式下标题文本对齐方式right
@nz-table-rep-column-name-width响应式下标题宽度100px
@nz-table-rep-column-name-padding-right响应式下标题与内容右边距8px
@table-row-hover-bg行悬停背景色#fafafa
@st-btn-disabled-color禁用按钮的文本颜色rgba(0, 0, 0, 0.25)
@st-title-optional-color标题可选文本颜色rgba(0, 0, 0, 0.35)
@st-resizable-handle-width拖拽宽度1px
@st-resizable-handle-height拖拽高度60%
@st-resizable-handle-color拖拽颜色@border-color-base
Loading...
\ No newline at end of file +) => STStatisticalResult

STResizable

成员说明类型默认值
[disabled]Disable resizebooleantrue
[bounds]调整尺寸的边界window, parent, ElementRef<HTMLElement>window
[maxWidth]最大宽度(超过边界部分忽略)number360
[minWidth]最小宽度number60
[preview]开启预览booleantrue

Theme

成员说明默认值
@nz-table-img-radius图像圆角大小4px
@nz-table-img-margin-right图像右边距4px
@nz-table-img-max-height图像最大高度32px
@nz-table-img-max-width图像最大宽度32px
@nz-table-even-background行奇偶背景色none
@nz-table-rep-max-width可视区域小于时触发
@nz-table-rep-min-width可视区域大于时触发
@nz-table-rep-header-background响应式下标题背景颜色@border-color-split
@nz-table-rep-even-background响应式下奇偶颜色#f9f9f9
@nz-table-rep-column-name-color响应式下文本颜色rgba(0, 0, 0, 0.5)
@nz-table-rep-column-name-text-align响应式下标题文本对齐方式right
@nz-table-rep-column-name-width响应式下标题宽度100px
@nz-table-rep-column-name-padding-right响应式下标题与内容右边距8px
@table-row-hover-bg行悬停背景色#fafafa
@st-btn-disabled-color禁用按钮的文本颜色rgba(0, 0, 0, 0.25)
@st-title-optional-color标题可选文本颜色rgba(0, 0, 0, 0.35)
@st-resizable-handle-width拖拽宽度1px
@st-resizable-handle-height拖拽高度60%
@st-resizable-handle-color拖拽颜色@border-color-base
Loading...
\ No newline at end of file diff --git a/components/st/zh/index.html b/components/st/zh/index.html index e5a1ca35f..a0699f645 100644 --- a/components/st/zh/index.html +++ b/components/st/zh/index.html @@ -1,4 +1,4 @@ -st - NG-ALAIN

表格
IMPORT MODULE

st 并不是在创造另一个表格组件,而是在 nz-table 基础上以可配置形式渲染表格,在中后台里这种方式可以满足绝大多数场景,但又可以更易地管理表格渲染动作。

关于数据源

data 支持三种不同格式数据源,整体分为:URL和静态数据两类;但可以透过参数的配置达到不同的效果,同时有非常多参数可通过 AlainSTConfig 重置默认值,使整个 st 组件模板达到极简。

URL

指的是通过一个 URL 字符串来获取数据。

  • 通过 req.paramsreq.method 等参数解决请求数据格式问题

  • 通过 res.reName 重置数据 key 而无须担心后端数据格式是否满足 st 需求

  • 通过 res.process 可以对表格渲染前对数据进一步优化

  • 通过 page.zeroIndexed 可以调整 http 请求时 pi 参数是否遵循 0 基索引,默认情况下为 1 基索引

  • 若返回体的值是数组类型,则强制不分页

  • 使用 _HttpClient 发起请求,因此满足 AlainThemeConfig 的配置也适用

静态数据

指的是通过指定值为 STData[]Observable<STData[]>,二者都遵循以下规则:

  • page.front 前端分页,默认:true

    • truest 根据 data 长度受控分页,包括:排序、过滤等

    • false 由用户通过 totaldata 参数受控分页,并维护 (change) 当分页变更时重新加载数据

  • page.show 是否显示分页器;当未指定时若 ps>total 情况下自动不显示

常见问题

Cannot read property 'text' of undefined

若组件已经加载完毕,此时如果再次改变 columns 时可能会出现该错误,这是因为 st 每次只会根据 columns 对数据处理,当列定义发生改变后可能会因为列定义与现有数据无法配对,可能需要使用 this.st.resetColumns({ columns: [], emitReload: true }) 来更新列定义并重新加载数据。

某列显示INVALID DATA

当在解析列数据时抛出异常时,会强制显示 INVALID DATA,例如当某指定 type: 'number' 时,而实际获得值为非有效数字型时就会抛出异常。

代码演示

编号头像邮箱电话佣金(单位:元)注册时间

暂无数据

基本

快速生成表格;利用 res 可以适配后端数据格式。

expand code expand code
import { Component, ViewChild } from '@angular/core';
+st - NG-ALAIN

表格
IMPORT MODULE

st 并不是在创造另一个表格组件,而是在 nz-table 基础上以可配置形式渲染表格,在中后台里这种方式可以满足绝大多数场景,但又可以更易地管理表格渲染动作。

关于数据源

data 支持三种不同格式数据源,整体分为:URL和静态数据两类;但可以透过参数的配置达到不同的效果,同时有非常多参数可通过 AlainSTConfig 重置默认值,使整个 st 组件模板达到极简。

URL

指的是通过一个 URL 字符串来获取数据。

  • 通过 req.paramsreq.method 等参数解决请求数据格式问题

  • 通过 res.reName 重置数据 key 而无须担心后端数据格式是否满足 st 需求

  • 通过 res.process 可以对表格渲染前对数据进一步优化

  • 通过 page.zeroIndexed 可以调整 http 请求时 pi 参数是否遵循 0 基索引,默认情况下为 1 基索引

  • 若返回体的值是数组类型,则强制不分页

  • 使用 _HttpClient 发起请求,因此满足 AlainThemeConfig 的配置也适用

静态数据

指的是通过指定值为 STData[]Observable<STData[]>,二者都遵循以下规则:

  • page.front 前端分页,默认:true

    • truest 根据 data 长度受控分页,包括:排序、过滤等

    • false 由用户通过 totaldata 参数受控分页,并维护 (change) 当分页变更时重新加载数据

  • page.show 是否显示分页器;当未指定时若 ps>total 情况下自动不显示

常见问题

Cannot read property 'text' of undefined

若组件已经加载完毕,此时如果再次改变 columns 时可能会出现该错误,这是因为 st 每次只会根据 columns 对数据处理,当列定义发生改变后可能会因为列定义与现有数据无法配对,可能需要使用 this.st.resetColumns({ columns: [], emitReload: true }) 来更新列定义并重新加载数据。

某列显示INVALID DATA

当在解析列数据时抛出异常时,会强制显示 INVALID DATA,例如当某指定 type: 'number' 时,而实际获得值为非有效数字型时就会抛出异常。

代码演示

编号头像邮箱电话佣金(单位:元)注册时间

暂无数据

基本

快速生成表格;利用 res 可以适配后端数据格式。

expand code expand code
import { Component, ViewChild } from '@angular/core';
 
 import { STColumn, STComponent } from '@delon/abc/st';
 
@@ -197,7 +197,7 @@
   change(e: STChange): void {
     console.log(e);
   }
-}
行号姓名年龄HTMLTexttagbadgeEnumyn
行号1姓名name 1年龄30HTML1 OtherText<strong>1</strong> Othertag进行中badge警告Enumyn
行号2姓名name 2年龄25HTML2 OtherText<strong>2</strong> Othertag警告badge错误Enumyn
行号3姓名name 3年龄11HTML3 OtherText<strong>3</strong> Othertag警告badge进行中Enumyn
列类型

支持十种不同列类型:行号、多选、单选、徽标、标签、图片、数字、货币、日期、布尔徽章、枚举。也可以使用自定义列完成更复杂渲染。

expand code expand code
import { Component } from '@angular/core';
+}
行号姓名年龄HTMLTexttagbadgeEnumyn
行号1姓名name 1年龄39HTML1 OtherText<strong>1</strong> Othertag进行中badge成功Enumyn
行号2姓名name 2年龄32HTML2 OtherText<strong>2</strong> Othertag成功badge进行中Enumyn
行号3姓名name 3年龄29HTML3 OtherText<strong>3</strong> Othertag错误badge默认Enumyn
列类型

支持十种不同列类型:行号、多选、单选、徽标、标签、图片、数字、货币、日期、布尔徽章、枚举。也可以使用自定义列完成更复杂渲染。

expand code expand code
import { Component } from '@angular/core';
 
 import { STColumn, STColumnBadge, STColumnTag, STData } from '@delon/abc/st';
 
@@ -462,7 +462,7 @@
       },
     ];
   };
-}
编号姓名年龄启用OP
编号1姓名name 1年龄30启用YOPEdit
编号2姓名name 2年龄24启用NOPEdit
编号3姓名name 3年龄30启用YOPEdit
可编辑行

定制带行编辑功能的表格,自由操作行内容。

expand code expand code
import { Component, ViewChild } from '@angular/core';
+}
编号姓名年龄启用OP
编号1姓名name 1年龄26启用YOPEdit
编号2姓名name 2年龄27启用NOPEdit
编号3姓名name 3年龄27启用YOPEdit
可编辑行

定制带行编辑功能的表格,自由操作行内容。

expand code expand code
import { Component, ViewChild } from '@angular/core';
 import { STColumn, STComponent, STData } from '@delon/abc/st';
 import { NzMessageService } from 'ng-zorro-antd/message';
 
@@ -655,7 +655,7 @@
     },
     { title: '注册时间', type: 'date', index: 'registered' },
   ];
-}
编号姓名年龄
编号1姓名name 1年龄21Button
编号2姓名name 2年龄25Button
编号3姓名name 3年龄24Button
可展开

使用 #expand 模板实现可展开,允许接收 itemindexcolumn 三个值。附加可实现:嵌套子表格。

expand code expand code
import { Component } from '@angular/core';
+}
编号姓名年龄
编号1姓名name 1年龄30Button
编号2姓名name 2年龄29Button
编号3姓名name 3年龄27Button
可展开

使用 #expand 模板实现可展开,允许接收 itemindexcolumn 三个值。附加可实现:嵌套子表格。

expand code expand code
import { Component } from '@angular/core';
 import { STColumn, STData } from '@delon/abc/st';
 
 @Component({
@@ -691,7 +691,7 @@
       ],
     },
   ];
-}
编号姓名年龄自定义
编号1姓名name 1年龄25自定义tooltip: 25-0
编号2姓名name 2年龄27自定义tooltip: 27-1
编号3姓名name 3年龄24自定义tooltip: 24-2
自定义列

创建一个带有 st-row="custom-name"ng-template,并在列描述 render: 'custom-name' 指定名称;模板允许接收 itemindexcolumn 三个值。

如果指定 type="title" 表示是对标题自定义列。附加可实现:表头分组。

expand code expand code
import { Component } from '@angular/core';
+}
编号姓名年龄自定义
编号1姓名name 1年龄21自定义tooltip: 21-0
编号2姓名name 2年龄27自定义tooltip: 27-1
编号3姓名name 3年龄23自定义tooltip: 23-2
自定义列

创建一个带有 st-row="custom-name"ng-template,并在列描述 render: 'custom-name' 指定名称;模板允许接收 itemindexcolumn 三个值。

如果指定 type="title" 表示是对标题自定义列。附加可实现:表头分组。

expand code expand code
import { Component } from '@angular/core';
 import { STColumn, STData } from '@delon/abc/st';
 
 @Component({
@@ -754,7 +754,7 @@
   isChoose(key: string): boolean {
     return !!this.customColumns.find(w => w.value === key && w.checked);
   }
-}
序号编号姓名年龄操作区
序号1编号1姓名name 1年龄29操作区EditDrawer更多
序号2编号2姓名name 2年龄21操作区EditDrawer更多
序号3编号3姓名name 3年龄29操作区EditDrawer更多
自定义按钮组

透过简单的配置产生一组日常按钮组(目标组件示例:DemoModalComponentDemoDrawerComponent)。

对话框由ModalHelper处理,抽屉由DrawerHelper处理。

expand code expand code
import { Component, ViewChild } from '@angular/core';
+}
序号编号姓名年龄操作区
序号1编号1姓名name 1年龄22操作区EditDrawer更多
序号2编号2姓名name 2年龄28操作区EditDrawer更多
序号3编号3姓名name 3年龄23操作区EditDrawer更多
自定义按钮组

透过简单的配置产生一组日常按钮组(目标组件示例:DemoModalComponentDemoDrawerComponent)。

对话框由ModalHelper处理,抽屉由DrawerHelper处理。

expand code expand code
import { Component, ViewChild } from '@angular/core';
 
 import { DemoDrawerComponent, DemoModalComponent } from '@shared';
 
@@ -950,7 +950,7 @@
     },
     { title: 'last', index: 'name.last', onCell: sharedOnCell }
   ];
-}
编号1编号2编号3编号4编号5编号6编号7编号8编号8编号8编号8编号8姓名10姓名11年龄12
编号11编号21编号31编号41编号51编号61编号71编号81编号81编号81编号81编号81姓名10name 1姓名11name 1年龄1229
编号12编号22编号32编号42编号52编号62编号72编号82编号82编号82编号82编号82姓名10name 2姓名11name 2年龄1229
编号13编号23编号33编号43编号53编号63编号73编号83编号83编号83编号83编号83姓名10name 3姓名11name 3年龄1230
固定列

对于列数很多的数据,可以使用 leftright 固定前后的列,横向滚动查看其它数据,需要和 scroll.x 配合使用。

固定列使用了 sticky 属性,浏览器支持情况可以参考这里

  • 若列头与内容不对齐或出现列重复,请指定列的宽度 width

  • 建议指定 scroll.x 为大于表格宽度的固定值或百分比。注意,且非固定列宽度之和不要超过 scroll.x

expand code expand code
import { Component } from '@angular/core';
+}
编号1编号2编号3编号4编号5编号6编号7编号8编号8编号8编号8编号8姓名10姓名11年龄12
编号11编号21编号31编号41编号51编号61编号71编号81编号81编号81编号81编号81姓名10name 1姓名11name 1年龄1224
编号12编号22编号32编号42编号52编号62编号72编号82编号82编号82编号82编号82姓名10name 2姓名11name 2年龄1222
编号13编号23编号33编号43编号53编号63编号73编号83编号83编号83编号83编号83姓名10name 3姓名11name 3年龄1230
固定列

对于列数很多的数据,可以使用 leftright 固定前后的列,横向滚动查看其它数据,需要和 scroll.x 配合使用。

固定列使用了 sticky 属性,浏览器支持情况可以参考这里

  • 若列头与内容不对齐或出现列重复,请指定列的宽度 width

  • 建议指定 scroll.x 为大于表格宽度的固定值或百分比。注意,且非固定列宽度之和不要超过 scroll.x

expand code expand code
import { Component } from '@angular/core';
 import { STColumn, STData } from '@delon/abc/st';
 
 @Component({
@@ -1037,7 +1037,7 @@
     { title: '电话', index: 'phone' },
     { title: '注册时间', type: 'date', index: 'registered' },
   ];
-}
行号编号性别SumAverageMinMaxCustom
行号1编号1性别Sum67Average67Min67Max67Custom67
行号2编号2性别Sum72Average72Min72Max72Custom72
行号3编号3性别Sum7Average7Min7Max7Custom7
合计3 个214648.6777267
性别平均值48.67
统计

支持 countdistinctCountsumaveragemaxmin、自定义统计方法。

expand code expand code
import { Component } from '@angular/core';
+}
行号编号性别SumAverageMinMaxCustom
行号1编号1性别Sum12Average12Min12Max12Custom12
行号2编号2性别Sum64Average64Min64Max64Custom64
行号3编号3性别Sum23Average23Min23Max23Custom23
合计3 个29933126412
性别平均值33
统计

支持 countdistinctCountsumaveragemaxmin、自定义统计方法。

expand code expand code
import { Component } from '@angular/core';
 import { STColumn, STData } from '@delon/abc/st';
 
 @Component({
@@ -1140,7 +1140,7 @@
       console.log('scroll index to', data);
     });
   }
-}
编号头像邮箱电话数字货币注册时间
编号1头像邮箱e1@qq.com电话phone - 1数字19,699,777货币19,699,777注册时间2023-11-26 06:41
编号2头像邮箱e2@qq.com电话phone - 2数字17,585,539货币17,585,539注册时间2023-11-26 06:41
编号3头像邮箱e3@qq.com电话phone - 3数字14,759,932货币14,759,932注册时间2023-11-26 06:41
导出Excel

将表格数据保存为 Excel。

expand code expand code
import { Component, ViewChild } from '@angular/core';
+}
编号头像邮箱电话数字货币注册时间
编号1头像邮箱e1@qq.com电话phone - 1数字15,494,297货币15,494,297注册时间2023-11-26 06:55
编号2头像邮箱e2@qq.com电话phone - 2数字11,261,921货币11,261,921注册时间2023-11-26 06:55
编号3头像邮箱e3@qq.com电话phone - 3数字13,142,736货币13,142,736注册时间2023-11-26 06:55
导出Excel

将表格数据保存为 Excel。

expand code expand code
import { Component, ViewChild } from '@angular/core';
 import { STColumn, STComponent, STData } from '@delon/abc/st';
 
 @Component({
@@ -1234,4 +1234,4 @@
   col: STColumn,
   list: STData[],
   rawData?: any,
-) => STStatisticalResult

STResizable

成员说明类型默认值
[disabled]Disable resizebooleantrue
[bounds]调整尺寸的边界window, parent, ElementRef<HTMLElement>window
[maxWidth]最大宽度(超过边界部分忽略)number360
[minWidth]最小宽度number60
[preview]开启预览booleantrue

Theme

成员说明默认值
@nz-table-img-radius图像圆角大小4px
@nz-table-img-margin-right图像右边距4px
@nz-table-img-max-height图像最大高度32px
@nz-table-img-max-width图像最大宽度32px
@nz-table-even-background行奇偶背景色none
@nz-table-rep-max-width可视区域小于时触发
@nz-table-rep-min-width可视区域大于时触发
@nz-table-rep-header-background响应式下标题背景颜色@border-color-split
@nz-table-rep-even-background响应式下奇偶颜色#f9f9f9
@nz-table-rep-column-name-color响应式下文本颜色rgba(0, 0, 0, 0.5)
@nz-table-rep-column-name-text-align响应式下标题文本对齐方式right
@nz-table-rep-column-name-width响应式下标题宽度100px
@nz-table-rep-column-name-padding-right响应式下标题与内容右边距8px
@table-row-hover-bg行悬停背景色#fafafa
@st-btn-disabled-color禁用按钮的文本颜色rgba(0, 0, 0, 0.25)
@st-title-optional-color标题可选文本颜色rgba(0, 0, 0, 0.35)
@st-resizable-handle-width拖拽宽度1px
@st-resizable-handle-height拖拽高度60%
@st-resizable-handle-color拖拽颜色@border-color-base
Loading...
\ No newline at end of file +) => STStatisticalResult

STResizable

成员说明类型默认值
[disabled]Disable resizebooleantrue
[bounds]调整尺寸的边界window, parent, ElementRef<HTMLElement>window
[maxWidth]最大宽度(超过边界部分忽略)number360
[minWidth]最小宽度number60
[preview]开启预览booleantrue

Theme

成员说明默认值
@nz-table-img-radius图像圆角大小4px
@nz-table-img-margin-right图像右边距4px
@nz-table-img-max-height图像最大高度32px
@nz-table-img-max-width图像最大宽度32px
@nz-table-even-background行奇偶背景色none
@nz-table-rep-max-width可视区域小于时触发
@nz-table-rep-min-width可视区域大于时触发
@nz-table-rep-header-background响应式下标题背景颜色@border-color-split
@nz-table-rep-even-background响应式下奇偶颜色#f9f9f9
@nz-table-rep-column-name-color响应式下文本颜色rgba(0, 0, 0, 0.5)
@nz-table-rep-column-name-text-align响应式下标题文本对齐方式right
@nz-table-rep-column-name-width响应式下标题宽度100px
@nz-table-rep-column-name-padding-right响应式下标题与内容右边距8px
@table-row-hover-bg行悬停背景色#fafafa
@st-btn-disabled-color禁用按钮的文本颜色rgba(0, 0, 0, 0.25)
@st-title-optional-color标题可选文本颜色rgba(0, 0, 0, 0.35)
@st-resizable-handle-width拖拽宽度1px
@st-resizable-handle-height拖拽高度60%
@st-resizable-handle-color拖拽颜色@border-color-base
Loading...
\ No newline at end of file diff --git a/components/sv/en/index.html b/components/sv/en/index.html index a5f2b1602..a481cbbd7 100644 --- a/components/sv/en/index.html +++ b/components/sv/en/index.html @@ -132,4 +132,4 @@ </sv-container> `, }) -export class ComponentsSvVerticalComponent {}

API

sv-container

参数说明类型默认值全局配置
[sv-container]指定信息最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'--
[col]指定信息最多分几列展示,最终一行几列由 col 配置结合响应式规则决定'1','2','3','4','5','6'3
[size]大小'small','large''large'
[layout]布局'horizontal','vertical''horizontal'
[gutter]间距number32
[labelWidth]默认标签文本宽度number-
[default]默认是否显示默认文本booleantrue
[title]标题string,TemplateRef<void>--
[noColon]默认是否不显示 label 后面的冒号booleanfalse-
[bordered]是否展示边框booleanfalse-

sv

参数说明类型默认值
[col]指定信息最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,继承 sv-container'1','2','3','4','5','6'-
[label]标签string,TemplateRef<void>-
[unit]单位string,TemplateRef<void>-
[default]是否显示默认文本,继承 sv-containerboolean-
[type]类型'primary','success','danger','warning'-
[optional]标签可选信息string, TemplateRef<void>-
[optionalHelp]标签可选帮助string, TemplateRef<void>-
[optionalHelpColor]标签可选帮助背景颜色string-
[noColon]是否不显示 label 后面的冒号booleanfalse-
[hideLabel]是否隐藏当前 labelbooleanfalse

sv-title

用于展示标题,单独一行。

sv-value

值展示。

参数说明类型默认值
[prefix]前缀string-
[unit]单位string-
[tooltip]文字提示内容string, TemplateRef<void>-
[size]大小'large','small','default'default
Loading...
\ No newline at end of file +export class ComponentsSvVerticalComponent {}

API

sv-container

参数说明类型默认值全局配置
[sv-container]指定信息最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'--
[col]指定信息最多分几列展示,最终一行几列由 col 配置结合响应式规则决定'1','2','3','4','5','6'3
[size]大小'small','large''large'
[layout]布局'horizontal','vertical''horizontal'
[gutter]间距number32
[labelWidth]默认标签文本宽度number-
[default]默认是否显示默认文本booleantrue
[title]标题string,TemplateRef<void>--
[noColon]默认是否不显示 label 后面的冒号booleanfalse-
[bordered]是否展示边框booleanfalse-

sv

参数说明类型默认值
[col]指定信息最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,继承 sv-container'1','2','3','4','5','6'-
[label]标签string,TemplateRef<void>-
[unit]单位string,TemplateRef<void>-
[default]是否显示默认文本,继承 sv-containerboolean-
[type]类型'primary','success','danger','warning'-
[optional]标签可选信息string, TemplateRef<void>-
[optionalHelp]标签可选帮助string, TemplateRef<void>-
[optionalHelpColor]标签可选帮助背景颜色string-
[noColon]是否不显示 label 后面的冒号booleanfalse-
[hideLabel]是否隐藏当前 labelbooleanfalse

sv-title

用于展示标题,单独一行。

sv-value

值展示。

参数说明类型默认值
[prefix]前缀string-
[unit]单位string-
[tooltip]文字提示内容string, TemplateRef<void>-
[size]大小'large','small','default'default
Loading...
\ No newline at end of file diff --git a/components/sv/zh/index.html b/components/sv/zh/index.html index f6ec97d83..4c48e670a 100644 --- a/components/sv/zh/index.html +++ b/components/sv/zh/index.html @@ -132,4 +132,4 @@ </sv-container> `, }) -export class ComponentsSvVerticalComponent {}

API

sv-container

参数说明类型默认值全局配置
[sv-container]指定信息最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'--
[col]指定信息最多分几列展示,最终一行几列由 col 配置结合响应式规则决定'1','2','3','4','5','6'3
[size]大小'small','large''large'
[layout]布局'horizontal','vertical''horizontal'
[gutter]间距number32
[labelWidth]默认标签文本宽度number-
[default]默认是否显示默认文本booleantrue
[title]标题string,TemplateRef<void>--
[noColon]默认是否不显示 label 后面的冒号booleanfalse-
[bordered]是否展示边框booleanfalse-

sv

参数说明类型默认值
[col]指定信息最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,继承 sv-container'1','2','3','4','5','6'-
[label]标签string,TemplateRef<void>-
[unit]单位string,TemplateRef<void>-
[default]是否显示默认文本,继承 sv-containerboolean-
[type]类型'primary','success','danger','warning'-
[optional]标签可选信息string, TemplateRef<void>-
[optionalHelp]标签可选帮助string, TemplateRef<void>-
[optionalHelpColor]标签可选帮助背景颜色string-
[noColon]是否不显示 label 后面的冒号booleanfalse-
[hideLabel]是否隐藏当前 labelbooleanfalse

sv-title

用于展示标题,单独一行。

sv-value

值展示。

参数说明类型默认值
[prefix]前缀string-
[unit]单位string-
[tooltip]文字提示内容string, TemplateRef<void>-
[size]大小'large','small','default'default
st 表格 se 编辑
Loading...
\ No newline at end of file +export class ComponentsSvVerticalComponent {}

API

sv-container

参数说明类型默认值全局配置
[sv-container]指定信息最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,'1','2','3','4','5','6'--
[col]指定信息最多分几列展示,最终一行几列由 col 配置结合响应式规则决定'1','2','3','4','5','6'3
[size]大小'small','large''large'
[layout]布局'horizontal','vertical''horizontal'
[gutter]间距number32
[labelWidth]默认标签文本宽度number-
[default]默认是否显示默认文本booleantrue
[title]标题string,TemplateRef<void>--
[noColon]默认是否不显示 label 后面的冒号booleanfalse-
[bordered]是否展示边框booleanfalse-

sv

参数说明类型默认值
[col]指定信息最多分几列展示,最终一行几列由 col 配置结合响应式规则决定,继承 sv-container'1','2','3','4','5','6'-
[label]标签string,TemplateRef<void>-
[unit]单位string,TemplateRef<void>-
[default]是否显示默认文本,继承 sv-containerboolean-
[type]类型'primary','success','danger','warning'-
[optional]标签可选信息string, TemplateRef<void>-
[optionalHelp]标签可选帮助string, TemplateRef<void>-
[optionalHelpColor]标签可选帮助背景颜色string-
[noColon]是否不显示 label 后面的冒号booleanfalse-
[hideLabel]是否隐藏当前 labelbooleanfalse

sv-title

用于展示标题,单独一行。

sv-value

值展示。

参数说明类型默认值
[prefix]前缀string-
[unit]单位string-
[tooltip]文字提示内容string, TemplateRef<void>-
[size]大小'large','small','default'default
st 表格 se 编辑
Loading...
\ No newline at end of file diff --git a/components/tag-select/en/index.html b/components/tag-select/en/index.html index 13dc2b3bc..6bb57807c 100644 --- a/components/tag-select/en/index.html +++ b/components/tag-select/en/index.html @@ -49,4 +49,4 @@ } this.categories.find(w => w.id === 0)!.value = false; } -}

API

tag-select

成员说明类型默认值
[expandable]是否启用 展开与收进booleantrue
(change)展开与收进回调函数,参数:booleanEventEmitter<boolean>-
Loading...
\ No newline at end of file +}

API

tag-select

成员说明类型默认值
[expandable]是否启用 展开与收进booleantrue
(change)展开与收进回调函数,参数:booleanEventEmitter<boolean>-
Loading...
\ No newline at end of file diff --git a/components/tag-select/zh/index.html b/components/tag-select/zh/index.html index a577ec494..f9a9ac720 100644 --- a/components/tag-select/zh/index.html +++ b/components/tag-select/zh/index.html @@ -49,4 +49,4 @@ } this.categories.find(w => w.id === 0)!.value = false; } -}

API

tag-select

成员说明类型默认值
[expandable]是否启用 展开与收进booleantrue
(change)展开与收进回调函数,参数:booleanEventEmitter<boolean>-
result 处理结果 用户认证
Loading...
\ No newline at end of file +}

API

tag-select

成员说明类型默认值
[expandable]是否启用 展开与收进booleantrue
(change)展开与收进回调函数,参数:booleanEventEmitter<boolean>-
result 处理结果 用户认证
Loading...
\ No newline at end of file diff --git a/components/xlsx/en/index.html b/components/xlsx/en/index.html index e39fb2ae7..a1f107817 100644 --- a/components/xlsx/en/index.html +++ b/components/xlsx/en/index.html @@ -41,7 +41,7 @@ }); node.value = ''; } -}
姓名年龄
编号姓名name 1年龄30
编号姓名name 2年龄21
编号姓名name 3年龄25
导出

导出Excel并自动弹出保存对话框。

expand code expand code
import { Component } from '@angular/core';
+}
姓名年龄
编号姓名name 1年龄22
编号姓名name 2年龄26
编号姓名name 3年龄23
导出

导出Excel并自动弹出保存对话框。

expand code expand code
import { Component } from '@angular/core';
 
 import { STColumn, STData } from '@delon/abc/st';
 import { XlsxService } from '@delon/abc/xlsx';
@@ -83,4 +83,4 @@
       format
     });
   }
-}

API

LazyService

成员说明类型默认值
import(fileOrUrl: File | string)导入Excel,返回 JSONPromise<{ [key: string]: any[][] }>-
export(options: XlsxExportOptions)导出ExcelPromise<void>-
numberToSchema(val: number)数值转符号名string-

XlsxExportOptions

成员说明类型默认值
[sheets]数据源{ [sheet: string]: WorkSheet } | XlsxExportSheet[]-
[filename]Excel文件名stringexport.xlsx
[opts]Excel写入选项,见 WritingOptionsWritingOptions-
[callback]保存前触发(wb: WorkBook) => void-

xlsx

xlsx 指令。

<div [xlsx]="XlsxExportOptions">导出</div>
Loading...
\ No newline at end of file +}

API

LazyService

成员说明类型默认值
import(fileOrUrl: File | string)导入Excel,返回 JSONPromise<{ [key: string]: any[][] }>-
export(options: XlsxExportOptions)导出ExcelPromise<void>-
numberToSchema(val: number)数值转符号名string-

XlsxExportOptions

成员说明类型默认值
[sheets]数据源{ [sheet: string]: WorkSheet } | XlsxExportSheet[]-
[filename]Excel文件名stringexport.xlsx
[opts]Excel写入选项,见 WritingOptionsWritingOptions-
[callback]保存前触发(wb: WorkBook) => void-

xlsx

xlsx 指令。

<div [xlsx]="XlsxExportOptions">导出</div>
Loading...
\ No newline at end of file diff --git a/components/xlsx/zh/index.html b/components/xlsx/zh/index.html index 7b5daa465..f91dfa27d 100644 --- a/components/xlsx/zh/index.html +++ b/components/xlsx/zh/index.html @@ -41,7 +41,7 @@ }); node.value = ''; } -}
姓名年龄
编号姓名name 1年龄24
编号姓名name 2年龄24
编号姓名name 3年龄26
导出

导出Excel并自动弹出保存对话框。

expand code expand code
import { Component } from '@angular/core';
+}
姓名年龄
编号姓名name 1年龄24
编号姓名name 2年龄21
编号姓名name 3年龄28
导出

导出Excel并自动弹出保存对话框。

expand code expand code
import { Component } from '@angular/core';
 
 import { STColumn, STData } from '@delon/abc/st';
 import { XlsxService } from '@delon/abc/xlsx';
@@ -83,4 +83,4 @@
       format
     });
   }
-}

API

LazyService

成员说明类型默认值
import(fileOrUrl: File | string)导入Excel,返回 JSONPromise<{ [key: string]: any[][] }>-
export(options: XlsxExportOptions)导出ExcelPromise<void>-
numberToSchema(val: number)数值转符号名string-

XlsxExportOptions

成员说明类型默认值
[sheets]数据源{ [sheet: string]: WorkSheet } | XlsxExportSheet[]-
[filename]Excel文件名stringexport.xlsx
[opts]Excel写入选项,见 WritingOptionsWritingOptions-
[callback]保存前触发(wb: WorkBook) => void-

xlsx

xlsx 指令。

<div [xlsx]="XlsxExportOptions">导出</div>
lodop Lodop打印 Observers 观察者
Loading...
\ No newline at end of file +}

API

LazyService

成员说明类型默认值
import(fileOrUrl: File | string)导入Excel,返回 JSONPromise<{ [key: string]: any[][] }>-
export(options: XlsxExportOptions)导出ExcelPromise<void>-
numberToSchema(val: number)数值转符号名string-

XlsxExportOptions

成员说明类型默认值
[sheets]数据源{ [sheet: string]: WorkSheet } | XlsxExportSheet[]-
[filename]Excel文件名stringexport.xlsx
[opts]Excel写入选项,见 WritingOptionsWritingOptions-
[callback]保存前触发(wb: WorkBook) => void-

xlsx

xlsx 指令。

<div [xlsx]="XlsxExportOptions">导出</div>
lodop Lodop打印 Observers 观察者
Loading...
\ No newline at end of file diff --git a/components/zip/en/index.html b/components/zip/en/index.html index 4941f704e..cef8b87e8 100644 --- a/components/zip/en/index.html +++ b/components/zip/en/index.html @@ -117,4 +117,4 @@ } ); } -}

API

ZipService

成员说明类型默认值
read(fileOrUrl: File | string, options?: JSZip.JSZipLoadOptions)解压Promise<JSZip>-
create()创建 Zip 实例,用于创建压缩文件Promise<JSZip>-
pushUrl(zip: JSZip, path: string, url: string)下载URL资源并写入 zipPromise<void>-
save(zip: JSZip, options?: ZipWriteOptions)保存ZipPromise<void>-
Loading...
\ No newline at end of file +}

API

ZipService

成员说明类型默认值
read(fileOrUrl: File | string, options?: JSZip.JSZipLoadOptions)解压Promise<JSZip>-
create()创建 Zip 实例,用于创建压缩文件Promise<JSZip>-
pushUrl(zip: JSZip, path: string, url: string)下载URL资源并写入 zipPromise<void>-
save(zip: JSZip, options?: ZipWriteOptions)保存ZipPromise<void>-
Loading...
\ No newline at end of file diff --git a/components/zip/zh/index.html b/components/zip/zh/index.html index 97d772184..6d50a6d0a 100644 --- a/components/zip/zh/index.html +++ b/components/zip/zh/index.html @@ -117,4 +117,4 @@ } ); } -}

API

ZipService

成员说明类型默认值
read(fileOrUrl: File | string, options?: JSZip.JSZipLoadOptions)解压Promise<JSZip>-
create()创建 Zip 实例,用于创建压缩文件Promise<JSZip>-
pushUrl(zip: JSZip, path: string, url: string)下载URL资源并写入 zipPromise<void>-
save(zip: JSZip, options?: ZipWriteOptions)保存ZipPromise<void>-
onboarding 用户引导流程 图表 G2
Loading...
\ No newline at end of file +}

API

ZipService

成员说明类型默认值
read(fileOrUrl: File | string, options?: JSZip.JSZipLoadOptions)解压Promise<JSZip>-
create()创建 Zip 实例,用于创建压缩文件Promise<JSZip>-
pushUrl(zip: JSZip, path: string, url: string)下载URL资源并写入 zipPromise<void>-
save(zip: JSZip, options?: ZipWriteOptions)保存ZipPromise<void>-
onboarding 用户引导流程 图表 G2
Loading...
\ No newline at end of file diff --git a/dev/demo/index.html b/dev/demo/index.html index 56f386026..d1cd90127 100644 --- a/dev/demo/index.html +++ b/dev/demo/index.html @@ -80,7 +80,7 @@ } - + \ No newline at end of file diff --git a/dev/home/index.html b/dev/home/index.html index 3d3a89e09..b3c7cfb2d 100644 --- a/dev/home/index.html +++ b/dev/home/index.html @@ -219,7 +219,7 @@ } - +
@@ -258,7 +258,7 @@

主题色

设置

-
+
高 diff --git a/dev/index.html b/dev/index.html index 3479a1a16..066a03cda 100644 --- a/dev/index.html +++ b/dev/index.html @@ -377,7 +377,7 @@

社区

} - + \ No newline at end of file diff --git a/dev/l1/index.html b/dev/l1/index.html index 999c544a8..b1f5505f3 100644 --- a/dev/l1/index.html +++ b/dev/l1/index.html @@ -166,7 +166,7 @@
-

first: "2023-11-26 06:43:16",now: "2023-11-26 06:43:16"

+

first: "2023-11-26 06:57:23",now: "2023-11-26 06:57:23"

id: null

page: { "closed": false, @@ -213,7 +213,7 @@ } - +
diff --git a/dev/l2/index.html b/dev/l2/index.html index e28725017..5bcbd0bff 100644 --- a/dev/l2/index.html +++ b/dev/l2/index.html @@ -166,7 +166,7 @@
-

first: "2023-11-26 06:43:16",now: "2023-11-26 06:43:16"

+

first: "2023-11-26 06:57:23",now: "2023-11-26 06:57:23"

id: null

page: { "closed": false, @@ -213,7 +213,7 @@ } - +
@@ -252,7 +252,7 @@

主题色

设置

-
+
高 diff --git a/dev/l3/index.html b/dev/l3/index.html index 0172276a8..b9bc41947 100644 --- a/dev/l3/index.html +++ b/dev/l3/index.html @@ -166,7 +166,7 @@
-

first: "2023-11-26 06:43:16",now: "2023-11-26 06:43:16"

+

first: "2023-11-26 06:57:23",now: "2023-11-26 06:57:23"

id: null

page: { "closed": false, @@ -213,7 +213,7 @@ } - +
diff --git a/dev/l4/index.html b/dev/l4/index.html index 22810e38d..643e6ee81 100644 --- a/dev/l4/index.html +++ b/dev/l4/index.html @@ -166,7 +166,7 @@
-

first: "2023-11-26 06:43:17",now: "2023-11-26 06:43:17"

+

first: "2023-11-26 06:57:24",now: "2023-11-26 06:57:24"

id: null

page: { "closed": false, @@ -213,7 +213,7 @@ } - +
@@ -252,7 +252,7 @@

主题色

设置

-
+
高 diff --git a/dev/l5/index.html b/dev/l5/index.html index f8f6c43dd..6894755dd 100644 --- a/dev/l5/index.html +++ b/dev/l5/index.html @@ -166,7 +166,7 @@
-

first: "2023-11-26 06:43:18",now: "2023-11-26 06:43:18"

+

first: "2023-11-26 06:57:24",now: "2023-11-26 06:57:24"

id: null

page: { "closed": false, @@ -213,7 +213,7 @@ } - +
diff --git a/dev/l6/index.html b/dev/l6/index.html index 414ff6b37..a32f17812 100644 --- a/dev/l6/index.html +++ b/dev/l6/index.html @@ -166,7 +166,7 @@
-

first: "2023-11-26 06:43:18",now: "2023-11-26 06:43:18"

+

first: "2023-11-26 06:57:25",now: "2023-11-26 06:57:25"

id: null

page: { "closed": false, @@ -213,7 +213,7 @@ } - +
diff --git a/dev/l7/index.html b/dev/l7/index.html index 7b79ceecb..91eb81bb1 100644 --- a/dev/l7/index.html +++ b/dev/l7/index.html @@ -166,7 +166,7 @@
-

first: "2023-11-26 06:43:18",now: "2023-11-26 06:43:18"

+

first: "2023-11-26 06:57:25",now: "2023-11-26 06:57:25"

id: null

page: { "closed": false, @@ -213,7 +213,7 @@ } - +
@@ -252,7 +252,7 @@

主题色

设置

-
+
高 diff --git a/dev/l8/index.html b/dev/l8/index.html index 30a851490..943eafca5 100644 --- a/dev/l8/index.html +++ b/dev/l8/index.html @@ -166,7 +166,7 @@
-

first: "2023-11-26 06:43:19",now: "2023-11-26 06:43:19"

+

first: "2023-11-26 06:57:26",now: "2023-11-26 06:57:26"

id: null

page: { "closed": false, @@ -213,7 +213,7 @@ } - +
@@ -252,7 +252,7 @@

主题色

设置

-
+
高 diff --git a/dev/lazy/index.html b/dev/lazy/index.html index 35a0e57bc..7fb7a4439 100644 --- a/dev/lazy/index.html +++ b/dev/lazy/index.html @@ -166,11 +166,11 @@
-

Lazy Module, "2023-11-26 06:43:20"

+

Lazy Module, "2023-11-26 06:57:27"

Lazy child component

-

first: "2023-11-26 06:43:20",now: "2023-11-26 06:43:20"

+

first: "2023-11-26 06:57:27",now: "2023-11-26 06:57:27"

id: null

page: { "closed": false, @@ -219,7 +219,7 @@

Lazy child component

} - +
@@ -258,7 +258,7 @@

主题色

设置

-
+
高 diff --git a/dev/lazy/p1/index.html b/dev/lazy/p1/index.html index f43cc9317..7fb7a4439 100644 --- a/dev/lazy/p1/index.html +++ b/dev/lazy/p1/index.html @@ -166,11 +166,11 @@
-

Lazy Module, "2023-11-26 06:43:20"

+

Lazy Module, "2023-11-26 06:57:27"

Lazy child component

-

first: "2023-11-26 06:43:20",now: "2023-11-26 06:43:20"

+

first: "2023-11-26 06:57:27",now: "2023-11-26 06:57:27"

id: null

page: { "closed": false, @@ -219,7 +219,7 @@

Lazy child component

} - +
diff --git a/dev/lazy/p2/index.html b/dev/lazy/p2/index.html index 3b29cfc2c..dad18d37a 100644 --- a/dev/lazy/p2/index.html +++ b/dev/lazy/p2/index.html @@ -166,11 +166,11 @@
-

Lazy Module, "2023-11-26 06:43:20"

+

Lazy Module, "2023-11-26 06:57:27"

Lazy child component

-

first: "2023-11-26 06:43:20",now: "2023-11-26 06:43:20"

+

first: "2023-11-26 06:57:27",now: "2023-11-26 06:57:27"

id: null

page: { "closed": false, @@ -219,7 +219,7 @@

Lazy child component

} - +
@@ -258,7 +258,7 @@

主题色

设置

-
+
高 diff --git a/dev/lazy/p3/index.html b/dev/lazy/p3/index.html index df1c98d01..f2a12fa9b 100644 --- a/dev/lazy/p3/index.html +++ b/dev/lazy/p3/index.html @@ -166,11 +166,11 @@
-

Lazy Module, "2023-11-26 06:43:20"

+

Lazy Module, "2023-11-26 06:57:27"

Lazy child component

-

first: "2023-11-26 06:43:20",now: "2023-11-26 06:43:20"

+

first: "2023-11-26 06:57:27",now: "2023-11-26 06:57:27"

id: null

page: { "closed": false, @@ -219,7 +219,7 @@

Lazy child component

} - +
diff --git a/dev/lazy/p4/index.html b/dev/lazy/p4/index.html index aeca3f9ad..9472f523a 100644 --- a/dev/lazy/p4/index.html +++ b/dev/lazy/p4/index.html @@ -166,11 +166,11 @@
-

Lazy Module, "2023-11-26 06:43:22"

+

Lazy Module, "2023-11-26 06:57:28"

Lazy child component

-

first: "2023-11-26 06:43:22",now: "2023-11-26 06:43:22"

+

first: "2023-11-26 06:57:28",now: "2023-11-26 06:57:28"

id: null

page: { "closed": false, @@ -219,7 +219,7 @@

Lazy child component

} - +
@@ -258,7 +258,7 @@

主题色

设置

-
+
高 diff --git a/dev/lazy/p5/index.html b/dev/lazy/p5/index.html index 0ef391f42..2a78d64e5 100644 --- a/dev/lazy/p5/index.html +++ b/dev/lazy/p5/index.html @@ -166,11 +166,11 @@
-

Lazy Module, "2023-11-26 06:43:22"

+

Lazy Module, "2023-11-26 06:57:29"

Lazy child component

-

first: "2023-11-26 06:43:22",now: "2023-11-26 06:43:22"

+

first: "2023-11-26 06:57:29",now: "2023-11-26 06:57:29"

id: null

page: { "closed": false, @@ -219,10 +219,10 @@

Lazy child component

} - + -
+

主题色

@@ -258,7 +258,7 @@

主题色

设置

-
+
高 diff --git a/dev/list/index.html b/dev/list/index.html index 76d754c3b..94b80803c 100644 --- a/dev/list/index.html +++ b/dev/list/index.html @@ -167,12 +167,12 @@

Layout

-

first: "2023-11-26 06:43:22",now: "2023-11-26 06:43:22"

+

first: "2023-11-26 06:57:29",now: "2023-11-26 06:57:29"


List

-

first: "2023-11-26 06:43:22",now: "2023-11-26 06:43:22"

+

first: "2023-11-26 06:57:29",now: "2023-11-26 06:57:29"

id: null

page: { "closed": false, @@ -216,7 +216,7 @@

List

} - +
diff --git a/dev/list/item/index.html b/dev/list/item/index.html index f1dcb03ff..763f9a603 100644 --- a/dev/list/item/index.html +++ b/dev/list/item/index.html @@ -167,12 +167,12 @@

Layout

-

first: "2023-11-26 06:43:22",now: "2023-11-26 06:43:22"

+

first: "2023-11-26 06:57:29",now: "2023-11-26 06:57:29"


List Item

-

first: "2023-11-26 06:43:22",now: "2023-11-26 06:43:22"

+

first: "2023-11-26 06:57:29",now: "2023-11-26 06:57:29"

id: null

page: { "closed": false, @@ -221,10 +221,10 @@

List Item

} - + -
+

主题色

@@ -260,7 +260,7 @@

主题色

设置

-
+
高 diff --git a/dev/login/index.html b/dev/login/index.html index dfca1fbf8..ac87a2de0 100644 --- a/dev/login/index.html +++ b/dev/login/index.html @@ -166,7 +166,7 @@
-

first: "2023-11-26 06:43:19",now: "2023-11-26 06:43:19"

+

first: "2023-11-26 06:57:26",now: "2023-11-26 06:57:26"

id: null

page: { "closed": false, @@ -213,7 +213,7 @@ } - +
diff --git a/docs/acl/en/index.html b/docs/acl/en/index.html index f257ab58c..db71660be 100644 --- a/docs/acl/en/index.html +++ b/docs/acl/en/index.html @@ -1 +1 @@ -Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

ACL

Loading...
\ No newline at end of file +Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

ACL

Loading...
\ No newline at end of file diff --git a/docs/acl/zh/index.html b/docs/acl/zh/index.html index f257ab58c..db71660be 100644 --- a/docs/acl/zh/index.html +++ b/docs/acl/zh/index.html @@ -1 +1 @@ -Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

ACL

Loading...
\ No newline at end of file +Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

ACL

Loading...
\ No newline at end of file diff --git a/docs/architecture/en/index.html b/docs/architecture/en/index.html index e477fad97..b5b8d44bc 100644 --- a/docs/architecture/en/index.html +++ b/docs/architecture/en/index.html @@ -21,4 +21,4 @@ │   ├── assets # 本地静态资源 │   ├── environments # 环境变量配置 │   ├── styles # 样式目录 -└── └── style.less # 样式引导入口

以下是针对各个目录及文件说明及使用目的:

名称描述
angular.jsonAngular 工作区及项目的配置文件,参考Angular文档
_mockMock 数据规则目录,若你通过 命令行工具 创建项目时可以指定 --mock 参数决定是否需要 Mock 功能
src/app/core/index.ts一些核心业务服务(例如:消息、数据访问等)
src/app/core/i18n国际化数据加载及处理相关类,若你通过 命令行工具 创建项目时可以指定 -di 参数决定是否需要国际化支持
src/app/core/net默认拦截器,你可以在这里统一处理请求参数、请求异常、业务异常等动作
src/app/core/startup/startup.service.ts当你需要在 Angular 启动前执行一些远程数据(例如:应用信息、用户信息等)时非常有用
src/app/layout布局目录,包含基础布局、空白布局、用户登录布局
src/app/routes业务模块,你的所有业务代码都将在这里
src/app/shared/index.ts一些高频率共享组件的集合,指当你需要针对整个业务模块都需要使用的一些第三方模块、自定义组件、自定义指令,都应该存在这里。除此之外,针对 @delon & NG-ZORRO 分别构建了 shared-delon.module.tsshared-zorro.module.ts 两种次级共享模块的导入。
src/app/app.config.ts项目全局配置项
src/environments应用环境变量,包含以下值:SERVER_URL 所有HTTP请求的前缀;production 是否生产环境;useHash 路由是否useHash模式
Loading...
\ No newline at end of file +└── └── style.less # 样式引导入口

以下是针对各个目录及文件说明及使用目的:

名称描述
angular.jsonAngular 工作区及项目的配置文件,参考Angular文档
_mockMock 数据规则目录,若你通过 命令行工具 创建项目时可以指定 --mock 参数决定是否需要 Mock 功能
src/app/core/index.ts一些核心业务服务(例如:消息、数据访问等)
src/app/core/i18n国际化数据加载及处理相关类,若你通过 命令行工具 创建项目时可以指定 -di 参数决定是否需要国际化支持
src/app/core/net默认拦截器,你可以在这里统一处理请求参数、请求异常、业务异常等动作
src/app/core/startup/startup.service.ts当你需要在 Angular 启动前执行一些远程数据(例如:应用信息、用户信息等)时非常有用
src/app/layout布局目录,包含基础布局、空白布局、用户登录布局
src/app/routes业务模块,你的所有业务代码都将在这里
src/app/shared/index.ts一些高频率共享组件的集合,指当你需要针对整个业务模块都需要使用的一些第三方模块、自定义组件、自定义指令,都应该存在这里。除此之外,针对 @delon & NG-ZORRO 分别构建了 shared-delon.module.tsshared-zorro.module.ts 两种次级共享模块的导入。
src/app/app.config.ts项目全局配置项
src/environments应用环境变量,包含以下值:SERVER_URL 所有HTTP请求的前缀;production 是否生产环境;useHash 路由是否useHash模式
Loading...
\ No newline at end of file diff --git a/docs/architecture/zh/index.html b/docs/architecture/zh/index.html index 723c21156..570ca471a 100644 --- a/docs/architecture/zh/index.html +++ b/docs/architecture/zh/index.html @@ -21,4 +21,4 @@ │   ├── assets # 本地静态资源 │   ├── environments # 环境变量配置 │   ├── styles # 样式目录 -└── └── style.less # 样式引导入口

以下是针对各个目录及文件说明及使用目的:

名称描述
angular.jsonAngular 工作区及项目的配置文件,参考Angular文档
_mockMock 数据规则目录,若你通过 命令行工具 创建项目时可以指定 --mock 参数决定是否需要 Mock 功能
src/app/core/index.ts一些核心业务服务(例如:消息、数据访问等)
src/app/core/i18n国际化数据加载及处理相关类,若你通过 命令行工具 创建项目时可以指定 -di 参数决定是否需要国际化支持
src/app/core/net默认拦截器,你可以在这里统一处理请求参数、请求异常、业务异常等动作
src/app/core/startup/startup.service.ts当你需要在 Angular 启动前执行一些远程数据(例如:应用信息、用户信息等)时非常有用
src/app/layout布局目录,包含基础布局、空白布局、用户登录布局
src/app/routes业务模块,你的所有业务代码都将在这里
src/app/shared/index.ts一些高频率共享组件的集合,指当你需要针对整个业务模块都需要使用的一些第三方模块、自定义组件、自定义指令,都应该存在这里。除此之外,针对 @delon & NG-ZORRO 分别构建了 shared-delon.module.tsshared-zorro.module.ts 两种次级共享模块的导入。
src/app/app.config.ts项目全局配置项
src/environments应用环境变量,包含以下值:SERVER_URL 所有HTTP请求的前缀;production 是否生产环境;useHash 路由是否useHash模式
Loading...
\ No newline at end of file +└── └── style.less # 样式引导入口

以下是针对各个目录及文件说明及使用目的:

名称描述
angular.jsonAngular 工作区及项目的配置文件,参考Angular文档
_mockMock 数据规则目录,若你通过 命令行工具 创建项目时可以指定 --mock 参数决定是否需要 Mock 功能
src/app/core/index.ts一些核心业务服务(例如:消息、数据访问等)
src/app/core/i18n国际化数据加载及处理相关类,若你通过 命令行工具 创建项目时可以指定 -di 参数决定是否需要国际化支持
src/app/core/net默认拦截器,你可以在这里统一处理请求参数、请求异常、业务异常等动作
src/app/core/startup/startup.service.ts当你需要在 Angular 启动前执行一些远程数据(例如:应用信息、用户信息等)时非常有用
src/app/layout布局目录,包含基础布局、空白布局、用户登录布局
src/app/routes业务模块,你的所有业务代码都将在这里
src/app/shared/index.ts一些高频率共享组件的集合,指当你需要针对整个业务模块都需要使用的一些第三方模块、自定义组件、自定义指令,都应该存在这里。除此之外,针对 @delon & NG-ZORRO 分别构建了 shared-delon.module.tsshared-zorro.module.ts 两种次级共享模块的导入。
src/app/app.config.ts项目全局配置项
src/environments应用环境变量,包含以下值:SERVER_URL 所有HTTP请求的前缀;production 是否生产环境;useHash 路由是否useHash模式
Loading...
\ No newline at end of file diff --git a/docs/auth/en/index.html b/docs/auth/en/index.html index edf70dc86..37fa7ad52 100644 --- a/docs/auth/en/index.html +++ b/docs/auth/en/index.html @@ -1 +1 @@ -Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

用户认证

Loading...
\ No newline at end of file +Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

用户认证

Loading...
\ No newline at end of file diff --git a/docs/auth/zh/index.html b/docs/auth/zh/index.html index edf70dc86..37fa7ad52 100644 --- a/docs/auth/zh/index.html +++ b/docs/auth/zh/index.html @@ -1 +1 @@ -Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

用户认证

Loading...
\ No newline at end of file +Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

用户认证

Loading...
\ No newline at end of file diff --git a/docs/cache/en/index.html b/docs/cache/en/index.html index e38a23551..ba4fe9819 100644 --- a/docs/cache/en/index.html +++ b/docs/cache/en/index.html @@ -1 +1 @@ -Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

缓存

Loading...
\ No newline at end of file +Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

缓存

Loading...
\ No newline at end of file diff --git a/docs/cache/zh/index.html b/docs/cache/zh/index.html index e38a23551..ba4fe9819 100644 --- a/docs/cache/zh/index.html +++ b/docs/cache/zh/index.html @@ -1 +1 @@ -Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

缓存

Loading...
\ No newline at end of file +Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

缓存

Loading...
\ No newline at end of file diff --git a/docs/changelog/en/index.html b/docs/changelog/en/index.html index 0f27a712a..aa56ce673 100644 --- a/docs/changelog/en/index.html +++ b/docs/changelog/en/index.html @@ -1 +1 @@ -更新日志 - NG-ALAIN

更新日志

NG-ALAIN 严格遵循 Semantic Versioning 2.0.0 语义化版本规范。

发布周期

  • 修订版本号:每周末会进行日常 bugfix 更新。(如果有紧急的 bugfix,则任何时候都可发布)

  • 次版本号:每月发布一个带有新特性的向下兼容的版本。

  • 主版本号:含有破坏性更新和新特性,不在发布周期内。


17.0.0 (2023-11-26)

Breaking Changes

  • refactor(form): 重构低频率小部件为可选导入 (#1668) (8ab0e82), closes #1668

  • build: 移除 networkEnv 插件,使用 nnrm 替代 (#1680) (b7dbc68), closes #1680

  • feat(acl): 移除 forRoot (#1690) (4472d48), closes #1690

Features

  • feat(cli): 支持多重项目下使用 ng add ng-alain (#1664) (e5476e2), closes #1664

  • feat(theme): 新增 provideAlain (#1697) (4311426), closes #1697

  • feat(abc:cell): 新增 provideCellWidgets (#1700) (7ea0daf), closes #1700

  • feat(abc:reuse-tab): 新增 provideReuseTabConfig (#1707) (2f85357), closes #1707

  • feat(abc:st): 新增 provideSTWidgets (#1701) (065316a), closes #1701

  • feat(theme:_httpclient): 新增 timestampSecond 支持 10 位时间戳 (#1670) (051b087), closes #1670

  • feat(theme:pipe:date): 支持全局配置格式化字符串 (#1711) (b3b93fa), closes #1711

  • feat: 新增 provideAlainConfig (#1689) (b9e0fad), closes #1689

  • feat(auth): 新增 provideAuth (#1704) (c0c731b), closes #1704

  • feat(form): 新增 provideSFConfig (#1702) (2404802), closes #1702

  • feat(mock): 新增 mockInterceptor (#1698) (da051b2), closes #1698

  • feat(mock): 支持异步返回,例如 PromiseObservable (#1686) (d7980db), closes #1686

  • feat(mock): 新增 provideDelonMockConfig (#1695) (683ab23), closes #1695

  • feat(testing): 新增 delay function (#1682) (f83ea57), closes #1682

  • build: support pnpm and update yarn to 4 (#1678) (b904b9a), closes #1678

Bug Fixes

  • fix(theme:preloader): 修复启动动画存在懒加载时空白问题 (#1691) (f09c324), closes #1691

  • fix(cli:update): 修复自动追加 @_mock 路径 (#1675) (d014b54), closes #1675

历史版本

历史版本的更新记录可以在 Github 查看。

Loading...
\ No newline at end of file +更新日志 - NG-ALAIN

更新日志

NG-ALAIN 严格遵循 Semantic Versioning 2.0.0 语义化版本规范。

发布周期

  • 修订版本号:每周末会进行日常 bugfix 更新。(如果有紧急的 bugfix,则任何时候都可发布)

  • 次版本号:每月发布一个带有新特性的向下兼容的版本。

  • 主版本号:含有破坏性更新和新特性,不在发布周期内。


17.0.0 (2023-11-26)

Breaking Changes

  • refactor(form): 重构低频率小部件为可选导入 (#1668) (8ab0e82), closes #1668

  • build: 移除 networkEnv 插件,使用 nnrm 替代 (#1680) (b7dbc68), closes #1680

  • feat(acl): 移除 forRoot (#1690) (4472d48), closes #1690

Features

  • feat(cli): 支持多重项目下使用 ng add ng-alain (#1664) (e5476e2), closes #1664

  • feat(theme): 新增 provideAlain (#1697) (4311426), closes #1697

  • feat(abc:cell): 新增 provideCellWidgets (#1700) (7ea0daf), closes #1700

  • feat(abc:reuse-tab): 新增 provideReuseTabConfig (#1707) (2f85357), closes #1707

  • feat(abc:st): 新增 provideSTWidgets (#1701) (065316a), closes #1701

  • feat(theme:_httpclient): 新增 timestampSecond 支持 10 位时间戳 (#1670) (051b087), closes #1670

  • feat(theme:pipe:date): 支持全局配置格式化字符串 (#1711) (b3b93fa), closes #1711

  • feat: 新增 provideAlainConfig (#1689) (b9e0fad), closes #1689

  • feat(auth): 新增 provideAuth (#1704) (c0c731b), closes #1704

  • feat(form): 新增 provideSFConfig (#1702) (2404802), closes #1702

  • feat(mock): 新增 mockInterceptor (#1698) (da051b2), closes #1698

  • feat(mock): 支持异步返回,例如 PromiseObservable (#1686) (d7980db), closes #1686

  • feat(mock): 新增 provideDelonMockConfig (#1695) (683ab23), closes #1695

  • feat(testing): 新增 delay function (#1682) (f83ea57), closes #1682

  • build: support pnpm and update yarn to 4 (#1678) (b904b9a), closes #1678

Bug Fixes

  • fix(theme:preloader): 修复启动动画存在懒加载时空白问题 (#1691) (f09c324), closes #1691

  • fix(cli:update): 修复自动追加 @_mock 路径 (#1675) (d014b54), closes #1675

历史版本

历史版本的更新记录可以在 Github 查看。

Loading...
\ No newline at end of file diff --git a/docs/changelog/zh/index.html b/docs/changelog/zh/index.html index becfa8bbb..d9a058451 100644 --- a/docs/changelog/zh/index.html +++ b/docs/changelog/zh/index.html @@ -1 +1 @@ -更新日志 - NG-ALAIN

更新日志

NG-ALAIN 严格遵循 Semantic Versioning 2.0.0 语义化版本规范。

发布周期

  • 修订版本号:每周末会进行日常 bugfix 更新。(如果有紧急的 bugfix,则任何时候都可发布)

  • 次版本号:每月发布一个带有新特性的向下兼容的版本。

  • 主版本号:含有破坏性更新和新特性,不在发布周期内。


17.0.0 (2023-11-26)

Breaking Changes

  • refactor(form): 重构低频率小部件为可选导入 (#1668) (8ab0e82), closes #1668

  • build: 移除 networkEnv 插件,使用 nnrm 替代 (#1680) (b7dbc68), closes #1680

  • feat(acl): 移除 forRoot (#1690) (4472d48), closes #1690

Features

  • feat(cli): 支持多重项目下使用 ng add ng-alain (#1664) (e5476e2), closes #1664

  • feat(theme): 新增 provideAlain (#1697) (4311426), closes #1697

  • feat(abc:cell): 新增 provideCellWidgets (#1700) (7ea0daf), closes #1700

  • feat(abc:reuse-tab): 新增 provideReuseTabConfig (#1707) (2f85357), closes #1707

  • feat(abc:st): 新增 provideSTWidgets (#1701) (065316a), closes #1701

  • feat(theme:_httpclient): 新增 timestampSecond 支持 10 位时间戳 (#1670) (051b087), closes #1670

  • feat(theme:pipe:date): 支持全局配置格式化字符串 (#1711) (b3b93fa), closes #1711

  • feat: 新增 provideAlainConfig (#1689) (b9e0fad), closes #1689

  • feat(auth): 新增 provideAuth (#1704) (c0c731b), closes #1704

  • feat(form): 新增 provideSFConfig (#1702) (2404802), closes #1702

  • feat(mock): 新增 mockInterceptor (#1698) (da051b2), closes #1698

  • feat(mock): 支持异步返回,例如 PromiseObservable (#1686) (d7980db), closes #1686

  • feat(mock): 新增 provideDelonMockConfig (#1695) (683ab23), closes #1695

  • feat(testing): 新增 delay function (#1682) (f83ea57), closes #1682

  • build: support pnpm and update yarn to 4 (#1678) (b904b9a), closes #1678

Bug Fixes

  • fix(theme:preloader): 修复启动动画存在懒加载时空白问题 (#1691) (f09c324), closes #1691

  • fix(cli:update): 修复自动追加 @_mock 路径 (#1675) (d014b54), closes #1675

历史版本

历史版本的更新记录可以在 Github 查看。

Loading...
\ No newline at end of file +更新日志 - NG-ALAIN

更新日志

NG-ALAIN 严格遵循 Semantic Versioning 2.0.0 语义化版本规范。

发布周期

  • 修订版本号:每周末会进行日常 bugfix 更新。(如果有紧急的 bugfix,则任何时候都可发布)

  • 次版本号:每月发布一个带有新特性的向下兼容的版本。

  • 主版本号:含有破坏性更新和新特性,不在发布周期内。


17.0.0 (2023-11-26)

Breaking Changes

  • refactor(form): 重构低频率小部件为可选导入 (#1668) (8ab0e82), closes #1668

  • build: 移除 networkEnv 插件,使用 nnrm 替代 (#1680) (b7dbc68), closes #1680

  • feat(acl): 移除 forRoot (#1690) (4472d48), closes #1690

Features

  • feat(cli): 支持多重项目下使用 ng add ng-alain (#1664) (e5476e2), closes #1664

  • feat(theme): 新增 provideAlain (#1697) (4311426), closes #1697

  • feat(abc:cell): 新增 provideCellWidgets (#1700) (7ea0daf), closes #1700

  • feat(abc:reuse-tab): 新增 provideReuseTabConfig (#1707) (2f85357), closes #1707

  • feat(abc:st): 新增 provideSTWidgets (#1701) (065316a), closes #1701

  • feat(theme:_httpclient): 新增 timestampSecond 支持 10 位时间戳 (#1670) (051b087), closes #1670

  • feat(theme:pipe:date): 支持全局配置格式化字符串 (#1711) (b3b93fa), closes #1711

  • feat: 新增 provideAlainConfig (#1689) (b9e0fad), closes #1689

  • feat(auth): 新增 provideAuth (#1704) (c0c731b), closes #1704

  • feat(form): 新增 provideSFConfig (#1702) (2404802), closes #1702

  • feat(mock): 新增 mockInterceptor (#1698) (da051b2), closes #1698

  • feat(mock): 支持异步返回,例如 PromiseObservable (#1686) (d7980db), closes #1686

  • feat(mock): 新增 provideDelonMockConfig (#1695) (683ab23), closes #1695

  • feat(testing): 新增 delay function (#1682) (f83ea57), closes #1682

  • build: support pnpm and update yarn to 4 (#1678) (b904b9a), closes #1678

Bug Fixes

  • fix(theme:preloader): 修复启动动画存在懒加载时空白问题 (#1691) (f09c324), closes #1691

  • fix(cli:update): 修复自动追加 @_mock 路径 (#1675) (d014b54), closes #1675

历史版本

历史版本的更新记录可以在 Github 查看。

Loading...
\ No newline at end of file diff --git a/docs/cli/en/index.html b/docs/cli/en/index.html index 48134abc1..079e30b51 100644 --- a/docs/cli/en/index.html +++ b/docs/cli/en/index.html @@ -1 +1 @@ -Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

命令行工具

Loading...
\ No newline at end of file +Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

命令行工具

Loading...
\ No newline at end of file diff --git a/docs/cli/zh/index.html b/docs/cli/zh/index.html index 48134abc1..079e30b51 100644 --- a/docs/cli/zh/index.html +++ b/docs/cli/zh/index.html @@ -1 +1 @@ -Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

命令行工具

Loading...
\ No newline at end of file +Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

命令行工具

Loading...
\ No newline at end of file diff --git a/docs/contributing/en/index.html b/docs/contributing/en/index.html index 16e88c663..e66fee2e1 100644 --- a/docs/contributing/en/index.html +++ b/docs/contributing/en/index.html @@ -1 +1 @@ -贡献指南 - NG-ALAIN

贡献指南

这篇指南会指导你如何为 NG-ALAIN 贡献一份自己的力量,请在你要提 issue 或者 pull request 之前花几分钟来阅读一遍这篇指南。

行为准则

我们有一份 行为准则,希望所有的贡献者都能遵守,请花时间阅读一遍全文以确保你能明白哪些是可以做的,哪些是不可以做的。

透明的开发

我们所有的工作都会放在 ng-alaindelon 上。不管是核心团队的成员还是外部贡献者的 pull request 都需要经过同样流程的 review。

Bugs

我们使用 GitHub Issues 来做 bug 追踪。如果你想要你发现的 bug 被快速解决,最好的办法就是按照 issues 呈现的模板认真填写每一项;并且能使用这个 模板 来提供重现。

在你报告一个 bug 之前,请先确保已经搜索过已有的 issue 和阅读了 文档站

新增功能

如果你有改进我们的 API 或者新增功能的想法,同样按照 issues 呈现的模板认真填写每一项。

第一次贡献

如果你还不清楚怎么在 GitHub 上提 Pull Request ,可以阅读下面这篇文章来学习:

如何优雅地在 GitHub 上贡献代码

为了能帮助你开始你的第一次尝试,我们用 good first issues 标记了一些比较比较容易修复的 bug 和小功能。这些 issue 可以很好地做为你的首次尝试。

如果你打算开始处理一个 issue,请先检查一下 issue 下面的留言以确保没有别人正在处理这个 issue。如果当前没有人在处理的话你可以留言告知其他人你将会处理这个 issue,以免别人重复劳动。

如果之前有人留言说会处理这个 issue 但是一两个星期都没有动静,那么你也可以接手处理这个 issue,当然还是需要留言告知其他人。

Pull Request

NG-ALAIN 会关注所有的 pull request,我们会 review 以及合并你的代码,也有可能要求你做一些修改或者告诉你我们为什么不能接受这样的修改。

在你发送 Pull Request 之前,请确认你是按照下面的步骤来做的:

  1. 在项目根目录下运行了 yarn

  2. 如果你修复了一个 bug 或者新增了一个功能,请确保写了相应的测试,这很重要。

  3. 确认所有的测试都是通过的 npm run test

  4. 确保你的代码通过了 lint 检查 npm run lint。小贴士: Lint 会在你 git commit 的时候自动运行。

  5. 确保你的代码在提交之前经过了正确的 Rebase

  6. 确保你的提交符合规范

开发流程

在你 clone 了 ng-alain 或 delon 的代码并且使用 yarn 安装完依赖后,你还可以运行下面几个常用的命令:

delon 基建类库

  1. npm run site 在本地运行 ng-alain.com 网站

  2. npm run lint 检查 packages 代码风格

  3. npm run test 运行 packages 所有类库测试

  4. npm run release 构建 packages 发布包

ng-alain 脚手架

  1. npm start 在本地运行脚手架

  2. npm run lint 检查代码风格

  3. npm test 运行测试

  4. npm run build 构建生产环境网站

Loading...
\ No newline at end of file +贡献指南 - NG-ALAIN

贡献指南

这篇指南会指导你如何为 NG-ALAIN 贡献一份自己的力量,请在你要提 issue 或者 pull request 之前花几分钟来阅读一遍这篇指南。

行为准则

我们有一份 行为准则,希望所有的贡献者都能遵守,请花时间阅读一遍全文以确保你能明白哪些是可以做的,哪些是不可以做的。

透明的开发

我们所有的工作都会放在 ng-alaindelon 上。不管是核心团队的成员还是外部贡献者的 pull request 都需要经过同样流程的 review。

Bugs

我们使用 GitHub Issues 来做 bug 追踪。如果你想要你发现的 bug 被快速解决,最好的办法就是按照 issues 呈现的模板认真填写每一项;并且能使用这个 模板 来提供重现。

在你报告一个 bug 之前,请先确保已经搜索过已有的 issue 和阅读了 文档站

新增功能

如果你有改进我们的 API 或者新增功能的想法,同样按照 issues 呈现的模板认真填写每一项。

第一次贡献

如果你还不清楚怎么在 GitHub 上提 Pull Request ,可以阅读下面这篇文章来学习:

如何优雅地在 GitHub 上贡献代码

为了能帮助你开始你的第一次尝试,我们用 good first issues 标记了一些比较比较容易修复的 bug 和小功能。这些 issue 可以很好地做为你的首次尝试。

如果你打算开始处理一个 issue,请先检查一下 issue 下面的留言以确保没有别人正在处理这个 issue。如果当前没有人在处理的话你可以留言告知其他人你将会处理这个 issue,以免别人重复劳动。

如果之前有人留言说会处理这个 issue 但是一两个星期都没有动静,那么你也可以接手处理这个 issue,当然还是需要留言告知其他人。

Pull Request

NG-ALAIN 会关注所有的 pull request,我们会 review 以及合并你的代码,也有可能要求你做一些修改或者告诉你我们为什么不能接受这样的修改。

在你发送 Pull Request 之前,请确认你是按照下面的步骤来做的:

  1. 在项目根目录下运行了 yarn

  2. 如果你修复了一个 bug 或者新增了一个功能,请确保写了相应的测试,这很重要。

  3. 确认所有的测试都是通过的 npm run test

  4. 确保你的代码通过了 lint 检查 npm run lint。小贴士: Lint 会在你 git commit 的时候自动运行。

  5. 确保你的代码在提交之前经过了正确的 Rebase

  6. 确保你的提交符合规范

开发流程

在你 clone 了 ng-alain 或 delon 的代码并且使用 yarn 安装完依赖后,你还可以运行下面几个常用的命令:

delon 基建类库

  1. npm run site 在本地运行 ng-alain.com 网站

  2. npm run lint 检查 packages 代码风格

  3. npm run test 运行 packages 所有类库测试

  4. npm run release 构建 packages 发布包

ng-alain 脚手架

  1. npm start 在本地运行脚手架

  2. npm run lint 检查代码风格

  3. npm test 运行测试

  4. npm run build 构建生产环境网站

Loading...
\ No newline at end of file diff --git a/docs/contributing/zh/index.html b/docs/contributing/zh/index.html index 6150ff963..2d61eb47b 100644 --- a/docs/contributing/zh/index.html +++ b/docs/contributing/zh/index.html @@ -1 +1 @@ -贡献指南 - NG-ALAIN

贡献指南

这篇指南会指导你如何为 NG-ALAIN 贡献一份自己的力量,请在你要提 issue 或者 pull request 之前花几分钟来阅读一遍这篇指南。

行为准则

我们有一份 行为准则,希望所有的贡献者都能遵守,请花时间阅读一遍全文以确保你能明白哪些是可以做的,哪些是不可以做的。

透明的开发

我们所有的工作都会放在 ng-alaindelon 上。不管是核心团队的成员还是外部贡献者的 pull request 都需要经过同样流程的 review。

Bugs

我们使用 GitHub Issues 来做 bug 追踪。如果你想要你发现的 bug 被快速解决,最好的办法就是按照 issues 呈现的模板认真填写每一项;并且能使用这个 模板 来提供重现。

在你报告一个 bug 之前,请先确保已经搜索过已有的 issue 和阅读了 文档站

新增功能

如果你有改进我们的 API 或者新增功能的想法,同样按照 issues 呈现的模板认真填写每一项。

第一次贡献

如果你还不清楚怎么在 GitHub 上提 Pull Request ,可以阅读下面这篇文章来学习:

如何优雅地在 GitHub 上贡献代码

为了能帮助你开始你的第一次尝试,我们用 good first issues 标记了一些比较比较容易修复的 bug 和小功能。这些 issue 可以很好地做为你的首次尝试。

如果你打算开始处理一个 issue,请先检查一下 issue 下面的留言以确保没有别人正在处理这个 issue。如果当前没有人在处理的话你可以留言告知其他人你将会处理这个 issue,以免别人重复劳动。

如果之前有人留言说会处理这个 issue 但是一两个星期都没有动静,那么你也可以接手处理这个 issue,当然还是需要留言告知其他人。

Pull Request

NG-ALAIN 会关注所有的 pull request,我们会 review 以及合并你的代码,也有可能要求你做一些修改或者告诉你我们为什么不能接受这样的修改。

在你发送 Pull Request 之前,请确认你是按照下面的步骤来做的:

  1. 在项目根目录下运行了 yarn

  2. 如果你修复了一个 bug 或者新增了一个功能,请确保写了相应的测试,这很重要。

  3. 确认所有的测试都是通过的 npm run test

  4. 确保你的代码通过了 lint 检查 npm run lint。小贴士: Lint 会在你 git commit 的时候自动运行。

  5. 确保你的代码在提交之前经过了正确的 Rebase

  6. 确保你的提交符合规范

开发流程

在你 clone 了 ng-alain 或 delon 的代码并且使用 yarn 安装完依赖后,你还可以运行下面几个常用的命令:

delon 基建类库

  1. npm run site 在本地运行 ng-alain.com 网站

  2. npm run lint 检查 packages 代码风格

  3. npm run test 运行 packages 所有类库测试

  4. npm run release 构建 packages 发布包

ng-alain 脚手架

  1. npm start 在本地运行脚手架

  2. npm run lint 检查代码风格

  3. npm test 运行测试

  4. npm run build 构建生产环境网站

Loading...
\ No newline at end of file +贡献指南 - NG-ALAIN

贡献指南

这篇指南会指导你如何为 NG-ALAIN 贡献一份自己的力量,请在你要提 issue 或者 pull request 之前花几分钟来阅读一遍这篇指南。

行为准则

我们有一份 行为准则,希望所有的贡献者都能遵守,请花时间阅读一遍全文以确保你能明白哪些是可以做的,哪些是不可以做的。

透明的开发

我们所有的工作都会放在 ng-alaindelon 上。不管是核心团队的成员还是外部贡献者的 pull request 都需要经过同样流程的 review。

Bugs

我们使用 GitHub Issues 来做 bug 追踪。如果你想要你发现的 bug 被快速解决,最好的办法就是按照 issues 呈现的模板认真填写每一项;并且能使用这个 模板 来提供重现。

在你报告一个 bug 之前,请先确保已经搜索过已有的 issue 和阅读了 文档站

新增功能

如果你有改进我们的 API 或者新增功能的想法,同样按照 issues 呈现的模板认真填写每一项。

第一次贡献

如果你还不清楚怎么在 GitHub 上提 Pull Request ,可以阅读下面这篇文章来学习:

如何优雅地在 GitHub 上贡献代码

为了能帮助你开始你的第一次尝试,我们用 good first issues 标记了一些比较比较容易修复的 bug 和小功能。这些 issue 可以很好地做为你的首次尝试。

如果你打算开始处理一个 issue,请先检查一下 issue 下面的留言以确保没有别人正在处理这个 issue。如果当前没有人在处理的话你可以留言告知其他人你将会处理这个 issue,以免别人重复劳动。

如果之前有人留言说会处理这个 issue 但是一两个星期都没有动静,那么你也可以接手处理这个 issue,当然还是需要留言告知其他人。

Pull Request

NG-ALAIN 会关注所有的 pull request,我们会 review 以及合并你的代码,也有可能要求你做一些修改或者告诉你我们为什么不能接受这样的修改。

在你发送 Pull Request 之前,请确认你是按照下面的步骤来做的:

  1. 在项目根目录下运行了 yarn

  2. 如果你修复了一个 bug 或者新增了一个功能,请确保写了相应的测试,这很重要。

  3. 确认所有的测试都是通过的 npm run test

  4. 确保你的代码通过了 lint 检查 npm run lint。小贴士: Lint 会在你 git commit 的时候自动运行。

  5. 确保你的代码在提交之前经过了正确的 Rebase

  6. 确保你的提交符合规范

开发流程

在你 clone 了 ng-alain 或 delon 的代码并且使用 yarn 安装完依赖后,你还可以运行下面几个常用的命令:

delon 基建类库

  1. npm run site 在本地运行 ng-alain.com 网站

  2. npm run lint 检查 packages 代码风格

  3. npm run test 运行 packages 所有类库测试

  4. npm run release 构建 packages 发布包

ng-alain 脚手架

  1. npm start 在本地运行脚手架

  2. npm run lint 检查代码风格

  3. npm test 运行测试

  4. npm run build 构建生产环境网站

Loading...
\ No newline at end of file diff --git a/docs/deploy/en/index.html b/docs/deploy/en/index.html index b3cbc1bd5..c0be664ba 100644 --- a/docs/deploy/en/index.html +++ b/docs/deploy/en/index.html @@ -16,4 +16,4 @@ }; // router -app.get('home', '/*', 'home.index');

有关更多 Angular 路由相当问题,请阅读官网

Docker

NG-ALAIN 提供了一个基于 nginx WEB服务完整的构建Angular项目的镜像文件。其中 nginx 是采用 nginx:1.13.5-alpine 的镜像,基本上可以满足 NG-ALAIN 项目的良好运行环境,倘若有更多需求,你可以利用 docker run 轻易的指定 nginx.conf

1、构建镜像

根据 Dockerfile 构建一个完整的 NG-ALAIN 所需要的运行环境的镜像。

docker build -t ng-alain .

2、运行

基于compose(推荐)

docker-compose up -d

其细节可以通过 docker-compose.yml 修改。

基于命令式

docker run -d -p 80:80 --name alain ng-alain

最后你可以访问:http://localhost/

3、关于SSL

NG-ALAIN 提供的 Dockerfile 文件相对于比较简单,而实际项目中最常用的是对SSL的支持。

因此,默认情况下你可以将证书放置 _nginx/ssl 目录下,并开启 _nginx/default.conf 相关SSL配置项即可。

最后,增加 docker-compose.ymlports 节点:

- 443:443

容器部署

参考 Angular 容器部署

Loading...
\ No newline at end of file +app.get('home', '/*', 'home.index');

有关更多 Angular 路由相当问题,请阅读官网

Docker

NG-ALAIN 提供了一个基于 nginx WEB服务完整的构建Angular项目的镜像文件。其中 nginx 是采用 nginx:1.13.5-alpine 的镜像,基本上可以满足 NG-ALAIN 项目的良好运行环境,倘若有更多需求,你可以利用 docker run 轻易的指定 nginx.conf

1、构建镜像

根据 Dockerfile 构建一个完整的 NG-ALAIN 所需要的运行环境的镜像。

docker build -t ng-alain .

2、运行

基于compose(推荐)

docker-compose up -d

其细节可以通过 docker-compose.yml 修改。

基于命令式

docker run -d -p 80:80 --name alain ng-alain

最后你可以访问:http://localhost/

3、关于SSL

NG-ALAIN 提供的 Dockerfile 文件相对于比较简单,而实际项目中最常用的是对SSL的支持。

因此,默认情况下你可以将证书放置 _nginx/ssl 目录下,并开启 _nginx/default.conf 相关SSL配置项即可。

最后,增加 docker-compose.ymlports 节点:

- 443:443

容器部署

参考 Angular 容器部署

Loading...
\ No newline at end of file diff --git a/docs/deploy/zh/index.html b/docs/deploy/zh/index.html index 1709b541b..95cf13dad 100644 --- a/docs/deploy/zh/index.html +++ b/docs/deploy/zh/index.html @@ -16,4 +16,4 @@ }; // router -app.get('home', '/*', 'home.index');

有关更多 Angular 路由相当问题,请阅读官网

Docker

NG-ALAIN 提供了一个基于 nginx WEB服务完整的构建Angular项目的镜像文件。其中 nginx 是采用 nginx:1.13.5-alpine 的镜像,基本上可以满足 NG-ALAIN 项目的良好运行环境,倘若有更多需求,你可以利用 docker run 轻易的指定 nginx.conf

1、构建镜像

根据 Dockerfile 构建一个完整的 NG-ALAIN 所需要的运行环境的镜像。

docker build -t ng-alain .

2、运行

基于compose(推荐)

docker-compose up -d

其细节可以通过 docker-compose.yml 修改。

基于命令式

docker run -d -p 80:80 --name alain ng-alain

最后你可以访问:http://localhost/

3、关于SSL

NG-ALAIN 提供的 Dockerfile 文件相对于比较简单,而实际项目中最常用的是对SSL的支持。

因此,默认情况下你可以将证书放置 _nginx/ssl 目录下,并开启 _nginx/default.conf 相关SSL配置项即可。

最后,增加 docker-compose.ymlports 节点:

- 443:443

容器部署

参考 Angular 容器部署

Loading...
\ No newline at end of file +app.get('home', '/*', 'home.index');

有关更多 Angular 路由相当问题,请阅读官网

Docker

NG-ALAIN 提供了一个基于 nginx WEB服务完整的构建Angular项目的镜像文件。其中 nginx 是采用 nginx:1.13.5-alpine 的镜像,基本上可以满足 NG-ALAIN 项目的良好运行环境,倘若有更多需求,你可以利用 docker run 轻易的指定 nginx.conf

1、构建镜像

根据 Dockerfile 构建一个完整的 NG-ALAIN 所需要的运行环境的镜像。

docker build -t ng-alain .

2、运行

基于compose(推荐)

docker-compose up -d

其细节可以通过 docker-compose.yml 修改。

基于命令式

docker run -d -p 80:80 --name alain ng-alain

最后你可以访问:http://localhost/

3、关于SSL

NG-ALAIN 提供的 Dockerfile 文件相对于比较简单,而实际项目中最常用的是对SSL的支持。

因此,默认情况下你可以将证书放置 _nginx/ssl 目录下,并开启 _nginx/default.conf 相关SSL配置项即可。

最后,增加 docker-compose.ymlports 节点:

- 443:443

容器部署

参考 Angular 容器部署

Loading...
\ No newline at end of file diff --git a/docs/faq/en/index.html b/docs/faq/en/index.html index 145b04512..5020544a0 100644 --- a/docs/faq/en/index.html +++ b/docs/faq/en/index.html @@ -456,7 +456,7 @@

社区

} - + \ No newline at end of file diff --git a/docs/faq/zh/index.html b/docs/faq/zh/index.html index f059e5192..31f8f1457 100644 --- a/docs/faq/zh/index.html +++ b/docs/faq/zh/index.html @@ -471,7 +471,7 @@

社区

} - + \ No newline at end of file diff --git a/docs/getting-started/en/index.html b/docs/getting-started/en/index.html index 06d026816..5fab0bca9 100644 --- a/docs/getting-started/en/index.html +++ b/docs/getting-started/en/index.html @@ -9,4 +9,4 @@ cd my-workspace ng g application mgr --style less --routing

如果你想了解 --style--routing 参数,请参考 ng new 文档。

接下来只需要将 NG-ALAIN 添加到 my-project 项目中即可,在 my-project 目录下通过终端窗口中运行:

ng add ng-alain

若多重项目时,需要提供具体的项目名称。

NG-ALAIN 会询问是否需要一些额外的插件,一开始完全可以一路回车,这些插件都是可插拔,后期可以自行添加与移除。

以上只会生成干净的项目,可以直接用于生产环境中。你可能在预览上看到许多示例页,它们全都可以在 Github 查看到源代码,当然也可以通过 Git 克隆代码的形式获得:

git clone --depth=1 https://github.com/ng-alain/ng-alain.git my-project
 cd my-project
-npm install

运行

npm start

启动完成后会打开浏览器访问 http://localhost:4200,若你看到如下页面则代表成功了。

恭喜你,你已经成功部署一个 NG-ALAIN 项目。

支持环境

Edge
Edge
Firefox
Firefox
Chrome
Chrome
Safari
Safari
Opera
Opera
Electron
Electron
last 2 versionslast 2 versionslast 2 versionslast 2 versionslast 2 versionslast 2 versions

如何贡献

在任何形式的参与前,请先阅读 贡献者文档。如果你希望参与贡献,欢迎 Pull Request,或给我们 报告 Bug

强烈推荐阅读 《提问的智慧》(本指南不提供此项目的实际支持服务!)、《如何向开源社区提问题》《如何有效地报告 Bug》《如何向开源项目提交无法解答的问题》,更好的问题更容易获得帮助。

社区互助

如果您在使用的过程中碰到问题,可以通过下面几个途径寻求帮助,同时我们也鼓励资深用户通过下面的途径给新人提供帮助。

通过 Stack Overflow 或者 Segment Fault 提问时,建议加上 ng-alain 标签。

  1. QQ 群

  2. Segment Fault(中文)

  3. 加入 NG-ALAIN 自助服务群(中文)

捐助

如果你觉得 NG-ALAIN 不错,可以考虑自愿为本站打赏或捐助。

Loading...
\ No newline at end of file +npm install

运行

npm start

启动完成后会打开浏览器访问 http://localhost:4200,若你看到如下页面则代表成功了。

恭喜你,你已经成功部署一个 NG-ALAIN 项目。

支持环境

Edge
Edge
Firefox
Firefox
Chrome
Chrome
Safari
Safari
Opera
Opera
Electron
Electron
last 2 versionslast 2 versionslast 2 versionslast 2 versionslast 2 versionslast 2 versions

如何贡献

在任何形式的参与前,请先阅读 贡献者文档。如果你希望参与贡献,欢迎 Pull Request,或给我们 报告 Bug

强烈推荐阅读 《提问的智慧》(本指南不提供此项目的实际支持服务!)、《如何向开源社区提问题》《如何有效地报告 Bug》《如何向开源项目提交无法解答的问题》,更好的问题更容易获得帮助。

社区互助

如果您在使用的过程中碰到问题,可以通过下面几个途径寻求帮助,同时我们也鼓励资深用户通过下面的途径给新人提供帮助。

通过 Stack Overflow 或者 Segment Fault 提问时,建议加上 ng-alain 标签。

  1. QQ 群

  2. Segment Fault(中文)

  3. 加入 NG-ALAIN 自助服务群(中文)

捐助

如果你觉得 NG-ALAIN 不错,可以考虑自愿为本站打赏或捐助。

Loading...
\ No newline at end of file diff --git a/docs/getting-started/zh/index.html b/docs/getting-started/zh/index.html index 61d9545d6..6baab501a 100644 --- a/docs/getting-started/zh/index.html +++ b/docs/getting-started/zh/index.html @@ -9,4 +9,4 @@ cd my-workspace ng g application mgr --style less --routing

如果你想了解 --style--routing 参数,请参考 ng new 文档。

接下来只需要将 NG-ALAIN 添加到 my-project 项目中即可,在 my-project 目录下通过终端窗口中运行:

ng add ng-alain

若多重项目时,需要提供具体的项目名称。

NG-ALAIN 会询问是否需要一些额外的插件,一开始完全可以一路回车,这些插件都是可插拔,后期可以自行添加与移除。

以上只会生成干净的项目,可以直接用于生产环境中。你可能在预览上看到许多示例页,它们全都可以在 Github 查看到源代码,当然也可以通过 Git 克隆代码的形式获得:

git clone --depth=1 https://github.com/ng-alain/ng-alain.git my-project
 cd my-project
-npm install

运行

npm start

启动完成后会打开浏览器访问 http://localhost:4200,若你看到如下页面则代表成功了。

恭喜你,你已经成功部署一个 NG-ALAIN 项目。

支持环境

Edge
Edge
Firefox
Firefox
Chrome
Chrome
Safari
Safari
Opera
Opera
Electron
Electron
last 2 versionslast 2 versionslast 2 versionslast 2 versionslast 2 versionslast 2 versions

如何贡献

在任何形式的参与前,请先阅读 贡献者文档。如果你希望参与贡献,欢迎 Pull Request,或给我们 报告 Bug

强烈推荐阅读 《提问的智慧》(本指南不提供此项目的实际支持服务!)、《如何向开源社区提问题》《如何有效地报告 Bug》《如何向开源项目提交无法解答的问题》,更好的问题更容易获得帮助。

社区互助

如果您在使用的过程中碰到问题,可以通过下面几个途径寻求帮助,同时我们也鼓励资深用户通过下面的途径给新人提供帮助。

通过 Stack Overflow 或者 Segment Fault 提问时,建议加上 ng-alain 标签。

  1. QQ 群

  2. Segment Fault(中文)

  3. 加入 NG-ALAIN 自助服务群(中文)

捐助

如果你觉得 NG-ALAIN 不错,可以考虑自愿为本站打赏或捐助。

Loading...
\ No newline at end of file +npm install

运行

npm start

启动完成后会打开浏览器访问 http://localhost:4200,若你看到如下页面则代表成功了。

恭喜你,你已经成功部署一个 NG-ALAIN 项目。

支持环境

Edge
Edge
Firefox
Firefox
Chrome
Chrome
Safari
Safari
Opera
Opera
Electron
Electron
last 2 versionslast 2 versionslast 2 versionslast 2 versionslast 2 versionslast 2 versions

如何贡献

在任何形式的参与前,请先阅读 贡献者文档。如果你希望参与贡献,欢迎 Pull Request,或给我们 报告 Bug

强烈推荐阅读 《提问的智慧》(本指南不提供此项目的实际支持服务!)、《如何向开源社区提问题》《如何有效地报告 Bug》《如何向开源项目提交无法解答的问题》,更好的问题更容易获得帮助。

社区互助

如果您在使用的过程中碰到问题,可以通过下面几个途径寻求帮助,同时我们也鼓励资深用户通过下面的途径给新人提供帮助。

通过 Stack Overflow 或者 Segment Fault 提问时,建议加上 ng-alain 标签。

  1. QQ 群

  2. Segment Fault(中文)

  3. 加入 NG-ALAIN 自助服务群(中文)

捐助

如果你觉得 NG-ALAIN 不错,可以考虑自愿为本站打赏或捐助。

Loading...
\ No newline at end of file diff --git a/docs/global-config/en/index.html b/docs/global-config/en/index.html index 3515fff34..42673d7f7 100644 --- a/docs/global-config/en/index.html +++ b/docs/global-config/en/index.html @@ -19,4 +19,4 @@ providers: [ provideAlain({ config: alainConfig, defaultLang, icons: [...ICONS_AUTO, ...ICONS] }) ] -};

这些全局配置项将会被注入 AlainConfigService 当中并保存。

关于 NG-ZORRO 全局配置项

请参考 NG-ZORRO 官网文档

Loading...
\ No newline at end of file +};

这些全局配置项将会被注入 AlainConfigService 当中并保存。

关于 NG-ZORRO 全局配置项

请参考 NG-ZORRO 官网文档

Loading...
\ No newline at end of file diff --git a/docs/global-config/zh/index.html b/docs/global-config/zh/index.html index 0deea7f8c..4b52992a0 100644 --- a/docs/global-config/zh/index.html +++ b/docs/global-config/zh/index.html @@ -19,4 +19,4 @@ providers: [ provideAlain({ config: alainConfig, defaultLang, icons: [...ICONS_AUTO, ...ICONS] }) ] -};

这些全局配置项将会被注入 AlainConfigService 当中并保存。

关于 NG-ZORRO 全局配置项

请参考 NG-ZORRO 官网文档

Loading...
\ No newline at end of file +};

这些全局配置项将会被注入 AlainConfigService 当中并保存。

关于 NG-ZORRO 全局配置项

请参考 NG-ZORRO 官网文档

Loading...
\ No newline at end of file diff --git a/docs/graph/en/index.html b/docs/graph/en/index.html index 680efaec1..17794ffc9 100644 --- a/docs/graph/en/index.html +++ b/docs/graph/en/index.html @@ -1 +1 @@ -Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

图表

Loading...
\ No newline at end of file +Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

图表

Loading...
\ No newline at end of file diff --git a/docs/graph/zh/index.html b/docs/graph/zh/index.html index 680efaec1..17794ffc9 100644 --- a/docs/graph/zh/index.html +++ b/docs/graph/zh/index.html @@ -1 +1 @@ -Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

图表

Loading...
\ No newline at end of file +Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

图表

Loading...
\ No newline at end of file diff --git a/docs/how-to-start/en/index.html b/docs/how-to-start/en/index.html index 14014dafa..f474f324d 100644 --- a/docs/how-to-start/en/index.html +++ b/docs/how-to-start/en/index.html @@ -42,4 +42,4 @@ { path: 'config', component: ConfigComponent }, ] }, -];

此时,当一个未授权 admin 角色的用户尝试访问 /sys/config 页面时会被跳转至未授权错误页上。

当然还支持粒度有更细操作,比如某个按钮,请参考ACL章节。

拦截网络请求

网络请求是一项非常频繁的工作,如果想优雅的在业务组件内使用网络请求动作的话,那么将服务端URL前缀、异常处理、Token 刷新等操作集中处理是必不可少的,NG-ALAIN 脚手架提供一个 net 文件。它会利用令牌 HttpInterceptorFn 起到一种拦截器的效果。

有关以上集中处理的动作细节,请参考 default.interceptor.ts 文件。

IDE

“工欲善其事,必先利其器是”,NG-ALAIN 脚手架推荐使用 Visual Studio Code IDE,因为 NG-ALAIN 针对 VSCode 增加一些额外的特性,可以更好的帮助你开发。

或者直接使用 NG-ALAIN Extension Pack 套件。

代码片断

Class样式智能提醒

ng-alain 内置了大量的工具集样式(API),安装以下插件可以直接在HTML模板里直接访问到它们。

Loading...
\ No newline at end of file +];

此时,当一个未授权 admin 角色的用户尝试访问 /sys/config 页面时会被跳转至未授权错误页上。

当然还支持粒度有更细操作,比如某个按钮,请参考ACL章节。

拦截网络请求

网络请求是一项非常频繁的工作,如果想优雅的在业务组件内使用网络请求动作的话,那么将服务端URL前缀、异常处理、Token 刷新等操作集中处理是必不可少的,NG-ALAIN 脚手架提供一个 net 文件。它会利用令牌 HttpInterceptorFn 起到一种拦截器的效果。

有关更多细节,请参考 default.interceptor.ts 文件。

IDE

“工欲善其事,必先利其器是”,NG-ALAIN 脚手架推荐使用 Visual Studio Code IDE,因为 NG-ALAIN 针对 VSCode 增加一些额外的特性,可以更好的帮助你开发。

或者直接使用 NG-ALAIN Extension Pack 套件。

代码片断

Class样式智能提醒

ng-alain 内置了大量的工具集样式(API),安装以下插件可以直接在HTML模板里直接访问到它们。

Loading...
\ No newline at end of file diff --git a/docs/how-to-start/zh/index.html b/docs/how-to-start/zh/index.html index af5c663e2..119a342a8 100644 --- a/docs/how-to-start/zh/index.html +++ b/docs/how-to-start/zh/index.html @@ -42,4 +42,4 @@ { path: 'config', component: ConfigComponent }, ] }, -];

此时,当一个未授权 admin 角色的用户尝试访问 /sys/config 页面时会被跳转至未授权错误页上。

当然还支持粒度有更细操作,比如某个按钮,请参考ACL章节。

拦截网络请求

网络请求是一项非常频繁的工作,如果想优雅的在业务组件内使用网络请求动作的话,那么将服务端URL前缀、异常处理、Token 刷新等操作集中处理是必不可少的,NG-ALAIN 脚手架提供一个 net 文件。它会利用令牌 HttpInterceptorFn 起到一种拦截器的效果。

有关以上集中处理的动作细节,请参考 default.interceptor.ts 文件。

IDE

“工欲善其事,必先利其器是”,NG-ALAIN 脚手架推荐使用 Visual Studio Code IDE,因为 NG-ALAIN 针对 VSCode 增加一些额外的特性,可以更好的帮助你开发。

或者直接使用 NG-ALAIN Extension Pack 套件。

代码片断

Class样式智能提醒

ng-alain 内置了大量的工具集样式(API),安装以下插件可以直接在HTML模板里直接访问到它们。

Loading...
\ No newline at end of file +];

此时,当一个未授权 admin 角色的用户尝试访问 /sys/config 页面时会被跳转至未授权错误页上。

当然还支持粒度有更细操作,比如某个按钮,请参考ACL章节。

拦截网络请求

网络请求是一项非常频繁的工作,如果想优雅的在业务组件内使用网络请求动作的话,那么将服务端URL前缀、异常处理、Token 刷新等操作集中处理是必不可少的,NG-ALAIN 脚手架提供一个 net 文件。它会利用令牌 HttpInterceptorFn 起到一种拦截器的效果。

有关更多细节,请参考 default.interceptor.ts 文件。

IDE

“工欲善其事,必先利其器是”,NG-ALAIN 脚手架推荐使用 Visual Studio Code IDE,因为 NG-ALAIN 针对 VSCode 增加一些额外的特性,可以更好的帮助你开发。

或者直接使用 NG-ALAIN Extension Pack 套件。

代码片断

Class样式智能提醒

ng-alain 内置了大量的工具集样式(API),安装以下插件可以直接在HTML模板里直接访问到它们。

Loading...
\ No newline at end of file diff --git a/docs/i18n/en/index.html b/docs/i18n/en/index.html index 279096971..ff28f468e 100644 --- a/docs/i18n/en/index.html +++ b/docs/i18n/en/index.html @@ -97,4 +97,4 @@ { path: ':i18n', component: HomeComponent } ] } -];

其中 :i18n 是参数固定值,可以通过全局配置 paramNameOfUrlGuard 来调整。

Loading...
\ No newline at end of file +];

其中 :i18n 是参数固定值,可以通过全局配置 paramNameOfUrlGuard 来调整。

Loading...
\ No newline at end of file diff --git a/docs/i18n/zh/index.html b/docs/i18n/zh/index.html index feec8432d..d78e81a28 100644 --- a/docs/i18n/zh/index.html +++ b/docs/i18n/zh/index.html @@ -97,4 +97,4 @@ { path: ':i18n', component: HomeComponent } ] } -];

其中 :i18n 是参数固定值,可以通过全局配置 paramNameOfUrlGuard 来调整。

Loading...
\ No newline at end of file +];

其中 :i18n 是参数固定值,可以通过全局配置 paramNameOfUrlGuard 来调整。

Loading...
\ No newline at end of file diff --git a/docs/import/en/index.html b/docs/import/en/index.html index 24f4d3bf9..3debc4573 100644 --- a/docs/import/en/index.html +++ b/docs/import/en/index.html @@ -19,4 +19,4 @@ constructor() { const qr = new QRious(); } -}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/docs/import/zh/index.html b/docs/import/zh/index.html index e3db22fd7..240d23094 100644 --- a/docs/import/zh/index.html +++ b/docs/import/zh/index.html @@ -19,4 +19,4 @@ constructor() { const qr = new QRious(); } -}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 34fd10fe0..2bf62a808 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file +一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file diff --git a/docs/mock/en/index.html b/docs/mock/en/index.html index 4e7933388..bed5c710b 100644 --- a/docs/mock/en/index.html +++ b/docs/mock/en/index.html @@ -1 +1 @@ -Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

Mock

Loading...
\ No newline at end of file +Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

Mock

Loading...
\ No newline at end of file diff --git a/docs/mock/zh/index.html b/docs/mock/zh/index.html index 4e7933388..bed5c710b 100644 --- a/docs/mock/zh/index.html +++ b/docs/mock/zh/index.html @@ -1 +1 @@ -Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

Mock

Loading...
\ No newline at end of file +Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

Mock

Loading...
\ No newline at end of file diff --git a/docs/module/en/index.html b/docs/module/en/index.html index 8091d0bed..7bb6a8621 100644 --- a/docs/module/en/index.html +++ b/docs/module/en/index.html @@ -1 +1 @@ -模块注册指导原则 - NG-ALAIN

模块注册指导原则

一直以来 AppModuleCoreModuleSharedModule 模块使用没有很明确的规范,很容易让产生乱用。Angular模块目标是为了使组件、指令、服务和管道功能块更内聚,并每一个功能区域形成独立的业务领域或实用工具的集合。

1) 分类说明


AppModule

根模块,用于引导 Angular 启动;它非常适合导入一些需要在整个应用到处需要的模块,例如:主题系统、用户主认证模块、权限模块等模块,以及一些全局性HTTP拦截器、国际化服务等。

CoreModule

核心模块只会被导入一次,它等同 AppModule,但我们更应该把它当成一个纯服务类模块,例如:消息、数据访问等。

SharedModule

我们叫它共享模块;它不应该出现 providers,因为 ShareModule 会在所有业务模块中被导入,这会导致服务被覆盖。

NG-ZORRO、@delon/abc、@delon/chart 等从版本11开始由一次性导入改成按需导入,为此 NG-ALAIN 提炼了两个文件 shared-delon.module.tsshared-zorro.module.ts 将一些整个项目经常用到的模块合并成一个叫 SharedModule 模块内,这也就是为什么需要在业务模块内第一时间导入它。虽然这种方式可以减少不必要的导入代码,但同时也会引起编译速度,因此不建议把所有组件都放进 SharedModule 内,尽可能将需要用到的模块三次以上使用才放进这里;否则务必在业务模块内自行导入。

2) 建议


AppModule

导入模块:

  • Angular 模块:BrowserModuleBrowserAnimationsModuleHttpClientModule

  • AlainThemeModule 主题系统

  • AlainAuthModule 用户认证模块

  • AlainACLModule 权限模块

  • 国际化模块

包含服务:

  • Angular 国际化

  • HTTP 拦截器

  • Angular 启动服务

  • ng-zorro-antd 基础组件服务

  • @delon/abc 业务组件服务

作用: 贯穿整个应用的定义。


CoreModule

仅只留 providers 属性。

作用: 一些通用服务,例如:用户消息、HTTP数据访问。


ShareModule

包含定义:

  • 应用通用自定义业务组件

导入模块:

  • Angular 通用模块:CommonModuleFormsModuleRouterModuleReactiveFormsModule

  • ng-zorro-antd 基础组件模块

  • @delon/abc 业务组件模块

  • 第三方通用依赖组件模块

导出所有包含的模块。

不应providers 属性。

作用: 一些通用自定义、第三方组件定义,减少业务模块的导入。


业务模块

业务模块应该包括业务定义模块和路由模块。

模块

导入模块:

不应

  • 导出任何组件

  • 尽可能不要使用 providers 属性

路由模块

只包括路由的 importexports 模块。

Loading...
\ No newline at end of file +模块注册指导原则 - NG-ALAIN

模块注册指导原则

一直以来 AppModuleCoreModuleSharedModule 模块使用没有很明确的规范,很容易让产生乱用。Angular模块目标是为了使组件、指令、服务和管道功能块更内聚,并每一个功能区域形成独立的业务领域或实用工具的集合。

1) 分类说明


AppModule

根模块,用于引导 Angular 启动;它非常适合导入一些需要在整个应用到处需要的模块,例如:主题系统、用户主认证模块、权限模块等模块,以及一些全局性HTTP拦截器、国际化服务等。

CoreModule

核心模块只会被导入一次,它等同 AppModule,但我们更应该把它当成一个纯服务类模块,例如:消息、数据访问等。

SharedModule

我们叫它共享模块;它不应该出现 providers,因为 ShareModule 会在所有业务模块中被导入,这会导致服务被覆盖。

NG-ZORRO、@delon/abc、@delon/chart 等从版本11开始由一次性导入改成按需导入,为此 NG-ALAIN 提炼了两个文件 shared-delon.module.tsshared-zorro.module.ts 将一些整个项目经常用到的模块合并成一个叫 SharedModule 模块内,这也就是为什么需要在业务模块内第一时间导入它。虽然这种方式可以减少不必要的导入代码,但同时也会引起编译速度,因此不建议把所有组件都放进 SharedModule 内,尽可能将需要用到的模块三次以上使用才放进这里;否则务必在业务模块内自行导入。

2) 建议


AppModule

导入模块:

  • Angular 模块:BrowserModuleBrowserAnimationsModuleHttpClientModule

  • AlainThemeModule 主题系统

  • AlainAuthModule 用户认证模块

  • AlainACLModule 权限模块

  • 国际化模块

包含服务:

  • Angular 国际化

  • HTTP 拦截器

  • Angular 启动服务

  • ng-zorro-antd 基础组件服务

  • @delon/abc 业务组件服务

作用: 贯穿整个应用的定义。


CoreModule

仅只留 providers 属性。

作用: 一些通用服务,例如:用户消息、HTTP数据访问。


ShareModule

包含定义:

  • 应用通用自定义业务组件

导入模块:

  • Angular 通用模块:CommonModuleFormsModuleRouterModuleReactiveFormsModule

  • ng-zorro-antd 基础组件模块

  • @delon/abc 业务组件模块

  • 第三方通用依赖组件模块

导出所有包含的模块。

不应providers 属性。

作用: 一些通用自定义、第三方组件定义,减少业务模块的导入。


业务模块

业务模块应该包括业务定义模块和路由模块。

模块

导入模块:

不应

  • 导出任何组件

  • 尽可能不要使用 providers 属性

路由模块

只包括路由的 importexports 模块。

Loading...
\ No newline at end of file diff --git a/docs/module/zh/index.html b/docs/module/zh/index.html index 64da85d5e..9ae789c06 100644 --- a/docs/module/zh/index.html +++ b/docs/module/zh/index.html @@ -1 +1 @@ -模块注册指导原则 - NG-ALAIN

模块注册指导原则

一直以来 AppModuleCoreModuleSharedModule 模块使用没有很明确的规范,很容易让产生乱用。Angular模块目标是为了使组件、指令、服务和管道功能块更内聚,并每一个功能区域形成独立的业务领域或实用工具的集合。

1) 分类说明


AppModule

根模块,用于引导 Angular 启动;它非常适合导入一些需要在整个应用到处需要的模块,例如:主题系统、用户主认证模块、权限模块等模块,以及一些全局性HTTP拦截器、国际化服务等。

CoreModule

核心模块只会被导入一次,它等同 AppModule,但我们更应该把它当成一个纯服务类模块,例如:消息、数据访问等。

SharedModule

我们叫它共享模块;它不应该出现 providers,因为 ShareModule 会在所有业务模块中被导入,这会导致服务被覆盖。

NG-ZORRO、@delon/abc、@delon/chart 等从版本11开始由一次性导入改成按需导入,为此 NG-ALAIN 提炼了两个文件 shared-delon.module.tsshared-zorro.module.ts 将一些整个项目经常用到的模块合并成一个叫 SharedModule 模块内,这也就是为什么需要在业务模块内第一时间导入它。虽然这种方式可以减少不必要的导入代码,但同时也会引起编译速度,因此不建议把所有组件都放进 SharedModule 内,尽可能将需要用到的模块三次以上使用才放进这里;否则务必在业务模块内自行导入。

2) 建议


AppModule

导入模块:

  • Angular 模块:BrowserModuleBrowserAnimationsModuleHttpClientModule

  • AlainThemeModule 主题系统

  • AlainAuthModule 用户认证模块

  • AlainACLModule 权限模块

  • 国际化模块

包含服务:

  • Angular 国际化

  • HTTP 拦截器

  • Angular 启动服务

  • ng-zorro-antd 基础组件服务

  • @delon/abc 业务组件服务

作用: 贯穿整个应用的定义。


CoreModule

仅只留 providers 属性。

作用: 一些通用服务,例如:用户消息、HTTP数据访问。


ShareModule

包含定义:

  • 应用通用自定义业务组件

导入模块:

  • Angular 通用模块:CommonModuleFormsModuleRouterModuleReactiveFormsModule

  • ng-zorro-antd 基础组件模块

  • @delon/abc 业务组件模块

  • 第三方通用依赖组件模块

导出所有包含的模块。

不应providers 属性。

作用: 一些通用自定义、第三方组件定义,减少业务模块的导入。


业务模块

业务模块应该包括业务定义模块和路由模块。

模块

导入模块:

不应

  • 导出任何组件

  • 尽可能不要使用 providers 属性

路由模块

只包括路由的 importexports 模块。

Loading...
\ No newline at end of file +模块注册指导原则 - NG-ALAIN

模块注册指导原则

一直以来 AppModuleCoreModuleSharedModule 模块使用没有很明确的规范,很容易让产生乱用。Angular模块目标是为了使组件、指令、服务和管道功能块更内聚,并每一个功能区域形成独立的业务领域或实用工具的集合。

1) 分类说明


AppModule

根模块,用于引导 Angular 启动;它非常适合导入一些需要在整个应用到处需要的模块,例如:主题系统、用户主认证模块、权限模块等模块,以及一些全局性HTTP拦截器、国际化服务等。

CoreModule

核心模块只会被导入一次,它等同 AppModule,但我们更应该把它当成一个纯服务类模块,例如:消息、数据访问等。

SharedModule

我们叫它共享模块;它不应该出现 providers,因为 ShareModule 会在所有业务模块中被导入,这会导致服务被覆盖。

NG-ZORRO、@delon/abc、@delon/chart 等从版本11开始由一次性导入改成按需导入,为此 NG-ALAIN 提炼了两个文件 shared-delon.module.tsshared-zorro.module.ts 将一些整个项目经常用到的模块合并成一个叫 SharedModule 模块内,这也就是为什么需要在业务模块内第一时间导入它。虽然这种方式可以减少不必要的导入代码,但同时也会引起编译速度,因此不建议把所有组件都放进 SharedModule 内,尽可能将需要用到的模块三次以上使用才放进这里;否则务必在业务模块内自行导入。

2) 建议


AppModule

导入模块:

  • Angular 模块:BrowserModuleBrowserAnimationsModuleHttpClientModule

  • AlainThemeModule 主题系统

  • AlainAuthModule 用户认证模块

  • AlainACLModule 权限模块

  • 国际化模块

包含服务:

  • Angular 国际化

  • HTTP 拦截器

  • Angular 启动服务

  • ng-zorro-antd 基础组件服务

  • @delon/abc 业务组件服务

作用: 贯穿整个应用的定义。


CoreModule

仅只留 providers 属性。

作用: 一些通用服务,例如:用户消息、HTTP数据访问。


ShareModule

包含定义:

  • 应用通用自定义业务组件

导入模块:

  • Angular 通用模块:CommonModuleFormsModuleRouterModuleReactiveFormsModule

  • ng-zorro-antd 基础组件模块

  • @delon/abc 业务组件模块

  • 第三方通用依赖组件模块

导出所有包含的模块。

不应providers 属性。

作用: 一些通用自定义、第三方组件定义,减少业务模块的导入。


业务模块

业务模块应该包括业务定义模块和路由模块。

模块

导入模块:

不应

  • 导出任何组件

  • 尽可能不要使用 providers 属性

路由模块

只包括路由的 importexports 模块。

Loading...
\ No newline at end of file diff --git a/docs/new-component/en/index.html b/docs/new-component/en/index.html index 9e8d914a1..86f7385e0 100644 --- a/docs/new-component/en/index.html +++ b/docs/new-component/en/index.html @@ -47,4 +47,4 @@ ImageWrapperComponent ];

使用

在要使用这个组件的地方,按照组件定义的 API 传入参数,直接使用就好:

<image-wrapper
   src="https://os.alipayobjects.com/rmsportal/mgesTPFxodmIwpi.png"
-  desc="示意图"></image-wrapper>
Loading...
\ No newline at end of file + desc="示意图"></image-wrapper>
Loading...
\ No newline at end of file diff --git a/docs/new-component/zh/index.html b/docs/new-component/zh/index.html index 7ba8dadd7..7bf33f9af 100644 --- a/docs/new-component/zh/index.html +++ b/docs/new-component/zh/index.html @@ -47,4 +47,4 @@ ImageWrapperComponent ];

使用

在要使用这个组件的地方,按照组件定义的 API 传入参数,直接使用就好:

<image-wrapper
   src="https://os.alipayobjects.com/rmsportal/mgesTPFxodmIwpi.png"
-  desc="示意图"></image-wrapper>
Loading...
\ No newline at end of file + desc="示意图"></image-wrapper>
Loading...
\ No newline at end of file diff --git a/docs/new-page/en/index.html b/docs/new-page/en/index.html index 5afacbd45..fcc325ce0 100644 --- a/docs/new-page/en/index.html +++ b/docs/new-page/en/index.html @@ -19,4 +19,4 @@ imports: [RouterModule.forChild(routes)], exports: [RouterModule], }) -export class SysRoutingModule {}

至此,你可以放心在 sys 目录中开始开发像菜单管理、日志、系统配置等业务页面。

二、页面

利用 ng generate(可简写为:ng g) 命令在 sys 目录下创建一个日志列表页:

ng g ng-alain:list log -m=sys

了解更多请参考命令行工具

最终,你可以访问 日志 页面。

当然日志可能是一个非常丰富的信息,可以增加一个以模态框打开的查看页来显示更多详情。

ng g ng-alain:view view -m=sys -t=log

-t=log 表示希望把创建的文件放进至 sys/log/view 下面。

Loading...
\ No newline at end of file +export class SysRoutingModule {}

至此,你可以放心在 sys 目录中开始开发像菜单管理、日志、系统配置等业务页面。

二、页面

利用 ng generate(可简写为:ng g) 命令在 sys 目录下创建一个日志列表页:

ng g ng-alain:list log -m=sys

了解更多请参考命令行工具

最终,你可以访问 日志 页面。

当然日志可能是一个非常丰富的信息,可以增加一个以模态框打开的查看页来显示更多详情。

ng g ng-alain:view view -m=sys -t=log

-t=log 表示希望把创建的文件放进至 sys/log/view 下面。

Loading...
\ No newline at end of file diff --git a/docs/new-page/zh/index.html b/docs/new-page/zh/index.html index 2ca87c5e8..b2854f825 100644 --- a/docs/new-page/zh/index.html +++ b/docs/new-page/zh/index.html @@ -19,4 +19,4 @@ imports: [RouterModule.forChild(routes)], exports: [RouterModule], }) -export class SysRoutingModule {}

至此,你可以放心在 sys 目录中开始开发像菜单管理、日志、系统配置等业务页面。

二、页面

利用 ng generate(可简写为:ng g) 命令在 sys 目录下创建一个日志列表页:

ng g ng-alain:list log -m=sys

了解更多请参考命令行工具

最终,你可以访问 日志 页面。

当然日志可能是一个非常丰富的信息,可以增加一个以模态框打开的查看页来显示更多详情。

ng g ng-alain:view view -m=sys -t=log

-t=log 表示希望把创建的文件放进至 sys/log/view 下面。

Loading...
\ No newline at end of file +export class SysRoutingModule {}

至此,你可以放心在 sys 目录中开始开发像菜单管理、日志、系统配置等业务页面。

二、页面

利用 ng generate(可简写为:ng g) 命令在 sys 目录下创建一个日志列表页:

ng g ng-alain:list log -m=sys

了解更多请参考命令行工具

最终,你可以访问 日志 页面。

当然日志可能是一个非常丰富的信息,可以增加一个以模态框打开的查看页来显示更多详情。

ng g ng-alain:view view -m=sys -t=log

-t=log 表示希望把创建的文件放进至 sys/log/view 下面。

Loading...
\ No newline at end of file diff --git a/docs/performance/en/index.html b/docs/performance/en/index.html index 59c05610f..50e8174b1 100644 --- a/docs/performance/en/index.html +++ b/docs/performance/en/index.html @@ -1 +1 @@ -优化 - NG-ALAIN

优化

包体大小优化

分为JavaScript脚本文件和CSS文件,以下只描述脚本部分,有关CSS文件请参考优化主题系统

注意: 建议始终以业务优先,优化为后的准则,且在开始前对 NG-ALAIN 有一定了解后再进行优化。本章节的优化方案会随着版本的更迭有所变动,有关细节请持续关注。

结构说明

一般来说,构建后有两个文件会比较大:scripts.jsmain.js,而我们优化也主要针对这两项。

scripts.js

它来自是 angular.jsonscripts 节点的集合,因此,这个文件的大小取决于 scripts 节点所引用的第三方组件的大小。

一般来说,当你在使用非 Angular 第三方组件时都应该放在 scripts 下。

main.js

默认使用 ng build 会将所有 @angular/*ng-zorro-antd@delon/* 以及一些第三方 Angular 组件都会被打包进来,除非你使用 --vendor-chunk 参数来分离这些类库。

优化对象

我们知道,Angular Cli 打包出来的资源文件会包含该文件 hashing 值,它像是文件的唯一标识码,若未对该文件进行模块修改都不会产生新的 hashing 值,这确保用户首次下载资源后不管我们如何再次构建用户都无须再一次下载。

事实上,Angular Cli 默认将 --vendor-chunk 主要因素是这些 @angular/* 相对于迭代很快。

根据 NG-ALAIN 的模块注册指导原则,产生的两个 shared-delon.module.tsshared-zorro.module.ts 两个专门针对 @Delon 与 NG-ZORRO 共享次级模块导入的汇总。

@delon/abc@delon/chartng-zorro-antd 三个主要类库都支持次级导入,只选择项目所需要的模块将有效的解决包体大小的问题。

结论

待 NG-ALAIN 提供更好的优化支持后,我们会发布 #684 希望对包体大小有更好的期望结果。

Loading...
\ No newline at end of file +优化 - NG-ALAIN

优化

包体大小优化

分为JavaScript脚本文件和CSS文件,以下只描述脚本部分,有关CSS文件请参考优化主题系统

注意: 建议始终以业务优先,优化为后的准则,且在开始前对 NG-ALAIN 有一定了解后再进行优化。本章节的优化方案会随着版本的更迭有所变动,有关细节请持续关注。

结构说明

一般来说,构建后有两个文件会比较大:scripts.jsmain.js,而我们优化也主要针对这两项。

scripts.js

它来自是 angular.jsonscripts 节点的集合,因此,这个文件的大小取决于 scripts 节点所引用的第三方组件的大小。

一般来说,当你在使用非 Angular 第三方组件时都应该放在 scripts 下。

main.js

默认使用 ng build 会将所有 @angular/*ng-zorro-antd@delon/* 以及一些第三方 Angular 组件都会被打包进来,除非你使用 --vendor-chunk 参数来分离这些类库。

优化对象

我们知道,Angular Cli 打包出来的资源文件会包含该文件 hashing 值,它像是文件的唯一标识码,若未对该文件进行模块修改都不会产生新的 hashing 值,这确保用户首次下载资源后不管我们如何再次构建用户都无须再一次下载。

事实上,Angular Cli 默认将 --vendor-chunk 主要因素是这些 @angular/* 相对于迭代很快。

根据 NG-ALAIN 的模块注册指导原则,产生的两个 shared-delon.module.tsshared-zorro.module.ts 两个专门针对 @Delon 与 NG-ZORRO 共享次级模块导入的汇总。

@delon/abc@delon/chartng-zorro-antd 三个主要类库都支持次级导入,只选择项目所需要的模块将有效的解决包体大小的问题。

结论

待 NG-ALAIN 提供更好的优化支持后,我们会发布 #684 希望对包体大小有更好的期望结果。

Loading...
\ No newline at end of file diff --git a/docs/performance/zh/index.html b/docs/performance/zh/index.html index 923912bc6..f1075b6ee 100644 --- a/docs/performance/zh/index.html +++ b/docs/performance/zh/index.html @@ -1 +1 @@ -优化 - NG-ALAIN

优化

包体大小优化

分为JavaScript脚本文件和CSS文件,以下只描述脚本部分,有关CSS文件请参考优化主题系统

注意: 建议始终以业务优先,优化为后的准则,且在开始前对 NG-ALAIN 有一定了解后再进行优化。本章节的优化方案会随着版本的更迭有所变动,有关细节请持续关注。

结构说明

一般来说,构建后有两个文件会比较大:scripts.jsmain.js,而我们优化也主要针对这两项。

scripts.js

它来自是 angular.jsonscripts 节点的集合,因此,这个文件的大小取决于 scripts 节点所引用的第三方组件的大小。

一般来说,当你在使用非 Angular 第三方组件时都应该放在 scripts 下。

main.js

默认使用 ng build 会将所有 @angular/*ng-zorro-antd@delon/* 以及一些第三方 Angular 组件都会被打包进来,除非你使用 --vendor-chunk 参数来分离这些类库。

优化对象

我们知道,Angular Cli 打包出来的资源文件会包含该文件 hashing 值,它像是文件的唯一标识码,若未对该文件进行模块修改都不会产生新的 hashing 值,这确保用户首次下载资源后不管我们如何再次构建用户都无须再一次下载。

事实上,Angular Cli 默认将 --vendor-chunk 主要因素是这些 @angular/* 相对于迭代很快。

根据 NG-ALAIN 的模块注册指导原则,产生的两个 shared-delon.module.tsshared-zorro.module.ts 两个专门针对 @Delon 与 NG-ZORRO 共享次级模块导入的汇总。

@delon/abc@delon/chartng-zorro-antd 三个主要类库都支持次级导入,只选择项目所需要的模块将有效的解决包体大小的问题。

结论

待 NG-ALAIN 提供更好的优化支持后,我们会发布 #684 希望对包体大小有更好的期望结果。

Loading...
\ No newline at end of file +优化 - NG-ALAIN

优化

包体大小优化

分为JavaScript脚本文件和CSS文件,以下只描述脚本部分,有关CSS文件请参考优化主题系统

注意: 建议始终以业务优先,优化为后的准则,且在开始前对 NG-ALAIN 有一定了解后再进行优化。本章节的优化方案会随着版本的更迭有所变动,有关细节请持续关注。

结构说明

一般来说,构建后有两个文件会比较大:scripts.jsmain.js,而我们优化也主要针对这两项。

scripts.js

它来自是 angular.jsonscripts 节点的集合,因此,这个文件的大小取决于 scripts 节点所引用的第三方组件的大小。

一般来说,当你在使用非 Angular 第三方组件时都应该放在 scripts 下。

main.js

默认使用 ng build 会将所有 @angular/*ng-zorro-antd@delon/* 以及一些第三方 Angular 组件都会被打包进来,除非你使用 --vendor-chunk 参数来分离这些类库。

优化对象

我们知道,Angular Cli 打包出来的资源文件会包含该文件 hashing 值,它像是文件的唯一标识码,若未对该文件进行模块修改都不会产生新的 hashing 值,这确保用户首次下载资源后不管我们如何再次构建用户都无须再一次下载。

事实上,Angular Cli 默认将 --vendor-chunk 主要因素是这些 @angular/* 相对于迭代很快。

根据 NG-ALAIN 的模块注册指导原则,产生的两个 shared-delon.module.tsshared-zorro.module.ts 两个专门针对 @Delon 与 NG-ZORRO 共享次级模块导入的汇总。

@delon/abc@delon/chartng-zorro-antd 三个主要类库都支持次级导入,只选择项目所需要的模块将有效的解决包体大小的问题。

结论

待 NG-ALAIN 提供更好的优化支持后,我们会发布 #684 希望对包体大小有更好的期望结果。

Loading...
\ No newline at end of file diff --git a/docs/server/en/index.html b/docs/server/en/index.html index 6223c7b43..d6ff846c9 100644 --- a/docs/server/en/index.html +++ b/docs/server/en/index.html @@ -5,4 +5,4 @@ target: 'http://192.168.1.100/api', secure: false } -}
  • /api 代理路径,不支持域

  • target 代理目标地址

  • secure 代理目标地址如果是 https 应该设置为 true,反之为 false

  • pathRewrite 重写地址,例如 pathRewrite: {'^/api': '/'} 将前缀 /api 转为 /

  • changeOrigin 将主机标头的 host 更改为目标URL,有些后端会根据其值来判断是否有效,可能需要通过设置 true

  • logLevel 设置为 debug 可以终端显示代理转发的消息

更多使用说明请参考代理到后端服务器,以及配置描述请参考http-proxy-middleware options

常见问题

请求可能被拒绝或直接返回 401 ?

脚手架默认情况下使用了 @delon/authSimpleInterceptor 拦截器,导致在请求过程中若发现无法获取 Token 时会直接返回错误。

用户认证这个过程是中台必备的。

关于无法显示请求日志

从 Angular13 开始远程请求的调试日志将不再终端中显示,若有显示日期需求,可自行参考 How to fix logging for proxy in angular 解决。

Loading...
\ No newline at end of file +}
  • /api 代理路径,不支持域

  • target 代理目标地址

  • secure 代理目标地址如果是 https 应该设置为 true,反之为 false

  • pathRewrite 重写地址,例如 pathRewrite: {'^/api': '/'} 将前缀 /api 转为 /

  • changeOrigin 将主机标头的 host 更改为目标URL,有些后端会根据其值来判断是否有效,可能需要通过设置 true

  • logLevel 设置为 debug 可以终端显示代理转发的消息

更多使用说明请参考代理到后端服务器,以及配置描述请参考http-proxy-middleware options

常见问题

请求可能被拒绝或直接返回 401 ?

脚手架默认情况下使用了 @delon/authSimpleInterceptor 拦截器,导致在请求过程中若发现无法获取 Token 时会直接返回错误。

用户认证这个过程是中台必备的。

关于无法显示请求日志

从 Angular13 开始远程请求的调试日志将不再终端中显示,若有显示日期需求,可自行参考 How to fix logging for proxy in angular 解决。

Loading...
\ No newline at end of file diff --git a/docs/server/zh/index.html b/docs/server/zh/index.html index 839fafbb7..9a2bd945f 100644 --- a/docs/server/zh/index.html +++ b/docs/server/zh/index.html @@ -5,4 +5,4 @@ target: 'http://192.168.1.100/api', secure: false } -}
  • /api 代理路径,不支持域

  • target 代理目标地址

  • secure 代理目标地址如果是 https 应该设置为 true,反之为 false

  • pathRewrite 重写地址,例如 pathRewrite: {'^/api': '/'} 将前缀 /api 转为 /

  • changeOrigin 将主机标头的 host 更改为目标URL,有些后端会根据其值来判断是否有效,可能需要通过设置 true

  • logLevel 设置为 debug 可以终端显示代理转发的消息

更多使用说明请参考代理到后端服务器,以及配置描述请参考http-proxy-middleware options

常见问题

请求可能被拒绝或直接返回 401 ?

脚手架默认情况下使用了 @delon/authSimpleInterceptor 拦截器,导致在请求过程中若发现无法获取 Token 时会直接返回错误。

用户认证这个过程是中台必备的。

关于无法显示请求日志

从 Angular13 开始远程请求的调试日志将不再终端中显示,若有显示日期需求,可自行参考 How to fix logging for proxy in angular 解决。

Loading...
\ No newline at end of file +}
  • /api 代理路径,不支持域

  • target 代理目标地址

  • secure 代理目标地址如果是 https 应该设置为 true,反之为 false

  • pathRewrite 重写地址,例如 pathRewrite: {'^/api': '/'} 将前缀 /api 转为 /

  • changeOrigin 将主机标头的 host 更改为目标URL,有些后端会根据其值来判断是否有效,可能需要通过设置 true

  • logLevel 设置为 debug 可以终端显示代理转发的消息

更多使用说明请参考代理到后端服务器,以及配置描述请参考http-proxy-middleware options

常见问题

请求可能被拒绝或直接返回 401 ?

脚手架默认情况下使用了 @delon/authSimpleInterceptor 拦截器,导致在请求过程中若发现无法获取 Token 时会直接返回错误。

用户认证这个过程是中台必备的。

关于无法显示请求日志

从 Angular13 开始远程请求的调试日志将不再终端中显示,若有显示日期需求,可自行参考 How to fix logging for proxy in angular 解决。

Loading...
\ No newline at end of file diff --git a/docs/ssr/en/index.html b/docs/ssr/en/index.html index 314b702b0..fad623b43 100644 --- a/docs/ssr/en/index.html +++ b/docs/ssr/en/index.html @@ -32,4 +32,4 @@ + { provide: 'RESPONSE', useValue: res }, ], }); - });
Loading...
\ No newline at end of file + });
Loading...
\ No newline at end of file diff --git a/docs/ssr/zh/index.html b/docs/ssr/zh/index.html index 52960f682..bd8995107 100644 --- a/docs/ssr/zh/index.html +++ b/docs/ssr/zh/index.html @@ -32,4 +32,4 @@ + { provide: 'RESPONSE', useValue: res }, ], }); - });
Loading...
\ No newline at end of file + });
Loading...
\ No newline at end of file diff --git a/docs/style-guide/en/index.html b/docs/style-guide/en/index.html index 0ac8439f9..1f623703d 100644 --- a/docs/style-guide/en/index.html +++ b/docs/style-guide/en/index.html @@ -11,4 +11,4 @@ 成员 | 说明 | 类型 | 默认值 ----|------|-----|------ -src | 图片地址 | `string` | -

模块注册

请参数模块注册指导原则

辅助项

ng-alain 配置了一些针对 CLI 选项,以便更好进行编码工作。

CLI

vscode 是编写 Angular 最佳的选择,你可以在项目的任何目录里输入:ng g c list 生成组件的相应的文件。

ng-alain 默认配置了不生成样式文件&单元测试,因此,你会看到生成的只有 .ts.html。这是因为 ng-alain 提供了非常丰富的样式API,在大多数页面中自定义样式并不是刚需的;同时,单元测试也是如此。

当然,你可以很容易在 angular.json 中调整默认配置。

vscode snippets

vscode 是编写 Angular 最佳的选择,自然 NG-ALAIN 也制作了相应 snippets 扩展插件:ng-zorro-vscodeng-alain-vscode

Loading...
\ No newline at end of file +src | 图片地址 | `string` | -

模块注册

请参数模块注册指导原则

辅助项

ng-alain 配置了一些针对 CLI 选项,以便更好进行编码工作。

CLI

vscode 是编写 Angular 最佳的选择,你可以在项目的任何目录里输入:ng g c list 生成组件的相应的文件。

ng-alain 默认配置了不生成样式文件&单元测试,因此,你会看到生成的只有 .ts.html。这是因为 ng-alain 提供了非常丰富的样式API,在大多数页面中自定义样式并不是刚需的;同时,单元测试也是如此。

当然,你可以很容易在 angular.json 中调整默认配置。

vscode snippets

vscode 是编写 Angular 最佳的选择,自然 NG-ALAIN 也制作了相应 snippets 扩展插件:ng-zorro-vscodeng-alain-vscode

Loading...
\ No newline at end of file diff --git a/docs/style-guide/zh/index.html b/docs/style-guide/zh/index.html index c078fa1d4..7341c5b43 100644 --- a/docs/style-guide/zh/index.html +++ b/docs/style-guide/zh/index.html @@ -11,4 +11,4 @@ 成员 | 说明 | 类型 | 默认值 ----|------|-----|------ -src | 图片地址 | `string` | -

模块注册

请参数模块注册指导原则

辅助项

ng-alain 配置了一些针对 CLI 选项,以便更好进行编码工作。

CLI

vscode 是编写 Angular 最佳的选择,你可以在项目的任何目录里输入:ng g c list 生成组件的相应的文件。

ng-alain 默认配置了不生成样式文件&单元测试,因此,你会看到生成的只有 .ts.html。这是因为 ng-alain 提供了非常丰富的样式API,在大多数页面中自定义样式并不是刚需的;同时,单元测试也是如此。

当然,你可以很容易在 angular.json 中调整默认配置。

vscode snippets

vscode 是编写 Angular 最佳的选择,自然 NG-ALAIN 也制作了相应 snippets 扩展插件:ng-zorro-vscodeng-alain-vscode

Loading...
\ No newline at end of file +src | 图片地址 | `string` | -

模块注册

请参数模块注册指导原则

辅助项

ng-alain 配置了一些针对 CLI 选项,以便更好进行编码工作。

CLI

vscode 是编写 Angular 最佳的选择,你可以在项目的任何目录里输入:ng g c list 生成组件的相应的文件。

ng-alain 默认配置了不生成样式文件&单元测试,因此,你会看到生成的只有 .ts.html。这是因为 ng-alain 提供了非常丰富的样式API,在大多数页面中自定义样式并不是刚需的;同时,单元测试也是如此。

当然,你可以很容易在 angular.json 中调整默认配置。

vscode snippets

vscode 是编写 Angular 最佳的选择,自然 NG-ALAIN 也制作了相应 snippets 扩展插件:ng-zorro-vscodeng-alain-vscode

Loading...
\ No newline at end of file diff --git a/docs/theme/en/index.html b/docs/theme/en/index.html index 419532026..387c41dc1 100644 --- a/docs/theme/en/index.html +++ b/docs/theme/en/index.html @@ -1 +1 @@ -Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

主题系统

Loading...
\ No newline at end of file +Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

主题系统

Loading...
\ No newline at end of file diff --git a/docs/theme/zh/index.html b/docs/theme/zh/index.html index 419532026..387c41dc1 100644 --- a/docs/theme/zh/index.html +++ b/docs/theme/zh/index.html @@ -1 +1 @@ -Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

主题系统

Loading...
\ No newline at end of file +Not Page Name - NG-ALAIN
This article has not been translated, hope that your can PR to translated it. Help us!

主题系统

Loading...
\ No newline at end of file diff --git a/docs/upgrade-v17/en/index.html b/docs/upgrade-v17/en/index.html index feab6182a..46da3ad38 100644 --- a/docs/upgrade-v17/en/index.html +++ b/docs/upgrade-v17/en/index.html @@ -1 +1 @@ -升级到 17.0 版本 - NG-ALAIN

升级到 17.0 版本

本指南适用于当前版本 ng-alain >= 16 ; 如果在升级过程中遇到问题,欢迎提出。提问前请阅读 如何向开源社区提问题 如果发现本指南存在遗漏/错误,请指出! 或者你遇到了新的问题并解决了,欢迎补充!

开始之前

  1. 首先确保你 Node.js >= 18.13.0

  2. 创建新的分支,或者使用其他方式备份当前项目

  3. 删除项目下 package-lock.jsonyarn.lock 文件

升级步骤

升级相关依赖

  • 将项目升级到 Angular 16 运行 ng update @angular/core@17 @angular/cli@17 @angular-eslint/schematics@17 ng-zorro-antd@17 ng-alain@17

  • 如果你有单独使用 @angular/cdk 请执行 ng update @angular/cdk@17

  • 如果控制台出现警告消息请按提示修改对应代码

NG-ALAIN脚手架升级全部变更文件,请参考:#2394

可选部分

可选部分的主要工作都是围绕 Standalone 展开,目前 NG-ALAIN 会保留部分DEMO页使用 NgModule 写法。#2442 包含着这部分变动的所有内容。

升级为 Standalone

  • 使用 bootstrapApplication 替代 platformBrowserDynamic

  • 使用 app.config.ts 替代 global-config.module.ts, app.module.ts

其中 layout, dashboard, passport 目录采用 standalone 写法,可根据 #2442 变动自行修改。

DI配置

  • NG-ALAIN 移除掉所有 Module. forRoot 之类的 DI 配置模式,当然为了兼容,依然保留 NgModule 写法

  • 所有DI配置都是 provide* 来维护,更多细节见 app.config.ts

  • 如果您使用第三方但不提供类似 provide 写法时,只需要借助 importProvidersFrom 过渡

HTTP拦截器

  • Angular 17 对拦截器顺序可见有严格的要求,本次升级已经全部修改为 HttpInterceptorFn 写法(细节见 provideHttpClient

  • 若从 NG-ALAIN 16 升级默认为会导入 withInterceptorsFromDi() 用于兼容 HTTP_INTERCEPTORS 写法,但建议尽可能升级新的写法,可参考 #2442

关于 @delon/form

  • 将小部件频率较低的全部转化为可选导入,本次升级时会自动导入所有小部件来保证兼容

Loading...
\ No newline at end of file +升级到 17.0 版本 - NG-ALAIN

升级到 17.0 版本

本指南适用于当前版本 ng-alain >= 16 ; 如果在升级过程中遇到问题,欢迎提出。提问前请阅读 如何向开源社区提问题 如果发现本指南存在遗漏/错误,请指出! 或者你遇到了新的问题并解决了,欢迎补充!

开始之前

  1. 首先确保你 Node.js >= 18.13.0

  2. 创建新的分支,或者使用其他方式备份当前项目

  3. 删除项目下 package-lock.jsonyarn.lock 文件

升级步骤

升级相关依赖

  • 将项目升级到 Angular 16 运行 ng update @angular/core@17 @angular/cli@17 @angular-eslint/schematics@17 ng-zorro-antd@17 ng-alain@17

  • 如果你有单独使用 @angular/cdk 请执行 ng update @angular/cdk@17

  • 如果控制台出现警告消息请按提示修改对应代码

NG-ALAIN脚手架升级全部变更文件,请参考:#2394

可选部分

可选部分的主要工作都是围绕 Standalone 展开,目前 NG-ALAIN 会保留部分DEMO页使用 NgModule 写法。#2442 包含着这部分变动的所有内容。

升级为 Standalone

  • 使用 bootstrapApplication 替代 platformBrowserDynamic

  • 使用 app.config.ts 替代 global-config.module.ts, app.module.ts

其中 layout, dashboard, passport 目录采用 standalone 写法,可根据 #2442 变动自行修改。

DI配置

  • NG-ALAIN 移除掉所有 Module. forRoot 之类的 DI 配置模式,当然为了兼容,依然保留 NgModule 写法

  • 所有DI配置都是 provide* 来维护,更多细节见 app.config.ts

  • 如果您使用第三方但不提供类似 provide 写法时,只需要借助 importProvidersFrom 过渡

HTTP拦截器

  • Angular 17 对拦截器顺序可见有严格的要求,本次升级已经全部修改为 HttpInterceptorFn 写法(细节见 provideHttpClient

  • 若从 NG-ALAIN 16 升级默认为会导入 withInterceptorsFromDi() 用于兼容 HTTP_INTERCEPTORS 写法,但建议尽可能升级新的写法,可参考 #2442

关于 @delon/form

  • 将小部件频率较低的全部转化为可选导入,本次升级时会自动导入所有小部件来保证兼容

Loading...
\ No newline at end of file diff --git a/docs/upgrade-v17/zh/index.html b/docs/upgrade-v17/zh/index.html index b12d9ea4a..351fc7387 100644 --- a/docs/upgrade-v17/zh/index.html +++ b/docs/upgrade-v17/zh/index.html @@ -1 +1 @@ -升级到 17.0 版本 - NG-ALAIN

升级到 17.0 版本

本指南适用于当前版本 ng-alain >= 16 ; 如果在升级过程中遇到问题,欢迎提出。提问前请阅读 如何向开源社区提问题 如果发现本指南存在遗漏/错误,请指出! 或者你遇到了新的问题并解决了,欢迎补充!

开始之前

  1. 首先确保你 Node.js >= 18.13.0

  2. 创建新的分支,或者使用其他方式备份当前项目

  3. 删除项目下 package-lock.jsonyarn.lock 文件

升级步骤

升级相关依赖

  • 将项目升级到 Angular 16 运行 ng update @angular/core@17 @angular/cli@17 @angular-eslint/schematics@17 ng-zorro-antd@17 ng-alain@17

  • 如果你有单独使用 @angular/cdk 请执行 ng update @angular/cdk@17

  • 如果控制台出现警告消息请按提示修改对应代码

NG-ALAIN脚手架升级全部变更文件,请参考:#2394

可选部分

可选部分的主要工作都是围绕 Standalone 展开,目前 NG-ALAIN 会保留部分DEMO页使用 NgModule 写法。#2442 包含着这部分变动的所有内容。

升级为 Standalone

  • 使用 bootstrapApplication 替代 platformBrowserDynamic

  • 使用 app.config.ts 替代 global-config.module.ts, app.module.ts

其中 layout, dashboard, passport 目录采用 standalone 写法,可根据 #2442 变动自行修改。

DI配置

  • NG-ALAIN 移除掉所有 Module. forRoot 之类的 DI 配置模式,当然为了兼容,依然保留 NgModule 写法

  • 所有DI配置都是 provide* 来维护,更多细节见 app.config.ts

  • 如果您使用第三方但不提供类似 provide 写法时,只需要借助 importProvidersFrom 过渡

HTTP拦截器

  • Angular 17 对拦截器顺序可见有严格的要求,本次升级已经全部修改为 HttpInterceptorFn 写法(细节见 provideHttpClient

  • 若从 NG-ALAIN 16 升级默认为会导入 withInterceptorsFromDi() 用于兼容 HTTP_INTERCEPTORS 写法,但建议尽可能升级新的写法,可参考 #2442

关于 @delon/form

  • 将小部件频率较低的全部转化为可选导入,本次升级时会自动导入所有小部件来保证兼容

Loading...
\ No newline at end of file +升级到 17.0 版本 - NG-ALAIN

升级到 17.0 版本

本指南适用于当前版本 ng-alain >= 16 ; 如果在升级过程中遇到问题,欢迎提出。提问前请阅读 如何向开源社区提问题 如果发现本指南存在遗漏/错误,请指出! 或者你遇到了新的问题并解决了,欢迎补充!

开始之前

  1. 首先确保你 Node.js >= 18.13.0

  2. 创建新的分支,或者使用其他方式备份当前项目

  3. 删除项目下 package-lock.jsonyarn.lock 文件

升级步骤

升级相关依赖

  • 将项目升级到 Angular 16 运行 ng update @angular/core@17 @angular/cli@17 @angular-eslint/schematics@17 ng-zorro-antd@17 ng-alain@17

  • 如果你有单独使用 @angular/cdk 请执行 ng update @angular/cdk@17

  • 如果控制台出现警告消息请按提示修改对应代码

NG-ALAIN脚手架升级全部变更文件,请参考:#2394

可选部分

可选部分的主要工作都是围绕 Standalone 展开,目前 NG-ALAIN 会保留部分DEMO页使用 NgModule 写法。#2442 包含着这部分变动的所有内容。

升级为 Standalone

  • 使用 bootstrapApplication 替代 platformBrowserDynamic

  • 使用 app.config.ts 替代 global-config.module.ts, app.module.ts

其中 layout, dashboard, passport 目录采用 standalone 写法,可根据 #2442 变动自行修改。

DI配置

  • NG-ALAIN 移除掉所有 Module. forRoot 之类的 DI 配置模式,当然为了兼容,依然保留 NgModule 写法

  • 所有DI配置都是 provide* 来维护,更多细节见 app.config.ts

  • 如果您使用第三方但不提供类似 provide 写法时,只需要借助 importProvidersFrom 过渡

HTTP拦截器

  • Angular 17 对拦截器顺序可见有严格的要求,本次升级已经全部修改为 HttpInterceptorFn 写法(细节见 provideHttpClient

  • 若从 NG-ALAIN 16 升级默认为会导入 withInterceptorsFromDi() 用于兼容 HTTP_INTERCEPTORS 写法,但建议尽可能升级新的写法,可参考 #2442

关于 @delon/form

  • 将小部件频率较低的全部转化为可选导入,本次升级时会自动导入所有小部件来保证兼容

Loading...
\ No newline at end of file diff --git a/docs/upgrade/en/index.html b/docs/upgrade/en/index.html index 9c7823bda..41713bc51 100644 --- a/docs/upgrade/en/index.html +++ b/docs/upgrade/en/index.html @@ -1 +1 @@ -升级脚手架 - NG-ALAIN

升级脚手架

体系结构 中我们已经描述了 NG-ALAIN 脚手架的整体构成,我们花了大量时间去开发一些基础建设,并把这些以 @delon/* 系列发布至 Npm 当中,使得升级变得非常轻松。

发布规则

@angular/* 类似,@delon/* 类库的版本号在每一个迭代时,不管某类库是否有修改,都会统一个版本号 (NPM version) 。

同时按以下发布规则及更新版本号说明:

  • @delon 作为基础建设类库,在更新频率上会略高,一般一周至少更新一次

  • 带有 BREAKING CHANGES 至少提升一个次版本号

  • 更新日志

如何升级?

方式一:命令行(推荐)

除非是大版本更新(即类似从 12.0.0 升至 13.0.0),否则只需要运行以下命令即可:

ng update ng-alain

方式二:手动修改版本号

修改 package.json 所有 @delon/ 开头的类库版本号为最新版本号:

"@delon/theme": "^12.0.0"

^12.0.0 替换成最新版本号。

最后,重新安装依赖包。

yarn

遇到问题请阅读 常见问题

方式三:更新所有类库

脚手架在 package.json 里多数类库都是使用宽松的版本号,例如:

^0.1.0 带有 ^ 符号表示使用最新次版本号,因此,0.7.0 也是该范围之列。

要想采用这种更新方式需要按以下步骤进行:

  • 移除 node_modules 文件夹及 yarn.lock 文件

  • 执行 yarn

注意: 这种方式会对所有类库按比较新的版本安装,但有可能会导致由于第三方类型的破坏性变更会导致一些不必要的麻烦。

Loading...
\ No newline at end of file +升级脚手架 - NG-ALAIN

升级脚手架

体系结构 中我们已经描述了 NG-ALAIN 脚手架的整体构成,我们花了大量时间去开发一些基础建设,并把这些以 @delon/* 系列发布至 Npm 当中,使得升级变得非常轻松。

发布规则

@angular/* 类似,@delon/* 类库的版本号在每一个迭代时,不管某类库是否有修改,都会统一个版本号 (NPM version) 。

同时按以下发布规则及更新版本号说明:

  • @delon 作为基础建设类库,在更新频率上会略高,一般一周至少更新一次

  • 带有 BREAKING CHANGES 至少提升一个次版本号

  • 更新日志

如何升级?

方式一:命令行(推荐)

除非是大版本更新(即类似从 12.0.0 升至 13.0.0),否则只需要运行以下命令即可:

ng update ng-alain

方式二:手动修改版本号

修改 package.json 所有 @delon/ 开头的类库版本号为最新版本号:

"@delon/theme": "^12.0.0"

^12.0.0 替换成最新版本号。

最后,重新安装依赖包。

yarn

遇到问题请阅读 常见问题

方式三:更新所有类库

脚手架在 package.json 里多数类库都是使用宽松的版本号,例如:

^0.1.0 带有 ^ 符号表示使用最新次版本号,因此,0.7.0 也是该范围之列。

要想采用这种更新方式需要按以下步骤进行:

  • 移除 node_modules 文件夹及 yarn.lock 文件

  • 执行 yarn

注意: 这种方式会对所有类库按比较新的版本安装,但有可能会导致由于第三方类型的破坏性变更会导致一些不必要的麻烦。

Loading...
\ No newline at end of file diff --git a/docs/upgrade/zh/index.html b/docs/upgrade/zh/index.html index 1174d3d26..6a61d7d1c 100644 --- a/docs/upgrade/zh/index.html +++ b/docs/upgrade/zh/index.html @@ -1 +1 @@ -升级脚手架 - NG-ALAIN

升级脚手架

体系结构 中我们已经描述了 NG-ALAIN 脚手架的整体构成,我们花了大量时间去开发一些基础建设,并把这些以 @delon/* 系列发布至 Npm 当中,使得升级变得非常轻松。

发布规则

@angular/* 类似,@delon/* 类库的版本号在每一个迭代时,不管某类库是否有修改,都会统一个版本号 (NPM version) 。

同时按以下发布规则及更新版本号说明:

  • @delon 作为基础建设类库,在更新频率上会略高,一般一周至少更新一次

  • 带有 BREAKING CHANGES 至少提升一个次版本号

  • 更新日志

如何升级?

方式一:命令行(推荐)

除非是大版本更新(即类似从 12.0.0 升至 13.0.0),否则只需要运行以下命令即可:

ng update ng-alain

方式二:手动修改版本号

修改 package.json 所有 @delon/ 开头的类库版本号为最新版本号:

"@delon/theme": "^12.0.0"

^12.0.0 替换成最新版本号。

最后,重新安装依赖包。

yarn

遇到问题请阅读 常见问题

方式三:更新所有类库

脚手架在 package.json 里多数类库都是使用宽松的版本号,例如:

^0.1.0 带有 ^ 符号表示使用最新次版本号,因此,0.7.0 也是该范围之列。

要想采用这种更新方式需要按以下步骤进行:

  • 移除 node_modules 文件夹及 yarn.lock 文件

  • 执行 yarn

注意: 这种方式会对所有类库按比较新的版本安装,但有可能会导致由于第三方类型的破坏性变更会导致一些不必要的麻烦。

Loading...
\ No newline at end of file +升级脚手架 - NG-ALAIN

升级脚手架

体系结构 中我们已经描述了 NG-ALAIN 脚手架的整体构成,我们花了大量时间去开发一些基础建设,并把这些以 @delon/* 系列发布至 Npm 当中,使得升级变得非常轻松。

发布规则

@angular/* 类似,@delon/* 类库的版本号在每一个迭代时,不管某类库是否有修改,都会统一个版本号 (NPM version) 。

同时按以下发布规则及更新版本号说明:

  • @delon 作为基础建设类库,在更新频率上会略高,一般一周至少更新一次

  • 带有 BREAKING CHANGES 至少提升一个次版本号

  • 更新日志

如何升级?

方式一:命令行(推荐)

除非是大版本更新(即类似从 12.0.0 升至 13.0.0),否则只需要运行以下命令即可:

ng update ng-alain

方式二:手动修改版本号

修改 package.json 所有 @delon/ 开头的类库版本号为最新版本号:

"@delon/theme": "^12.0.0"

^12.0.0 替换成最新版本号。

最后,重新安装依赖包。

yarn

遇到问题请阅读 常见问题

方式三:更新所有类库

脚手架在 package.json 里多数类库都是使用宽松的版本号,例如:

^0.1.0 带有 ^ 符号表示使用最新次版本号,因此,0.7.0 也是该范围之列。

要想采用这种更新方式需要按以下步骤进行:

  • 移除 node_modules 文件夹及 yarn.lock 文件

  • 执行 yarn

注意: 这种方式会对所有类库按比较新的版本安装,但有可能会导致由于第三方类型的破坏性变更会导致一些不必要的麻烦。

Loading...
\ No newline at end of file diff --git a/form-pages/index.html b/form-pages/index.html index 6c0e993c1..f66fc84fc 100644 --- a/form-pages/index.html +++ b/form-pages/index.html @@ -377,7 +377,7 @@

社区

} - + \ No newline at end of file diff --git a/form/acl/en/index.html b/form/acl/en/index.html index 4113e8eca..edb0a771e 100644 --- a/form/acl/en/index.html +++ b/form/acl/en/index.html @@ -37,4 +37,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/form/acl/zh/index.html b/form/acl/zh/index.html index 89ab333c8..5f717670e 100644 --- a/form/acl/zh/index.html +++ b/form/acl/zh/index.html @@ -37,4 +37,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/form/array/en/index.html b/form/array/en/index.html index e719dc591..bfea95fb9 100644 --- a/form/array/en/index.html +++ b/form/array/en/index.html @@ -127,4 +127,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

参数说明类型默认值
[items]数组元素类型描述SFSchema-
[minItems]约束数组最小的元素个数number-
[maxItems]约束数组最大的元素个数number-
[uniqueItems]约束数组每个元素都不相同boolean-

ui 属性

参数说明类型默认值
[addTitle]添加按钮文本string添加
[addType]添加按钮类型,等同 nzTypestringdashed
[removable]是否包含移除按钮booleantrue
[removeTitle]移除按钮文本string移除
[required]当前项是否为必填,仅影响样式boolean-
[$items]数组元素类型UI描述SFUISchema-
(add)添加回调,property 表示添加后的表单属性(property: FormProperty) => void-
(remove)移除回调(index: number) => void-
Loading...
\ No newline at end of file +}

API

schema 属性

参数说明类型默认值
[items]数组元素类型描述SFSchema-
[minItems]约束数组最小的元素个数number-
[maxItems]约束数组最大的元素个数number-
[uniqueItems]约束数组每个元素都不相同boolean-

ui 属性

参数说明类型默认值
[addTitle]添加按钮文本string添加
[addType]添加按钮类型,等同 nzTypestringdashed
[removable]是否包含移除按钮booleantrue
[removeTitle]移除按钮文本string移除
[required]当前项是否为必填,仅影响样式boolean-
[$items]数组元素类型UI描述SFUISchema-
(add)添加回调,property 表示添加后的表单属性(property: FormProperty) => void-
(remove)移除回调(index: number) => void-
Loading...
\ No newline at end of file diff --git a/form/array/zh/index.html b/form/array/zh/index.html index d62fb857f..4227f22f1 100644 --- a/form/array/zh/index.html +++ b/form/array/zh/index.html @@ -127,4 +127,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

参数说明类型默认值
[items]数组元素类型描述SFSchema-
[minItems]约束数组最小的元素个数number-
[maxItems]约束数组最大的元素个数number-
[uniqueItems]约束数组每个元素都不相同boolean-

ui 属性

参数说明类型默认值
[addTitle]添加按钮文本string添加
[addType]添加按钮类型,等同 nzTypestringdashed
[removable]是否包含移除按钮booleantrue
[removeTitle]移除按钮文本string移除
[required]当前项是否为必填,仅影响样式boolean-
[$items]数组元素类型UI描述SFUISchema-
(add)添加回调,property 表示添加后的表单属性(property: FormProperty) => void-
(remove)移除回调(index: number) => void-
Loading...
\ No newline at end of file +}

API

schema 属性

参数说明类型默认值
[items]数组元素类型描述SFSchema-
[minItems]约束数组最小的元素个数number-
[maxItems]约束数组最大的元素个数number-
[uniqueItems]约束数组每个元素都不相同boolean-

ui 属性

参数说明类型默认值
[addTitle]添加按钮文本string添加
[addType]添加按钮类型,等同 nzTypestringdashed
[removable]是否包含移除按钮booleantrue
[removeTitle]移除按钮文本string移除
[required]当前项是否为必填,仅影响样式boolean-
[$items]数组元素类型UI描述SFUISchema-
(add)添加回调,property 表示添加后的表单属性(property: FormProperty) => void-
(remove)移除回调(index: number) => void-
Loading...
\ No newline at end of file diff --git a/form/autocomplete/en/index.html b/form/autocomplete/en/index.html index 50d7521cf..880963d47 100644 --- a/form/autocomplete/en/index.html +++ b/form/autocomplete/en/index.html @@ -51,4 +51,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]静态数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]实时数据源(input: string) => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[filterOption]是否根据输入项进行筛选,默认只对 label 属性执行不区分大小定 indexOf 过滤。当其为一个函数时,会接收 inputValue option 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 falseboolean or (inputValue: string, option: SFSchemaEnum) => booleantrue
[type]模式,自动完成常见邮箱后缀,可以重新使用 enum 来指定新后缀email-
[debounceTime]去抖时间,当实时数据源时默认最少 50,单位:毫秒number0
[defaultActiveFirstOption]是否默认高亮第一个选项booleantrue
[backfill]使用键盘选择选项的时候把选中项回填到输入框中booleanfalse
[nzWidth]自定义宽度单位 pxnumber触发元素宽度
[change]变更回调(item: NzAutocompleteOptionComponent, orgData: SFSchemaEnum) => void-
[overlayClassName]下拉根元素的类名称string-
[overlayStyle]下拉根元素的样式object-
[compareWith]SelectControlValueAccessor 相同(o1: any, o2: any) => boolean(o1: any, o2: any) => o1===o2
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]静态数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]实时数据源(input: string) => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[filterOption]是否根据输入项进行筛选,默认只对 label 属性执行不区分大小定 indexOf 过滤。当其为一个函数时,会接收 inputValue option 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 falseboolean or (inputValue: string, option: SFSchemaEnum) => booleantrue
[type]模式,自动完成常见邮箱后缀,可以重新使用 enum 来指定新后缀email-
[debounceTime]去抖时间,当实时数据源时默认最少 50,单位:毫秒number0
[defaultActiveFirstOption]是否默认高亮第一个选项booleantrue
[backfill]使用键盘选择选项的时候把选中项回填到输入框中booleanfalse
[nzWidth]自定义宽度单位 pxnumber触发元素宽度
[change]变更回调(item: NzAutocompleteOptionComponent, orgData: SFSchemaEnum) => void-
[overlayClassName]下拉根元素的类名称string-
[overlayStyle]下拉根元素的样式object-
[compareWith]SelectControlValueAccessor 相同(o1: any, o2: any) => boolean(o1: any, o2: any) => o1===o2
Loading...
\ No newline at end of file diff --git a/form/autocomplete/zh/index.html b/form/autocomplete/zh/index.html index 41d34e3c1..fc0aca51b 100644 --- a/form/autocomplete/zh/index.html +++ b/form/autocomplete/zh/index.html @@ -51,4 +51,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]静态数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]实时数据源(input: string) => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[filterOption]是否根据输入项进行筛选,默认只对 label 属性执行不区分大小定 indexOf 过滤。当其为一个函数时,会接收 inputValue option 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 falseboolean or (inputValue: string, option: SFSchemaEnum) => booleantrue
[type]模式,自动完成常见邮箱后缀,可以重新使用 enum 来指定新后缀email-
[debounceTime]去抖时间,当实时数据源时默认最少 50,单位:毫秒number0
[defaultActiveFirstOption]是否默认高亮第一个选项booleantrue
[backfill]使用键盘选择选项的时候把选中项回填到输入框中booleanfalse
[nzWidth]自定义宽度单位 pxnumber触发元素宽度
[change]变更回调(item: NzAutocompleteOptionComponent, orgData: SFSchemaEnum) => void-
[overlayClassName]下拉根元素的类名称string-
[overlayStyle]下拉根元素的样式object-
[compareWith]SelectControlValueAccessor 相同(o1: any, o2: any) => boolean(o1: any, o2: any) => o1===o2
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]静态数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]实时数据源(input: string) => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[filterOption]是否根据输入项进行筛选,默认只对 label 属性执行不区分大小定 indexOf 过滤。当其为一个函数时,会接收 inputValue option 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 falseboolean or (inputValue: string, option: SFSchemaEnum) => booleantrue
[type]模式,自动完成常见邮箱后缀,可以重新使用 enum 来指定新后缀email-
[debounceTime]去抖时间,当实时数据源时默认最少 50,单位:毫秒number0
[defaultActiveFirstOption]是否默认高亮第一个选项booleantrue
[backfill]使用键盘选择选项的时候把选中项回填到输入框中booleanfalse
[nzWidth]自定义宽度单位 pxnumber触发元素宽度
[change]变更回调(item: NzAutocompleteOptionComponent, orgData: SFSchemaEnum) => void-
[overlayClassName]下拉根元素的类名称string-
[overlayStyle]下拉根元素的样式object-
[compareWith]SelectControlValueAccessor 相同(o1: any, o2: any) => boolean(o1: any, o2: any) => o1===o2
Loading...
\ No newline at end of file diff --git a/form/boolean/en/index.html b/form/boolean/en/index.html index 95ebe80ee..b926f6a55 100644 --- a/form/boolean/en/index.html +++ b/form/boolean/en/index.html @@ -30,4 +30,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

参数说明类型默认值
[readOnly]禁用状态boolean-

ui 属性

参数说明类型默认值
[size]大小,等同 nzSizedefault,smalldefault
[checkedChildren]选中时的内容string-
[unCheckedChildren]非选中时的内容string-
[loading]加载中的开关booleanfalse
Loading...
\ No newline at end of file +}

API

schema 属性

参数说明类型默认值
[readOnly]禁用状态boolean-

ui 属性

参数说明类型默认值
[size]大小,等同 nzSizedefault,smalldefault
[checkedChildren]选中时的内容string-
[unCheckedChildren]非选中时的内容string-
[loading]加载中的开关booleanfalse
Loading...
\ No newline at end of file diff --git a/form/boolean/zh/index.html b/form/boolean/zh/index.html index 55d829368..f661f0b1c 100644 --- a/form/boolean/zh/index.html +++ b/form/boolean/zh/index.html @@ -30,4 +30,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

参数说明类型默认值
[readOnly]禁用状态boolean-

ui 属性

参数说明类型默认值
[size]大小,等同 nzSizedefault,smalldefault
[checkedChildren]选中时的内容string-
[unCheckedChildren]非选中时的内容string-
[loading]加载中的开关booleanfalse
string 文本框 number 数字
Loading...
\ No newline at end of file +}

API

schema 属性

参数说明类型默认值
[readOnly]禁用状态boolean-

ui 属性

参数说明类型默认值
[size]大小,等同 nzSizedefault,smalldefault
[checkedChildren]选中时的内容string-
[unCheckedChildren]非选中时的内容string-
[loading]加载中的开关booleanfalse
string 文本框 number 数字
Loading...
\ No newline at end of file diff --git a/form/cascader/en/index.html b/form/cascader/en/index.html index f7c125fc0..60d3d309e 100644 --- a/form/cascader/en/index.html +++ b/form/cascader/en/index.html @@ -80,4 +80,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]静态数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步静态数据源(node: NzCascaderOption, index: number, me: CascaderWidget) => PromiseLike<any>-
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[showSearch]是否支持搜索boolfalse
[allowClear]是否显示清除按钮booltrue
[clearText]清除按钮的标题string清除
[showArrow]是否显示箭头booltrue
[showInput]是否显示输入框booltrue
[menuClassName]自定义浮层类名string-
[menuStyle]自定义浮层样式string-
[columnClassName]弹出菜单中数据列的自定义样式string-
[notFoundContent]当下拉列表为空时显示的内容string-
[data]初始化列数据,用于第一列的数据,子列通过选项的 children 加载,或者通过 load 事件异步加载。Array-
[enableCache]是否缓存异步加载的数据,若每次异步加载的数据都是变化的,需将该值设置为 falsebooltrue
[expandTrigger]次级菜单的展开方式,可选 'click' 和 'hover'stringclick
[changeOnSelect]当此项为 true 时,点选每级菜单选项值都会发生变化,具体见上面的演示boolfalse
[changeOn]可通过自定义的函数来判断点击菜单选项是否应该发生变化,当函数返回 true 时,将发生变化(option: NzCascaderOption, level: number) => boolean-
[triggerAction]触发菜单出现的行为('click', 'hover')[]['click']
[valueProperty]value 的属性名称stringvalue
[labelProperty]label 的属性名称stringlabel
[visibleChange]异步加载事件(value: boolean) => void-
[change]选项值变更事件(values: any[]) => void-
[selectionChange]选项变更事件(values: NzCascaderOption[]) => void-
[clear]内容被清空事件() => void-
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]静态数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步静态数据源(node: NzCascaderOption, index: number, me: CascaderWidget) => PromiseLike<any>-
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[showSearch]是否支持搜索boolfalse
[allowClear]是否显示清除按钮booltrue
[clearText]清除按钮的标题string清除
[showArrow]是否显示箭头booltrue
[showInput]是否显示输入框booltrue
[menuClassName]自定义浮层类名string-
[menuStyle]自定义浮层样式string-
[columnClassName]弹出菜单中数据列的自定义样式string-
[notFoundContent]当下拉列表为空时显示的内容string-
[data]初始化列数据,用于第一列的数据,子列通过选项的 children 加载,或者通过 load 事件异步加载。Array-
[enableCache]是否缓存异步加载的数据,若每次异步加载的数据都是变化的,需将该值设置为 falsebooltrue
[expandTrigger]次级菜单的展开方式,可选 'click' 和 'hover'stringclick
[changeOnSelect]当此项为 true 时,点选每级菜单选项值都会发生变化,具体见上面的演示boolfalse
[changeOn]可通过自定义的函数来判断点击菜单选项是否应该发生变化,当函数返回 true 时,将发生变化(option: NzCascaderOption, level: number) => boolean-
[triggerAction]触发菜单出现的行为('click', 'hover')[]['click']
[valueProperty]value 的属性名称stringvalue
[labelProperty]label 的属性名称stringlabel
[visibleChange]异步加载事件(value: boolean) => void-
[change]选项值变更事件(values: any[]) => void-
[selectionChange]选项变更事件(values: NzCascaderOption[]) => void-
[clear]内容被清空事件() => void-
Loading...
\ No newline at end of file diff --git a/form/cascader/zh/index.html b/form/cascader/zh/index.html index 657b17bb2..eafdf0a69 100644 --- a/form/cascader/zh/index.html +++ b/form/cascader/zh/index.html @@ -80,4 +80,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]静态数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步静态数据源(node: NzCascaderOption, index: number, me: CascaderWidget) => PromiseLike<any>-
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[showSearch]是否支持搜索boolfalse
[allowClear]是否显示清除按钮booltrue
[clearText]清除按钮的标题string清除
[showArrow]是否显示箭头booltrue
[showInput]是否显示输入框booltrue
[menuClassName]自定义浮层类名string-
[menuStyle]自定义浮层样式string-
[columnClassName]弹出菜单中数据列的自定义样式string-
[notFoundContent]当下拉列表为空时显示的内容string-
[data]初始化列数据,用于第一列的数据,子列通过选项的 children 加载,或者通过 load 事件异步加载。Array-
[enableCache]是否缓存异步加载的数据,若每次异步加载的数据都是变化的,需将该值设置为 falsebooltrue
[expandTrigger]次级菜单的展开方式,可选 'click' 和 'hover'stringclick
[changeOnSelect]当此项为 true 时,点选每级菜单选项值都会发生变化,具体见上面的演示boolfalse
[changeOn]可通过自定义的函数来判断点击菜单选项是否应该发生变化,当函数返回 true 时,将发生变化(option: NzCascaderOption, level: number) => boolean-
[triggerAction]触发菜单出现的行为('click', 'hover')[]['click']
[valueProperty]value 的属性名称stringvalue
[labelProperty]label 的属性名称stringlabel
[visibleChange]异步加载事件(value: boolean) => void-
[change]选项值变更事件(values: any[]) => void-
[selectionChange]选项变更事件(values: NzCascaderOption[]) => void-
[clear]内容被清空事件() => void-
autocomplete 自动完成 color 颜色
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]静态数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步静态数据源(node: NzCascaderOption, index: number, me: CascaderWidget) => PromiseLike<any>-
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[showSearch]是否支持搜索boolfalse
[allowClear]是否显示清除按钮booltrue
[clearText]清除按钮的标题string清除
[showArrow]是否显示箭头booltrue
[showInput]是否显示输入框booltrue
[menuClassName]自定义浮层类名string-
[menuStyle]自定义浮层样式string-
[columnClassName]弹出菜单中数据列的自定义样式string-
[notFoundContent]当下拉列表为空时显示的内容string-
[data]初始化列数据,用于第一列的数据,子列通过选项的 children 加载,或者通过 load 事件异步加载。Array-
[enableCache]是否缓存异步加载的数据,若每次异步加载的数据都是变化的,需将该值设置为 falsebooltrue
[expandTrigger]次级菜单的展开方式,可选 'click' 和 'hover'stringclick
[changeOnSelect]当此项为 true 时,点选每级菜单选项值都会发生变化,具体见上面的演示boolfalse
[changeOn]可通过自定义的函数来判断点击菜单选项是否应该发生变化,当函数返回 true 时,将发生变化(option: NzCascaderOption, level: number) => boolean-
[triggerAction]触发菜单出现的行为('click', 'hover')[]['click']
[valueProperty]value 的属性名称stringvalue
[labelProperty]label 的属性名称stringlabel
[visibleChange]异步加载事件(value: boolean) => void-
[change]选项值变更事件(values: any[]) => void-
[selectionChange]选项变更事件(values: NzCascaderOption[]) => void-
[clear]内容被清空事件() => void-
autocomplete 自动完成 color 颜色
Loading...
\ No newline at end of file diff --git a/form/checkbox/en/index.html b/form/checkbox/en/index.html index 329fcbcb7..39784a0f8 100644 --- a/form/checkbox/en/index.html +++ b/form/checkbox/en/index.html @@ -56,4 +56,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]数据源,当数据源存在于表示一组多选框SFSchemaEnumType[]-
[readOnly]禁用状态boolean-
[title]enum 时表示多选框文本内容string-
[description]enum 时表示多选框后帮助信息string-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[span]指定每个选框单元格数量,参考布局number-
[styleType]radio的样式default, buttondefault
[checkAll]是否需要全选boolean-
[checkAllText]全选按钮文本string全选
[change]值变更事件,参数:单个多选框为 boolean,否则为 SFSchemaEnum[](res: boolean | SFSchemaEnum[]) => void-
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]数据源,当数据源存在于表示一组多选框SFSchemaEnumType[]-
[readOnly]禁用状态boolean-
[title]enum 时表示多选框文本内容string-
[description]enum 时表示多选框后帮助信息string-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[span]指定每个选框单元格数量,参考布局number-
[styleType]radio的样式default, buttondefault
[checkAll]是否需要全选boolean-
[checkAllText]全选按钮文本string全选
[change]值变更事件,参数:单个多选框为 boolean,否则为 SFSchemaEnum[](res: boolean | SFSchemaEnum[]) => void-
Loading...
\ No newline at end of file diff --git a/form/checkbox/zh/index.html b/form/checkbox/zh/index.html index 3c16ae2d3..876eaff09 100644 --- a/form/checkbox/zh/index.html +++ b/form/checkbox/zh/index.html @@ -56,4 +56,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]数据源,当数据源存在于表示一组多选框SFSchemaEnumType[]-
[readOnly]禁用状态boolean-
[title]enum 时表示多选框文本内容string-
[description]enum 时表示多选框后帮助信息string-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[span]指定每个选框单元格数量,参考布局number-
[styleType]radio的样式default, buttondefault
[checkAll]是否需要全选boolean-
[checkAllText]全选按钮文本string全选
[change]值变更事件,参数:单个多选框为 boolean,否则为 SFSchemaEnum[](res: boolean | SFSchemaEnum[]) => void-
select 选择器 custom 自定义
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]数据源,当数据源存在于表示一组多选框SFSchemaEnumType[]-
[readOnly]禁用状态boolean-
[title]enum 时表示多选框文本内容string-
[description]enum 时表示多选框后帮助信息string-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[span]指定每个选框单元格数量,参考布局number-
[styleType]radio的样式default, buttondefault
[checkAll]是否需要全选boolean-
[checkAllText]全选按钮文本string全选
[change]值变更事件,参数:单个多选框为 boolean,否则为 SFSchemaEnum[](res: boolean | SFSchemaEnum[]) => void-
select 选择器 custom 自定义
Loading...
\ No newline at end of file diff --git a/form/color/en/index.html b/form/color/en/index.html index 588566a94..100ccde5d 100644 --- a/form/color/en/index.html +++ b/form/color/en/index.html @@ -86,4 +86,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

ui 属性

成员说明类型默认值
[format]颜色格式rgbhexhsbhex
[defaultValue]颜色默认的值stringNzColor-
[allowClear]允许清除选择的颜色booleanfalse
[trigger]颜色选择器的触发模式hoverclickclick
[showText]显示颜色文本booleanfalse
[title]设置颜色选择器的标题TemplateRef<void>string-
(change)颜色变化的回调EventEmitter<{ color: NzColor; format: string }>-
(formatChange)颜色格式变化的回调EventEmitter<'rgb'|'hex'|'hsb'>-
[block]是否颜色块booleanfalse
Loading...
\ No newline at end of file +}

API

ui 属性

成员说明类型默认值
[format]颜色格式rgbhexhsbhex
[defaultValue]颜色默认的值stringNzColor-
[allowClear]允许清除选择的颜色booleanfalse
[trigger]颜色选择器的触发模式hoverclickclick
[showText]显示颜色文本booleanfalse
[title]设置颜色选择器的标题TemplateRef<void>string-
(change)颜色变化的回调EventEmitter<{ color: NzColor; format: string }>-
(formatChange)颜色格式变化的回调EventEmitter<'rgb'|'hex'|'hsb'>-
[block]是否颜色块booleanfalse
Loading...
\ No newline at end of file diff --git a/form/color/zh/index.html b/form/color/zh/index.html index 6f3e2e6ba..fa97f046f 100644 --- a/form/color/zh/index.html +++ b/form/color/zh/index.html @@ -86,4 +86,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

ui 属性

成员说明类型默认值
[format]颜色格式rgbhexhsbhex
[defaultValue]颜色默认的值stringNzColor-
[allowClear]允许清除选择的颜色booleanfalse
[trigger]颜色选择器的触发模式hoverclickclick
[showText]显示颜色文本booleanfalse
[title]设置颜色选择器的标题TemplateRef<void>string-
(change)颜色变化的回调EventEmitter<{ color: NzColor; format: string }>-
(formatChange)颜色格式变化的回调EventEmitter<'rgb'|'hex'|'hsb'>-
[block]是否颜色块booleanfalse
cascader 级联选择 mention 提及
Loading...
\ No newline at end of file +}

API

ui 属性

成员说明类型默认值
[format]颜色格式rgbhexhsbhex
[defaultValue]颜色默认的值stringNzColor-
[allowClear]允许清除选择的颜色booleanfalse
[trigger]颜色选择器的触发模式hoverclickclick
[showText]显示颜色文本booleanfalse
[title]设置颜色选择器的标题TemplateRef<void>string-
(change)颜色变化的回调EventEmitter<{ color: NzColor; format: string }>-
(formatChange)颜色格式变化的回调EventEmitter<'rgb'|'hex'|'hsb'>-
[block]是否颜色块booleanfalse
cascader 级联选择 mention 提及
Loading...
\ No newline at end of file diff --git a/form/conditional/en/index.html b/form/conditional/en/index.html index c12fa7235..238a4df2e 100644 --- a/form/conditional/en/index.html +++ b/form/conditional/en/index.html @@ -213,4 +213,4 @@ ngOnDestroy(): void { this.searchDepartment$.complete(); } -}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/form/conditional/zh/index.html b/form/conditional/zh/index.html index bf1d397c7..9592a4d61 100644 --- a/form/conditional/zh/index.html +++ b/form/conditional/zh/index.html @@ -213,4 +213,4 @@ ngOnDestroy(): void { this.searchDepartment$.complete(); } -}
acl ACL i18n 国际化
Loading...
\ No newline at end of file +}
acl ACL i18n 国际化
Loading...
\ No newline at end of file diff --git a/form/custom/en/index.html b/form/custom/en/index.html index 2fb6bddde..c88c0a577 100644 --- a/form/custom/en/index.html +++ b/form/custom/en/index.html @@ -69,4 +69,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

参数说明类型
[$implicit]当前上下文ControlWidget
[schema]当前节点 SchemaSFSchema
[ui]当前节点 UISFUISchemaItem

上下文包括 formProperty 属性,它是传递数据的唯一中间层,因此维护 formProperty.value 是唯一与自定义组件通信的媒介。

上下文还包含了一些快捷属性和方法,有关更多细节请阅读 Widget 的定义。

Loading...
\ No newline at end of file +}

API

参数说明类型
[$implicit]当前上下文ControlWidget
[schema]当前节点 SchemaSFSchema
[ui]当前节点 UISFUISchemaItem

上下文包括 formProperty 属性,它是传递数据的唯一中间层,因此维护 formProperty.value 是唯一与自定义组件通信的媒介。

上下文还包含了一些快捷属性和方法,有关更多细节请阅读 Widget 的定义。

Loading...
\ No newline at end of file diff --git a/form/custom/zh/index.html b/form/custom/zh/index.html index f11c06f02..0e9690ded 100644 --- a/form/custom/zh/index.html +++ b/form/custom/zh/index.html @@ -69,4 +69,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

参数说明类型
[$implicit]当前上下文ControlWidget
[schema]当前节点 SchemaSFSchema
[ui]当前节点 UISFUISchemaItem

上下文包括 formProperty 属性,它是传递数据的唯一中间层,因此维护 formProperty.value 是唯一与自定义组件通信的媒介。

上下文还包含了一些快捷属性和方法,有关更多细节请阅读 Widget 的定义。

checkbox 多选框 date 日期
Loading...
\ No newline at end of file +}

API

参数说明类型
[$implicit]当前上下文ControlWidget
[schema]当前节点 SchemaSFSchema
[ui]当前节点 UISFUISchemaItem

上下文包括 formProperty 属性,它是传递数据的唯一中间层,因此维护 formProperty.value 是唯一与自定义组件通信的媒介。

上下文还包含了一些快捷属性和方法,有关更多细节请阅读 Widget 的定义。

checkbox 多选框 date 日期
Loading...
\ No newline at end of file diff --git a/form/customize/en/index.html b/form/customize/en/index.html index a17381fc8..49dc4627a 100644 --- a/form/customize/en/index.html +++ b/form/customize/en/index.html @@ -53,4 +53,4 @@ "widget": "test", "data": "widget parameters" } -}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/form/customize/zh/index.html b/form/customize/zh/index.html index 91a3116fb..53b46d70c 100644 --- a/form/customize/zh/index.html +++ b/form/customize/zh/index.html @@ -53,4 +53,4 @@ "widget": "test", "data": "widget parameters" } -}
校验错误 如何布局
Loading...
\ No newline at end of file +}
校验错误 如何布局
Loading...
\ No newline at end of file diff --git a/form/date/en/index.html b/form/date/en/index.html index 161dfd961..4abb9e663 100644 --- a/form/date/en/index.html +++ b/form/date/en/index.html @@ -120,4 +120,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[readOnly]禁用状态boolean-
[format]数据格式类型string-

ui 属性

参数说明类型默认值
[mode]渲染模式date,week,month,yeardate
[rangeMode]范围选择器的选择模式date,week,month,yeardate
[size]大小,等同 nzSizedefault,large,small-
[placeholder]在文字框中显示提示讯息string-
[format]数据格式化string-
[displayFormat]显示格式化,(等同 nzFormat 值)stringyyyy-MM-dd HH:mm:ss
[end]日期范围所对应的结束值 keystring-
[allowClear]是否显示清除按钮booleantrue
[className]选择器 classNamestring-
[locale]国际化配置object-
[popupStyle]额外的弹出日历样式object-
[dropdownClassName]额外的弹出日历 classNamestring-
[onOpenChange]弹出日历和关闭日历的回调(status: boolean) => void-
[disabledDate]不可选择的日期(current: Date) => boolean-
[disabledTime]不可选择的时间(current: Date) => { nzDisabledHours, nzDisabledMinutes, nzDisabledSeconds }-
[renderExtraFooter]在面板中添加额外的页脚string-
[showTime]增加时间选择功能,object 类型为 TimePickerOptionsobject,booleantrue
[showToday]是否展示“今天”按钮booleantrue
[inputReadOnly]为 input 标签设置只读属性(避免在移动设备上触发小键盘)booleanfalse
[inline]内联模式booleanfalse
[separator]分隔符string, TemplateRef'~'
[showWeekNumber]是否在每一行显示周数(仅日期选择器支持。周选择器始终显示周数)booleanfalse
[onOk]点击确定按钮的回调(data: Date | Date[]) => void-
[change]时间发生变化的回调(data: Date | Date[]) => void-
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[readOnly]禁用状态boolean-
[format]数据格式类型string-

ui 属性

参数说明类型默认值
[mode]渲染模式date,week,month,yeardate
[rangeMode]范围选择器的选择模式date,week,month,yeardate
[size]大小,等同 nzSizedefault,large,small-
[placeholder]在文字框中显示提示讯息string-
[format]数据格式化string-
[displayFormat]显示格式化,(等同 nzFormat 值)stringyyyy-MM-dd HH:mm:ss
[end]日期范围所对应的结束值 keystring-
[allowClear]是否显示清除按钮booleantrue
[className]选择器 classNamestring-
[locale]国际化配置object-
[popupStyle]额外的弹出日历样式object-
[dropdownClassName]额外的弹出日历 classNamestring-
[onOpenChange]弹出日历和关闭日历的回调(status: boolean) => void-
[disabledDate]不可选择的日期(current: Date) => boolean-
[disabledTime]不可选择的时间(current: Date) => { nzDisabledHours, nzDisabledMinutes, nzDisabledSeconds }-
[renderExtraFooter]在面板中添加额外的页脚string-
[showTime]增加时间选择功能,object 类型为 TimePickerOptionsobject,booleantrue
[showToday]是否展示“今天”按钮booleantrue
[inputReadOnly]为 input 标签设置只读属性(避免在移动设备上触发小键盘)booleanfalse
[inline]内联模式booleanfalse
[separator]分隔符string, TemplateRef'~'
[showWeekNumber]是否在每一行显示周数(仅日期选择器支持。周选择器始终显示周数)booleanfalse
[onOk]点击确定按钮的回调(data: Date | Date[]) => void-
[change]时间发生变化的回调(data: Date | Date[]) => void-
Loading...
\ No newline at end of file diff --git a/form/date/zh/index.html b/form/date/zh/index.html index 63ee298ff..7d79d0363 100644 --- a/form/date/zh/index.html +++ b/form/date/zh/index.html @@ -120,4 +120,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[readOnly]禁用状态boolean-
[format]数据格式类型string-

ui 属性

参数说明类型默认值
[mode]渲染模式date,week,month,yeardate
[rangeMode]范围选择器的选择模式date,week,month,yeardate
[size]大小,等同 nzSizedefault,large,small-
[placeholder]在文字框中显示提示讯息string-
[format]数据格式化string-
[displayFormat]显示格式化,(等同 nzFormat 值)stringyyyy-MM-dd HH:mm:ss
[end]日期范围所对应的结束值 keystring-
[allowClear]是否显示清除按钮booleantrue
[className]选择器 classNamestring-
[locale]国际化配置object-
[popupStyle]额外的弹出日历样式object-
[dropdownClassName]额外的弹出日历 classNamestring-
[onOpenChange]弹出日历和关闭日历的回调(status: boolean) => void-
[disabledDate]不可选择的日期(current: Date) => boolean-
[disabledTime]不可选择的时间(current: Date) => { nzDisabledHours, nzDisabledMinutes, nzDisabledSeconds }-
[renderExtraFooter]在面板中添加额外的页脚string-
[showTime]增加时间选择功能,object 类型为 TimePickerOptionsobject,booleantrue
[showToday]是否展示“今天”按钮booleantrue
[inputReadOnly]为 input 标签设置只读属性(避免在移动设备上触发小键盘)booleanfalse
[inline]内联模式booleanfalse
[separator]分隔符string, TemplateRef'~'
[showWeekNumber]是否在每一行显示周数(仅日期选择器支持。周选择器始终显示周数)booleanfalse
[onOk]点击确定按钮的回调(data: Date | Date[]) => void-
[change]时间发生变化的回调(data: Date | Date[]) => void-
custom 自定义 radio 单选框
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[readOnly]禁用状态boolean-
[format]数据格式类型string-

ui 属性

参数说明类型默认值
[mode]渲染模式date,week,month,yeardate
[rangeMode]范围选择器的选择模式date,week,month,yeardate
[size]大小,等同 nzSizedefault,large,small-
[placeholder]在文字框中显示提示讯息string-
[format]数据格式化string-
[displayFormat]显示格式化,(等同 nzFormat 值)stringyyyy-MM-dd HH:mm:ss
[end]日期范围所对应的结束值 keystring-
[allowClear]是否显示清除按钮booleantrue
[className]选择器 classNamestring-
[locale]国际化配置object-
[popupStyle]额外的弹出日历样式object-
[dropdownClassName]额外的弹出日历 classNamestring-
[onOpenChange]弹出日历和关闭日历的回调(status: boolean) => void-
[disabledDate]不可选择的日期(current: Date) => boolean-
[disabledTime]不可选择的时间(current: Date) => { nzDisabledHours, nzDisabledMinutes, nzDisabledSeconds }-
[renderExtraFooter]在面板中添加额外的页脚string-
[showTime]增加时间选择功能,object 类型为 TimePickerOptionsobject,booleantrue
[showToday]是否展示“今天”按钮booleantrue
[inputReadOnly]为 input 标签设置只读属性(避免在移动设备上触发小键盘)booleanfalse
[inline]内联模式booleanfalse
[separator]分隔符string, TemplateRef'~'
[showWeekNumber]是否在每一行显示周数(仅日期选择器支持。周选择器始终显示周数)booleanfalse
[onOk]点击确定按钮的回调(data: Date | Date[]) => void-
[change]时间发生变化的回调(data: Date | Date[]) => void-
custom 自定义 radio 单选框
Loading...
\ No newline at end of file diff --git a/form/error/en/index.html b/form/error/en/index.html index 083505953..5e1c42584 100644 --- a/form/error/en/index.html +++ b/form/error/en/index.html @@ -83,4 +83,4 @@ ui: { debug: true } -}

其中 format 是一个错误时间格式,当指定 debug: true 时,会在控制台接收到详细的校验错误描述:

Error: unknown format "yyyy-MM-dd HH:mm:ss" is used in schema at path "#/properties/time"
Loading...
\ No newline at end of file +}

其中 format 是一个错误时间格式,当指定 debug: true 时,会在控制台接收到详细的校验错误描述:

Error: unknown format "yyyy-MM-dd HH:mm:ss" is used in schema at path "#/properties/time"
Loading...
\ No newline at end of file diff --git a/form/error/zh/index.html b/form/error/zh/index.html index 880e7e495..5bffc2c8f 100644 --- a/form/error/zh/index.html +++ b/form/error/zh/index.html @@ -83,4 +83,4 @@ ui: { debug: true } -}

其中 format 是一个错误时间格式,当指定 debug: true 时,会在控制台接收到详细的校验错误描述:

Error: unknown format "yyyy-MM-dd HH:mm:ss" is used in schema at path "#/properties/time"
Schema 自定义小部件
Loading...
\ No newline at end of file +}

其中 format 是一个错误时间格式,当指定 debug: true 时,会在控制台接收到详细的校验错误描述:

Error: unknown format "yyyy-MM-dd HH:mm:ss" is used in schema at path "#/properties/time"
Schema 自定义小部件
Loading...
\ No newline at end of file diff --git a/form/getting-started/en/index.html b/form/getting-started/en/index.html index 85305cfbe..4a25b7ada 100644 --- a/form/getting-started/en/index.html +++ b/form/getting-started/en/index.html @@ -32,4 +32,4 @@ }

API

sf

参数说明类型默认值
[layout]表单布局,等同 nzLayout'horizontal','vertical','inline''horizontal'
[schema]必填项 JSON SchemaSFSchema-
[ui]UI SchemaSFUISchema-
[formData]表单默认值any-
[mode]表单模式,细节见常见问题'default','search','edit''default'
[button]按钮SFButton|'none'{}
[firstVisual]是否立即呈现错误视觉booleantrue
[liveValidate]是否实时校验,false 提交时检验booleantrue
[autocomplete]指定表单 autocomplete'on','off'null
[disabled]是否禁用状态booleanfalse
[loading]是否加载状态,当 true 重置按钮禁止状态,提交按钮加载状态booleanfalse
[noColon]是否不显示 label 后面的冒号booleanfalse
[compact]是否紧凑booleanfalse
[cleanValue]是否清理未定义 Schema 的数据booleanfalse
[delay]是否延迟渲染,需要手动调用 refreshSchema()booleanfalse
(formChange)数据变更时回调EventEmitter<{}>-
(formValueChange)值数据变更时回调EventEmitter<SFValueChange>-
(formSubmit)提交表单时回调EventEmitter<{}>-
(formReset)重置表单时回调EventEmitter<{}>-
(formError)表单校验结果回调EventEmitter<ErrorData[]>-

SFButton

参数说明类型默认值
[submit]提交按钮文本string提交
[submit_type]提交按钮类型stringprimary
[submit_icon]提交按钮图标SFButtonIcon-
[reset]重置按钮文本string重置
[reset_type]重置按钮类型stringdefault
[reset_icon]重置按钮图标SFButtonIcon-
[search]搜索按钮文本string搜索
[edit]编辑按钮文本string保存
[render]按钮样式SFRenderButton-

SFValueChange

参数说明类型默认值
[value]总是返回完整的数据SFValue-
[path]当前触发路径string, nullnull
[pathValue]当前触发路径对应值SFValue-

组件方法

参数说明返回值
valid表单是否有效boolean
value表单值any
refreshSchema刷新 JSON Schemavoid
reset重置表单void
validator手动校验一次表单void
getProperty根据路径获取表单元素属性FormProperty
getValue根据路径获取表单元素当前值any
setValue根据路径设置某个表单元素属性值,若路径不存在会产生异常this
updateFeedback根据路径设置某个表单元素反馈状态this

注: 所有 path 采用 / 来分隔,例如:/user/name/arr/0/name

按钮说明

注意事项

自定义

当你希望自定义按钮时,务必设置 button 值为 null

<sf #sf [button]="null">
   <button type="submit" nz-button [disabled]="!sf.valid">保存</button>
   <button (click)="sf.reset()" type="button" nz-button>重置</button>
-</sf>

常见问题

mode有什么作用?

mode 只是快捷作用,且优先级高于一切,规则如下:

Schema国际化

sf 并不支持任何 Schema 国际化动作,这是因为本身 Schema 是一组 JSON 值,国际化的实现只需要提供不同语言版本即可。

Loading...
\ No newline at end of file +</sf>

常见问题

mode有什么作用?

mode 只是快捷作用,且优先级高于一切,规则如下:

Schema国际化

sf 并不支持任何 Schema 国际化动作,这是因为本身 Schema 是一组 JSON 值,国际化的实现只需要提供不同语言版本即可。

Loading...
\ No newline at end of file diff --git a/form/getting-started/zh/index.html b/form/getting-started/zh/index.html index b088c70f6..6313aed99 100644 --- a/form/getting-started/zh/index.html +++ b/form/getting-started/zh/index.html @@ -32,4 +32,4 @@ }

API

sf

参数说明类型默认值
[layout]表单布局,等同 nzLayout'horizontal','vertical','inline''horizontal'
[schema]必填项 JSON SchemaSFSchema-
[ui]UI SchemaSFUISchema-
[formData]表单默认值any-
[mode]表单模式,细节见常见问题'default','search','edit''default'
[button]按钮SFButton|'none'{}
[firstVisual]是否立即呈现错误视觉booleantrue
[liveValidate]是否实时校验,false 提交时检验booleantrue
[autocomplete]指定表单 autocomplete'on','off'null
[disabled]是否禁用状态booleanfalse
[loading]是否加载状态,当 true 重置按钮禁止状态,提交按钮加载状态booleanfalse
[noColon]是否不显示 label 后面的冒号booleanfalse
[compact]是否紧凑booleanfalse
[cleanValue]是否清理未定义 Schema 的数据booleanfalse
[delay]是否延迟渲染,需要手动调用 refreshSchema()booleanfalse
(formChange)数据变更时回调EventEmitter<{}>-
(formValueChange)值数据变更时回调EventEmitter<SFValueChange>-
(formSubmit)提交表单时回调EventEmitter<{}>-
(formReset)重置表单时回调EventEmitter<{}>-
(formError)表单校验结果回调EventEmitter<ErrorData[]>-

SFButton

参数说明类型默认值
[submit]提交按钮文本string提交
[submit_type]提交按钮类型stringprimary
[submit_icon]提交按钮图标SFButtonIcon-
[reset]重置按钮文本string重置
[reset_type]重置按钮类型stringdefault
[reset_icon]重置按钮图标SFButtonIcon-
[search]搜索按钮文本string搜索
[edit]编辑按钮文本string保存
[render]按钮样式SFRenderButton-

SFValueChange

参数说明类型默认值
[value]总是返回完整的数据SFValue-
[path]当前触发路径string, nullnull
[pathValue]当前触发路径对应值SFValue-

组件方法

参数说明返回值
valid表单是否有效boolean
value表单值any
refreshSchema刷新 JSON Schemavoid
reset重置表单void
validator手动校验一次表单void
getProperty根据路径获取表单元素属性FormProperty
getValue根据路径获取表单元素当前值any
setValue根据路径设置某个表单元素属性值,若路径不存在会产生异常this
updateFeedback根据路径设置某个表单元素反馈状态this

注: 所有 path 采用 / 来分隔,例如:/user/name/arr/0/name

按钮说明

注意事项

自定义

当你希望自定义按钮时,务必设置 button 值为 null

<sf #sf [button]="null">
   <button type="submit" nz-button [disabled]="!sf.valid">保存</button>
   <button (click)="sf.reset()" type="button" nz-button>重置</button>
-</sf>

常见问题

mode有什么作用?

mode 只是快捷作用,且优先级高于一切,规则如下:

Schema国际化

sf 并不支持任何 Schema 国际化动作,这是因为本身 Schema 是一组 JSON 值,国际化的实现只需要提供不同语言版本即可。

Schema
Loading...
\ No newline at end of file +</sf>

常见问题

mode有什么作用?

mode 只是快捷作用,且优先级高于一切,规则如下:

Schema国际化

sf 并不支持任何 Schema 国际化动作,这是因为本身 Schema 是一组 JSON 值,国际化的实现只需要提供不同语言版本即可。

Schema
Loading...
\ No newline at end of file diff --git a/form/i18n/en/index.html b/form/i18n/en/index.html index 2f3c6077a..1fe7d71e7 100644 --- a/form/i18n/en/index.html +++ b/form/i18n/en/index.html @@ -54,4 +54,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/form/i18n/zh/index.html b/form/i18n/zh/index.html index ae85cba2b..dda023814 100644 --- a/form/i18n/zh/index.html +++ b/form/i18n/zh/index.html @@ -54,4 +54,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}
visibleIf 条件表达式 modal 模态框
Loading...
\ No newline at end of file +}
visibleIf 条件表达式 modal 模态框
Loading...
\ No newline at end of file diff --git a/form/index.html b/form/index.html index 34fd10fe0..2bf62a808 100644 --- a/form/index.html +++ b/form/index.html @@ -1 +1 @@ -一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file +一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file diff --git a/form/layout/en/index.html b/form/layout/en/index.html index 8cde89202..6d8076224 100644 --- a/form/layout/en/index.html +++ b/form/layout/en/index.html @@ -31,4 +31,4 @@ }

按钮

按钮布局渲染同表单项一样布局、参数,可以通过 SFButton 属性来调整按钮渲染风格。

注意事项

自定义

当你希望自定义按钮时,务必设置 button 值为 null

<sf #sf [button]="null">
   <button type="submit" nz-button [disabled]="!sf.valid">保存</button>
   <button (click)="sf.reset()" type="button" nz-button>重置</button>
-</sf>
Loading...
\ No newline at end of file +</sf>
Loading...
\ No newline at end of file diff --git a/form/layout/zh/index.html b/form/layout/zh/index.html index bf49e5fb1..f1522a1f0 100644 --- a/form/layout/zh/index.html +++ b/form/layout/zh/index.html @@ -31,4 +31,4 @@ }

按钮

按钮布局渲染同表单项一样布局、参数,可以通过 SFButton 属性来调整按钮渲染风格。

注意事项

自定义

当你希望自定义按钮时,务必设置 button 值为 null

<sf #sf [button]="null">
   <button type="submit" nz-button [disabled]="!sf.valid">保存</button>
   <button (click)="sf.reset()" type="button" nz-button>重置</button>
-</sf>
自定义小部件 常见问题
Loading...
\ No newline at end of file +</sf>
自定义小部件 常见问题
Loading...
\ No newline at end of file diff --git a/form/mention/en/index.html b/form/mention/en/index.html index 4bf66c6b6..ec0c4c70f 100644 --- a/form/mention/en/index.html +++ b/form/mention/en/index.html @@ -51,4 +51,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]静态数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-
[minimum]最少提及次数number-
[maximum]最多提及次数number-

ui 属性

成员说明类型默认值
[asyncData]异步静态数据源(input: string) => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[loadData]实时数据(option: MentionOnSearchTypes) => Observable<SFSchemaEnumType[]>-
[notFoundContent]未找到时的内容string无匹配结果,轻敲空格完成输入
[placement]建议框位置button,topbutton
[prefix]触发弹出下拉框的字符'string' 'string[]'@
[valueWith]建议选项的取值方法(value: any) => string-
[select]下拉框选择建议时回调(value: any) => void-
[inputStyle]文本框类型text, textareatext
[autosize]自适应内容高度,可设置为 true|false 或对象:{ minRows: 2, maxRows: 6 }boolean,AutoSizeTypetrue
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]静态数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-
[minimum]最少提及次数number-
[maximum]最多提及次数number-

ui 属性

成员说明类型默认值
[asyncData]异步静态数据源(input: string) => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[loadData]实时数据(option: MentionOnSearchTypes) => Observable<SFSchemaEnumType[]>-
[notFoundContent]未找到时的内容string无匹配结果,轻敲空格完成输入
[placement]建议框位置button,topbutton
[prefix]触发弹出下拉框的字符'string' 'string[]'@
[valueWith]建议选项的取值方法(value: any) => string-
[select]下拉框选择建议时回调(value: any) => void-
[inputStyle]文本框类型text, textareatext
[autosize]自适应内容高度,可设置为 true|false 或对象:{ minRows: 2, maxRows: 6 }boolean,AutoSizeTypetrue
Loading...
\ No newline at end of file diff --git a/form/mention/zh/index.html b/form/mention/zh/index.html index ef6e06afb..9aed1470d 100644 --- a/form/mention/zh/index.html +++ b/form/mention/zh/index.html @@ -51,4 +51,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]静态数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-
[minimum]最少提及次数number-
[maximum]最多提及次数number-

ui 属性

成员说明类型默认值
[asyncData]异步静态数据源(input: string) => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[loadData]实时数据(option: MentionOnSearchTypes) => Observable<SFSchemaEnumType[]>-
[notFoundContent]未找到时的内容string无匹配结果,轻敲空格完成输入
[placement]建议框位置button,topbutton
[prefix]触发弹出下拉框的字符'string' 'string[]'@
[valueWith]建议选项的取值方法(value: any) => string-
[select]下拉框选择建议时回调(value: any) => void-
[inputStyle]文本框类型text, textareatext
[autosize]自适应内容高度,可设置为 true|false 或对象:{ minRows: 2, maxRows: 6 }boolean,AutoSizeTypetrue
color 颜色 qr-code 二维码
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]静态数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-
[minimum]最少提及次数number-
[maximum]最多提及次数number-

ui 属性

成员说明类型默认值
[asyncData]异步静态数据源(input: string) => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[loadData]实时数据(option: MentionOnSearchTypes) => Observable<SFSchemaEnumType[]>-
[notFoundContent]未找到时的内容string无匹配结果,轻敲空格完成输入
[placement]建议框位置button,topbutton
[prefix]触发弹出下拉框的字符'string' 'string[]'@
[valueWith]建议选项的取值方法(value: any) => string-
[select]下拉框选择建议时回调(value: any) => void-
[inputStyle]文本框类型text, textareatext
[autosize]自适应内容高度,可设置为 true|false 或对象:{ minRows: 2, maxRows: 6 }boolean,AutoSizeTypetrue
color 颜色 qr-code 二维码
Loading...
\ No newline at end of file diff --git a/form/modal/en/index.html b/form/modal/en/index.html index 041294b92..6cc2ad0df 100644 --- a/form/modal/en/index.html +++ b/form/modal/en/index.html @@ -19,4 +19,4 @@ open(): void { this.mh.create(DemoSfComponent).subscribe(console.log); } -}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/form/modal/zh/index.html b/form/modal/zh/index.html index 61b257744..be039dc4f 100644 --- a/form/modal/zh/index.html +++ b/form/modal/zh/index.html @@ -19,4 +19,4 @@ open(): void { this.mh.create(DemoSfComponent).subscribe(console.log); } -}
i18n 国际化 object 对象
Loading...
\ No newline at end of file +}
i18n 国际化 object 对象
Loading...
\ No newline at end of file diff --git a/form/monaco-editor/en/index.html b/form/monaco-editor/en/index.html index c866f6340..4d0e5cd4a 100644 --- a/form/monaco-editor/en/index.html +++ b/form/monaco-editor/en/index.html @@ -28,4 +28,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

ui 属性

成员说明类型默认值
[options]配置项说明,见官网monaco.editor.IStandaloneEditorConstructionOptions-
[delay]延迟加载时间number-
[change]编辑器内容发生改变时会触发该事件(value: string) => void-
[height]Height of monaco editorstring200px
[model]Model of monaco editorNuMonacoEditorModel-
(event)Event callbackEventEmitter<NuMonacoEditorEvent>-
Loading...
\ No newline at end of file +}

API

ui 属性

成员说明类型默认值
[options]配置项说明,见官网monaco.editor.IStandaloneEditorConstructionOptions-
[delay]延迟加载时间number-
[change]编辑器内容发生改变时会触发该事件(value: string) => void-
[height]Height of monaco editorstring200px
[model]Model of monaco editorNuMonacoEditorModel-
(event)Event callbackEventEmitter<NuMonacoEditorEvent>-
Loading...
\ No newline at end of file diff --git a/form/monaco-editor/zh/index.html b/form/monaco-editor/zh/index.html index 7e18b53fc..1e3ec2294 100644 --- a/form/monaco-editor/zh/index.html +++ b/form/monaco-editor/zh/index.html @@ -28,4 +28,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

ui 属性

成员说明类型默认值
[options]配置项说明,见官网monaco.editor.IStandaloneEditorConstructionOptions-
[delay]延迟加载时间number-
[change]编辑器内容发生改变时会触发该事件(value: string) => void-
[height]Height of monaco editorstring200px
[model]Model of monaco editorNuMonacoEditorModel-
(event)Event callbackEventEmitter<NuMonacoEditorEvent>-
upload 上传 tinymce Tinymce富文本
Loading...
\ No newline at end of file +}

API

ui 属性

成员说明类型默认值
[options]配置项说明,见官网monaco.editor.IStandaloneEditorConstructionOptions-
[delay]延迟加载时间number-
[change]编辑器内容发生改变时会触发该事件(value: string) => void-
[height]Height of monaco editorstring200px
[model]Model of monaco editorNuMonacoEditorModel-
(event)Event callbackEventEmitter<NuMonacoEditorEvent>-
upload 上传 tinymce Tinymce富文本
Loading...
\ No newline at end of file diff --git a/form/number/en/index.html b/form/number/en/index.html index 86c0af3ea..11897a71d 100644 --- a/form/number/en/index.html +++ b/form/number/en/index.html @@ -32,4 +32,4 @@ }

API

schema 属性

成员说明类型默认值
[minimum]最小值number-
[exclusiveMinimum]约束是否包括 minimum 值,true 表示排除 minimumboolean-
[maximum]最大值number-
[exclusiveMaximum]约束是否包括 maximum 值,true 表示排除 maximumboolean-
[multipleOf]倍数number1

ui 属性

成员说明类型默认值
[prefix]前缀,简化 nzFormatternzParser 的使用--
[unit]单位,简化 nzFormatternzParser 的使用--
[formatter]等同 nzFormatter--
[parser]等同 nzParser--
[precision]等同 nzPrecision--
[widgetWidth]指定 nz-number 宽度number, string90
[hideStep]隐藏步数操作区booleanfalse
[change]变更事件(val?: number) => void-

QA

为什么 unit 无法变更

NG-ZORRO 所有组件都是 OnPush 模式,一种特殊情况是当需要动态修改 unit 时,由于需要触发一次 ngModel 变更时才会生效,因此需要使其值发生变更,例如:

const ageProperty = this.sf.getProperty('/age')!;
 ageProperty.widget.ui.unit = 'c';
 ageProperty.widget.setValue(null);
-ageProperty.widget.setValue(statusProperty.value);
Loading...
\ No newline at end of file +ageProperty.widget.setValue(statusProperty.value);
Loading...
\ No newline at end of file diff --git a/form/number/zh/index.html b/form/number/zh/index.html index bb1848ef3..3cdfb9233 100644 --- a/form/number/zh/index.html +++ b/form/number/zh/index.html @@ -32,4 +32,4 @@ }

API

schema 属性

成员说明类型默认值
[minimum]最小值number-
[exclusiveMinimum]约束是否包括 minimum 值,true 表示排除 minimumboolean-
[maximum]最大值number-
[exclusiveMaximum]约束是否包括 maximum 值,true 表示排除 maximumboolean-
[multipleOf]倍数number1

ui 属性

成员说明类型默认值
[prefix]前缀,简化 nzFormatternzParser 的使用--
[unit]单位,简化 nzFormatternzParser 的使用--
[formatter]等同 nzFormatter--
[parser]等同 nzParser--
[precision]等同 nzPrecision--
[widgetWidth]指定 nz-number 宽度number, string90
[hideStep]隐藏步数操作区booleanfalse
[change]变更事件(val?: number) => void-

QA

为什么 unit 无法变更

NG-ZORRO 所有组件都是 OnPush 模式,一种特殊情况是当需要动态修改 unit 时,由于需要触发一次 ngModel 变更时才会生效,因此需要使其值发生变更,例如:

const ageProperty = this.sf.getProperty('/age')!;
 ageProperty.widget.ui.unit = 'c';
 ageProperty.widget.setValue(null);
-ageProperty.widget.setValue(statusProperty.value);
boolean 开关 select 选择器
Loading...
\ No newline at end of file +ageProperty.widget.setValue(statusProperty.value);
boolean 开关 select 选择器
Loading...
\ No newline at end of file diff --git a/form/object/en/index.html b/form/object/en/index.html index ad23f3535..92540cd32 100644 --- a/form/object/en/index.html +++ b/form/object/en/index.html @@ -89,4 +89,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

参数说明类型默认值
[properties]定义对象的属性{ [key: string]: SFSchema }-
[required]必填项属性string[]-
[maxProperties]最大属性个数,必须是非负整数number-
[minProperties]最小属性个数,必须是非负整数number-

ui 属性

参数说明类型默认值
[showExpand]是否显示扩展,点击隐藏内容,限 type === 'card'booleantrue
[expand]展开状态,限 type === 'card'booleantrue
[showTitle]是否显示标题booleanfalse
[type]渲染类型card, defaultdefault
[cardSize]等同 nzSize 属性small, defaultsmall
[cardBodyStyle]等同 nzBodyStyle 属性{ [key: string]: string }-
[cardBorderless]等同 nzBorderless 属性booleanfalse
[cardExtra]等同 nzExtra 属性string, TemplateRef<void>-
[cardActions]等同 nzActions 属性Array<TemplateRef>-
Loading...
\ No newline at end of file +}

API

schema 属性

参数说明类型默认值
[properties]定义对象的属性{ [key: string]: SFSchema }-
[required]必填项属性string[]-
[maxProperties]最大属性个数,必须是非负整数number-
[minProperties]最小属性个数,必须是非负整数number-

ui 属性

参数说明类型默认值
[showExpand]是否显示扩展,点击隐藏内容,限 type === 'card'booleantrue
[expand]展开状态,限 type === 'card'booleantrue
[showTitle]是否显示标题booleanfalse
[type]渲染类型card, defaultdefault
[cardSize]等同 nzSize 属性small, defaultsmall
[cardBodyStyle]等同 nzBodyStyle 属性{ [key: string]: string }-
[cardBorderless]等同 nzBorderless 属性booleanfalse
[cardExtra]等同 nzExtra 属性string, TemplateRef<void>-
[cardActions]等同 nzActions 属性Array<TemplateRef>-
Loading...
\ No newline at end of file diff --git a/form/object/zh/index.html b/form/object/zh/index.html index 0011fd5b0..19d498879 100644 --- a/form/object/zh/index.html +++ b/form/object/zh/index.html @@ -89,4 +89,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

参数说明类型默认值
[properties]定义对象的属性{ [key: string]: SFSchema }-
[required]必填项属性string[]-
[maxProperties]最大属性个数,必须是非负整数number-
[minProperties]最小属性个数,必须是非负整数number-

ui 属性

参数说明类型默认值
[showExpand]是否显示扩展,点击隐藏内容,限 type === 'card'booleantrue
[expand]展开状态,限 type === 'card'booleantrue
[showTitle]是否显示标题booleanfalse
[type]渲染类型card, defaultdefault
[cardSize]等同 nzSize 属性small, defaultsmall
[cardBodyStyle]等同 nzBodyStyle 属性{ [key: string]: string }-
[cardBorderless]等同 nzBorderless 属性booleanfalse
[cardExtra]等同 nzExtra 属性string, TemplateRef<void>-
[cardActions]等同 nzActions 属性Array<TemplateRef>-
modal 模态框 array 数组
Loading...
\ No newline at end of file +}

API

schema 属性

参数说明类型默认值
[properties]定义对象的属性{ [key: string]: SFSchema }-
[required]必填项属性string[]-
[maxProperties]最大属性个数,必须是非负整数number-
[minProperties]最小属性个数,必须是非负整数number-

ui 属性

参数说明类型默认值
[showExpand]是否显示扩展,点击隐藏内容,限 type === 'card'booleantrue
[expand]展开状态,限 type === 'card'booleantrue
[showTitle]是否显示标题booleanfalse
[type]渲染类型card, defaultdefault
[cardSize]等同 nzSize 属性small, defaultsmall
[cardBodyStyle]等同 nzBodyStyle 属性{ [key: string]: string }-
[cardBorderless]等同 nzBorderless 属性booleanfalse
[cardExtra]等同 nzExtra 属性string, TemplateRef<void>-
[cardActions]等同 nzActions 属性Array<TemplateRef>-
modal 模态框 array 数组
Loading...
\ No newline at end of file diff --git a/form/qa/en/index.html b/form/qa/en/index.html index b6f86e5a6..5005298f4 100644 --- a/form/qa/en/index.html +++ b/form/qa/en/index.html @@ -68,4 +68,4 @@ sf: { ajv: { strict: false } } -};

如何切换显示或隐藏某元素

this.sf.getProperty('/mobile')?.setVisible(status).widget.detectChanges();
Loading...
\ No newline at end of file +};

如何切换显示或隐藏某元素

this.sf.getProperty('/mobile')?.setVisible(status).widget.detectChanges();
Loading...
\ No newline at end of file diff --git a/form/qa/zh/index.html b/form/qa/zh/index.html index 334b168d5..76e02a359 100644 --- a/form/qa/zh/index.html +++ b/form/qa/zh/index.html @@ -68,4 +68,4 @@ sf: { ajv: { strict: false } } -};

如何切换显示或隐藏某元素

this.sf.getProperty('/mobile')?.setVisible(status).widget.detectChanges();
如何布局 在线校验器
Loading...
\ No newline at end of file +};

如何切换显示或隐藏某元素

this.sf.getProperty('/mobile')?.setVisible(status).widget.detectChanges();
如何布局 在线校验器
Loading...
\ No newline at end of file diff --git a/form/qr-code/en/index.html b/form/qr-code/en/index.html index 66c54852f..3d49134f3 100644 --- a/form/qr-code/en/index.html +++ b/form/qr-code/en/index.html @@ -47,4 +47,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

ui 属性

成员说明类型默认值
[color]二维码颜色string#000
[bgColor]二维码背景颜色string#FFFFFF
[qrSize]二维码大小number160
[padding]二维码填充number \| number[]0
[icon]二维码中 icon 地址string-
[iconSize]二维码中 icon 大小number40
[bordered]是否有边框booleantrue
[status]二维码状态'active'|'expired' |'loading'active
[level]二维码容错等级'L'|'M'|'Q'|'H'M
(refresh)点击"点击刷新"的回调EventEmitter<string>-
Loading...
\ No newline at end of file +}

API

ui 属性

成员说明类型默认值
[color]二维码颜色string#000
[bgColor]二维码背景颜色string#FFFFFF
[qrSize]二维码大小number160
[padding]二维码填充number \| number[]0
[icon]二维码中 icon 地址string-
[iconSize]二维码中 icon 大小number40
[bordered]是否有边框booleantrue
[status]二维码状态'active'|'expired' |'loading'active
[level]二维码容错等级'L'|'M'|'Q'|'H'M
(refresh)点击"点击刷新"的回调EventEmitter<string>-
Loading...
\ No newline at end of file diff --git a/form/qr-code/zh/index.html b/form/qr-code/zh/index.html index 49a327e1b..6528804eb 100644 --- a/form/qr-code/zh/index.html +++ b/form/qr-code/zh/index.html @@ -47,4 +47,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

ui 属性

成员说明类型默认值
[color]二维码颜色string#000
[bgColor]二维码背景颜色string#FFFFFF
[qrSize]二维码大小number160
[padding]二维码填充number \| number[]0
[icon]二维码中 icon 地址string-
[iconSize]二维码中 icon 大小number40
[bordered]是否有边框booleantrue
[status]二维码状态'active'|'expired' |'loading'active
[level]二维码容错等级'L'|'M'|'Q'|'H'M
(refresh)点击"点击刷新"的回调EventEmitter<string>-
mention 提及 rate 评分
Loading...
\ No newline at end of file +}

API

ui 属性

成员说明类型默认值
[color]二维码颜色string#000
[bgColor]二维码背景颜色string#FFFFFF
[qrSize]二维码大小number160
[padding]二维码填充number \| number[]0
[icon]二维码中 icon 地址string-
[iconSize]二维码中 icon 大小number40
[bordered]是否有边框booleantrue
[status]二维码状态'active'|'expired' |'loading'active
[level]二维码容错等级'L'|'M'|'Q'|'H'M
(refresh)点击"点击刷新"的回调EventEmitter<string>-
mention 提及 rate 评分
Loading...
\ No newline at end of file diff --git a/form/radio/en/index.html b/form/radio/en/index.html index d715574cf..ec1dfa245 100644 --- a/form/radio/en/index.html +++ b/form/radio/en/index.html @@ -45,4 +45,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

参数说明类型默认值
[enum]数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

参数说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[styleType]radio 的样式default, buttondefault
[change]值变更事件(res: SFValue) => void-
[buttonStyle]RadioButton 的风格样式,目前有描边和填色两种风格'outline'|'solid''outline'
Loading...
\ No newline at end of file +}

API

schema 属性

参数说明类型默认值
[enum]数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

参数说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[styleType]radio 的样式default, buttondefault
[change]值变更事件(res: SFValue) => void-
[buttonStyle]RadioButton 的风格样式,目前有描边和填色两种风格'outline'|'solid''outline'
Loading...
\ No newline at end of file diff --git a/form/radio/zh/index.html b/form/radio/zh/index.html index b5a3c8883..1630c52a1 100644 --- a/form/radio/zh/index.html +++ b/form/radio/zh/index.html @@ -45,4 +45,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

参数说明类型默认值
[enum]数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

参数说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[styleType]radio 的样式default, buttondefault
[change]值变更事件(res: SFValue) => void-
[buttonStyle]RadioButton 的风格样式,目前有描边和填色两种风格'outline'|'solid''outline'
date 日期 text 文本
Loading...
\ No newline at end of file +}

API

schema 属性

参数说明类型默认值
[enum]数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

参数说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[styleType]radio 的样式default, buttondefault
[change]值变更事件(res: SFValue) => void-
[buttonStyle]RadioButton 的风格样式,目前有描边和填色两种风格'outline'|'solid''outline'
date 日期 text 文本
Loading...
\ No newline at end of file diff --git a/form/rate/en/index.html b/form/rate/en/index.html index 1c8c50628..af68ffddd 100644 --- a/form/rate/en/index.html +++ b/form/rate/en/index.html @@ -38,4 +38,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[maximum]总星数number5
[multipleOf]0.5 表示允许半选,其它值表示不允许number0.5

ui 属性

成员说明类型默认值
[allowClear]是否允许再次点击后清除booleantrue
[autoFocus]自动获取焦点booleanfalse
[text]提醒文本模板,{{value}} 表示当前值(注意无任何空格)string-
[tooltips]自定义每项的提示信息string[][]
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[maximum]总星数number5
[multipleOf]0.5 表示允许半选,其它值表示不允许number0.5

ui 属性

成员说明类型默认值
[allowClear]是否允许再次点击后清除booleantrue
[autoFocus]自动获取焦点booleanfalse
[text]提醒文本模板,{{value}} 表示当前值(注意无任何空格)string-
[tooltips]自定义每项的提示信息string[][]
Loading...
\ No newline at end of file diff --git a/form/rate/zh/index.html b/form/rate/zh/index.html index 547039f05..c6b7d7113 100644 --- a/form/rate/zh/index.html +++ b/form/rate/zh/index.html @@ -38,4 +38,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[maximum]总星数number5
[multipleOf]0.5 表示允许半选,其它值表示不允许number0.5

ui 属性

成员说明类型默认值
[allowClear]是否允许再次点击后清除booleantrue
[autoFocus]自动获取焦点booleanfalse
[text]提醒文本模板,{{value}} 表示当前值(注意无任何空格)string-
[tooltips]自定义每项的提示信息string[][]
qr-code 二维码 segmented 分段控制器
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[maximum]总星数number5
[multipleOf]0.5 表示允许半选,其它值表示不允许number0.5

ui 属性

成员说明类型默认值
[allowClear]是否允许再次点击后清除booleantrue
[autoFocus]自动获取焦点booleanfalse
[text]提醒文本模板,{{value}} 表示当前值(注意无任何空格)string-
[tooltips]自定义每项的提示信息string[][]
qr-code 二维码 segmented 分段控制器
Loading...
\ No newline at end of file diff --git a/form/schema/en/index.html b/form/schema/en/index.html index 169d0e25c..729a4494c 100644 --- a/form/schema/en/index.html +++ b/form/schema/en/index.html @@ -80,4 +80,4 @@ } }, required: ["login_type"] -};

逻辑类

参数说明类型默认值
[allOf]不建议 使用,可用 required 替代SFSchema[]-
[anyOf]不建议 使用,可用 requiredminProperties 替代SFSchema[]-
[oneOf]不建议 使用,值必须是其中之一SFSchema[]-

不建议 主要是并没有对逻辑类进行UI相关处理,它同条件类类似,会影响UI渲染。

格式与视觉类

参数说明类型默认值
[title]属性描述string-
[description]属性目的性解释string-
[default]默认值any-
[readOnly]是否只读状态,等同 nzDisabledboolean-
[format]数据格式,文档string-

其他

参数说明类型默认值
[definitions]内部类型定义体SFSchemaDefinition-
[$ref]引用定义体string-
[$comment]针对开发者的注释,无任何意义,也不会被校验string-

非标准

参数说明类型默认值
[ui]指定UI配置信息,优先级高于 sf 组件 ui 属性值SFUISchemaItem-

UI(SFUISchemaItem)

UI Schema 结构由通用性和小部件API两部分组成,以下是通用性部分进行接口说明,小部件部分自行参数小部件API。

为了小部件的API完整性,小部件Schema说明可能也会包含下列通用性部分。

SFUISchema

等同 <sf [ui]="ui"> 一组与 JSON Schema 结构相对应的 UI 结构体,类型为:[ key: string ]: SFUISchemaItem

基础类

参数说明类型默认值
[debug]调试模式boolean-
[order]属性顺序string[]-
[asyncData]异步静态数据源(input?: any) => Observable<SFSchemaEnumType[]>-
[hidden]是否隐藏渲染booleanfalse
[visibleIf]指定条件时才显示{ [key: string]: any[] | ((value: any, property: FormProperty) => boolean) }-
[visibleIfLogical]指定多个 visibleIf 时采用的逻辑关系or, andor
[acl]ACL权限,等同 can() 参数值ACLCanType-

visibleIf

指定条件时才显示,例如:

校验类

参数说明类型默认值
[liveValidate]是否实时校验booleantrue
[firstVisual]是否立即呈现错误视觉booleanfalse
[onlyVisual]是否只展示错误视觉不显示错误文本booleanfalse
[ingoreKeywords]忽略某些数据类型校验string[]
[errors]自定义错误信息文本{ [ key: string ]: string | ((obj: ErrorData) => string) }-
[showRequired]是否展示必填项标识 *boolean-
[validator]自定义校验,最后结果会与 Ajv 校验结果进行合并显示(value: any, formProperty: FormProperty, form: PropertyGroup) => ErrorData[]-

数组类

参数说明类型默认值
[items]指定子元素的UISFUISchema-
[addTitle]指定添加按钮文本string添加
[addType]指定添加按钮风格,等同按钮 nzTypestringdashed
[removable]指定是否显示移除按钮boolean-
[removeTitle]指定移除按钮文本string移除

表单元素类

参数说明类型默认值
[type]指定 inputtypestringtext
[placeholder]文字框中显示提示信息string-
[autofocus]加载时是否获得焦点boolean-

渲染类

参数说明类型默认值
[widget]指定采用什么小部件渲染string-
[i18n]schema.title 的国际化键值string-
[descriptionI18n]schema.description 的国际化键值string-
[class]自定义类,等同 [ngClass]string,string[]-
[width]指定宽度,单位:pxnumber-
[size]元素组件大小default,large,small-
[grid]响应式属性SFGridSchema-
[optional]标签可选信息string-
[optionalHelp]标签可选帮助string, SFOptionalHelp-

响应式属性 SFGridSchema

grid 属性等同完整的 Grid栅格系统,透过 grid 可以决定表单如何渲染。

参数说明类型默认值
[gutter]栅格间隔number-
[span]每个表单元素栅格占位格数,为 0 时相当于 display: nonenumber-
[xs]<768px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[sm]≥768px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[md]≥992px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[lg]≥1200px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[xl]≥1600px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[xxl]保留字段,0.7.0 后支持number, SFGridSizeSchema-

水平布局类 Schema

务必二者总和为 24

参数说明类型默认值
[spanLabel]label 所占栅格数number5
[spanControl]表单控件所占栅格数number19
[offsetControl]control 栅格左侧的间隔格数,间隔内不可以有栅格number-
[spanLabelFixed]label 固定宽度number-
Loading...
\ No newline at end of file +};

逻辑类

参数说明类型默认值
[allOf]不建议 使用,可用 required 替代SFSchema[]-
[anyOf]不建议 使用,可用 requiredminProperties 替代SFSchema[]-
[oneOf]不建议 使用,值必须是其中之一SFSchema[]-

不建议 主要是并没有对逻辑类进行UI相关处理,它同条件类类似,会影响UI渲染。

格式与视觉类

参数说明类型默认值
[title]属性描述string-
[description]属性目的性解释string-
[default]默认值any-
[readOnly]是否只读状态,等同 nzDisabledboolean-
[format]数据格式,文档string-

其他

参数说明类型默认值
[definitions]内部类型定义体SFSchemaDefinition-
[$ref]引用定义体string-
[$comment]针对开发者的注释,无任何意义,也不会被校验string-

非标准

参数说明类型默认值
[ui]指定UI配置信息,优先级高于 sf 组件 ui 属性值SFUISchemaItem-

UI(SFUISchemaItem)

UI Schema 结构由通用性和小部件API两部分组成,以下是通用性部分进行接口说明,小部件部分自行参数小部件API。

为了小部件的API完整性,小部件Schema说明可能也会包含下列通用性部分。

SFUISchema

等同 <sf [ui]="ui"> 一组与 JSON Schema 结构相对应的 UI 结构体,类型为:[ key: string ]: SFUISchemaItem

基础类

参数说明类型默认值
[debug]调试模式boolean-
[order]属性顺序string[]-
[asyncData]异步静态数据源(input?: any) => Observable<SFSchemaEnumType[]>-
[hidden]是否隐藏渲染booleanfalse
[visibleIf]指定条件时才显示{ [key: string]: any[] | ((value: any, property: FormProperty) => boolean) }-
[visibleIfLogical]指定多个 visibleIf 时采用的逻辑关系or, andor
[acl]ACL权限,等同 can() 参数值ACLCanType-

visibleIf

指定条件时才显示,例如:

校验类

参数说明类型默认值
[liveValidate]是否实时校验booleantrue
[firstVisual]是否立即呈现错误视觉booleanfalse
[onlyVisual]是否只展示错误视觉不显示错误文本booleanfalse
[ingoreKeywords]忽略某些数据类型校验string[]
[errors]自定义错误信息文本{ [ key: string ]: string | ((obj: ErrorData) => string) }-
[showRequired]是否展示必填项标识 *boolean-
[validator]自定义校验,最后结果会与 Ajv 校验结果进行合并显示(value: any, formProperty: FormProperty, form: PropertyGroup) => ErrorData[]-

数组类

参数说明类型默认值
[items]指定子元素的UISFUISchema-
[addTitle]指定添加按钮文本string添加
[addType]指定添加按钮风格,等同按钮 nzTypestringdashed
[removable]指定是否显示移除按钮boolean-
[removeTitle]指定移除按钮文本string移除

表单元素类

参数说明类型默认值
[type]指定 inputtypestringtext
[placeholder]文字框中显示提示信息string-
[autofocus]加载时是否获得焦点boolean-

渲染类

参数说明类型默认值
[widget]指定采用什么小部件渲染string-
[i18n]schema.title 的国际化键值string-
[descriptionI18n]schema.description 的国际化键值string-
[class]自定义类,等同 [ngClass]string,string[]-
[width]指定宽度,单位:pxnumber-
[size]元素组件大小default,large,small-
[grid]响应式属性SFGridSchema-
[optional]标签可选信息string-
[optionalHelp]标签可选帮助string, SFOptionalHelp-

响应式属性 SFGridSchema

grid 属性等同完整的 Grid栅格系统,透过 grid 可以决定表单如何渲染。

参数说明类型默认值
[gutter]栅格间隔number-
[span]每个表单元素栅格占位格数,为 0 时相当于 display: nonenumber-
[xs]<768px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[sm]≥768px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[md]≥992px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[lg]≥1200px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[xl]≥1600px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[xxl]保留字段,0.7.0 后支持number, SFGridSizeSchema-

水平布局类 Schema

务必二者总和为 24

参数说明类型默认值
[spanLabel]label 所占栅格数number5
[spanControl]表单控件所占栅格数number19
[offsetControl]control 栅格左侧的间隔格数,间隔内不可以有栅格number-
[spanLabelFixed]label 固定宽度number-
Loading...
\ No newline at end of file diff --git a/form/schema/zh/index.html b/form/schema/zh/index.html index 8ddbf1099..56c36322c 100644 --- a/form/schema/zh/index.html +++ b/form/schema/zh/index.html @@ -80,4 +80,4 @@ } }, required: ["login_type"] -};

逻辑类

参数说明类型默认值
[allOf]不建议 使用,可用 required 替代SFSchema[]-
[anyOf]不建议 使用,可用 requiredminProperties 替代SFSchema[]-
[oneOf]不建议 使用,值必须是其中之一SFSchema[]-

不建议 主要是并没有对逻辑类进行UI相关处理,它同条件类类似,会影响UI渲染。

格式与视觉类

参数说明类型默认值
[title]属性描述string-
[description]属性目的性解释string-
[default]默认值any-
[readOnly]是否只读状态,等同 nzDisabledboolean-
[format]数据格式,文档string-

其他

参数说明类型默认值
[definitions]内部类型定义体SFSchemaDefinition-
[$ref]引用定义体string-
[$comment]针对开发者的注释,无任何意义,也不会被校验string-

非标准

参数说明类型默认值
[ui]指定UI配置信息,优先级高于 sf 组件 ui 属性值SFUISchemaItem-

UI(SFUISchemaItem)

UI Schema 结构由通用性和小部件API两部分组成,以下是通用性部分进行接口说明,小部件部分自行参数小部件API。

为了小部件的API完整性,小部件Schema说明可能也会包含下列通用性部分。

SFUISchema

等同 <sf [ui]="ui"> 一组与 JSON Schema 结构相对应的 UI 结构体,类型为:[ key: string ]: SFUISchemaItem

基础类

参数说明类型默认值
[debug]调试模式boolean-
[order]属性顺序string[]-
[asyncData]异步静态数据源(input?: any) => Observable<SFSchemaEnumType[]>-
[hidden]是否隐藏渲染booleanfalse
[visibleIf]指定条件时才显示{ [key: string]: any[] | ((value: any, property: FormProperty) => boolean) }-
[visibleIfLogical]指定多个 visibleIf 时采用的逻辑关系or, andor
[acl]ACL权限,等同 can() 参数值ACLCanType-

visibleIf

指定条件时才显示,例如:

校验类

参数说明类型默认值
[liveValidate]是否实时校验booleantrue
[firstVisual]是否立即呈现错误视觉booleanfalse
[onlyVisual]是否只展示错误视觉不显示错误文本booleanfalse
[ingoreKeywords]忽略某些数据类型校验string[]
[errors]自定义错误信息文本{ [ key: string ]: string | ((obj: ErrorData) => string) }-
[showRequired]是否展示必填项标识 *boolean-
[validator]自定义校验,最后结果会与 Ajv 校验结果进行合并显示(value: any, formProperty: FormProperty, form: PropertyGroup) => ErrorData[]-

数组类

参数说明类型默认值
[items]指定子元素的UISFUISchema-
[addTitle]指定添加按钮文本string添加
[addType]指定添加按钮风格,等同按钮 nzTypestringdashed
[removable]指定是否显示移除按钮boolean-
[removeTitle]指定移除按钮文本string移除

表单元素类

参数说明类型默认值
[type]指定 inputtypestringtext
[placeholder]文字框中显示提示信息string-
[autofocus]加载时是否获得焦点boolean-

渲染类

参数说明类型默认值
[widget]指定采用什么小部件渲染string-
[i18n]schema.title 的国际化键值string-
[descriptionI18n]schema.description 的国际化键值string-
[class]自定义类,等同 [ngClass]string,string[]-
[width]指定宽度,单位:pxnumber-
[size]元素组件大小default,large,small-
[grid]响应式属性SFGridSchema-
[optional]标签可选信息string-
[optionalHelp]标签可选帮助string, SFOptionalHelp-

响应式属性 SFGridSchema

grid 属性等同完整的 Grid栅格系统,透过 grid 可以决定表单如何渲染。

参数说明类型默认值
[gutter]栅格间隔number-
[span]每个表单元素栅格占位格数,为 0 时相当于 display: nonenumber-
[xs]<768px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[sm]≥768px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[md]≥992px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[lg]≥1200px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[xl]≥1600px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[xxl]保留字段,0.7.0 后支持number, SFGridSizeSchema-

水平布局类 Schema

务必二者总和为 24

参数说明类型默认值
[spanLabel]label 所占栅格数number5
[spanControl]表单控件所占栅格数number19
[offsetControl]control 栅格左侧的间隔格数,间隔内不可以有栅格number-
[spanLabelFixed]label 固定宽度number-
开始使用 校验错误
Loading...
\ No newline at end of file +};

逻辑类

参数说明类型默认值
[allOf]不建议 使用,可用 required 替代SFSchema[]-
[anyOf]不建议 使用,可用 requiredminProperties 替代SFSchema[]-
[oneOf]不建议 使用,值必须是其中之一SFSchema[]-

不建议 主要是并没有对逻辑类进行UI相关处理,它同条件类类似,会影响UI渲染。

格式与视觉类

参数说明类型默认值
[title]属性描述string-
[description]属性目的性解释string-
[default]默认值any-
[readOnly]是否只读状态,等同 nzDisabledboolean-
[format]数据格式,文档string-

其他

参数说明类型默认值
[definitions]内部类型定义体SFSchemaDefinition-
[$ref]引用定义体string-
[$comment]针对开发者的注释,无任何意义,也不会被校验string-

非标准

参数说明类型默认值
[ui]指定UI配置信息,优先级高于 sf 组件 ui 属性值SFUISchemaItem-

UI(SFUISchemaItem)

UI Schema 结构由通用性和小部件API两部分组成,以下是通用性部分进行接口说明,小部件部分自行参数小部件API。

为了小部件的API完整性,小部件Schema说明可能也会包含下列通用性部分。

SFUISchema

等同 <sf [ui]="ui"> 一组与 JSON Schema 结构相对应的 UI 结构体,类型为:[ key: string ]: SFUISchemaItem

基础类

参数说明类型默认值
[debug]调试模式boolean-
[order]属性顺序string[]-
[asyncData]异步静态数据源(input?: any) => Observable<SFSchemaEnumType[]>-
[hidden]是否隐藏渲染booleanfalse
[visibleIf]指定条件时才显示{ [key: string]: any[] | ((value: any, property: FormProperty) => boolean) }-
[visibleIfLogical]指定多个 visibleIf 时采用的逻辑关系or, andor
[acl]ACL权限,等同 can() 参数值ACLCanType-

visibleIf

指定条件时才显示,例如:

校验类

参数说明类型默认值
[liveValidate]是否实时校验booleantrue
[firstVisual]是否立即呈现错误视觉booleanfalse
[onlyVisual]是否只展示错误视觉不显示错误文本booleanfalse
[ingoreKeywords]忽略某些数据类型校验string[]
[errors]自定义错误信息文本{ [ key: string ]: string | ((obj: ErrorData) => string) }-
[showRequired]是否展示必填项标识 *boolean-
[validator]自定义校验,最后结果会与 Ajv 校验结果进行合并显示(value: any, formProperty: FormProperty, form: PropertyGroup) => ErrorData[]-

数组类

参数说明类型默认值
[items]指定子元素的UISFUISchema-
[addTitle]指定添加按钮文本string添加
[addType]指定添加按钮风格,等同按钮 nzTypestringdashed
[removable]指定是否显示移除按钮boolean-
[removeTitle]指定移除按钮文本string移除

表单元素类

参数说明类型默认值
[type]指定 inputtypestringtext
[placeholder]文字框中显示提示信息string-
[autofocus]加载时是否获得焦点boolean-

渲染类

参数说明类型默认值
[widget]指定采用什么小部件渲染string-
[i18n]schema.title 的国际化键值string-
[descriptionI18n]schema.description 的国际化键值string-
[class]自定义类,等同 [ngClass]string,string[]-
[width]指定宽度,单位:pxnumber-
[size]元素组件大小default,large,small-
[grid]响应式属性SFGridSchema-
[optional]标签可选信息string-
[optionalHelp]标签可选帮助string, SFOptionalHelp-

响应式属性 SFGridSchema

grid 属性等同完整的 Grid栅格系统,透过 grid 可以决定表单如何渲染。

参数说明类型默认值
[gutter]栅格间隔number-
[span]每个表单元素栅格占位格数,为 0 时相当于 display: nonenumber-
[xs]<768px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[sm]≥768px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[md]≥992px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[lg]≥1200px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[xl]≥1600px 响应式栅格,可为栅格数或一个包含其他属性的对象number, SFGridSizeSchema-
[xxl]保留字段,0.7.0 后支持number, SFGridSizeSchema-

水平布局类 Schema

务必二者总和为 24

参数说明类型默认值
[spanLabel]label 所占栅格数number5
[spanControl]表单控件所占栅格数number19
[offsetControl]control 栅格左侧的间隔格数,间隔内不可以有栅格number-
[spanLabelFixed]label 固定宽度number-
开始使用 校验错误
Loading...
\ No newline at end of file diff --git a/form/segmented/en/index.html b/form/segmented/en/index.html index b7db456fb..9f42db9df 100644 --- a/form/segmented/en/index.html +++ b/form/segmented/en/index.html @@ -45,4 +45,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

ui 属性

成员说明类型默认值
[block]将宽度调整为父元素宽度的选项booleanfalse
[asyncData]异步数据() => Observable<NzSegmentedOptions>-
(valueChange)当前选中项目变化时触发回调(data: { index: number; item: SFValue }) => void-
Loading...
\ No newline at end of file +}

API

ui 属性

成员说明类型默认值
[block]将宽度调整为父元素宽度的选项booleanfalse
[asyncData]异步数据() => Observable<NzSegmentedOptions>-
(valueChange)当前选中项目变化时触发回调(data: { index: number; item: SFValue }) => void-
Loading...
\ No newline at end of file diff --git a/form/segmented/zh/index.html b/form/segmented/zh/index.html index 91920be30..4b5964903 100644 --- a/form/segmented/zh/index.html +++ b/form/segmented/zh/index.html @@ -45,4 +45,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

ui 属性

成员说明类型默认值
[block]将宽度调整为父元素宽度的选项booleanfalse
[asyncData]异步数据() => Observable<NzSegmentedOptions>-
(valueChange)当前选中项目变化时触发回调(data: { index: number; item: SFValue }) => void-
rate 评分 slider 滑动输入条
Loading...
\ No newline at end of file +}

API

ui 属性

成员说明类型默认值
[block]将宽度调整为父元素宽度的选项booleanfalse
[asyncData]异步数据() => Observable<NzSegmentedOptions>-
(valueChange)当前选中项目变化时触发回调(data: { index: number; item: SFValue }) => void-
rate 评分 slider 滑动输入条
Loading...
\ No newline at end of file diff --git a/form/select/en/index.html b/form/select/en/index.html index 8b1377ea5..25135b7c2 100644 --- a/form/select/en/index.html +++ b/form/select/en/index.html @@ -256,4 +256,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[compareWith]SelectControlValueAccessor 相同(o1: any, o2: any) => boolean(o1: any, o2: any) => o1===o2
[placeholder]在文字框中显示提示讯息string-
[autoClearSearchValue]是否在选中项后清空搜索框,只在 modemultipletags 时有效。booleantrue
[allowClear]支持清除booleanfalse
[borderless]是否无边框booleanfalse
[autoFocus]默认获取焦点booleanfalse
[dropdownClassName]下拉菜单的 className 属性string-
[dropdownMatchSelectWidth]下拉菜单和选择器同宽booleantrue
[dropdownStyle]下拉菜单的 style 属性object-
[serverSearch]是否使用服务端搜索,当为 true 时,将不再在前端对 nz-option 进行过滤booleanfalse
[searchDebounceTime]搜索抖动时间number300
[searchLoadingText]搜索加载中文本string-
[onSearch]搜索内容变化回调函数,参数为搜索内容,必须返回 Promise 对象(text: string) => Promise<SFSchemaEnum[]>-
[maxMultipleCount]最多选中多少个标签numberInfinity
[mode]设置 nz-select 的模式,tags 建议增加 default: null,否则可能会遇到初始化有一个空的标签。multiple,tags,defaultdefault
[notFoundContent]当下拉列表为空时显示的内容string-
[showSearch]使单选模式可搜索booleanfalse
[showArrow]是否显示下拉小箭头boolean单选为 true,多选为 false
[tokenSeparators]在 tags 和 multiple 模式下自动分词的分隔符string[][]
[maxTagCount]最多显示多少个 tagnumber-
[change]选中的 nz-option 发生变化时,调用此函数(ngModel:any丨any[], orgData: SFSchemaEnum丨SFSchemaEnum[])=>void-
[openChange]下拉菜单打开关闭回调函数(status: boolean) => void-
[scrollToBottom]下拉菜单滚动到底部回调,可用于作为动态加载的触发条件() => void-
[customTemplate]自定义选择框的Template内容TemplateRef<{ $implicit: NzOptionComponent }>-
[suffixIcon]自定义的选择框后缀图标TemplateRef<any>, string-
[removeIcon]自定义的多选框清除图标TemplateRef<any>-
[clearIcon]自定义的多选框清空图标TemplateRef<any>-
[menuItemSelectedIcon]自定义当前选中的条目图标TemplateRef<any>-
[maxTagPlaceholder]隐藏 tag 时显示的内容TemplateRef<{ $implicit: any[] }>-
[optionHeightPx]下拉菜单中每个 Option 的高度number32
[optionOverflowSize]下拉菜单中最多展示的 Option 个数,超出部分滚动number8
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[compareWith]SelectControlValueAccessor 相同(o1: any, o2: any) => boolean(o1: any, o2: any) => o1===o2
[placeholder]在文字框中显示提示讯息string-
[autoClearSearchValue]是否在选中项后清空搜索框,只在 modemultipletags 时有效。booleantrue
[allowClear]支持清除booleanfalse
[borderless]是否无边框booleanfalse
[autoFocus]默认获取焦点booleanfalse
[dropdownClassName]下拉菜单的 className 属性string-
[dropdownMatchSelectWidth]下拉菜单和选择器同宽booleantrue
[dropdownStyle]下拉菜单的 style 属性object-
[serverSearch]是否使用服务端搜索,当为 true 时,将不再在前端对 nz-option 进行过滤booleanfalse
[searchDebounceTime]搜索抖动时间number300
[searchLoadingText]搜索加载中文本string-
[onSearch]搜索内容变化回调函数,参数为搜索内容,必须返回 Promise 对象(text: string) => Promise<SFSchemaEnum[]>-
[maxMultipleCount]最多选中多少个标签numberInfinity
[mode]设置 nz-select 的模式,tags 建议增加 default: null,否则可能会遇到初始化有一个空的标签。multiple,tags,defaultdefault
[notFoundContent]当下拉列表为空时显示的内容string-
[showSearch]使单选模式可搜索booleanfalse
[showArrow]是否显示下拉小箭头boolean单选为 true,多选为 false
[tokenSeparators]在 tags 和 multiple 模式下自动分词的分隔符string[][]
[maxTagCount]最多显示多少个 tagnumber-
[change]选中的 nz-option 发生变化时,调用此函数(ngModel:any丨any[], orgData: SFSchemaEnum丨SFSchemaEnum[])=>void-
[openChange]下拉菜单打开关闭回调函数(status: boolean) => void-
[scrollToBottom]下拉菜单滚动到底部回调,可用于作为动态加载的触发条件() => void-
[customTemplate]自定义选择框的Template内容TemplateRef<{ $implicit: NzOptionComponent }>-
[suffixIcon]自定义的选择框后缀图标TemplateRef<any>, string-
[removeIcon]自定义的多选框清除图标TemplateRef<any>-
[clearIcon]自定义的多选框清空图标TemplateRef<any>-
[menuItemSelectedIcon]自定义当前选中的条目图标TemplateRef<any>-
[maxTagPlaceholder]隐藏 tag 时显示的内容TemplateRef<{ $implicit: any[] }>-
[optionHeightPx]下拉菜单中每个 Option 的高度number32
[optionOverflowSize]下拉菜单中最多展示的 Option 个数,超出部分滚动number8
Loading...
\ No newline at end of file diff --git a/form/select/zh/index.html b/form/select/zh/index.html index 587b7e7e2..3aafe017d 100644 --- a/form/select/zh/index.html +++ b/form/select/zh/index.html @@ -256,4 +256,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[compareWith]SelectControlValueAccessor 相同(o1: any, o2: any) => boolean(o1: any, o2: any) => o1===o2
[placeholder]在文字框中显示提示讯息string-
[autoClearSearchValue]是否在选中项后清空搜索框,只在 modemultipletags 时有效。booleantrue
[allowClear]支持清除booleanfalse
[borderless]是否无边框booleanfalse
[autoFocus]默认获取焦点booleanfalse
[dropdownClassName]下拉菜单的 className 属性string-
[dropdownMatchSelectWidth]下拉菜单和选择器同宽booleantrue
[dropdownStyle]下拉菜单的 style 属性object-
[serverSearch]是否使用服务端搜索,当为 true 时,将不再在前端对 nz-option 进行过滤booleanfalse
[searchDebounceTime]搜索抖动时间number300
[searchLoadingText]搜索加载中文本string-
[onSearch]搜索内容变化回调函数,参数为搜索内容,必须返回 Promise 对象(text: string) => Promise<SFSchemaEnum[]>-
[maxMultipleCount]最多选中多少个标签numberInfinity
[mode]设置 nz-select 的模式,tags 建议增加 default: null,否则可能会遇到初始化有一个空的标签。multiple,tags,defaultdefault
[notFoundContent]当下拉列表为空时显示的内容string-
[showSearch]使单选模式可搜索booleanfalse
[showArrow]是否显示下拉小箭头boolean单选为 true,多选为 false
[tokenSeparators]在 tags 和 multiple 模式下自动分词的分隔符string[][]
[maxTagCount]最多显示多少个 tagnumber-
[change]选中的 nz-option 发生变化时,调用此函数(ngModel:any丨any[], orgData: SFSchemaEnum丨SFSchemaEnum[])=>void-
[openChange]下拉菜单打开关闭回调函数(status: boolean) => void-
[scrollToBottom]下拉菜单滚动到底部回调,可用于作为动态加载的触发条件() => void-
[customTemplate]自定义选择框的Template内容TemplateRef<{ $implicit: NzOptionComponent }>-
[suffixIcon]自定义的选择框后缀图标TemplateRef<any>, string-
[removeIcon]自定义的多选框清除图标TemplateRef<any>-
[clearIcon]自定义的多选框清空图标TemplateRef<any>-
[menuItemSelectedIcon]自定义当前选中的条目图标TemplateRef<any>-
[maxTagPlaceholder]隐藏 tag 时显示的内容TemplateRef<{ $implicit: any[] }>-
[optionHeightPx]下拉菜单中每个 Option 的高度number32
[optionOverflowSize]下拉菜单中最多展示的 Option 个数,超出部分滚动number8
number 数字 checkbox 多选框
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[compareWith]SelectControlValueAccessor 相同(o1: any, o2: any) => boolean(o1: any, o2: any) => o1===o2
[placeholder]在文字框中显示提示讯息string-
[autoClearSearchValue]是否在选中项后清空搜索框,只在 modemultipletags 时有效。booleantrue
[allowClear]支持清除booleanfalse
[borderless]是否无边框booleanfalse
[autoFocus]默认获取焦点booleanfalse
[dropdownClassName]下拉菜单的 className 属性string-
[dropdownMatchSelectWidth]下拉菜单和选择器同宽booleantrue
[dropdownStyle]下拉菜单的 style 属性object-
[serverSearch]是否使用服务端搜索,当为 true 时,将不再在前端对 nz-option 进行过滤booleanfalse
[searchDebounceTime]搜索抖动时间number300
[searchLoadingText]搜索加载中文本string-
[onSearch]搜索内容变化回调函数,参数为搜索内容,必须返回 Promise 对象(text: string) => Promise<SFSchemaEnum[]>-
[maxMultipleCount]最多选中多少个标签numberInfinity
[mode]设置 nz-select 的模式,tags 建议增加 default: null,否则可能会遇到初始化有一个空的标签。multiple,tags,defaultdefault
[notFoundContent]当下拉列表为空时显示的内容string-
[showSearch]使单选模式可搜索booleanfalse
[showArrow]是否显示下拉小箭头boolean单选为 true,多选为 false
[tokenSeparators]在 tags 和 multiple 模式下自动分词的分隔符string[][]
[maxTagCount]最多显示多少个 tagnumber-
[change]选中的 nz-option 发生变化时,调用此函数(ngModel:any丨any[], orgData: SFSchemaEnum丨SFSchemaEnum[])=>void-
[openChange]下拉菜单打开关闭回调函数(status: boolean) => void-
[scrollToBottom]下拉菜单滚动到底部回调,可用于作为动态加载的触发条件() => void-
[customTemplate]自定义选择框的Template内容TemplateRef<{ $implicit: NzOptionComponent }>-
[suffixIcon]自定义的选择框后缀图标TemplateRef<any>, string-
[removeIcon]自定义的多选框清除图标TemplateRef<any>-
[clearIcon]自定义的多选框清空图标TemplateRef<any>-
[menuItemSelectedIcon]自定义当前选中的条目图标TemplateRef<any>-
[maxTagPlaceholder]隐藏 tag 时显示的内容TemplateRef<{ $implicit: any[] }>-
[optionHeightPx]下拉菜单中每个 Option 的高度number32
[optionOverflowSize]下拉菜单中最多展示的 Option 个数,超出部分滚动number8
number 数字 checkbox 多选框
Loading...
\ No newline at end of file diff --git a/form/slider/en/index.html b/form/slider/en/index.html index 12ea7b2bd..c122c46e6 100644 --- a/form/slider/en/index.html +++ b/form/slider/en/index.html @@ -36,4 +36,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[minimum]最小值number0
[maximum]最大值number100
[multipleOf]倍数number1

ui 属性

成员说明类型默认值
[range]当添加该属性时,启动双滑块模式Boolean-
[marks]刻度标记NzMarks-
[dots]是否只能拖拽到刻度上Booleanfalse
[included]是否包含。marks 不为空对象时有效,值为 true 时表示值为包含关系,false 表示并列Booleantrue
[vertical]竖直显示。添加该属性时,Slider 为垂直方向。booleanfalse
[afterChange]onmouseup 触发时机一致,把当前值作为参数传入。(value: NzSliderValue) => void-
[formatter]Slider 会把当前值传给 nzTipFormatter,并在 Tooltip 中显示 nzTipFormatter 的返回值,若为 null,则隐藏 Tooltip(value: number) => string-
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[minimum]最小值number0
[maximum]最大值number100
[multipleOf]倍数number1

ui 属性

成员说明类型默认值
[range]当添加该属性时,启动双滑块模式Boolean-
[marks]刻度标记NzMarks-
[dots]是否只能拖拽到刻度上Booleanfalse
[included]是否包含。marks 不为空对象时有效,值为 true 时表示值为包含关系,false 表示并列Booleantrue
[vertical]竖直显示。添加该属性时,Slider 为垂直方向。booleanfalse
[afterChange]onmouseup 触发时机一致,把当前值作为参数传入。(value: NzSliderValue) => void-
[formatter]Slider 会把当前值传给 nzTipFormatter,并在 Tooltip 中显示 nzTipFormatter 的返回值,若为 null,则隐藏 Tooltip(value: number) => string-
Loading...
\ No newline at end of file diff --git a/form/slider/zh/index.html b/form/slider/zh/index.html index 711518058..a44da7790 100644 --- a/form/slider/zh/index.html +++ b/form/slider/zh/index.html @@ -36,4 +36,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[minimum]最小值number0
[maximum]最大值number100
[multipleOf]倍数number1

ui 属性

成员说明类型默认值
[range]当添加该属性时,启动双滑块模式Boolean-
[marks]刻度标记NzMarks-
[dots]是否只能拖拽到刻度上Booleanfalse
[included]是否包含。marks 不为空对象时有效,值为 true 时表示值为包含关系,false 表示并列Booleantrue
[vertical]竖直显示。添加该属性时,Slider 为垂直方向。booleanfalse
[afterChange]onmouseup 触发时机一致,把当前值作为参数传入。(value: NzSliderValue) => void-
[formatter]Slider 会把当前值传给 nzTipFormatter,并在 Tooltip 中显示 nzTipFormatter 的返回值,若为 null,则隐藏 Tooltip(value: number) => string-
segmented 分段控制器 tag 标签
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[minimum]最小值number0
[maximum]最大值number100
[multipleOf]倍数number1

ui 属性

成员说明类型默认值
[range]当添加该属性时,启动双滑块模式Boolean-
[marks]刻度标记NzMarks-
[dots]是否只能拖拽到刻度上Booleanfalse
[included]是否包含。marks 不为空对象时有效,值为 true 时表示值为包含关系,false 表示并列Booleantrue
[vertical]竖直显示。添加该属性时,Slider 为垂直方向。booleanfalse
[afterChange]onmouseup 触发时机一致,把当前值作为参数传入。(value: NzSliderValue) => void-
[formatter]Slider 会把当前值传给 nzTipFormatter,并在 Tooltip 中显示 nzTipFormatter 的返回值,若为 null,则隐藏 Tooltip(value: number) => string-
segmented 分段控制器 tag 标签
Loading...
\ No newline at end of file diff --git a/form/string/en/index.html b/form/string/en/index.html index fa07a248a..1d41fc53f 100644 --- a/form/string/en/index.html +++ b/form/string/en/index.html @@ -111,4 +111,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[maxLength]表单最大长度number-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[type]等同 input 的 type 值,例如:passwordstring-
[placeholder]在文字框中显示提示讯息string-
[borderless]是否隐藏边框booleanfalse
[autocomplete]自动完成功能的表单HTML Attribute-
[autofocus]当页面加载时获得焦点HTML Attribute-
[addOnBefore]前置标签,等同 nzAddOnBeforestring-
[addOnAfter]后置标签,等同 nzAddOnAfterstring-
[addOnBeforeIcon]前置Icon,等同 nzAddOnBeforeIconstring-
[addOnAfterIcon]后置Icon,等同 nzAddOnAfterIconstring-
[prefix]带有前缀图标的 input,等同 nzPrefixstring-
[prefixIcon]前缀图标,等同 nzPrefixIconstring-
[suffix]带有后缀图标的 input,等同 nzSuffixstring-
[suffixIcon]后缀图标,等同 nzSuffixIconstring-
[changeDebounceTime]change 事件节流与顺序控制的阀值number-
[changeMap]转换数据,相当于 switchMap 操作(val: string) => Observable<any>-
[change]内容变更事件(val: string) => void-
[focus]焦点事件(e: FocusEvent) => void-
[blur]失焦事件(e: FocusEvent) => void-
[enter]回车事件(e: KeyboardEvent) => void-
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[maxLength]表单最大长度number-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[type]等同 input 的 type 值,例如:passwordstring-
[placeholder]在文字框中显示提示讯息string-
[borderless]是否隐藏边框booleanfalse
[autocomplete]自动完成功能的表单HTML Attribute-
[autofocus]当页面加载时获得焦点HTML Attribute-
[addOnBefore]前置标签,等同 nzAddOnBeforestring-
[addOnAfter]后置标签,等同 nzAddOnAfterstring-
[addOnBeforeIcon]前置Icon,等同 nzAddOnBeforeIconstring-
[addOnAfterIcon]后置Icon,等同 nzAddOnAfterIconstring-
[prefix]带有前缀图标的 input,等同 nzPrefixstring-
[prefixIcon]前缀图标,等同 nzPrefixIconstring-
[suffix]带有后缀图标的 input,等同 nzSuffixstring-
[suffixIcon]后缀图标,等同 nzSuffixIconstring-
[changeDebounceTime]change 事件节流与顺序控制的阀值number-
[changeMap]转换数据,相当于 switchMap 操作(val: string) => Observable<any>-
[change]内容变更事件(val: string) => void-
[focus]焦点事件(e: FocusEvent) => void-
[blur]失焦事件(e: FocusEvent) => void-
[enter]回车事件(e: KeyboardEvent) => void-
Loading...
\ No newline at end of file diff --git a/form/string/zh/index.html b/form/string/zh/index.html index 7f4f98f4a..4daacf3e4 100644 --- a/form/string/zh/index.html +++ b/form/string/zh/index.html @@ -111,4 +111,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[maxLength]表单最大长度number-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[type]等同 input 的 type 值,例如:passwordstring-
[placeholder]在文字框中显示提示讯息string-
[borderless]是否隐藏边框booleanfalse
[autocomplete]自动完成功能的表单HTML Attribute-
[autofocus]当页面加载时获得焦点HTML Attribute-
[addOnBefore]前置标签,等同 nzAddOnBeforestring-
[addOnAfter]后置标签,等同 nzAddOnAfterstring-
[addOnBeforeIcon]前置Icon,等同 nzAddOnBeforeIconstring-
[addOnAfterIcon]后置Icon,等同 nzAddOnAfterIconstring-
[prefix]带有前缀图标的 input,等同 nzPrefixstring-
[prefixIcon]前缀图标,等同 nzPrefixIconstring-
[suffix]带有后缀图标的 input,等同 nzSuffixstring-
[suffixIcon]后缀图标,等同 nzSuffixIconstring-
[changeDebounceTime]change 事件节流与顺序控制的阀值number-
[changeMap]转换数据,相当于 switchMap 操作(val: string) => Observable<any>-
[change]内容变更事件(val: string) => void-
[focus]焦点事件(e: FocusEvent) => void-
[blur]失焦事件(e: FocusEvent) => void-
[enter]回车事件(e: KeyboardEvent) => void-
array 数组 boolean 开关
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[maxLength]表单最大长度number-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[type]等同 input 的 type 值,例如:passwordstring-
[placeholder]在文字框中显示提示讯息string-
[borderless]是否隐藏边框booleanfalse
[autocomplete]自动完成功能的表单HTML Attribute-
[autofocus]当页面加载时获得焦点HTML Attribute-
[addOnBefore]前置标签,等同 nzAddOnBeforestring-
[addOnAfter]后置标签,等同 nzAddOnAfterstring-
[addOnBeforeIcon]前置Icon,等同 nzAddOnBeforeIconstring-
[addOnAfterIcon]后置Icon,等同 nzAddOnAfterIconstring-
[prefix]带有前缀图标的 input,等同 nzPrefixstring-
[prefixIcon]前缀图标,等同 nzPrefixIconstring-
[suffix]带有后缀图标的 input,等同 nzSuffixstring-
[suffixIcon]后缀图标,等同 nzSuffixIconstring-
[changeDebounceTime]change 事件节流与顺序控制的阀值number-
[changeMap]转换数据,相当于 switchMap 操作(val: string) => Observable<any>-
[change]内容变更事件(val: string) => void-
[focus]焦点事件(e: FocusEvent) => void-
[blur]失焦事件(e: FocusEvent) => void-
[enter]回车事件(e: KeyboardEvent) => void-
array 数组 boolean 开关
Loading...
\ No newline at end of file diff --git a/form/tag/en/index.html b/form/tag/en/index.html index 2e400a923..440581bc8 100644 --- a/form/tag/en/index.html +++ b/form/tag/en/index.html @@ -57,4 +57,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[mode]设定标签工作的模式'closeable'|'default'|'checkable''checkable'
[onClose]关闭时的回调,在 nzMode="closable" 时可用(e:MouseEvent) => void-
[checkedChange]设置标签的选中状态的回调(status: boolean) => void-
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[mode]设定标签工作的模式'closeable'|'default'|'checkable''checkable'
[onClose]关闭时的回调,在 nzMode="closable" 时可用(e:MouseEvent) => void-
[checkedChange]设置标签的选中状态的回调(status: boolean) => void-
Loading...
\ No newline at end of file diff --git a/form/tag/zh/index.html b/form/tag/zh/index.html index 6ebf6c658..817290cf1 100644 --- a/form/tag/zh/index.html +++ b/form/tag/zh/index.html @@ -57,4 +57,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[mode]设定标签工作的模式'closeable'|'default'|'checkable''checkable'
[onClose]关闭时的回调,在 nzMode="closable" 时可用(e:MouseEvent) => void-
[checkedChange]设置标签的选中状态的回调(status: boolean) => void-
slider 滑动输入条 time 时间
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[mode]设定标签工作的模式'closeable'|'default'|'checkable''checkable'
[onClose]关闭时的回调,在 nzMode="closable" 时可用(e:MouseEvent) => void-
[checkedChange]设置标签的选中状态的回调(status: boolean) => void-
slider 滑动输入条 time 时间
Loading...
\ No newline at end of file diff --git a/form/text/en/index.html b/form/text/en/index.html index 333af550a..6fdda7b45 100644 --- a/form/text/en/index.html +++ b/form/text/en/index.html @@ -33,4 +33,4 @@ this.msg.success(JSON.stringify(value)); }, 1000); } -}

API

ui 属性

参数说明类型默认值
[defaultText]当值不存在时所指定的文本string-
[html]是否支持HTMLbooleantrue
Loading...
\ No newline at end of file +}

API

ui 属性

参数说明类型默认值
[defaultText]当值不存在时所指定的文本string-
[html]是否支持HTMLbooleantrue
Loading...
\ No newline at end of file diff --git a/form/text/zh/index.html b/form/text/zh/index.html index ff943e6e7..bf1296c56 100644 --- a/form/text/zh/index.html +++ b/form/text/zh/index.html @@ -33,4 +33,4 @@ this.msg.success(JSON.stringify(value)); }, 1000); } -}

API

ui 属性

参数说明类型默认值
[defaultText]当值不存在时所指定的文本string-
[html]是否支持HTMLbooleantrue
radio 单选框 textarea 多行文本框
Loading...
\ No newline at end of file +}

API

ui 属性

参数说明类型默认值
[defaultText]当值不存在时所指定的文本string-
[html]是否支持HTMLbooleantrue
radio 单选框 textarea 多行文本框
Loading...
\ No newline at end of file diff --git a/form/textarea/en/index.html b/form/textarea/en/index.html index db17c0f4f..0d32313f2 100644 --- a/form/textarea/en/index.html +++ b/form/textarea/en/index.html @@ -37,4 +37,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[maxLength]表单最大长度number-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[autosize]自适应内容高度,可设置为 true|false 或对象:{ minRows: 2, maxRows: 6 }Boolean|Objecttrue
[borderless]是否隐藏边框booleanfalse
[maxCharacterCount]textarea 数字提示显示的最大值number-
[computeCharacterCount]自定义计算 characterCount 的函数(v: string) => numberv => v.length
[change]内容变更事件(val: string) => void-
[focus]焦点事件(e: FocusEvent) => void-
[blur]失焦事件(e: FocusEvent) => void-
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[maxLength]表单最大长度number-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[autosize]自适应内容高度,可设置为 true|false 或对象:{ minRows: 2, maxRows: 6 }Boolean|Objecttrue
[borderless]是否隐藏边框booleanfalse
[maxCharacterCount]textarea 数字提示显示的最大值number-
[computeCharacterCount]自定义计算 characterCount 的函数(v: string) => numberv => v.length
[change]内容变更事件(val: string) => void-
[focus]焦点事件(e: FocusEvent) => void-
[blur]失焦事件(e: FocusEvent) => void-
Loading...
\ No newline at end of file diff --git a/form/textarea/zh/index.html b/form/textarea/zh/index.html index 5c5d682cd..65750f66e 100644 --- a/form/textarea/zh/index.html +++ b/form/textarea/zh/index.html @@ -37,4 +37,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[maxLength]表单最大长度number-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[autosize]自适应内容高度,可设置为 true|false 或对象:{ minRows: 2, maxRows: 6 }Boolean|Objecttrue
[borderless]是否隐藏边框booleanfalse
[maxCharacterCount]textarea 数字提示显示的最大值number-
[computeCharacterCount]自定义计算 characterCount 的函数(v: string) => numberv => v.length
[change]内容变更事件(val: string) => void-
[focus]焦点事件(e: FocusEvent) => void-
[blur]失焦事件(e: FocusEvent) => void-
text 文本 autocomplete 自动完成
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[maxLength]表单最大长度number-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[autosize]自适应内容高度,可设置为 true|false 或对象:{ minRows: 2, maxRows: 6 }Boolean|Objecttrue
[borderless]是否隐藏边框booleanfalse
[maxCharacterCount]textarea 数字提示显示的最大值number-
[computeCharacterCount]自定义计算 characterCount 的函数(v: string) => numberv => v.length
[change]内容变更事件(val: string) => void-
[focus]焦点事件(e: FocusEvent) => void-
[blur]失焦事件(e: FocusEvent) => void-
text 文本 autocomplete 自动完成
Loading...
\ No newline at end of file diff --git a/form/time/en/index.html b/form/time/en/index.html index 404431f65..3565434e8 100644 --- a/form/time/en/index.html +++ b/form/time/en/index.html @@ -41,4 +41,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[readOnly]禁用状态boolean-
[format]数据格式类型string-

ui 属性

成员说明类型默认值
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[format]数据格式化stringHH:mm:ss
[displayFormat]显示格式化,(等同 nzFormat 值)stringHH:mm:ss
[utcEpoch]是否UTC新纪元(表示从 1970 开始计毫秒数),当 type='number' 时有效booleanfalse
[allowEmpty]是否展示清除按钮booleantrue
[clearText]清除按钮的提示文案string清除
[defaultOpenValue]设置面板打开时默认选中的值Datenew Date()
[disabledHours]禁止选择部分小时选项() => number[]-
[disabledMinutes]禁止选择部分分钟选项(hour: number) => number[]-
[disabledSeconds]禁止选择部分秒选项(hour: number, minute: number) => number[]-
[hideDisabledOptions]隐藏禁止选择的选项booleanfalse
[hourStep]小时选项间隔number1
[minuteStep]分钟选项间隔number1
[secondStep]秒选项间隔number1
[popupClassName]弹出层类名string-
[change]时间发生变化的回调(value: Date) => void-
[openChange]面板打开/关闭时的回调(status: boolean) => void-
[nowText]此刻按钮文本string-
[okText]确认按钮文本string-
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[readOnly]禁用状态boolean-
[format]数据格式类型string-

ui 属性

成员说明类型默认值
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[format]数据格式化stringHH:mm:ss
[displayFormat]显示格式化,(等同 nzFormat 值)stringHH:mm:ss
[utcEpoch]是否UTC新纪元(表示从 1970 开始计毫秒数),当 type='number' 时有效booleanfalse
[allowEmpty]是否展示清除按钮booleantrue
[clearText]清除按钮的提示文案string清除
[defaultOpenValue]设置面板打开时默认选中的值Datenew Date()
[disabledHours]禁止选择部分小时选项() => number[]-
[disabledMinutes]禁止选择部分分钟选项(hour: number) => number[]-
[disabledSeconds]禁止选择部分秒选项(hour: number, minute: number) => number[]-
[hideDisabledOptions]隐藏禁止选择的选项booleanfalse
[hourStep]小时选项间隔number1
[minuteStep]分钟选项间隔number1
[secondStep]秒选项间隔number1
[popupClassName]弹出层类名string-
[change]时间发生变化的回调(value: Date) => void-
[openChange]面板打开/关闭时的回调(status: boolean) => void-
[nowText]此刻按钮文本string-
[okText]确认按钮文本string-
Loading...
\ No newline at end of file diff --git a/form/time/zh/index.html b/form/time/zh/index.html index 8e66dbde0..1831b082f 100644 --- a/form/time/zh/index.html +++ b/form/time/zh/index.html @@ -41,4 +41,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[readOnly]禁用状态boolean-
[format]数据格式类型string-

ui 属性

成员说明类型默认值
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[format]数据格式化stringHH:mm:ss
[displayFormat]显示格式化,(等同 nzFormat 值)stringHH:mm:ss
[utcEpoch]是否UTC新纪元(表示从 1970 开始计毫秒数),当 type='number' 时有效booleanfalse
[allowEmpty]是否展示清除按钮booleantrue
[clearText]清除按钮的提示文案string清除
[defaultOpenValue]设置面板打开时默认选中的值Datenew Date()
[disabledHours]禁止选择部分小时选项() => number[]-
[disabledMinutes]禁止选择部分分钟选项(hour: number) => number[]-
[disabledSeconds]禁止选择部分秒选项(hour: number, minute: number) => number[]-
[hideDisabledOptions]隐藏禁止选择的选项booleanfalse
[hourStep]小时选项间隔number1
[minuteStep]分钟选项间隔number1
[secondStep]秒选项间隔number1
[popupClassName]弹出层类名string-
[change]时间发生变化的回调(value: Date) => void-
[openChange]面板打开/关闭时的回调(status: boolean) => void-
[nowText]此刻按钮文本string-
[okText]确认按钮文本string-
tag 标签 transfer 穿梭框
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[readOnly]禁用状态boolean-
[format]数据格式类型string-

ui 属性

成员说明类型默认值
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[format]数据格式化stringHH:mm:ss
[displayFormat]显示格式化,(等同 nzFormat 值)stringHH:mm:ss
[utcEpoch]是否UTC新纪元(表示从 1970 开始计毫秒数),当 type='number' 时有效booleanfalse
[allowEmpty]是否展示清除按钮booleantrue
[clearText]清除按钮的提示文案string清除
[defaultOpenValue]设置面板打开时默认选中的值Datenew Date()
[disabledHours]禁止选择部分小时选项() => number[]-
[disabledMinutes]禁止选择部分分钟选项(hour: number) => number[]-
[disabledSeconds]禁止选择部分秒选项(hour: number, minute: number) => number[]-
[hideDisabledOptions]隐藏禁止选择的选项booleanfalse
[hourStep]小时选项间隔number1
[minuteStep]分钟选项间隔number1
[secondStep]秒选项间隔number1
[popupClassName]弹出层类名string-
[change]时间发生变化的回调(value: Date) => void-
[openChange]面板打开/关闭时的回调(status: boolean) => void-
[nowText]此刻按钮文本string-
[okText]确认按钮文本string-
tag 标签 transfer 穿梭框
Loading...
\ No newline at end of file diff --git a/form/tinymce/en/index.html b/form/tinymce/en/index.html index a64b57869..a84cd2848 100644 --- a/form/tinymce/en/index.html +++ b/form/tinymce/en/index.html @@ -26,4 +26,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

ui 属性

成员说明类型默认值
configanysee configure
loadingstring,TemplateRef-Loading status of tinymce
disabledbooleanfalseSet tinymce mode is readonly if true
inlinebooleanfalseInline editor
delaynumber0Delayed rendering, unit is 'millisecond'
placeholderstring-Placeholder for tinymce, NOTE: dependent on tinymce-placeholder
readyEventEmitter<any>-Tinymce ready callback
Loading...
\ No newline at end of file +}

API

ui 属性

成员说明类型默认值
configanysee configure
loadingstring,TemplateRef-Loading status of tinymce
disabledbooleanfalseSet tinymce mode is readonly if true
inlinebooleanfalseInline editor
delaynumber0Delayed rendering, unit is 'millisecond'
placeholderstring-Placeholder for tinymce, NOTE: dependent on tinymce-placeholder
readyEventEmitter<any>-Tinymce ready callback
Loading...
\ No newline at end of file diff --git a/form/tinymce/zh/index.html b/form/tinymce/zh/index.html index 89f4f5302..41976bdb4 100644 --- a/form/tinymce/zh/index.html +++ b/form/tinymce/zh/index.html @@ -26,4 +26,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

ui 属性

成员说明类型默认值
configanysee configure
loadingstring,TemplateRef-Loading status of tinymce
disabledbooleanfalseSet tinymce mode is readonly if true
inlinebooleanfalseInline editor
delaynumber0Delayed rendering, unit is 'millisecond'
placeholderstring-Placeholder for tinymce, NOTE: dependent on tinymce-placeholder
readyEventEmitter<any>-Tinymce ready callback
monaco-editor Monaco Editor
Loading...
\ No newline at end of file +}

API

ui 属性

成员说明类型默认值
configanysee configure
loadingstring,TemplateRef-Loading status of tinymce
disabledbooleanfalseSet tinymce mode is readonly if true
inlinebooleanfalseInline editor
delaynumber0Delayed rendering, unit is 'millisecond'
placeholderstring-Placeholder for tinymce, NOTE: dependent on tinymce-placeholder
readyEventEmitter<any>-Tinymce ready callback
monaco-editor Monaco Editor
Loading...
\ No newline at end of file diff --git a/form/transfer/en/index.html b/form/transfer/en/index.html index 244dcd7a3..0e7ff1da0 100644 --- a/form/transfer/en/index.html +++ b/form/transfer/en/index.html @@ -50,4 +50,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[titles]标题集合,顺序从左至右string[]['', '']
[operations]操作文案集合,顺序从下至上string[]['', '']
[listStyle]两个穿梭框的自定义样式,以ngStyle写法标题object-
[itemUnit]单数单位string项目
[itemsUnit]复数单位string项目
[showSearch]是否显示搜索框booleanfalse
[filterOption]接收 inputValueoption 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 false--
[searchPlaceholder]搜索框的默认值string-
[notFoundContent]当列表为空时显示的内容string-
[canMove]穿梭时二次校验。function-
[change]选项在两栏之间转移时的回调函数(options: TransferChange) => void-
[searchChange]搜索框内容时改变时的回调函数(options: TransferSearchChange) => void-
[selectChange]选中项发生改变时的回调函数(options: TransferSelectChange) => void-
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[titles]标题集合,顺序从左至右string[]['', '']
[operations]操作文案集合,顺序从下至上string[]['', '']
[listStyle]两个穿梭框的自定义样式,以ngStyle写法标题object-
[itemUnit]单数单位string项目
[itemsUnit]复数单位string项目
[showSearch]是否显示搜索框booleanfalse
[filterOption]接收 inputValueoption 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 false--
[searchPlaceholder]搜索框的默认值string-
[notFoundContent]当列表为空时显示的内容string-
[canMove]穿梭时二次校验。function-
[change]选项在两栏之间转移时的回调函数(options: TransferChange) => void-
[searchChange]搜索框内容时改变时的回调函数(options: TransferSearchChange) => void-
[selectChange]选中项发生改变时的回调函数(options: TransferSelectChange) => void-
Loading...
\ No newline at end of file diff --git a/form/transfer/zh/index.html b/form/transfer/zh/index.html index c7091221b..4feb35249 100644 --- a/form/transfer/zh/index.html +++ b/form/transfer/zh/index.html @@ -50,4 +50,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[titles]标题集合,顺序从左至右string[]['', '']
[operations]操作文案集合,顺序从下至上string[]['', '']
[listStyle]两个穿梭框的自定义样式,以ngStyle写法标题object-
[itemUnit]单数单位string项目
[itemsUnit]复数单位string项目
[showSearch]是否显示搜索框booleanfalse
[filterOption]接收 inputValueoption 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 false--
[searchPlaceholder]搜索框的默认值string-
[notFoundContent]当列表为空时显示的内容string-
[canMove]穿梭时二次校验。function-
[change]选项在两栏之间转移时的回调函数(options: TransferChange) => void-
[searchChange]搜索框内容时改变时的回调函数(options: TransferSearchChange) => void-
[selectChange]选中项发生改变时的回调函数(options: TransferSelectChange) => void-
time 时间 tree-select 树选择
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[titles]标题集合,顺序从左至右string[]['', '']
[operations]操作文案集合,顺序从下至上string[]['', '']
[listStyle]两个穿梭框的自定义样式,以ngStyle写法标题object-
[itemUnit]单数单位string项目
[itemsUnit]复数单位string项目
[showSearch]是否显示搜索框booleanfalse
[filterOption]接收 inputValueoption 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 false--
[searchPlaceholder]搜索框的默认值string-
[notFoundContent]当列表为空时显示的内容string-
[canMove]穿梭时二次校验。function-
[change]选项在两栏之间转移时的回调函数(options: TransferChange) => void-
[searchChange]搜索框内容时改变时的回调函数(options: TransferSearchChange) => void-
[selectChange]选中项发生改变时的回调函数(options: TransferSelectChange) => void-
time 时间 tree-select 树选择
Loading...
\ No newline at end of file diff --git a/form/tree-select/en/index.html b/form/tree-select/en/index.html index 1bf03756d..db5a19484 100644 --- a/form/tree-select/en/index.html +++ b/form/tree-select/en/index.html @@ -184,4 +184,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestringdefault
[placeholder]在文字框中显示提示讯息string-
[notFoundContent]当下拉列表为空时显示的内容string-
[allowClear]支持清除booleanfalse
[dropdownMatchSelectWidth]下拉菜单和选择器同宽booleantrue
[dropdownStyle]下拉菜单的 style 属性object-
[dropdownClassName]下拉菜单的 className 属性string-
[multiple]支持多选(当设置 checkable 时自动变为true)booleanfalse
[hideUnMatched]搜索隐藏未匹配的节点booleanfalse
[checkable]节点前添加 Checkbox 复选框booleanfalse
[checkStrictly]checkable 状态下节点选择完全受控(父子节点选中状态不再关联)booleanfalse
[showIcon]是否展示 TreeNode title 前的图标,没有默认样式booleanfalse
[showExpand]节点前添加展开图标booleantrue
[showLine]节点前添加展开图标booleanfalse
[defaultExpandAll]默认展开所有树节点booleanfalse
[displayWith]如何在输入框显示所选的节点值的方法(node: NzTreeNode) => string | undefined(node: NzTreeNode) => node.title
[expandedKeys]默认展开指定的树节点string[]-
[maxTagCount]最多显示多少个 tagnumber-
[maxTagPlaceholder]隐藏 tag 时显示的内容TemplateRef<{ $implicit: NzTreeNode[] }>-
[treeTemplate]自定义节点TemplateRef<{ $implicit: NzTreeNode; origin: NzTreeNodeOptions }>-
[expandChange]点击展开树节点图标调用(e: NzFormatEmitEvent) => Observable<SFSchemaEnum[]>-
[virtualHeight]虚拟滚动的总高度string-
[virtualItemSize]虚拟滚动时每一列的高度,与 cdk itemSize 相同number28
[virtualMaxBufferPx]缓冲区最大像素高度,与 cdk maxBufferPx 相同number500
[virtualMinBufferPx]缓冲区最小像素高度,低于该值时将加载新结构,与 cdk minBufferPx 相同number28

异步数据务必先指定初始化数据(使用 enumasyncData 选其一),否则无法触发 expandChange

Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestringdefault
[placeholder]在文字框中显示提示讯息string-
[notFoundContent]当下拉列表为空时显示的内容string-
[allowClear]支持清除booleanfalse
[dropdownMatchSelectWidth]下拉菜单和选择器同宽booleantrue
[dropdownStyle]下拉菜单的 style 属性object-
[dropdownClassName]下拉菜单的 className 属性string-
[multiple]支持多选(当设置 checkable 时自动变为true)booleanfalse
[hideUnMatched]搜索隐藏未匹配的节点booleanfalse
[checkable]节点前添加 Checkbox 复选框booleanfalse
[checkStrictly]checkable 状态下节点选择完全受控(父子节点选中状态不再关联)booleanfalse
[showIcon]是否展示 TreeNode title 前的图标,没有默认样式booleanfalse
[showExpand]节点前添加展开图标booleantrue
[showLine]节点前添加展开图标booleanfalse
[defaultExpandAll]默认展开所有树节点booleanfalse
[displayWith]如何在输入框显示所选的节点值的方法(node: NzTreeNode) => string | undefined(node: NzTreeNode) => node.title
[expandedKeys]默认展开指定的树节点string[]-
[maxTagCount]最多显示多少个 tagnumber-
[maxTagPlaceholder]隐藏 tag 时显示的内容TemplateRef<{ $implicit: NzTreeNode[] }>-
[treeTemplate]自定义节点TemplateRef<{ $implicit: NzTreeNode; origin: NzTreeNodeOptions }>-
[expandChange]点击展开树节点图标调用(e: NzFormatEmitEvent) => Observable<SFSchemaEnum[]>-
[virtualHeight]虚拟滚动的总高度string-
[virtualItemSize]虚拟滚动时每一列的高度,与 cdk itemSize 相同number28
[virtualMaxBufferPx]缓冲区最大像素高度,与 cdk maxBufferPx 相同number500
[virtualMinBufferPx]缓冲区最小像素高度,低于该值时将加载新结构,与 cdk minBufferPx 相同number28

异步数据务必先指定初始化数据(使用 enumasyncData 选其一),否则无法触发 expandChange

Loading...
\ No newline at end of file diff --git a/form/tree-select/zh/index.html b/form/tree-select/zh/index.html index 249b3ff36..b4d78b51e 100644 --- a/form/tree-select/zh/index.html +++ b/form/tree-select/zh/index.html @@ -184,4 +184,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestringdefault
[placeholder]在文字框中显示提示讯息string-
[notFoundContent]当下拉列表为空时显示的内容string-
[allowClear]支持清除booleanfalse
[dropdownMatchSelectWidth]下拉菜单和选择器同宽booleantrue
[dropdownStyle]下拉菜单的 style 属性object-
[dropdownClassName]下拉菜单的 className 属性string-
[multiple]支持多选(当设置 checkable 时自动变为true)booleanfalse
[hideUnMatched]搜索隐藏未匹配的节点booleanfalse
[checkable]节点前添加 Checkbox 复选框booleanfalse
[checkStrictly]checkable 状态下节点选择完全受控(父子节点选中状态不再关联)booleanfalse
[showIcon]是否展示 TreeNode title 前的图标,没有默认样式booleanfalse
[showExpand]节点前添加展开图标booleantrue
[showLine]节点前添加展开图标booleanfalse
[defaultExpandAll]默认展开所有树节点booleanfalse
[displayWith]如何在输入框显示所选的节点值的方法(node: NzTreeNode) => string | undefined(node: NzTreeNode) => node.title
[expandedKeys]默认展开指定的树节点string[]-
[maxTagCount]最多显示多少个 tagnumber-
[maxTagPlaceholder]隐藏 tag 时显示的内容TemplateRef<{ $implicit: NzTreeNode[] }>-
[treeTemplate]自定义节点TemplateRef<{ $implicit: NzTreeNode; origin: NzTreeNodeOptions }>-
[expandChange]点击展开树节点图标调用(e: NzFormatEmitEvent) => Observable<SFSchemaEnum[]>-
[virtualHeight]虚拟滚动的总高度string-
[virtualItemSize]虚拟滚动时每一列的高度,与 cdk itemSize 相同number28
[virtualMaxBufferPx]缓冲区最大像素高度,与 cdk maxBufferPx 相同number500
[virtualMinBufferPx]缓冲区最小像素高度,低于该值时将加载新结构,与 cdk minBufferPx 相同number28

异步数据务必先指定初始化数据(使用 enumasyncData 选其一),否则无法触发 expandChange

transfer 穿梭框 upload 上传
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[enum]数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestringdefault
[placeholder]在文字框中显示提示讯息string-
[notFoundContent]当下拉列表为空时显示的内容string-
[allowClear]支持清除booleanfalse
[dropdownMatchSelectWidth]下拉菜单和选择器同宽booleantrue
[dropdownStyle]下拉菜单的 style 属性object-
[dropdownClassName]下拉菜单的 className 属性string-
[multiple]支持多选(当设置 checkable 时自动变为true)booleanfalse
[hideUnMatched]搜索隐藏未匹配的节点booleanfalse
[checkable]节点前添加 Checkbox 复选框booleanfalse
[checkStrictly]checkable 状态下节点选择完全受控(父子节点选中状态不再关联)booleanfalse
[showIcon]是否展示 TreeNode title 前的图标,没有默认样式booleanfalse
[showExpand]节点前添加展开图标booleantrue
[showLine]节点前添加展开图标booleanfalse
[defaultExpandAll]默认展开所有树节点booleanfalse
[displayWith]如何在输入框显示所选的节点值的方法(node: NzTreeNode) => string | undefined(node: NzTreeNode) => node.title
[expandedKeys]默认展开指定的树节点string[]-
[maxTagCount]最多显示多少个 tagnumber-
[maxTagPlaceholder]隐藏 tag 时显示的内容TemplateRef<{ $implicit: NzTreeNode[] }>-
[treeTemplate]自定义节点TemplateRef<{ $implicit: NzTreeNode; origin: NzTreeNodeOptions }>-
[expandChange]点击展开树节点图标调用(e: NzFormatEmitEvent) => Observable<SFSchemaEnum[]>-
[virtualHeight]虚拟滚动的总高度string-
[virtualItemSize]虚拟滚动时每一列的高度,与 cdk itemSize 相同number28
[virtualMaxBufferPx]缓冲区最大像素高度,与 cdk maxBufferPx 相同number500
[virtualMinBufferPx]缓冲区最小像素高度,低于该值时将加载新结构,与 cdk minBufferPx 相同number28

异步数据务必先指定初始化数据(使用 enumasyncData 选其一),否则无法触发 expandChange

transfer 穿梭框 upload 上传
Loading...
\ No newline at end of file diff --git a/form/upload/en/index.html b/form/upload/en/index.html index c5c6cdd37..d9301f2fa 100644 --- a/form/upload/en/index.html +++ b/form/upload/en/index.html @@ -62,4 +62,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[type]上传类型select,dragselect
[text]按钮文本string点击上传
[hint]提醒文本,drag 时有效string支持单个或批量,严禁上传公司数据或其他安全文件
[resReName]重命名返回参数,支持 a.b.c 的嵌套写法,若不指定表示整个返回体string-
[urlReName]重命名预览图像URL返回参数,支持 a.b.c 的嵌套写法,若不指定表示使用文件对象的 urlthumbUrlstring-
[action]必选参数, 上传的地址string, ((file: UploadFile) => string, Observable<string>)-
[accept]接受上传的文件类型, 详见 input accept Attributestring, string[]-
[limit]限制单次最多上传数量,multiple 打开时有效;0 表示不限number0
[filter]自定义过滤器UploadFilter[]-
[fileList]文件列表UploadFile[]-
[fileSize]限制文件大小,单位:KB;0 表示不限number0
[fileType]限制文件类型,例如:image/png,image/jpeg,image/gif,image/bmpstring-
[headers]设置上传的请求头部Object, (file: UploadFile) => {} | Observable<{}>-
[listType]上传列表的内建样式text,picture,picture-cardtext
[showUploadList]是否展示列表, 可设为一个对象,用于单独设定 showPreviewIconshowRemoveIconbooleantrue
[multiple]是否支持多选文件,IE10+ 支持。开启后按住 ctrl 可选择多个文件。booleanfalse
[name]发到后台的文件参数名stringfile
[data]上传所需参数或返回上传参数的方法Object, (file: UploadFile) => {} | Observable<{}>-
[withCredentials]上传请求时是否携带 cookiebooleanfalse
[directory]支持上传文件夹(caniusebooleanfalse
[openFileDialogOnClick]点击打开文件对话框booleantrue
[beforeUpload]上传文件之前的钩子,参数为上传的文件,若返回 false 则停止上传(file: UploadFile, fileList: UploadFile[]) => boolean|Observable<boolean>-
[customRequest]通过覆盖默认的上传行为,可以自定义自己的上传实现(item: UploadXHRArgs) => Subscription-
[remove]点击移除文件时的回调,返回值为 false 时不移除(file: UploadFile) => boolean|Observable-
[preview]点击文件链接或预览图标时的回调(file: UploadFile) => void-
[previewFile]自定义文件预览逻辑(file: UploadFile) => Observable<string>-
[download]点击下载文件时的回调,如果没有指定,则默认跳转到文件 url 对应的标签页(file: UploadFile) => void-
[transformFile]在上传之前转换文件。支持返回一个 Observable 对象(file: UploadFile) => UploadTransformFileType-
[change]上传文件改变时的状态(args: UploadChangeParam) => void-
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[type]上传类型select,dragselect
[text]按钮文本string点击上传
[hint]提醒文本,drag 时有效string支持单个或批量,严禁上传公司数据或其他安全文件
[resReName]重命名返回参数,支持 a.b.c 的嵌套写法,若不指定表示整个返回体string-
[urlReName]重命名预览图像URL返回参数,支持 a.b.c 的嵌套写法,若不指定表示使用文件对象的 urlthumbUrlstring-
[action]必选参数, 上传的地址string, ((file: UploadFile) => string, Observable<string>)-
[accept]接受上传的文件类型, 详见 input accept Attributestring, string[]-
[limit]限制单次最多上传数量,multiple 打开时有效;0 表示不限number0
[filter]自定义过滤器UploadFilter[]-
[fileList]文件列表UploadFile[]-
[fileSize]限制文件大小,单位:KB;0 表示不限number0
[fileType]限制文件类型,例如:image/png,image/jpeg,image/gif,image/bmpstring-
[headers]设置上传的请求头部Object, (file: UploadFile) => {} | Observable<{}>-
[listType]上传列表的内建样式text,picture,picture-cardtext
[showUploadList]是否展示列表, 可设为一个对象,用于单独设定 showPreviewIconshowRemoveIconbooleantrue
[multiple]是否支持多选文件,IE10+ 支持。开启后按住 ctrl 可选择多个文件。booleanfalse
[name]发到后台的文件参数名stringfile
[data]上传所需参数或返回上传参数的方法Object, (file: UploadFile) => {} | Observable<{}>-
[withCredentials]上传请求时是否携带 cookiebooleanfalse
[directory]支持上传文件夹(caniusebooleanfalse
[openFileDialogOnClick]点击打开文件对话框booleantrue
[beforeUpload]上传文件之前的钩子,参数为上传的文件,若返回 false 则停止上传(file: UploadFile, fileList: UploadFile[]) => boolean|Observable<boolean>-
[customRequest]通过覆盖默认的上传行为,可以自定义自己的上传实现(item: UploadXHRArgs) => Subscription-
[remove]点击移除文件时的回调,返回值为 false 时不移除(file: UploadFile) => boolean|Observable-
[preview]点击文件链接或预览图标时的回调(file: UploadFile) => void-
[previewFile]自定义文件预览逻辑(file: UploadFile) => Observable<string>-
[download]点击下载文件时的回调,如果没有指定,则默认跳转到文件 url 对应的标签页(file: UploadFile) => void-
[transformFile]在上传之前转换文件。支持返回一个 Observable 对象(file: UploadFile) => UploadTransformFileType-
[change]上传文件改变时的状态(args: UploadChangeParam) => void-
Loading...
\ No newline at end of file diff --git a/form/upload/zh/index.html b/form/upload/zh/index.html index 26c2b4583..3536c3446 100644 --- a/form/upload/zh/index.html +++ b/form/upload/zh/index.html @@ -62,4 +62,4 @@ submit(value: {}): void { this.msg.success(JSON.stringify(value)); } -}

API

schema 属性

成员说明类型默认值
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[type]上传类型select,dragselect
[text]按钮文本string点击上传
[hint]提醒文本,drag 时有效string支持单个或批量,严禁上传公司数据或其他安全文件
[resReName]重命名返回参数,支持 a.b.c 的嵌套写法,若不指定表示整个返回体string-
[urlReName]重命名预览图像URL返回参数,支持 a.b.c 的嵌套写法,若不指定表示使用文件对象的 urlthumbUrlstring-
[action]必选参数, 上传的地址string, ((file: UploadFile) => string, Observable<string>)-
[accept]接受上传的文件类型, 详见 input accept Attributestring, string[]-
[limit]限制单次最多上传数量,multiple 打开时有效;0 表示不限number0
[filter]自定义过滤器UploadFilter[]-
[fileList]文件列表UploadFile[]-
[fileSize]限制文件大小,单位:KB;0 表示不限number0
[fileType]限制文件类型,例如:image/png,image/jpeg,image/gif,image/bmpstring-
[headers]设置上传的请求头部Object, (file: UploadFile) => {} | Observable<{}>-
[listType]上传列表的内建样式text,picture,picture-cardtext
[showUploadList]是否展示列表, 可设为一个对象,用于单独设定 showPreviewIconshowRemoveIconbooleantrue
[multiple]是否支持多选文件,IE10+ 支持。开启后按住 ctrl 可选择多个文件。booleanfalse
[name]发到后台的文件参数名stringfile
[data]上传所需参数或返回上传参数的方法Object, (file: UploadFile) => {} | Observable<{}>-
[withCredentials]上传请求时是否携带 cookiebooleanfalse
[directory]支持上传文件夹(caniusebooleanfalse
[openFileDialogOnClick]点击打开文件对话框booleantrue
[beforeUpload]上传文件之前的钩子,参数为上传的文件,若返回 false 则停止上传(file: UploadFile, fileList: UploadFile[]) => boolean|Observable<boolean>-
[customRequest]通过覆盖默认的上传行为,可以自定义自己的上传实现(item: UploadXHRArgs) => Subscription-
[remove]点击移除文件时的回调,返回值为 false 时不移除(file: UploadFile) => boolean|Observable-
[preview]点击文件链接或预览图标时的回调(file: UploadFile) => void-
[previewFile]自定义文件预览逻辑(file: UploadFile) => Observable<string>-
[download]点击下载文件时的回调,如果没有指定,则默认跳转到文件 url 对应的标签页(file: UploadFile) => void-
[transformFile]在上传之前转换文件。支持返回一个 Observable 对象(file: UploadFile) => UploadTransformFileType-
[change]上传文件改变时的状态(args: UploadChangeParam) => void-
tree-select 树选择 monaco-editor Monaco Editor
Loading...
\ No newline at end of file +}

API

schema 属性

成员说明类型默认值
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[type]上传类型select,dragselect
[text]按钮文本string点击上传
[hint]提醒文本,drag 时有效string支持单个或批量,严禁上传公司数据或其他安全文件
[resReName]重命名返回参数,支持 a.b.c 的嵌套写法,若不指定表示整个返回体string-
[urlReName]重命名预览图像URL返回参数,支持 a.b.c 的嵌套写法,若不指定表示使用文件对象的 urlthumbUrlstring-
[action]必选参数, 上传的地址string, ((file: UploadFile) => string, Observable<string>)-
[accept]接受上传的文件类型, 详见 input accept Attributestring, string[]-
[limit]限制单次最多上传数量,multiple 打开时有效;0 表示不限number0
[filter]自定义过滤器UploadFilter[]-
[fileList]文件列表UploadFile[]-
[fileSize]限制文件大小,单位:KB;0 表示不限number0
[fileType]限制文件类型,例如:image/png,image/jpeg,image/gif,image/bmpstring-
[headers]设置上传的请求头部Object, (file: UploadFile) => {} | Observable<{}>-
[listType]上传列表的内建样式text,picture,picture-cardtext
[showUploadList]是否展示列表, 可设为一个对象,用于单独设定 showPreviewIconshowRemoveIconbooleantrue
[multiple]是否支持多选文件,IE10+ 支持。开启后按住 ctrl 可选择多个文件。booleanfalse
[name]发到后台的文件参数名stringfile
[data]上传所需参数或返回上传参数的方法Object, (file: UploadFile) => {} | Observable<{}>-
[withCredentials]上传请求时是否携带 cookiebooleanfalse
[directory]支持上传文件夹(caniusebooleanfalse
[openFileDialogOnClick]点击打开文件对话框booleantrue
[beforeUpload]上传文件之前的钩子,参数为上传的文件,若返回 false 则停止上传(file: UploadFile, fileList: UploadFile[]) => boolean|Observable<boolean>-
[customRequest]通过覆盖默认的上传行为,可以自定义自己的上传实现(item: UploadXHRArgs) => Subscription-
[remove]点击移除文件时的回调,返回值为 false 时不移除(file: UploadFile) => boolean|Observable-
[preview]点击文件链接或预览图标时的回调(file: UploadFile) => void-
[previewFile]自定义文件预览逻辑(file: UploadFile) => Observable<string>-
[download]点击下载文件时的回调,如果没有指定,则默认跳转到文件 url 对应的标签页(file: UploadFile) => void-
[transformFile]在上传之前转换文件。支持返回一个 Observable 对象(file: UploadFile) => UploadTransformFileType-
[change]上传文件改变时的状态(args: UploadChangeParam) => void-
tree-select 树选择 monaco-editor Monaco Editor
Loading...
\ No newline at end of file diff --git a/index.html b/index.html index 34fd10fe0..2bf62a808 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file +一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file diff --git a/main-WBRH2MOX.js b/main-3LB3NO2J.js similarity index 99% rename from main-WBRH2MOX.js rename to main-3LB3NO2J.js index ececafc11..0948db8c4 100644 --- a/main-WBRH2MOX.js +++ b/main-3LB3NO2J.js @@ -607,6 +607,6 @@ export class ThemeTableRepComponent { `),z(6,"nz-back-top"),a(7,` `),s(8,"theme-btn",0),g("themeChange",function(o){T(n);let i=m();return M(i.themeChange(o))}),l(),a(9,` `)}if(r&2){let n=m();c(3),xe(3,n.isFetching?3:-1)}}var Uo=(()=>{let e=class e{constructor(t,o,i,p,u,f){this.router=t,this.settingsSrv=i,this.location=p,this.appSrv=f,this.isFetching=!1,this.render=!0,u.change.subscribe(()=>this.fixDirection()),t.events.pipe(rr()).subscribe(x=>{if(!this.isFetching&&x instanceof wa&&(this.isFetching=!0),x instanceof xa){this.isFetching=!1,o.error(`\u65E0\u6CD5\u52A0\u8F7D${x.url}\u8DEF\u7531`,{nzDuration:1e3*3});return}x instanceof En&&(this.isFetching=!1)}),t.events.pipe(rr(),De(x=>x instanceof En),jn(100)).subscribe(()=>{this.fixDirection()})}fixDirection(){let t=this.settingsSrv.layout.direction,o=this.router.url.split(/[?#|?|#]/)[0],p=this.router.parseUrl(this.router.url).fragment;p!=null&&p.length>0?p=`#${p}`:p="",this.location.replaceState(o,(t===or?`?direction=${or}`:"")+p)}themeChange(t){this.appSrv.setTheme(t)}};e.\u0275fac=function(o){return new(o||e)(h(sn),h(St),h(Da),h(ga),h(io),h(As))},e.\u0275cmp=v({type:e,selectors:[["app-layout"]],hostVars:1,hostBindings:function(o,i){o&2&&fe("id","ng-content")},standalone:!0,features:[b],decls:2,vars:1,consts:[[3,"themeChange"],["nzSpinning","",1,"fetching"]],template:function(o,i){o&1&&(a(0,` - `),y(1,n0,10,1)),o&2&&(c(1),xe(1,i.render?1:-1))},dependencies:[Ji,Bp,fl,hl,ic,nc,Gl],encapsulation:2});let r=e;return r})();var jp=[{path:"",component:Uo,children:[{path:"",redirectTo:"en",pathMatch:"full"},{path:":lang",component:Li,data:{titleI18n:"slogan"}},{path:"docs",loadChildren:()=>import("./chunk-QT5GDMGI.js").then(r=>r.routes)},{path:"components",loadChildren:()=>import("./chunk-KO7TXYP3.js").then(r=>r.ComponentsModule)},{path:"theme",loadChildren:()=>import("./chunk-FTY5NNFB.js").then(r=>r.routes)},{path:"auth",loadChildren:()=>import("./chunk-O5GIJLVR.js").then(r=>r.routes)},{path:"acl",loadChildren:()=>import("./chunk-V7QHFTWM.js").then(r=>r.routes)},{path:"cache",loadChildren:()=>import("./chunk-V73BHA6T.js").then(r=>r.routes)},{path:"mock",loadChildren:()=>import("./chunk-7Y63X2KH.js").then(r=>r.routes)},{path:"util",loadChildren:()=>import("./chunk-SCHYXDRT.js").then(r=>r.routes)},{path:"chart",loadChildren:()=>import("./chunk-OJGQQ5QK.js").then(r=>r.ChartModule)},{path:"form",loadChildren:()=>import("./chunk-HKBCVA7A.js").then(r=>r.FormModule)},{path:"form-pages",loadChildren:()=>import("./chunk-QRLJZBTC.js").then(r=>r.routes)},{path:"cli",loadChildren:()=>import("./chunk-HBOKQ6UB.js").then(r=>r.routes)}]},{path:"dev",loadChildren:()=>import("./chunk-3O4PY7DK.js").then(r=>r.routes)},{path:"404",component:Vp},{path:"**",redirectTo:"404"}];var Vr=(()=>{let e=class e{constructor(t){this.msg=t}show(){this.msg.info("click")}};e.KEY="test",e.\u0275fac=function(o){return new(o||e)(h(St))},e.\u0275cmp=v({type:e,selectors:[["cell-widget-test"]],hostBindings:function(o,i){o&1&&g("click",function(){return i.show()})},standalone:!0,features:[b],decls:3,vars:1,consts:[["nz-tooltip","","nzTooltipTitle","Client it",1,"img",2,"cursor","pointer",3,"src"]],template:function(o,i){o&1&&(a(0," "),z(1,"img",0),a(2," ")),o&2&&(c(1),d("src",i.data.value,Mn))},dependencies:[yt,lt],encapsulation:2,changeDetection:0});let r=e;return r})();var Hp=[{KEY:Vr.KEY,type:Vr}];var Pr=(()=>{let e=class e{constructor(t){this.msg=t}ngOnChanges(t){console.log(t)}show(){this.msg.info(`\u6B63\u5728\u6253\u5F00\u5927\u56FE${this.img}\u2026\u2026`)}};e.KEY="img",e.\u0275fac=function(o){return new(o||e)(h(St))},e.\u0275cmp=v({type:e,selectors:[["st-widget-img"]],hostBindings:function(o,i){o&1&&g("click",function(){return i.show()})},standalone:!0,features:[pe,b],decls:3,vars:0,consts:[["nz-tooltip","","nzTooltipTitle","Click it","nz-image","","nzSrc","https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png",1,"img",2,"cursor","pointer",3,"click"]],template:function(o,i){o&1&&(a(0,` + `),y(1,n0,10,1)),o&2&&(c(1),xe(1,i.render?1:-1))},dependencies:[Ji,Bp,fl,hl,ic,nc,Gl],encapsulation:2});let r=e;return r})();var jp=[{path:"",component:Uo,children:[{path:"",redirectTo:"en",pathMatch:"full"},{path:":lang",component:Li,data:{titleI18n:"slogan"}},{path:"docs",loadChildren:()=>import("./chunk-I2IRRHUX.js").then(r=>r.routes)},{path:"components",loadChildren:()=>import("./chunk-KO7TXYP3.js").then(r=>r.ComponentsModule)},{path:"theme",loadChildren:()=>import("./chunk-FTY5NNFB.js").then(r=>r.routes)},{path:"auth",loadChildren:()=>import("./chunk-O5GIJLVR.js").then(r=>r.routes)},{path:"acl",loadChildren:()=>import("./chunk-V7QHFTWM.js").then(r=>r.routes)},{path:"cache",loadChildren:()=>import("./chunk-V73BHA6T.js").then(r=>r.routes)},{path:"mock",loadChildren:()=>import("./chunk-7Y63X2KH.js").then(r=>r.routes)},{path:"util",loadChildren:()=>import("./chunk-SCHYXDRT.js").then(r=>r.routes)},{path:"chart",loadChildren:()=>import("./chunk-OJGQQ5QK.js").then(r=>r.ChartModule)},{path:"form",loadChildren:()=>import("./chunk-HKBCVA7A.js").then(r=>r.FormModule)},{path:"form-pages",loadChildren:()=>import("./chunk-QRLJZBTC.js").then(r=>r.routes)},{path:"cli",loadChildren:()=>import("./chunk-HBOKQ6UB.js").then(r=>r.routes)}]},{path:"dev",loadChildren:()=>import("./chunk-3O4PY7DK.js").then(r=>r.routes)},{path:"404",component:Vp},{path:"**",redirectTo:"404"}];var Vr=(()=>{let e=class e{constructor(t){this.msg=t}show(){this.msg.info("click")}};e.KEY="test",e.\u0275fac=function(o){return new(o||e)(h(St))},e.\u0275cmp=v({type:e,selectors:[["cell-widget-test"]],hostBindings:function(o,i){o&1&&g("click",function(){return i.show()})},standalone:!0,features:[b],decls:3,vars:1,consts:[["nz-tooltip","","nzTooltipTitle","Client it",1,"img",2,"cursor","pointer",3,"src"]],template:function(o,i){o&1&&(a(0," "),z(1,"img",0),a(2," ")),o&2&&(c(1),d("src",i.data.value,Mn))},dependencies:[yt,lt],encapsulation:2,changeDetection:0});let r=e;return r})();var Hp=[{KEY:Vr.KEY,type:Vr}];var Pr=(()=>{let e=class e{constructor(t){this.msg=t}ngOnChanges(t){console.log(t)}show(){this.msg.info(`\u6B63\u5728\u6253\u5F00\u5927\u56FE${this.img}\u2026\u2026`)}};e.KEY="img",e.\u0275fac=function(o){return new(o||e)(h(St))},e.\u0275cmp=v({type:e,selectors:[["st-widget-img"]],hostBindings:function(o,i){o&1&&g("click",function(){return i.show()})},standalone:!0,features:[pe,b],decls:3,vars:0,consts:[["nz-tooltip","","nzTooltipTitle","Click it","nz-image","","nzSrc","https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png",1,"img",2,"cursor","pointer",3,"click"]],template:function(o,i){o&1&&(a(0,` `),s(1,"img",0),g("click",function(){return i.show()}),l(),a(2,` `))},dependencies:[yt,lt,Js,Xs],encapsulation:2,changeDetection:0});let r=e;return r})();var $p=[{KEY:Pr.KEY,type:Pr}];var Lr={};dd(Lr,{CHARTS:()=>o0,UPLOADS:()=>r0,USERS:()=>i0});var i0={"GET /users":r=>{let e=r.queryString.total||100,n={list:[],total:e};for(let t=0;t<+r.queryString.ps;t++)n.list.push({id:t+1,type:xt(1,3),picture:{thumbnail:`https://randomuser.me/api/portraits/thumb/${xt(0,1)===0?"men":"women"}/${xt(1,50)}.jpg`},name:{last:`last-${xt(1,10)}`,first:`first-${xt(10,20)}`},nat:["CH","US","DE"][t%3],gender:["male","female"][t%2],email:`aaa${xt(1,10)}@qq.com`,phone:`phone-${xt(1e3,1e5)}`,price:xt(10,1e7),total:xt(10,1e7),website:`https://${xt(10,1e7)}.com/`,disabled:xt(1,100)>50,registered:new Date});return n},"GET /user/check/":()=>!1,"GET /user/check/:name":r=>r.params.name==="cipchk","/500":()=>{throw new zi(500)},"/404":()=>{throw new zi(404)},"/user/:id":r=>({id:r.params.id,name:"detail"}),"/user/:id/edit":r=>({id:r.params.id,name:"edit"}),"/user/:id/upload":r=>({id:r.params.id,name:"upload"})};var o0={"GET /chart":{users:[1,2]}};var r0={"POST /upload":()=>({resource_id:+new Date,url:"https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png"})};var Wp={production:!0};var a0={abbr:"zh-CN",ng:gc,zorro:co,date:dr,delon:po},s0={st:{ps:3},lodop:{license:"A59B099A586B3851E0F0D7FDBF37B603",licenseA:"C94CEE276DB2187AE6B65D56B3FC2848"},chart:{echartsExtensions:["https://cdnjs.cloudflare.com/ajax/libs/echarts/5.1.0/theme/dark.min.js"]},themeI18n:{paramNameOfUrlGuard:"lang"},xlsx:{url:"/assets/xlsx/xlsx.full.min.js",modules:["/assets/xlsx/cpexcel.js"]},zip:{url:"/assets/jszip/jszip.min.js"},qr:{lib:"/assets/qrious/qrious.min.js"},media:{urls:["assets/plyr/plyr.min.js","assets/plyr/plyr.css"],options:{iconUrl:"assets/plyr/plyr.svg",blankVideo:"https://cdn.plyr.io/static/blank.mp4"}}},l0={},Up={providers:[{provide:da,useValue:"ngAlainDoc"},ya(Sa(),_a([])),$a(),Ta(jp,Ma()),Os({config:s0,defaultLang:a0,i18nClass:dc}),Ra(l0),gp({data:Lr}),el(...Hp),Nl(...$p),Fl({widgets:[Oc(),Bc(),jc(),$c(),Wc(),Yc(),Hl(),Xc(),ep(),tp(),rp(),dp(),up(),mp(),hp()]}),Ps({defaultOptions:{scrollBeyondLastLine:!1}}),Bs({baseURL:"https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.9.2/"}),hc(),{provide:Ui,useClass:Ap},pa(Sc.register("ngsw-worker.js",{enabled:Wp.production})),Fp()]};ba(fc,Up).catch(r=>console.error(r)); diff --git a/mock/getting-started/en/index.html b/mock/getting-started/en/index.html index a06319554..2bd939617 100644 --- a/mock/getting-started/en/index.html +++ b/mock/getting-started/en/index.html @@ -2,4 +2,4 @@ import * as MOCKDATA from '../../_mock'; export const environment = { providers: [provideMockConfig({ data: MOCKDATA })], -} as Environment;
Loading...
\ No newline at end of file +} as Environment;
Loading...
\ No newline at end of file diff --git a/mock/getting-started/zh/index.html b/mock/getting-started/zh/index.html index 9f206c722..c213a92a6 100644 --- a/mock/getting-started/zh/index.html +++ b/mock/getting-started/zh/index.html @@ -2,4 +2,4 @@ import * as MOCKDATA from '../../_mock'; export const environment = { providers: [provideMockConfig({ data: MOCKDATA })], -} as Environment;
规则数据
Loading...
\ No newline at end of file +} as Environment;
规则数据
Loading...
\ No newline at end of file diff --git a/mock/index.html b/mock/index.html index 34fd10fe0..2bf62a808 100644 --- a/mock/index.html +++ b/mock/index.html @@ -1 +1 @@ -一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file +一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file diff --git a/mock/rule/en/index.html b/mock/rule/en/index.html index 923d73315..fc1211721 100644 --- a/mock/rule/en/index.html +++ b/mock/rule/en/index.html @@ -54,4 +54,4 @@ await delay(10); return 1; } -};

存储规则

一般来说 Mock 都是开发过程中需要,因此建议在项目根目录下创建一个 _mock 目录,并创建一个 index.ts 文件用于导出所有数据规则,参考 ng-alain/_mock

Loading...
\ No newline at end of file +};

存储规则

一般来说 Mock 都是开发过程中需要,因此建议在项目根目录下创建一个 _mock 目录,并创建一个 index.ts 文件用于导出所有数据规则,参考 ng-alain/_mock

Loading...
\ No newline at end of file diff --git a/mock/rule/zh/index.html b/mock/rule/zh/index.html index cfed10229..33e9a3d40 100644 --- a/mock/rule/zh/index.html +++ b/mock/rule/zh/index.html @@ -54,4 +54,4 @@ await delay(10); return 1; } -};

存储规则

一般来说 Mock 都是开发过程中需要,因此建议在项目根目录下创建一个 _mock 目录,并创建一个 index.ts 文件用于导出所有数据规则,参考 ng-alain/_mock

开始使用
Loading...
\ No newline at end of file +};

存储规则

一般来说 Mock 都是开发过程中需要,因此建议在项目根目录下创建一个 _mock 目录,并创建一个 index.ts 文件用于导出所有数据规则,参考 ng-alain/_mock

开始使用
Loading...
\ No newline at end of file diff --git a/ngsw.en.json b/ngsw.en.json index 53aa2846c..1c9b24e48 100644 --- a/ngsw.en.json +++ b/ngsw.en.json @@ -1 +1 @@ -{"configVersion":1,"timestamp":1700981007748,"index":"/index.html","assetGroups":[{"name":"app","installMode":"prefetch","updateMode":"prefetch","cacheQueryOptions":{"ignoreVary":true},"urls":["/chunk-2HATZH5X.js","/chunk-3O4PY7DK.js","/chunk-6WEFBRTB.js","/chunk-7PCJJ67N.js","/chunk-7Y63X2KH.js","/chunk-AYK2KQFL.js","/chunk-BGR45BIN.js","/chunk-BTSKTI6R.js","/chunk-C4AR4FRY.js","/chunk-DMCH6AWB.js","/chunk-FP3E2PWX.js","/chunk-FTY5NNFB.js","/chunk-FWSZZWPR.js","/chunk-GI7CJE66.js","/chunk-H7RO7VR3.js","/chunk-HBOKQ6UB.js","/chunk-HEERJFQ3.js","/chunk-HKBCVA7A.js","/chunk-IRR56OTQ.js","/chunk-IX2EHRLS.js","/chunk-JVYLDLDV.js","/chunk-KO7TXYP3.js","/chunk-KSQL7I2A.js","/chunk-N5S7ICZQ.js","/chunk-NN7RZHFY.js","/chunk-O5GIJLVR.js","/chunk-OJGQQ5QK.js","/chunk-OZHIXC6H.js","/chunk-QEQO7AMR.js","/chunk-QRLJZBTC.js","/chunk-QT5GDMGI.js","/chunk-RJU7FRRM.js","/chunk-SBXYWWID.js","/chunk-SCHYXDRT.js","/chunk-T7I2OBCK.js","/chunk-V73BHA6T.js","/chunk-V7QHFTWM.js","/chunk-XQEG7UIJ.js","/chunk-ZLPJQUFB.js","/index.html","/main-WBRH2MOX.js","/ngsw-worker.js","/polyfills-3RNCJEXC.js","/safety-worker.js","/scripts-RST73XXA.js","/styles-AHP6OSNO.css","/worker-basic.min.js"],"patterns":["https:\\/\\/gw\\.alipayobjects\\.com\\/.*","https:\\/\\/img\\.alicdn\\.com\\/.*","https:\\/\\/dummyimage\\.com\\/.*"]},{"name":"assets","installMode":"lazy","updateMode":"prefetch","cacheQueryOptions":{"ignoreVary":true},"urls":["/assets/LOGO.ai","/assets/color.less","/assets/demo.docx","/assets/demo.pdf","/assets/demo.pptx","/assets/demo.xlsx","/assets/demo.zip","/assets/donate.png","/assets/highlight.pack.js","/assets/icons/icon-128x128.png","/assets/icons/icon-144x144.png","/assets/icons/icon-152x152.png","/assets/icons/icon-192x192.png","/assets/icons/icon-384x384.png","/assets/icons/icon-512x512.png","/assets/icons/icon-72x72.png","/assets/icons/icon-96x96.png","/assets/img/404.jpg","/assets/img/avatar.jpg","/assets/img/form-input.png","/assets/img/logo-color.png","/assets/img/logo-color.svg","/assets/img/logo-full.svg","/assets/img/logo.png","/assets/img/logo.svg","/assets/img/ng-alain.svg","/assets/img/plnkr.png","/assets/img/zorro.svg","/assets/jszip/jszip.min.js","/assets/logo-color.svg","/assets/logo-full.svg","/assets/logo.svg","/assets/plyr/plyr.css","/assets/plyr/plyr.min.js","/assets/plyr/plyr.svg","/assets/pro.png","/assets/qq-group.png","/assets/qrious/qrious.min.js","/assets/schema/basic.json","/assets/schema/conditional.json","/assets/schema/fixed.json","/assets/schema/onboarding.json","/assets/schema/sort.json","/assets/schema/validation.json","/assets/screenshot/architecture.png","/assets/screenshot/basic.png","/assets/screenshot/bundle-size.png","/assets/screenshot/data.webp","/assets/screenshot/desktop.png","/assets/screenshot/ipad.png","/assets/screenshot/iphone.png","/assets/screenshot/ms.png","/assets/screenshot/pro.png","/assets/screenshot/start.png","/assets/screenshot/yun.png","/assets/style.compact.css","/assets/style.dark.css","/assets/xlsx/cpexcel.js","/assets/xlsx/xlsx.full.min.js"],"patterns":[]}],"dataGroups":[],"hashTable":{"/assets/LOGO.ai":"f0eb50ff534d6596d2e66439066909d965fd74f2","/assets/color.less":"88c6936c164d7a27fbfe3e03000ad8f9952c4119","/assets/demo.docx":"e6cf4a7b4a490811ed5bec39e8cf203824e8703f","/assets/demo.pdf":"05248c1d4a636ee577f515809534ca1c85cd45c2","/assets/demo.pptx":"09fcb13206d59676838c2682a2a9b62f0a11863b","/assets/demo.xlsx":"fbfaf8aa861857adadaf89b28fe31ad3100395ea","/assets/demo.zip":"99584e56a5910ccb3d58d6dbbbf4c341747b9d57","/assets/donate.png":"e00d7905db3e9e5a8365072da22bf4816224a79c","/assets/highlight.pack.js":"d43298ac40a94f15d24baaa1f9d4087a7c1a2146","/assets/icons/icon-128x128.png":"a64acae4187c0ac026f569727d427e510e57bd3c","/assets/icons/icon-144x144.png":"3777651bff501b02af74e14a4a7d97330ed06b51","/assets/icons/icon-152x152.png":"1ce29288030cd2787bca6f9e20a9d9ea543c807d","/assets/icons/icon-192x192.png":"027f8042ef3f22333b7f57463f764c14fb10ddda","/assets/icons/icon-384x384.png":"8c398368508ae5b7e7b0f0b500493cb75e5d1ada","/assets/icons/icon-512x512.png":"a8d39cf76ddcb33fa87d534476b2cdefa733d5fe","/assets/icons/icon-72x72.png":"3771059af6090c411bae02002f2e1d7877c368e9","/assets/icons/icon-96x96.png":"400b8ad0e5b8bf5ac0740b3f480e713b2a3fc0e5","/assets/img/404.jpg":"9604038f6b13cb304a14a13b2fa76d43444b4414","/assets/img/avatar.jpg":"1258f9ead6901ff45abd313a1b4f265749749b58","/assets/img/form-input.png":"75c924b9bd023a5e27e9745936a27caaf20a1537","/assets/img/logo-color.png":"8defcb0c2b47a66d7c1b57f78525e488adc62642","/assets/img/logo-color.svg":"587f7e7d6cacc6eb7222b99c08d3df8abc8edd4e","/assets/img/logo-full.svg":"fed68d999561a3180b925071180d3d4cfd2b8440","/assets/img/logo.png":"7dcbf051ab322ef1bd076940e981bf9abdd5ae78","/assets/img/logo.svg":"a2334b77c19d8dc880bbbd82e9939a0aa8d59573","/assets/img/ng-alain.svg":"fb55683a364df5de725cb98a7c51b2eb21ca4de6","/assets/img/plnkr.png":"dc4da4819d5a9b4ff44f1457f96808a761ab9143","/assets/img/zorro.svg":"82d83c92dff3114bd45e985e3c8e402f37a4beb9","/assets/jszip/jszip.min.js":"c96375d50e72b199aa54de7b9ad908fd5a2dc7bc","/assets/logo-color.svg":"587f7e7d6cacc6eb7222b99c08d3df8abc8edd4e","/assets/logo-full.svg":"fed68d999561a3180b925071180d3d4cfd2b8440","/assets/logo.svg":"a2334b77c19d8dc880bbbd82e9939a0aa8d59573","/assets/plyr/plyr.css":"3e9561fb7a2a70b93bb1014f5d958b123fe61764","/assets/plyr/plyr.min.js":"9b165c0e728a0ac4e2cddc944c9a2c5819ca7342","/assets/plyr/plyr.svg":"bc98e4a347921594352fbae53aaad185c0c7f6b5","/assets/pro.png":"0e8e2bd64766aab6e12f44607ad7e92aec241468","/assets/qq-group.png":"1effddfab735644966df1759c2768f282a3e650e","/assets/qrious/qrious.min.js":"a9271e81e2ac6a692b1c133811afa33f0f3d7dc5","/assets/schema/basic.json":"d3b26817208571cfed1a5dd667875c358b1d7e1f","/assets/schema/conditional.json":"204f15af35cc98d5d692c7265d84d2645a6394f0","/assets/schema/fixed.json":"f4d6c6c66503ec0c817ab89e8538c2be028c7cff","/assets/schema/onboarding.json":"20c6f311cc99ccbf7180afb906e9abf74473786b","/assets/schema/sort.json":"850f554e1a7db144e9ad305b6a3ad79bfb58ca28","/assets/schema/validation.json":"0a5971cb42a49672e0005b88036ef47bc8cebe94","/assets/screenshot/architecture.png":"9e19b12a25deab3280ebf5795597a90af29c4c38","/assets/screenshot/basic.png":"42a70c07d9f35413991972634011459fdb010022","/assets/screenshot/bundle-size.png":"f67a8b0678161abce9afcb694db3c02d3b4b5f73","/assets/screenshot/data.webp":"286aec35bb8a1bc624d8fcfedf1a03bc08098438","/assets/screenshot/desktop.png":"42a70c07d9f35413991972634011459fdb010022","/assets/screenshot/ipad.png":"0fc5d85a81da2057ec68fc9094c0cb5c862bf309","/assets/screenshot/iphone.png":"6b7d70c66cd422ad5aee06d91ddb39c7fd0558bb","/assets/screenshot/ms.png":"26b0065c7c5d4f9f9c6b0efa4915eb6576caee75","/assets/screenshot/pro.png":"37bd67671530613e955593eb3fc818e27d18dcb6","/assets/screenshot/start.png":"8af50c7dbc9bab333f7e88b67debb6657bc61ed9","/assets/screenshot/yun.png":"b0e3dec2af4dfae8f25e5d90f19cd3c60107e89f","/assets/style.compact.css":"560798f6eb21940f4c42842139adfab6fca23c1f","/assets/style.dark.css":"4f0df7957d53e3dacad5be84c3f533541fc120fd","/assets/xlsx/cpexcel.js":"9191595b39ba1918d32fb250d3ff21d07f99fc19","/assets/xlsx/xlsx.full.min.js":"7f749f81a45a53229136c6c1f1d50dcb16ddc233","/chunk-2HATZH5X.js":"2d0590db84d764de1f6e4529db643aca74bc1960","/chunk-3O4PY7DK.js":"d55db6ed954d1701c115a653d2f2b8dcd2fc8c7a","/chunk-6WEFBRTB.js":"a55e0f005df66a426618488a2c274ed6fb10f532","/chunk-7PCJJ67N.js":"5e16a11fa8d1d6a050ed3287f00568e7a70443cc","/chunk-7Y63X2KH.js":"e1493d7549376aac43c78d989adcaa10bf7dac72","/chunk-AYK2KQFL.js":"9523fd0874a350df0f0d894b7322b988b884b479","/chunk-BGR45BIN.js":"3042faa2fad893470907eb1fd985eb4fa420f161","/chunk-BTSKTI6R.js":"d48729dc82b94385b7ebf1bccc00e835d1d9f9e9","/chunk-C4AR4FRY.js":"4dd5280dd2d21a80384ff4dee30fc6d69c920da5","/chunk-DMCH6AWB.js":"389c5f233507246b9672964ff7cad9bc639cf902","/chunk-FP3E2PWX.js":"b1e5dd6dc8975b4158ee1118ebeaa3292695294a","/chunk-FTY5NNFB.js":"fb6efefabcc590f2790c73519de9672b75a657b0","/chunk-FWSZZWPR.js":"90e318ccf2348989e7597c0b808efc5da03c15be","/chunk-GI7CJE66.js":"f912698a543dfbd244182e0937d9916933403d33","/chunk-H7RO7VR3.js":"ee73b094b50d3871d3075206a7ab75e67959aaed","/chunk-HBOKQ6UB.js":"8d26ec61a169d932690038a3a9c020cae8850c92","/chunk-HEERJFQ3.js":"539c81840419d7a821b30c05b09fa22712c1e67c","/chunk-HKBCVA7A.js":"1b0ac04f37ad4bbfbffa7a7bdfb10d6a2993aeb4","/chunk-IRR56OTQ.js":"d453ecd30aed84bac16befa15e01439fe76e26ea","/chunk-IX2EHRLS.js":"78f8d2030257a5949c891c164318a7c0a6544c42","/chunk-JVYLDLDV.js":"0de7c50166dd0fa1e678b806bbe88a651c178308","/chunk-KO7TXYP3.js":"70f32bd42c0c6c6e9e1383dfcb95a9757fb76691","/chunk-KSQL7I2A.js":"9e1562b491ff6cf596f96d5805f0866cce97bbba","/chunk-N5S7ICZQ.js":"37bcfed17279039c0fc9adf4cd13e65169446ea8","/chunk-NN7RZHFY.js":"1f93df292227f5254fe3850fdb94cdc2cbd8b43d","/chunk-O5GIJLVR.js":"cb8936925dc5ab5613efd5d861d69200ccd7ee34","/chunk-OJGQQ5QK.js":"6513d1ab14c7b7684e2546137d0ab0709fdea955","/chunk-OZHIXC6H.js":"e6079ed99bd6ec298858bf92747f086df56fce96","/chunk-QEQO7AMR.js":"a00d2bb6bf3095b5127a9cc1cee501e9899c0c13","/chunk-QRLJZBTC.js":"391ae223ebda16fe5ad90b50fd828a93ccd24145","/chunk-QT5GDMGI.js":"6dc5b32b7dcf61c294389eb8a8f1f9712adbbbf7","/chunk-RJU7FRRM.js":"e7ad8860f4520d9b92ad4d8a5fe0f6cc0a0d174c","/chunk-SBXYWWID.js":"aceec50f51876237741a8ed2e5b50e8829958a76","/chunk-SCHYXDRT.js":"82f0ca7cac88633ef82b6564e242e8b889cd90ae","/chunk-T7I2OBCK.js":"349e463ce9a3d93ebce2e456ecb5375361648535","/chunk-V73BHA6T.js":"c4b1070b0fb31363a62ea63f7365d0754ad9c28b","/chunk-V7QHFTWM.js":"a4621be38da85df3cd6c8123cfe236bc6706e37c","/chunk-XQEG7UIJ.js":"516fb17679d583505b07db4cdfdec02880f910a8","/chunk-ZLPJQUFB.js":"8f0dd9bf8212f59acf86d4cdb2cdfe4d847bf947","/index.html":"f15fcb57dc50b5e020252ddf25212776a29da1e4","/main-WBRH2MOX.js":"d31b66578c697fb009de03d83ca94461b7bf888f","/ngsw-worker.js":"b24c61e82905a46ff943b4fc56cb93ac5cca8c8e","/polyfills-3RNCJEXC.js":"b87dce659f325302b199c4b038d0b3be781876a5","/safety-worker.js":"70914dc203fa1f881e56f2b794d7a4f9c48ee745","/scripts-RST73XXA.js":"1a891857a05b3d7ca4308fa80e2c168732f39d72","/styles-AHP6OSNO.css":"99c1c118a3a8f4385ea9204183440f5c850821ce","/worker-basic.min.js":"70914dc203fa1f881e56f2b794d7a4f9c48ee745"},"navigationUrls":[{"positive":true,"regex":"^\\/.*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?[^/]*\\.[^/]*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?[^/]*__[^/]*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?[^/]*__[^/]*\\/.*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?stackblitz$"},{"positive":false,"regex":"^\\/version\\/.*$"},{"positive":false,"regex":"^\\/issue-helper\\/.*$"},{"positive":false,"regex":"^\\/docs\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/docs\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/components\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/components\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/cli\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/cli\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/theme\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/theme\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/auth\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/auth\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/acl\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/acl\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/form\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/form\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/cache\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/cache\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/chart\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/chart\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/mock\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/mock\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/util\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/util\\/[^/][^/]*$"}],"navigationRequestStrategy":"performance","local":"en"} +{"configVersion":1,"timestamp":1700981855047,"index":"/index.html","assetGroups":[{"name":"app","installMode":"prefetch","updateMode":"prefetch","cacheQueryOptions":{"ignoreVary":true},"urls":["/chunk-2HATZH5X.js","/chunk-3O4PY7DK.js","/chunk-6WEFBRTB.js","/chunk-7PCJJ67N.js","/chunk-7Y63X2KH.js","/chunk-AYK2KQFL.js","/chunk-BGR45BIN.js","/chunk-BTSKTI6R.js","/chunk-C4AR4FRY.js","/chunk-DMCH6AWB.js","/chunk-FP3E2PWX.js","/chunk-FTY5NNFB.js","/chunk-FWSZZWPR.js","/chunk-GI7CJE66.js","/chunk-H7RO7VR3.js","/chunk-HBOKQ6UB.js","/chunk-HEERJFQ3.js","/chunk-HKBCVA7A.js","/chunk-I2IRRHUX.js","/chunk-IRR56OTQ.js","/chunk-IX2EHRLS.js","/chunk-JVYLDLDV.js","/chunk-KO7TXYP3.js","/chunk-KSQL7I2A.js","/chunk-N5S7ICZQ.js","/chunk-NN7RZHFY.js","/chunk-O5GIJLVR.js","/chunk-OJGQQ5QK.js","/chunk-OZHIXC6H.js","/chunk-QEQO7AMR.js","/chunk-QRLJZBTC.js","/chunk-RJU7FRRM.js","/chunk-SBXYWWID.js","/chunk-SCHYXDRT.js","/chunk-T7I2OBCK.js","/chunk-V73BHA6T.js","/chunk-V7QHFTWM.js","/chunk-XQEG7UIJ.js","/chunk-ZLPJQUFB.js","/index.html","/main-3LB3NO2J.js","/ngsw-worker.js","/polyfills-3RNCJEXC.js","/safety-worker.js","/scripts-RST73XXA.js","/styles-AHP6OSNO.css","/worker-basic.min.js"],"patterns":["https:\\/\\/gw\\.alipayobjects\\.com\\/.*","https:\\/\\/img\\.alicdn\\.com\\/.*","https:\\/\\/dummyimage\\.com\\/.*"]},{"name":"assets","installMode":"lazy","updateMode":"prefetch","cacheQueryOptions":{"ignoreVary":true},"urls":["/assets/LOGO.ai","/assets/color.less","/assets/demo.docx","/assets/demo.pdf","/assets/demo.pptx","/assets/demo.xlsx","/assets/demo.zip","/assets/donate.png","/assets/highlight.pack.js","/assets/icons/icon-128x128.png","/assets/icons/icon-144x144.png","/assets/icons/icon-152x152.png","/assets/icons/icon-192x192.png","/assets/icons/icon-384x384.png","/assets/icons/icon-512x512.png","/assets/icons/icon-72x72.png","/assets/icons/icon-96x96.png","/assets/img/404.jpg","/assets/img/avatar.jpg","/assets/img/form-input.png","/assets/img/logo-color.png","/assets/img/logo-color.svg","/assets/img/logo-full.svg","/assets/img/logo.png","/assets/img/logo.svg","/assets/img/ng-alain.svg","/assets/img/plnkr.png","/assets/img/zorro.svg","/assets/jszip/jszip.min.js","/assets/logo-color.svg","/assets/logo-full.svg","/assets/logo.svg","/assets/plyr/plyr.css","/assets/plyr/plyr.min.js","/assets/plyr/plyr.svg","/assets/pro.png","/assets/qq-group.png","/assets/qrious/qrious.min.js","/assets/schema/basic.json","/assets/schema/conditional.json","/assets/schema/fixed.json","/assets/schema/onboarding.json","/assets/schema/sort.json","/assets/schema/validation.json","/assets/screenshot/architecture.png","/assets/screenshot/basic.png","/assets/screenshot/bundle-size.png","/assets/screenshot/data.webp","/assets/screenshot/desktop.png","/assets/screenshot/ipad.png","/assets/screenshot/iphone.png","/assets/screenshot/ms.png","/assets/screenshot/pro.png","/assets/screenshot/start.png","/assets/screenshot/yun.png","/assets/style.compact.css","/assets/style.dark.css","/assets/xlsx/cpexcel.js","/assets/xlsx/xlsx.full.min.js"],"patterns":[]}],"dataGroups":[],"hashTable":{"/assets/LOGO.ai":"f0eb50ff534d6596d2e66439066909d965fd74f2","/assets/color.less":"88c6936c164d7a27fbfe3e03000ad8f9952c4119","/assets/demo.docx":"e6cf4a7b4a490811ed5bec39e8cf203824e8703f","/assets/demo.pdf":"05248c1d4a636ee577f515809534ca1c85cd45c2","/assets/demo.pptx":"09fcb13206d59676838c2682a2a9b62f0a11863b","/assets/demo.xlsx":"fbfaf8aa861857adadaf89b28fe31ad3100395ea","/assets/demo.zip":"99584e56a5910ccb3d58d6dbbbf4c341747b9d57","/assets/donate.png":"e00d7905db3e9e5a8365072da22bf4816224a79c","/assets/highlight.pack.js":"d43298ac40a94f15d24baaa1f9d4087a7c1a2146","/assets/icons/icon-128x128.png":"a64acae4187c0ac026f569727d427e510e57bd3c","/assets/icons/icon-144x144.png":"3777651bff501b02af74e14a4a7d97330ed06b51","/assets/icons/icon-152x152.png":"1ce29288030cd2787bca6f9e20a9d9ea543c807d","/assets/icons/icon-192x192.png":"027f8042ef3f22333b7f57463f764c14fb10ddda","/assets/icons/icon-384x384.png":"8c398368508ae5b7e7b0f0b500493cb75e5d1ada","/assets/icons/icon-512x512.png":"a8d39cf76ddcb33fa87d534476b2cdefa733d5fe","/assets/icons/icon-72x72.png":"3771059af6090c411bae02002f2e1d7877c368e9","/assets/icons/icon-96x96.png":"400b8ad0e5b8bf5ac0740b3f480e713b2a3fc0e5","/assets/img/404.jpg":"9604038f6b13cb304a14a13b2fa76d43444b4414","/assets/img/avatar.jpg":"1258f9ead6901ff45abd313a1b4f265749749b58","/assets/img/form-input.png":"75c924b9bd023a5e27e9745936a27caaf20a1537","/assets/img/logo-color.png":"8defcb0c2b47a66d7c1b57f78525e488adc62642","/assets/img/logo-color.svg":"587f7e7d6cacc6eb7222b99c08d3df8abc8edd4e","/assets/img/logo-full.svg":"fed68d999561a3180b925071180d3d4cfd2b8440","/assets/img/logo.png":"7dcbf051ab322ef1bd076940e981bf9abdd5ae78","/assets/img/logo.svg":"a2334b77c19d8dc880bbbd82e9939a0aa8d59573","/assets/img/ng-alain.svg":"fb55683a364df5de725cb98a7c51b2eb21ca4de6","/assets/img/plnkr.png":"dc4da4819d5a9b4ff44f1457f96808a761ab9143","/assets/img/zorro.svg":"82d83c92dff3114bd45e985e3c8e402f37a4beb9","/assets/jszip/jszip.min.js":"c96375d50e72b199aa54de7b9ad908fd5a2dc7bc","/assets/logo-color.svg":"587f7e7d6cacc6eb7222b99c08d3df8abc8edd4e","/assets/logo-full.svg":"fed68d999561a3180b925071180d3d4cfd2b8440","/assets/logo.svg":"a2334b77c19d8dc880bbbd82e9939a0aa8d59573","/assets/plyr/plyr.css":"3e9561fb7a2a70b93bb1014f5d958b123fe61764","/assets/plyr/plyr.min.js":"9b165c0e728a0ac4e2cddc944c9a2c5819ca7342","/assets/plyr/plyr.svg":"bc98e4a347921594352fbae53aaad185c0c7f6b5","/assets/pro.png":"0e8e2bd64766aab6e12f44607ad7e92aec241468","/assets/qq-group.png":"1effddfab735644966df1759c2768f282a3e650e","/assets/qrious/qrious.min.js":"a9271e81e2ac6a692b1c133811afa33f0f3d7dc5","/assets/schema/basic.json":"d3b26817208571cfed1a5dd667875c358b1d7e1f","/assets/schema/conditional.json":"204f15af35cc98d5d692c7265d84d2645a6394f0","/assets/schema/fixed.json":"f4d6c6c66503ec0c817ab89e8538c2be028c7cff","/assets/schema/onboarding.json":"20c6f311cc99ccbf7180afb906e9abf74473786b","/assets/schema/sort.json":"850f554e1a7db144e9ad305b6a3ad79bfb58ca28","/assets/schema/validation.json":"0a5971cb42a49672e0005b88036ef47bc8cebe94","/assets/screenshot/architecture.png":"9e19b12a25deab3280ebf5795597a90af29c4c38","/assets/screenshot/basic.png":"42a70c07d9f35413991972634011459fdb010022","/assets/screenshot/bundle-size.png":"f67a8b0678161abce9afcb694db3c02d3b4b5f73","/assets/screenshot/data.webp":"286aec35bb8a1bc624d8fcfedf1a03bc08098438","/assets/screenshot/desktop.png":"42a70c07d9f35413991972634011459fdb010022","/assets/screenshot/ipad.png":"0fc5d85a81da2057ec68fc9094c0cb5c862bf309","/assets/screenshot/iphone.png":"6b7d70c66cd422ad5aee06d91ddb39c7fd0558bb","/assets/screenshot/ms.png":"26b0065c7c5d4f9f9c6b0efa4915eb6576caee75","/assets/screenshot/pro.png":"37bd67671530613e955593eb3fc818e27d18dcb6","/assets/screenshot/start.png":"8af50c7dbc9bab333f7e88b67debb6657bc61ed9","/assets/screenshot/yun.png":"b0e3dec2af4dfae8f25e5d90f19cd3c60107e89f","/assets/style.compact.css":"560798f6eb21940f4c42842139adfab6fca23c1f","/assets/style.dark.css":"4f0df7957d53e3dacad5be84c3f533541fc120fd","/assets/xlsx/cpexcel.js":"9191595b39ba1918d32fb250d3ff21d07f99fc19","/assets/xlsx/xlsx.full.min.js":"7f749f81a45a53229136c6c1f1d50dcb16ddc233","/chunk-2HATZH5X.js":"2d0590db84d764de1f6e4529db643aca74bc1960","/chunk-3O4PY7DK.js":"d55db6ed954d1701c115a653d2f2b8dcd2fc8c7a","/chunk-6WEFBRTB.js":"a55e0f005df66a426618488a2c274ed6fb10f532","/chunk-7PCJJ67N.js":"5e16a11fa8d1d6a050ed3287f00568e7a70443cc","/chunk-7Y63X2KH.js":"e1493d7549376aac43c78d989adcaa10bf7dac72","/chunk-AYK2KQFL.js":"9523fd0874a350df0f0d894b7322b988b884b479","/chunk-BGR45BIN.js":"3042faa2fad893470907eb1fd985eb4fa420f161","/chunk-BTSKTI6R.js":"d48729dc82b94385b7ebf1bccc00e835d1d9f9e9","/chunk-C4AR4FRY.js":"4dd5280dd2d21a80384ff4dee30fc6d69c920da5","/chunk-DMCH6AWB.js":"389c5f233507246b9672964ff7cad9bc639cf902","/chunk-FP3E2PWX.js":"b1e5dd6dc8975b4158ee1118ebeaa3292695294a","/chunk-FTY5NNFB.js":"fb6efefabcc590f2790c73519de9672b75a657b0","/chunk-FWSZZWPR.js":"90e318ccf2348989e7597c0b808efc5da03c15be","/chunk-GI7CJE66.js":"f912698a543dfbd244182e0937d9916933403d33","/chunk-H7RO7VR3.js":"ee73b094b50d3871d3075206a7ab75e67959aaed","/chunk-HBOKQ6UB.js":"8d26ec61a169d932690038a3a9c020cae8850c92","/chunk-HEERJFQ3.js":"539c81840419d7a821b30c05b09fa22712c1e67c","/chunk-HKBCVA7A.js":"1b0ac04f37ad4bbfbffa7a7bdfb10d6a2993aeb4","/chunk-I2IRRHUX.js":"69272c822fb07bae0398628b40556e290796347d","/chunk-IRR56OTQ.js":"d453ecd30aed84bac16befa15e01439fe76e26ea","/chunk-IX2EHRLS.js":"78f8d2030257a5949c891c164318a7c0a6544c42","/chunk-JVYLDLDV.js":"0de7c50166dd0fa1e678b806bbe88a651c178308","/chunk-KO7TXYP3.js":"70f32bd42c0c6c6e9e1383dfcb95a9757fb76691","/chunk-KSQL7I2A.js":"9e1562b491ff6cf596f96d5805f0866cce97bbba","/chunk-N5S7ICZQ.js":"37bcfed17279039c0fc9adf4cd13e65169446ea8","/chunk-NN7RZHFY.js":"1f93df292227f5254fe3850fdb94cdc2cbd8b43d","/chunk-O5GIJLVR.js":"cb8936925dc5ab5613efd5d861d69200ccd7ee34","/chunk-OJGQQ5QK.js":"6513d1ab14c7b7684e2546137d0ab0709fdea955","/chunk-OZHIXC6H.js":"e6079ed99bd6ec298858bf92747f086df56fce96","/chunk-QEQO7AMR.js":"a00d2bb6bf3095b5127a9cc1cee501e9899c0c13","/chunk-QRLJZBTC.js":"391ae223ebda16fe5ad90b50fd828a93ccd24145","/chunk-RJU7FRRM.js":"e7ad8860f4520d9b92ad4d8a5fe0f6cc0a0d174c","/chunk-SBXYWWID.js":"aceec50f51876237741a8ed2e5b50e8829958a76","/chunk-SCHYXDRT.js":"82f0ca7cac88633ef82b6564e242e8b889cd90ae","/chunk-T7I2OBCK.js":"349e463ce9a3d93ebce2e456ecb5375361648535","/chunk-V73BHA6T.js":"c4b1070b0fb31363a62ea63f7365d0754ad9c28b","/chunk-V7QHFTWM.js":"a4621be38da85df3cd6c8123cfe236bc6706e37c","/chunk-XQEG7UIJ.js":"516fb17679d583505b07db4cdfdec02880f910a8","/chunk-ZLPJQUFB.js":"8f0dd9bf8212f59acf86d4cdb2cdfe4d847bf947","/index.html":"8724dccc7dce71a93bb4f559a94b646b80111320","/main-3LB3NO2J.js":"2dfd211e78c2dbed67ed50b19fb78d9e7b923211","/ngsw-worker.js":"b24c61e82905a46ff943b4fc56cb93ac5cca8c8e","/polyfills-3RNCJEXC.js":"b87dce659f325302b199c4b038d0b3be781876a5","/safety-worker.js":"70914dc203fa1f881e56f2b794d7a4f9c48ee745","/scripts-RST73XXA.js":"1a891857a05b3d7ca4308fa80e2c168732f39d72","/styles-AHP6OSNO.css":"99c1c118a3a8f4385ea9204183440f5c850821ce","/worker-basic.min.js":"70914dc203fa1f881e56f2b794d7a4f9c48ee745"},"navigationUrls":[{"positive":true,"regex":"^\\/.*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?[^/]*\\.[^/]*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?[^/]*__[^/]*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?[^/]*__[^/]*\\/.*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?stackblitz$"},{"positive":false,"regex":"^\\/version\\/.*$"},{"positive":false,"regex":"^\\/issue-helper\\/.*$"},{"positive":false,"regex":"^\\/docs\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/docs\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/components\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/components\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/cli\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/cli\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/theme\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/theme\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/auth\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/auth\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/acl\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/acl\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/form\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/form\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/cache\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/cache\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/chart\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/chart\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/mock\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/mock\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/util\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/util\\/[^/][^/]*$"}],"navigationRequestStrategy":"performance","local":"en"} diff --git a/ngsw.json b/ngsw.json index 6cc37b310..452492794 100644 --- a/ngsw.json +++ b/ngsw.json @@ -1,6 +1,6 @@ { "configVersion": 1, - "timestamp": 1700981007748, + "timestamp": 1700981855047, "index": "/index.html", "assetGroups": [ { @@ -29,6 +29,7 @@ "/chunk-HBOKQ6UB.js", "/chunk-HEERJFQ3.js", "/chunk-HKBCVA7A.js", + "/chunk-I2IRRHUX.js", "/chunk-IRR56OTQ.js", "/chunk-IX2EHRLS.js", "/chunk-JVYLDLDV.js", @@ -41,7 +42,6 @@ "/chunk-OZHIXC6H.js", "/chunk-QEQO7AMR.js", "/chunk-QRLJZBTC.js", - "/chunk-QT5GDMGI.js", "/chunk-RJU7FRRM.js", "/chunk-SBXYWWID.js", "/chunk-SCHYXDRT.js", @@ -51,7 +51,7 @@ "/chunk-XQEG7UIJ.js", "/chunk-ZLPJQUFB.js", "/index.html", - "/main-WBRH2MOX.js", + "/main-3LB3NO2J.js", "/ngsw-worker.js", "/polyfills-3RNCJEXC.js", "/safety-worker.js", @@ -215,6 +215,7 @@ "/chunk-HBOKQ6UB.js": "8d26ec61a169d932690038a3a9c020cae8850c92", "/chunk-HEERJFQ3.js": "539c81840419d7a821b30c05b09fa22712c1e67c", "/chunk-HKBCVA7A.js": "1b0ac04f37ad4bbfbffa7a7bdfb10d6a2993aeb4", + "/chunk-I2IRRHUX.js": "69272c822fb07bae0398628b40556e290796347d", "/chunk-IRR56OTQ.js": "d453ecd30aed84bac16befa15e01439fe76e26ea", "/chunk-IX2EHRLS.js": "78f8d2030257a5949c891c164318a7c0a6544c42", "/chunk-JVYLDLDV.js": "0de7c50166dd0fa1e678b806bbe88a651c178308", @@ -227,7 +228,6 @@ "/chunk-OZHIXC6H.js": "e6079ed99bd6ec298858bf92747f086df56fce96", "/chunk-QEQO7AMR.js": "a00d2bb6bf3095b5127a9cc1cee501e9899c0c13", "/chunk-QRLJZBTC.js": "391ae223ebda16fe5ad90b50fd828a93ccd24145", - "/chunk-QT5GDMGI.js": "6dc5b32b7dcf61c294389eb8a8f1f9712adbbbf7", "/chunk-RJU7FRRM.js": "e7ad8860f4520d9b92ad4d8a5fe0f6cc0a0d174c", "/chunk-SBXYWWID.js": "aceec50f51876237741a8ed2e5b50e8829958a76", "/chunk-SCHYXDRT.js": "82f0ca7cac88633ef82b6564e242e8b889cd90ae", @@ -236,8 +236,8 @@ "/chunk-V7QHFTWM.js": "a4621be38da85df3cd6c8123cfe236bc6706e37c", "/chunk-XQEG7UIJ.js": "516fb17679d583505b07db4cdfdec02880f910a8", "/chunk-ZLPJQUFB.js": "8f0dd9bf8212f59acf86d4cdb2cdfe4d847bf947", - "/index.html": "f15fcb57dc50b5e020252ddf25212776a29da1e4", - "/main-WBRH2MOX.js": "d31b66578c697fb009de03d83ca94461b7bf888f", + "/index.html": "8724dccc7dce71a93bb4f559a94b646b80111320", + "/main-3LB3NO2J.js": "2dfd211e78c2dbed67ed50b19fb78d9e7b923211", "/ngsw-worker.js": "b24c61e82905a46ff943b4fc56cb93ac5cca8c8e", "/polyfills-3RNCJEXC.js": "b87dce659f325302b199c4b038d0b3be781876a5", "/safety-worker.js": "70914dc203fa1f881e56f2b794d7a4f9c48ee745", diff --git a/ngsw.zh.json b/ngsw.zh.json index ceb2ec0ac..a25649072 100644 --- a/ngsw.zh.json +++ b/ngsw.zh.json @@ -1 +1 @@ -{"configVersion":1,"timestamp":1700981006335,"index":"/index.html","assetGroups":[{"name":"app","installMode":"prefetch","updateMode":"prefetch","cacheQueryOptions":{"ignoreVary":true},"urls":["/chunk-2HATZH5X.js","/chunk-3O4PY7DK.js","/chunk-6WEFBRTB.js","/chunk-7PCJJ67N.js","/chunk-7Y63X2KH.js","/chunk-AYK2KQFL.js","/chunk-BGR45BIN.js","/chunk-BTSKTI6R.js","/chunk-C4AR4FRY.js","/chunk-DMCH6AWB.js","/chunk-FP3E2PWX.js","/chunk-FTY5NNFB.js","/chunk-FWSZZWPR.js","/chunk-GI7CJE66.js","/chunk-H7RO7VR3.js","/chunk-HBOKQ6UB.js","/chunk-HEERJFQ3.js","/chunk-HKBCVA7A.js","/chunk-IRR56OTQ.js","/chunk-IX2EHRLS.js","/chunk-JVYLDLDV.js","/chunk-KO7TXYP3.js","/chunk-KSQL7I2A.js","/chunk-N5S7ICZQ.js","/chunk-NN7RZHFY.js","/chunk-O5GIJLVR.js","/chunk-OJGQQ5QK.js","/chunk-OZHIXC6H.js","/chunk-QEQO7AMR.js","/chunk-QRLJZBTC.js","/chunk-QT5GDMGI.js","/chunk-RJU7FRRM.js","/chunk-SBXYWWID.js","/chunk-SCHYXDRT.js","/chunk-T7I2OBCK.js","/chunk-V73BHA6T.js","/chunk-V7QHFTWM.js","/chunk-XQEG7UIJ.js","/chunk-ZLPJQUFB.js","/index.html","/main-WBRH2MOX.js","/ngsw-worker.js","/polyfills-3RNCJEXC.js","/safety-worker.js","/scripts-RST73XXA.js","/styles-AHP6OSNO.css","/worker-basic.min.js"],"patterns":["https:\\/\\/gw\\.alipayobjects\\.com\\/.*","https:\\/\\/img\\.alicdn\\.com\\/.*","https:\\/\\/dummyimage\\.com\\/.*"]},{"name":"assets","installMode":"lazy","updateMode":"prefetch","cacheQueryOptions":{"ignoreVary":true},"urls":["/assets/LOGO.ai","/assets/color.less","/assets/demo.docx","/assets/demo.pdf","/assets/demo.pptx","/assets/demo.xlsx","/assets/demo.zip","/assets/donate.png","/assets/highlight.pack.js","/assets/icons/icon-128x128.png","/assets/icons/icon-144x144.png","/assets/icons/icon-152x152.png","/assets/icons/icon-192x192.png","/assets/icons/icon-384x384.png","/assets/icons/icon-512x512.png","/assets/icons/icon-72x72.png","/assets/icons/icon-96x96.png","/assets/img/404.jpg","/assets/img/avatar.jpg","/assets/img/form-input.png","/assets/img/logo-color.png","/assets/img/logo-color.svg","/assets/img/logo-full.svg","/assets/img/logo.png","/assets/img/logo.svg","/assets/img/ng-alain.svg","/assets/img/plnkr.png","/assets/img/zorro.svg","/assets/jszip/jszip.min.js","/assets/logo-color.svg","/assets/logo-full.svg","/assets/logo.svg","/assets/plyr/plyr.css","/assets/plyr/plyr.min.js","/assets/plyr/plyr.svg","/assets/pro.png","/assets/qq-group.png","/assets/qrious/qrious.min.js","/assets/schema/basic.json","/assets/schema/conditional.json","/assets/schema/fixed.json","/assets/schema/onboarding.json","/assets/schema/sort.json","/assets/schema/validation.json","/assets/screenshot/architecture.png","/assets/screenshot/basic.png","/assets/screenshot/bundle-size.png","/assets/screenshot/data.webp","/assets/screenshot/desktop.png","/assets/screenshot/ipad.png","/assets/screenshot/iphone.png","/assets/screenshot/ms.png","/assets/screenshot/pro.png","/assets/screenshot/start.png","/assets/screenshot/yun.png","/assets/style.compact.css","/assets/style.dark.css","/assets/xlsx/cpexcel.js","/assets/xlsx/xlsx.full.min.js"],"patterns":[]}],"dataGroups":[],"hashTable":{"/assets/LOGO.ai":"f0eb50ff534d6596d2e66439066909d965fd74f2","/assets/color.less":"88c6936c164d7a27fbfe3e03000ad8f9952c4119","/assets/demo.docx":"e6cf4a7b4a490811ed5bec39e8cf203824e8703f","/assets/demo.pdf":"05248c1d4a636ee577f515809534ca1c85cd45c2","/assets/demo.pptx":"09fcb13206d59676838c2682a2a9b62f0a11863b","/assets/demo.xlsx":"fbfaf8aa861857adadaf89b28fe31ad3100395ea","/assets/demo.zip":"99584e56a5910ccb3d58d6dbbbf4c341747b9d57","/assets/donate.png":"e00d7905db3e9e5a8365072da22bf4816224a79c","/assets/highlight.pack.js":"d43298ac40a94f15d24baaa1f9d4087a7c1a2146","/assets/icons/icon-128x128.png":"a64acae4187c0ac026f569727d427e510e57bd3c","/assets/icons/icon-144x144.png":"3777651bff501b02af74e14a4a7d97330ed06b51","/assets/icons/icon-152x152.png":"1ce29288030cd2787bca6f9e20a9d9ea543c807d","/assets/icons/icon-192x192.png":"027f8042ef3f22333b7f57463f764c14fb10ddda","/assets/icons/icon-384x384.png":"8c398368508ae5b7e7b0f0b500493cb75e5d1ada","/assets/icons/icon-512x512.png":"a8d39cf76ddcb33fa87d534476b2cdefa733d5fe","/assets/icons/icon-72x72.png":"3771059af6090c411bae02002f2e1d7877c368e9","/assets/icons/icon-96x96.png":"400b8ad0e5b8bf5ac0740b3f480e713b2a3fc0e5","/assets/img/404.jpg":"9604038f6b13cb304a14a13b2fa76d43444b4414","/assets/img/avatar.jpg":"1258f9ead6901ff45abd313a1b4f265749749b58","/assets/img/form-input.png":"75c924b9bd023a5e27e9745936a27caaf20a1537","/assets/img/logo-color.png":"8defcb0c2b47a66d7c1b57f78525e488adc62642","/assets/img/logo-color.svg":"587f7e7d6cacc6eb7222b99c08d3df8abc8edd4e","/assets/img/logo-full.svg":"fed68d999561a3180b925071180d3d4cfd2b8440","/assets/img/logo.png":"7dcbf051ab322ef1bd076940e981bf9abdd5ae78","/assets/img/logo.svg":"a2334b77c19d8dc880bbbd82e9939a0aa8d59573","/assets/img/ng-alain.svg":"fb55683a364df5de725cb98a7c51b2eb21ca4de6","/assets/img/plnkr.png":"dc4da4819d5a9b4ff44f1457f96808a761ab9143","/assets/img/zorro.svg":"82d83c92dff3114bd45e985e3c8e402f37a4beb9","/assets/jszip/jszip.min.js":"c96375d50e72b199aa54de7b9ad908fd5a2dc7bc","/assets/logo-color.svg":"587f7e7d6cacc6eb7222b99c08d3df8abc8edd4e","/assets/logo-full.svg":"fed68d999561a3180b925071180d3d4cfd2b8440","/assets/logo.svg":"a2334b77c19d8dc880bbbd82e9939a0aa8d59573","/assets/plyr/plyr.css":"3e9561fb7a2a70b93bb1014f5d958b123fe61764","/assets/plyr/plyr.min.js":"9b165c0e728a0ac4e2cddc944c9a2c5819ca7342","/assets/plyr/plyr.svg":"bc98e4a347921594352fbae53aaad185c0c7f6b5","/assets/pro.png":"0e8e2bd64766aab6e12f44607ad7e92aec241468","/assets/qq-group.png":"1effddfab735644966df1759c2768f282a3e650e","/assets/qrious/qrious.min.js":"a9271e81e2ac6a692b1c133811afa33f0f3d7dc5","/assets/schema/basic.json":"d3b26817208571cfed1a5dd667875c358b1d7e1f","/assets/schema/conditional.json":"204f15af35cc98d5d692c7265d84d2645a6394f0","/assets/schema/fixed.json":"f4d6c6c66503ec0c817ab89e8538c2be028c7cff","/assets/schema/onboarding.json":"20c6f311cc99ccbf7180afb906e9abf74473786b","/assets/schema/sort.json":"850f554e1a7db144e9ad305b6a3ad79bfb58ca28","/assets/schema/validation.json":"0a5971cb42a49672e0005b88036ef47bc8cebe94","/assets/screenshot/architecture.png":"9e19b12a25deab3280ebf5795597a90af29c4c38","/assets/screenshot/basic.png":"42a70c07d9f35413991972634011459fdb010022","/assets/screenshot/bundle-size.png":"f67a8b0678161abce9afcb694db3c02d3b4b5f73","/assets/screenshot/data.webp":"286aec35bb8a1bc624d8fcfedf1a03bc08098438","/assets/screenshot/desktop.png":"42a70c07d9f35413991972634011459fdb010022","/assets/screenshot/ipad.png":"0fc5d85a81da2057ec68fc9094c0cb5c862bf309","/assets/screenshot/iphone.png":"6b7d70c66cd422ad5aee06d91ddb39c7fd0558bb","/assets/screenshot/ms.png":"26b0065c7c5d4f9f9c6b0efa4915eb6576caee75","/assets/screenshot/pro.png":"37bd67671530613e955593eb3fc818e27d18dcb6","/assets/screenshot/start.png":"8af50c7dbc9bab333f7e88b67debb6657bc61ed9","/assets/screenshot/yun.png":"b0e3dec2af4dfae8f25e5d90f19cd3c60107e89f","/assets/style.compact.css":"560798f6eb21940f4c42842139adfab6fca23c1f","/assets/style.dark.css":"4f0df7957d53e3dacad5be84c3f533541fc120fd","/assets/xlsx/cpexcel.js":"9191595b39ba1918d32fb250d3ff21d07f99fc19","/assets/xlsx/xlsx.full.min.js":"7f749f81a45a53229136c6c1f1d50dcb16ddc233","/chunk-2HATZH5X.js":"2d0590db84d764de1f6e4529db643aca74bc1960","/chunk-3O4PY7DK.js":"d55db6ed954d1701c115a653d2f2b8dcd2fc8c7a","/chunk-6WEFBRTB.js":"a55e0f005df66a426618488a2c274ed6fb10f532","/chunk-7PCJJ67N.js":"5e16a11fa8d1d6a050ed3287f00568e7a70443cc","/chunk-7Y63X2KH.js":"e1493d7549376aac43c78d989adcaa10bf7dac72","/chunk-AYK2KQFL.js":"9523fd0874a350df0f0d894b7322b988b884b479","/chunk-BGR45BIN.js":"3042faa2fad893470907eb1fd985eb4fa420f161","/chunk-BTSKTI6R.js":"d48729dc82b94385b7ebf1bccc00e835d1d9f9e9","/chunk-C4AR4FRY.js":"4dd5280dd2d21a80384ff4dee30fc6d69c920da5","/chunk-DMCH6AWB.js":"389c5f233507246b9672964ff7cad9bc639cf902","/chunk-FP3E2PWX.js":"b1e5dd6dc8975b4158ee1118ebeaa3292695294a","/chunk-FTY5NNFB.js":"fb6efefabcc590f2790c73519de9672b75a657b0","/chunk-FWSZZWPR.js":"90e318ccf2348989e7597c0b808efc5da03c15be","/chunk-GI7CJE66.js":"f912698a543dfbd244182e0937d9916933403d33","/chunk-H7RO7VR3.js":"ee73b094b50d3871d3075206a7ab75e67959aaed","/chunk-HBOKQ6UB.js":"8d26ec61a169d932690038a3a9c020cae8850c92","/chunk-HEERJFQ3.js":"539c81840419d7a821b30c05b09fa22712c1e67c","/chunk-HKBCVA7A.js":"1b0ac04f37ad4bbfbffa7a7bdfb10d6a2993aeb4","/chunk-IRR56OTQ.js":"d453ecd30aed84bac16befa15e01439fe76e26ea","/chunk-IX2EHRLS.js":"78f8d2030257a5949c891c164318a7c0a6544c42","/chunk-JVYLDLDV.js":"0de7c50166dd0fa1e678b806bbe88a651c178308","/chunk-KO7TXYP3.js":"70f32bd42c0c6c6e9e1383dfcb95a9757fb76691","/chunk-KSQL7I2A.js":"9e1562b491ff6cf596f96d5805f0866cce97bbba","/chunk-N5S7ICZQ.js":"37bcfed17279039c0fc9adf4cd13e65169446ea8","/chunk-NN7RZHFY.js":"1f93df292227f5254fe3850fdb94cdc2cbd8b43d","/chunk-O5GIJLVR.js":"cb8936925dc5ab5613efd5d861d69200ccd7ee34","/chunk-OJGQQ5QK.js":"6513d1ab14c7b7684e2546137d0ab0709fdea955","/chunk-OZHIXC6H.js":"e6079ed99bd6ec298858bf92747f086df56fce96","/chunk-QEQO7AMR.js":"a00d2bb6bf3095b5127a9cc1cee501e9899c0c13","/chunk-QRLJZBTC.js":"391ae223ebda16fe5ad90b50fd828a93ccd24145","/chunk-QT5GDMGI.js":"6dc5b32b7dcf61c294389eb8a8f1f9712adbbbf7","/chunk-RJU7FRRM.js":"e7ad8860f4520d9b92ad4d8a5fe0f6cc0a0d174c","/chunk-SBXYWWID.js":"aceec50f51876237741a8ed2e5b50e8829958a76","/chunk-SCHYXDRT.js":"82f0ca7cac88633ef82b6564e242e8b889cd90ae","/chunk-T7I2OBCK.js":"349e463ce9a3d93ebce2e456ecb5375361648535","/chunk-V73BHA6T.js":"c4b1070b0fb31363a62ea63f7365d0754ad9c28b","/chunk-V7QHFTWM.js":"a4621be38da85df3cd6c8123cfe236bc6706e37c","/chunk-XQEG7UIJ.js":"516fb17679d583505b07db4cdfdec02880f910a8","/chunk-ZLPJQUFB.js":"8f0dd9bf8212f59acf86d4cdb2cdfe4d847bf947","/index.html":"f15fcb57dc50b5e020252ddf25212776a29da1e4","/main-WBRH2MOX.js":"d31b66578c697fb009de03d83ca94461b7bf888f","/ngsw-worker.js":"b24c61e82905a46ff943b4fc56cb93ac5cca8c8e","/polyfills-3RNCJEXC.js":"b87dce659f325302b199c4b038d0b3be781876a5","/safety-worker.js":"70914dc203fa1f881e56f2b794d7a4f9c48ee745","/scripts-RST73XXA.js":"1a891857a05b3d7ca4308fa80e2c168732f39d72","/styles-AHP6OSNO.css":"99c1c118a3a8f4385ea9204183440f5c850821ce","/worker-basic.min.js":"70914dc203fa1f881e56f2b794d7a4f9c48ee745"},"navigationUrls":[{"positive":true,"regex":"^\\/.*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?[^/]*\\.[^/]*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?[^/]*__[^/]*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?[^/]*__[^/]*\\/.*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?stackblitz$"},{"positive":false,"regex":"^\\/version\\/.*$"},{"positive":false,"regex":"^\\/issue-helper\\/.*$"},{"positive":false,"regex":"^\\/docs\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/docs\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/components\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/components\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/cli\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/cli\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/theme\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/theme\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/auth\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/auth\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/acl\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/acl\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/form\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/form\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/cache\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/cache\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/chart\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/chart\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/mock\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/mock\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/util\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/util\\/[^/][^/]*$"}],"navigationRequestStrategy":"performance","local":"zh"} +{"configVersion":1,"timestamp":1700981853635,"index":"/index.html","assetGroups":[{"name":"app","installMode":"prefetch","updateMode":"prefetch","cacheQueryOptions":{"ignoreVary":true},"urls":["/chunk-2HATZH5X.js","/chunk-3O4PY7DK.js","/chunk-6WEFBRTB.js","/chunk-7PCJJ67N.js","/chunk-7Y63X2KH.js","/chunk-AYK2KQFL.js","/chunk-BGR45BIN.js","/chunk-BTSKTI6R.js","/chunk-C4AR4FRY.js","/chunk-DMCH6AWB.js","/chunk-FP3E2PWX.js","/chunk-FTY5NNFB.js","/chunk-FWSZZWPR.js","/chunk-GI7CJE66.js","/chunk-H7RO7VR3.js","/chunk-HBOKQ6UB.js","/chunk-HEERJFQ3.js","/chunk-HKBCVA7A.js","/chunk-I2IRRHUX.js","/chunk-IRR56OTQ.js","/chunk-IX2EHRLS.js","/chunk-JVYLDLDV.js","/chunk-KO7TXYP3.js","/chunk-KSQL7I2A.js","/chunk-N5S7ICZQ.js","/chunk-NN7RZHFY.js","/chunk-O5GIJLVR.js","/chunk-OJGQQ5QK.js","/chunk-OZHIXC6H.js","/chunk-QEQO7AMR.js","/chunk-QRLJZBTC.js","/chunk-RJU7FRRM.js","/chunk-SBXYWWID.js","/chunk-SCHYXDRT.js","/chunk-T7I2OBCK.js","/chunk-V73BHA6T.js","/chunk-V7QHFTWM.js","/chunk-XQEG7UIJ.js","/chunk-ZLPJQUFB.js","/index.html","/main-3LB3NO2J.js","/ngsw-worker.js","/polyfills-3RNCJEXC.js","/safety-worker.js","/scripts-RST73XXA.js","/styles-AHP6OSNO.css","/worker-basic.min.js"],"patterns":["https:\\/\\/gw\\.alipayobjects\\.com\\/.*","https:\\/\\/img\\.alicdn\\.com\\/.*","https:\\/\\/dummyimage\\.com\\/.*"]},{"name":"assets","installMode":"lazy","updateMode":"prefetch","cacheQueryOptions":{"ignoreVary":true},"urls":["/assets/LOGO.ai","/assets/color.less","/assets/demo.docx","/assets/demo.pdf","/assets/demo.pptx","/assets/demo.xlsx","/assets/demo.zip","/assets/donate.png","/assets/highlight.pack.js","/assets/icons/icon-128x128.png","/assets/icons/icon-144x144.png","/assets/icons/icon-152x152.png","/assets/icons/icon-192x192.png","/assets/icons/icon-384x384.png","/assets/icons/icon-512x512.png","/assets/icons/icon-72x72.png","/assets/icons/icon-96x96.png","/assets/img/404.jpg","/assets/img/avatar.jpg","/assets/img/form-input.png","/assets/img/logo-color.png","/assets/img/logo-color.svg","/assets/img/logo-full.svg","/assets/img/logo.png","/assets/img/logo.svg","/assets/img/ng-alain.svg","/assets/img/plnkr.png","/assets/img/zorro.svg","/assets/jszip/jszip.min.js","/assets/logo-color.svg","/assets/logo-full.svg","/assets/logo.svg","/assets/plyr/plyr.css","/assets/plyr/plyr.min.js","/assets/plyr/plyr.svg","/assets/pro.png","/assets/qq-group.png","/assets/qrious/qrious.min.js","/assets/schema/basic.json","/assets/schema/conditional.json","/assets/schema/fixed.json","/assets/schema/onboarding.json","/assets/schema/sort.json","/assets/schema/validation.json","/assets/screenshot/architecture.png","/assets/screenshot/basic.png","/assets/screenshot/bundle-size.png","/assets/screenshot/data.webp","/assets/screenshot/desktop.png","/assets/screenshot/ipad.png","/assets/screenshot/iphone.png","/assets/screenshot/ms.png","/assets/screenshot/pro.png","/assets/screenshot/start.png","/assets/screenshot/yun.png","/assets/style.compact.css","/assets/style.dark.css","/assets/xlsx/cpexcel.js","/assets/xlsx/xlsx.full.min.js"],"patterns":[]}],"dataGroups":[],"hashTable":{"/assets/LOGO.ai":"f0eb50ff534d6596d2e66439066909d965fd74f2","/assets/color.less":"88c6936c164d7a27fbfe3e03000ad8f9952c4119","/assets/demo.docx":"e6cf4a7b4a490811ed5bec39e8cf203824e8703f","/assets/demo.pdf":"05248c1d4a636ee577f515809534ca1c85cd45c2","/assets/demo.pptx":"09fcb13206d59676838c2682a2a9b62f0a11863b","/assets/demo.xlsx":"fbfaf8aa861857adadaf89b28fe31ad3100395ea","/assets/demo.zip":"99584e56a5910ccb3d58d6dbbbf4c341747b9d57","/assets/donate.png":"e00d7905db3e9e5a8365072da22bf4816224a79c","/assets/highlight.pack.js":"d43298ac40a94f15d24baaa1f9d4087a7c1a2146","/assets/icons/icon-128x128.png":"a64acae4187c0ac026f569727d427e510e57bd3c","/assets/icons/icon-144x144.png":"3777651bff501b02af74e14a4a7d97330ed06b51","/assets/icons/icon-152x152.png":"1ce29288030cd2787bca6f9e20a9d9ea543c807d","/assets/icons/icon-192x192.png":"027f8042ef3f22333b7f57463f764c14fb10ddda","/assets/icons/icon-384x384.png":"8c398368508ae5b7e7b0f0b500493cb75e5d1ada","/assets/icons/icon-512x512.png":"a8d39cf76ddcb33fa87d534476b2cdefa733d5fe","/assets/icons/icon-72x72.png":"3771059af6090c411bae02002f2e1d7877c368e9","/assets/icons/icon-96x96.png":"400b8ad0e5b8bf5ac0740b3f480e713b2a3fc0e5","/assets/img/404.jpg":"9604038f6b13cb304a14a13b2fa76d43444b4414","/assets/img/avatar.jpg":"1258f9ead6901ff45abd313a1b4f265749749b58","/assets/img/form-input.png":"75c924b9bd023a5e27e9745936a27caaf20a1537","/assets/img/logo-color.png":"8defcb0c2b47a66d7c1b57f78525e488adc62642","/assets/img/logo-color.svg":"587f7e7d6cacc6eb7222b99c08d3df8abc8edd4e","/assets/img/logo-full.svg":"fed68d999561a3180b925071180d3d4cfd2b8440","/assets/img/logo.png":"7dcbf051ab322ef1bd076940e981bf9abdd5ae78","/assets/img/logo.svg":"a2334b77c19d8dc880bbbd82e9939a0aa8d59573","/assets/img/ng-alain.svg":"fb55683a364df5de725cb98a7c51b2eb21ca4de6","/assets/img/plnkr.png":"dc4da4819d5a9b4ff44f1457f96808a761ab9143","/assets/img/zorro.svg":"82d83c92dff3114bd45e985e3c8e402f37a4beb9","/assets/jszip/jszip.min.js":"c96375d50e72b199aa54de7b9ad908fd5a2dc7bc","/assets/logo-color.svg":"587f7e7d6cacc6eb7222b99c08d3df8abc8edd4e","/assets/logo-full.svg":"fed68d999561a3180b925071180d3d4cfd2b8440","/assets/logo.svg":"a2334b77c19d8dc880bbbd82e9939a0aa8d59573","/assets/plyr/plyr.css":"3e9561fb7a2a70b93bb1014f5d958b123fe61764","/assets/plyr/plyr.min.js":"9b165c0e728a0ac4e2cddc944c9a2c5819ca7342","/assets/plyr/plyr.svg":"bc98e4a347921594352fbae53aaad185c0c7f6b5","/assets/pro.png":"0e8e2bd64766aab6e12f44607ad7e92aec241468","/assets/qq-group.png":"1effddfab735644966df1759c2768f282a3e650e","/assets/qrious/qrious.min.js":"a9271e81e2ac6a692b1c133811afa33f0f3d7dc5","/assets/schema/basic.json":"d3b26817208571cfed1a5dd667875c358b1d7e1f","/assets/schema/conditional.json":"204f15af35cc98d5d692c7265d84d2645a6394f0","/assets/schema/fixed.json":"f4d6c6c66503ec0c817ab89e8538c2be028c7cff","/assets/schema/onboarding.json":"20c6f311cc99ccbf7180afb906e9abf74473786b","/assets/schema/sort.json":"850f554e1a7db144e9ad305b6a3ad79bfb58ca28","/assets/schema/validation.json":"0a5971cb42a49672e0005b88036ef47bc8cebe94","/assets/screenshot/architecture.png":"9e19b12a25deab3280ebf5795597a90af29c4c38","/assets/screenshot/basic.png":"42a70c07d9f35413991972634011459fdb010022","/assets/screenshot/bundle-size.png":"f67a8b0678161abce9afcb694db3c02d3b4b5f73","/assets/screenshot/data.webp":"286aec35bb8a1bc624d8fcfedf1a03bc08098438","/assets/screenshot/desktop.png":"42a70c07d9f35413991972634011459fdb010022","/assets/screenshot/ipad.png":"0fc5d85a81da2057ec68fc9094c0cb5c862bf309","/assets/screenshot/iphone.png":"6b7d70c66cd422ad5aee06d91ddb39c7fd0558bb","/assets/screenshot/ms.png":"26b0065c7c5d4f9f9c6b0efa4915eb6576caee75","/assets/screenshot/pro.png":"37bd67671530613e955593eb3fc818e27d18dcb6","/assets/screenshot/start.png":"8af50c7dbc9bab333f7e88b67debb6657bc61ed9","/assets/screenshot/yun.png":"b0e3dec2af4dfae8f25e5d90f19cd3c60107e89f","/assets/style.compact.css":"560798f6eb21940f4c42842139adfab6fca23c1f","/assets/style.dark.css":"4f0df7957d53e3dacad5be84c3f533541fc120fd","/assets/xlsx/cpexcel.js":"9191595b39ba1918d32fb250d3ff21d07f99fc19","/assets/xlsx/xlsx.full.min.js":"7f749f81a45a53229136c6c1f1d50dcb16ddc233","/chunk-2HATZH5X.js":"2d0590db84d764de1f6e4529db643aca74bc1960","/chunk-3O4PY7DK.js":"d55db6ed954d1701c115a653d2f2b8dcd2fc8c7a","/chunk-6WEFBRTB.js":"a55e0f005df66a426618488a2c274ed6fb10f532","/chunk-7PCJJ67N.js":"5e16a11fa8d1d6a050ed3287f00568e7a70443cc","/chunk-7Y63X2KH.js":"e1493d7549376aac43c78d989adcaa10bf7dac72","/chunk-AYK2KQFL.js":"9523fd0874a350df0f0d894b7322b988b884b479","/chunk-BGR45BIN.js":"3042faa2fad893470907eb1fd985eb4fa420f161","/chunk-BTSKTI6R.js":"d48729dc82b94385b7ebf1bccc00e835d1d9f9e9","/chunk-C4AR4FRY.js":"4dd5280dd2d21a80384ff4dee30fc6d69c920da5","/chunk-DMCH6AWB.js":"389c5f233507246b9672964ff7cad9bc639cf902","/chunk-FP3E2PWX.js":"b1e5dd6dc8975b4158ee1118ebeaa3292695294a","/chunk-FTY5NNFB.js":"fb6efefabcc590f2790c73519de9672b75a657b0","/chunk-FWSZZWPR.js":"90e318ccf2348989e7597c0b808efc5da03c15be","/chunk-GI7CJE66.js":"f912698a543dfbd244182e0937d9916933403d33","/chunk-H7RO7VR3.js":"ee73b094b50d3871d3075206a7ab75e67959aaed","/chunk-HBOKQ6UB.js":"8d26ec61a169d932690038a3a9c020cae8850c92","/chunk-HEERJFQ3.js":"539c81840419d7a821b30c05b09fa22712c1e67c","/chunk-HKBCVA7A.js":"1b0ac04f37ad4bbfbffa7a7bdfb10d6a2993aeb4","/chunk-I2IRRHUX.js":"69272c822fb07bae0398628b40556e290796347d","/chunk-IRR56OTQ.js":"d453ecd30aed84bac16befa15e01439fe76e26ea","/chunk-IX2EHRLS.js":"78f8d2030257a5949c891c164318a7c0a6544c42","/chunk-JVYLDLDV.js":"0de7c50166dd0fa1e678b806bbe88a651c178308","/chunk-KO7TXYP3.js":"70f32bd42c0c6c6e9e1383dfcb95a9757fb76691","/chunk-KSQL7I2A.js":"9e1562b491ff6cf596f96d5805f0866cce97bbba","/chunk-N5S7ICZQ.js":"37bcfed17279039c0fc9adf4cd13e65169446ea8","/chunk-NN7RZHFY.js":"1f93df292227f5254fe3850fdb94cdc2cbd8b43d","/chunk-O5GIJLVR.js":"cb8936925dc5ab5613efd5d861d69200ccd7ee34","/chunk-OJGQQ5QK.js":"6513d1ab14c7b7684e2546137d0ab0709fdea955","/chunk-OZHIXC6H.js":"e6079ed99bd6ec298858bf92747f086df56fce96","/chunk-QEQO7AMR.js":"a00d2bb6bf3095b5127a9cc1cee501e9899c0c13","/chunk-QRLJZBTC.js":"391ae223ebda16fe5ad90b50fd828a93ccd24145","/chunk-RJU7FRRM.js":"e7ad8860f4520d9b92ad4d8a5fe0f6cc0a0d174c","/chunk-SBXYWWID.js":"aceec50f51876237741a8ed2e5b50e8829958a76","/chunk-SCHYXDRT.js":"82f0ca7cac88633ef82b6564e242e8b889cd90ae","/chunk-T7I2OBCK.js":"349e463ce9a3d93ebce2e456ecb5375361648535","/chunk-V73BHA6T.js":"c4b1070b0fb31363a62ea63f7365d0754ad9c28b","/chunk-V7QHFTWM.js":"a4621be38da85df3cd6c8123cfe236bc6706e37c","/chunk-XQEG7UIJ.js":"516fb17679d583505b07db4cdfdec02880f910a8","/chunk-ZLPJQUFB.js":"8f0dd9bf8212f59acf86d4cdb2cdfe4d847bf947","/index.html":"8724dccc7dce71a93bb4f559a94b646b80111320","/main-3LB3NO2J.js":"2dfd211e78c2dbed67ed50b19fb78d9e7b923211","/ngsw-worker.js":"b24c61e82905a46ff943b4fc56cb93ac5cca8c8e","/polyfills-3RNCJEXC.js":"b87dce659f325302b199c4b038d0b3be781876a5","/safety-worker.js":"70914dc203fa1f881e56f2b794d7a4f9c48ee745","/scripts-RST73XXA.js":"1a891857a05b3d7ca4308fa80e2c168732f39d72","/styles-AHP6OSNO.css":"99c1c118a3a8f4385ea9204183440f5c850821ce","/worker-basic.min.js":"70914dc203fa1f881e56f2b794d7a4f9c48ee745"},"navigationUrls":[{"positive":true,"regex":"^\\/.*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?[^/]*\\.[^/]*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?[^/]*__[^/]*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?[^/]*__[^/]*\\/.*$"},{"positive":false,"regex":"^\\/(?:.+\\/)?stackblitz$"},{"positive":false,"regex":"^\\/version\\/.*$"},{"positive":false,"regex":"^\\/issue-helper\\/.*$"},{"positive":false,"regex":"^\\/docs\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/docs\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/components\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/components\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/cli\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/cli\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/theme\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/theme\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/auth\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/auth\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/acl\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/acl\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/form\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/form\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/cache\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/cache\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/chart\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/chart\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/mock\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/mock\\/[^/][^/]*$"},{"positive":false,"regex":"^\\/util\\/(?:.+\\/)?[^/]*$"},{"positive":false,"regex":"^\\/util\\/[^/][^/]*$"}],"navigationRequestStrategy":"performance","local":"zh"} diff --git a/sitemap.xml b/sitemap.xml index 1c72f9074..81c0f094d 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://ng-alain.com/2023-11-26T06:43:38.845Zhourly1.0https://ng-alain.com/acl/control/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/acl/getting-started/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/acl/guard/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/auth/get/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/auth/getting-started/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/auth/guard/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/auth/qa/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/auth/send/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/auth/service/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/auth/set/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/cache/getting-started/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/cache/service/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/bar/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/card/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/chart-echarts/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/custom/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/faq/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/gauge/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/getting-started/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/mini-area/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/mini-bar/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/mini-progress/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/number-info/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/pie/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/radar/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/single-bar/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/tag-cloud/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/timeline/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/trend/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/chart/water-wave/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/cli/add/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/cli/default/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/cli/generate/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/cli/getting-started/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/cli/plugin/en2023-11-26T06:43:38.845Zhourly0.6https://ng-alain.com/cli/sta/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/auto-focus/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/avatar-list/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/cell/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/count-down/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/date-picker/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/down-file/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/ellipsis/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/error-collect/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/exception/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/footer-toolbar/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/full-content/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/global-footer/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/highlight/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/hotkey/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/let/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/loading/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/lodop/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/media/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/notice-icon/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/observers/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/onboarding/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/page-header/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/pdf/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/qr/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/quick-menu/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/result/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/reuse-tab/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/se/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/sg/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/st/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/sv/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/tag-select/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/xlsx/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/zip/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/acl/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/architecture/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/auth/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/cache/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/changelog/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/cli/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/contributing/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/deploy/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/faq/en2023-11-26T06:43:38.846Zhourly0.8https://ng-alain.com/docs/getting-started/en2023-11-26T06:43:38.846Zhourly0.8https://ng-alain.com/docs/global-config/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/graph/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/how-to-start/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/i18n/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/import/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/mock/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/module/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/new-component/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/new-page/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/performance/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/server/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/ssr/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/style-guide/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/theme/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/upgrade-v17/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/upgrade/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/acl/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/array/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/autocomplete/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/boolean/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/cascader/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/checkbox/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/color/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/conditional/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/custom/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/customize/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/date/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/error/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/getting-started/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/i18n/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/layout/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/mention/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/modal/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/monaco-editor/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/number/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/object/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/qa/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/qr-code/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/radio/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/rate/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/schema/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/segmented/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/select/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/slider/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/string/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/tag/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/text/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/textarea/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/time/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/tinymce/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/transfer/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/tree-select/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/upload/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/mock/getting-started/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/mock/rule/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/component-styles/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/customize-theme/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/date/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/drawer/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/getting-started/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/global/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/http/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/icon/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/index/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/keys/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/layout-blank/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/layout-default/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/locale/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/menu/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/modal/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/performance/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/responsive/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/rtl/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/safe/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/settings/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/theme-btn/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/title/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/tools/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/yn/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/array/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/browser/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/date-time/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/decorator/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/form/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/format/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/getting-started/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/math/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/other/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/pipes-currency/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/pipes-filter/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/pipes-format/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/token/en2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/acl/control/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/acl/getting-started/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/acl/guard/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/auth/get/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/auth/getting-started/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/auth/guard/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/auth/qa/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/auth/send/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/auth/service/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/auth/set/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/cache/getting-started/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/cache/service/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/bar/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/card/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/chart-echarts/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/custom/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/faq/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/gauge/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/getting-started/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/mini-area/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/mini-bar/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/mini-progress/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/number-info/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/pie/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/radar/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/single-bar/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/tag-cloud/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/timeline/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/trend/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/chart/water-wave/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/cli/add/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/cli/default/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/cli/generate/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/cli/getting-started/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/cli/plugin/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/cli/sta/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/auto-focus/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/avatar-list/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/cell/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/count-down/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/date-picker/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/down-file/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/ellipsis/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/error-collect/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/exception/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/footer-toolbar/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/full-content/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/global-footer/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/highlight/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/hotkey/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/let/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/loading/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/lodop/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/media/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/notice-icon/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/observers/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/onboarding/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/page-header/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/pdf/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/qr/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/quick-menu/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/result/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/reuse-tab/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/se/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/sg/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/st/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/sv/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/tag-select/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/xlsx/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/components/zip/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/acl/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/architecture/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/auth/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/cache/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/changelog/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/cli/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/contributing/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/deploy/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/faq/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/getting-started/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/global-config/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/graph/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/how-to-start/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/i18n/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/import/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/mock/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/module/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/new-component/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/new-page/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/performance/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/server/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/ssr/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/style-guide/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/theme/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/upgrade-v17/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/docs/upgrade/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/acl/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/array/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/autocomplete/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/boolean/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/cascader/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/checkbox/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/color/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/conditional/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/custom/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/customize/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/date/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/error/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/getting-started/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/i18n/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/layout/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/mention/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/modal/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/monaco-editor/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/number/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/object/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/qa/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/qr-code/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/radio/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/rate/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/schema/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/segmented/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/select/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/slider/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/string/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/tag/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/text/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/textarea/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/time/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/tinymce/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/transfer/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/tree-select/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/form/upload/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/mock/getting-started/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/mock/rule/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/component-styles/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/customize-theme/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/date/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/drawer/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/getting-started/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/global/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/http/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/icon/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/index/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/keys/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/layout-blank/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/layout-default/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/locale/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/menu/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/modal/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/performance/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/responsive/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/rtl/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/safe/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/settings/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/theme-btn/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/title/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/tools/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/theme/yn/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/array/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/browser/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/date-time/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/decorator/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/form/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/format/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/getting-started/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/math/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/other/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/pipes-currency/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/pipes-filter/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/pipes-format/zh2023-11-26T06:43:38.846Zhourly0.6https://ng-alain.com/util/token/zh2023-11-26T06:43:38.846Zhourly0.6 \ No newline at end of file +https://ng-alain.com/2023-11-26T06:57:45.761Zhourly1.0https://ng-alain.com/acl/control/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/acl/getting-started/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/acl/guard/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/auth/get/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/auth/getting-started/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/auth/guard/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/auth/qa/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/auth/send/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/auth/service/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/auth/set/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cache/getting-started/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cache/service/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/bar/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/card/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/chart-echarts/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/custom/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/faq/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/gauge/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/getting-started/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/mini-area/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/mini-bar/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/mini-progress/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/number-info/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/pie/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/radar/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/single-bar/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/tag-cloud/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/timeline/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/trend/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/water-wave/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cli/add/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cli/default/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cli/generate/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cli/getting-started/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cli/plugin/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cli/sta/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/auto-focus/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/avatar-list/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/cell/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/count-down/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/date-picker/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/down-file/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/ellipsis/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/error-collect/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/exception/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/footer-toolbar/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/full-content/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/global-footer/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/highlight/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/hotkey/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/let/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/loading/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/lodop/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/media/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/notice-icon/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/observers/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/onboarding/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/page-header/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/pdf/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/qr/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/quick-menu/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/result/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/reuse-tab/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/se/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/sg/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/st/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/sv/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/tag-select/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/xlsx/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/zip/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/acl/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/architecture/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/auth/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/cache/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/changelog/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/cli/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/contributing/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/deploy/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/faq/en2023-11-26T06:57:45.761Zhourly0.8https://ng-alain.com/docs/getting-started/en2023-11-26T06:57:45.761Zhourly0.8https://ng-alain.com/docs/global-config/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/graph/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/how-to-start/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/i18n/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/import/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/mock/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/module/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/new-component/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/new-page/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/performance/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/server/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/ssr/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/style-guide/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/theme/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/upgrade-v17/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/upgrade/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/acl/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/array/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/autocomplete/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/boolean/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/cascader/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/checkbox/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/color/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/conditional/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/custom/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/customize/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/date/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/error/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/getting-started/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/i18n/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/layout/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/mention/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/modal/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/monaco-editor/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/number/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/object/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/qa/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/qr-code/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/radio/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/rate/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/schema/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/segmented/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/select/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/slider/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/string/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/tag/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/text/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/textarea/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/time/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/tinymce/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/transfer/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/tree-select/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/upload/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/mock/getting-started/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/mock/rule/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/component-styles/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/customize-theme/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/date/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/drawer/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/getting-started/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/global/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/http/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/icon/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/index/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/keys/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/layout-blank/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/layout-default/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/locale/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/menu/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/modal/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/performance/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/responsive/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/rtl/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/safe/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/settings/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/theme-btn/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/title/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/tools/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/theme/yn/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/util/array/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/util/browser/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/util/date-time/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/util/decorator/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/util/form/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/util/format/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/util/getting-started/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/util/math/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/util/other/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/util/pipes-currency/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/util/pipes-filter/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/util/pipes-format/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/util/token/en2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/acl/control/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/acl/getting-started/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/acl/guard/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/auth/get/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/auth/getting-started/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/auth/guard/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/auth/qa/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/auth/send/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/auth/service/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/auth/set/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cache/getting-started/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cache/service/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/bar/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/card/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/chart-echarts/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/custom/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/faq/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/gauge/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/getting-started/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/mini-area/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/mini-bar/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/mini-progress/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/number-info/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/pie/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/radar/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/single-bar/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/tag-cloud/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/timeline/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/trend/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/chart/water-wave/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cli/add/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cli/default/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cli/generate/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cli/getting-started/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cli/plugin/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/cli/sta/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/auto-focus/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/avatar-list/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/cell/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/count-down/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/date-picker/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/down-file/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/ellipsis/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/error-collect/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/exception/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/footer-toolbar/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/full-content/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/global-footer/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/highlight/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/hotkey/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/let/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/loading/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/lodop/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/media/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/notice-icon/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/observers/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/onboarding/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/page-header/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/pdf/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/qr/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/quick-menu/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/result/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/reuse-tab/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/se/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/sg/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/st/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/sv/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/tag-select/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/xlsx/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/components/zip/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/acl/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/architecture/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/auth/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/cache/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/changelog/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/cli/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/contributing/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/deploy/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/faq/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/getting-started/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/global-config/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/graph/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/how-to-start/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/i18n/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/import/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/mock/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/module/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/new-component/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/new-page/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/performance/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/server/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/ssr/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/style-guide/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/theme/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/upgrade-v17/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/docs/upgrade/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/acl/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/array/zh2023-11-26T06:57:45.761Zhourly0.6https://ng-alain.com/form/autocomplete/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/boolean/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/cascader/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/checkbox/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/color/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/conditional/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/custom/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/customize/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/date/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/error/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/getting-started/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/i18n/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/layout/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/mention/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/modal/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/monaco-editor/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/number/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/object/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/qa/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/qr-code/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/radio/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/rate/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/schema/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/segmented/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/select/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/slider/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/string/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/tag/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/text/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/textarea/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/time/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/tinymce/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/transfer/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/tree-select/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/form/upload/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/mock/getting-started/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/mock/rule/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/component-styles/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/customize-theme/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/date/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/drawer/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/getting-started/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/global/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/http/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/icon/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/index/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/keys/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/layout-blank/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/layout-default/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/locale/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/menu/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/modal/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/performance/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/responsive/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/rtl/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/safe/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/settings/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/theme-btn/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/title/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/tools/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/theme/yn/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/util/array/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/util/browser/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/util/date-time/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/util/decorator/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/util/form/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/util/format/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/util/getting-started/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/util/math/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/util/other/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/util/pipes-currency/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/util/pipes-filter/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/util/pipes-format/zh2023-11-26T06:57:45.762Zhourly0.6https://ng-alain.com/util/token/zh2023-11-26T06:57:45.762Zhourly0.6 \ No newline at end of file diff --git a/theme/component-styles/en/index.html b/theme/component-styles/en/index.html index 54911843c..59130c80c 100644 --- a/theme/component-styles/en/index.html +++ b/theme/component-styles/en/index.html @@ -40,4 +40,4 @@ :host ::ng-deep { // 针对紧凑重新定义 } -}

相关链接

Loading...
\ No newline at end of file +}

相关链接

Loading...
\ No newline at end of file diff --git a/theme/component-styles/zh/index.html b/theme/component-styles/zh/index.html index 36384da79..6c9d1b33d 100644 --- a/theme/component-styles/zh/index.html +++ b/theme/component-styles/zh/index.html @@ -40,4 +40,4 @@ :host ::ng-deep { // 针对紧凑重新定义 } -}

相关链接

包体优化 Icon
Loading...
\ No newline at end of file +}

相关链接

包体优化 Icon
Loading...
\ No newline at end of file diff --git a/theme/customize-theme/en/index.html b/theme/customize-theme/en/index.html index f8a91e6e9..da6c9c791 100644 --- a/theme/customize-theme/en/index.html +++ b/theme/customize-theme/en/index.html @@ -61,4 +61,4 @@ :host ::ng-deep { // 针对紧凑重新定义 } -}

相关文章

Loading...
\ No newline at end of file +}

相关文章

Loading...
\ No newline at end of file diff --git a/theme/customize-theme/zh/index.html b/theme/customize-theme/zh/index.html index c750d3db0..1c832fb79 100644 --- a/theme/customize-theme/zh/index.html +++ b/theme/customize-theme/zh/index.html @@ -61,4 +61,4 @@ :host ::ng-deep { // 针对紧凑重新定义 } -}

相关文章

国际化 包体优化
Loading...
\ No newline at end of file +}

相关文章

国际化 包体优化
Loading...
\ No newline at end of file diff --git a/theme/date/en/index.html b/theme/date/en/index.html index 72b1349aa..dc7694565 100644 --- a/theme/date/en/index.html +++ b/theme/date/en/index.html @@ -1 +1 @@ -_date - NG-ALAIN

日期

基于 date-fns 日期格式化,显示更多细节参考 date-fns(国内镜像:moment format

最大好处是 date-fns 支持不同种类的时间格式,例如:

  • 2018-08-24 18:08:20

  • 2018-08-24

  • 20180824

  • 1503571962333

等等。

{{data.registered | _date: 'YYYY年MM月DD日'}}</code></pre><p>输出:</p><pre class="hljs language-null"><code>2017年08月24日
Loading...
\ No newline at end of file +_date - NG-ALAIN

日期

基于 date-fns 日期格式化,显示更多细节参考 date-fns(国内镜像:moment format

最大好处是 date-fns 支持不同种类的时间格式,例如:

  • 2018-08-24 18:08:20

  • 2018-08-24

  • 20180824

  • 1503571962333

等等。

{{data.registered | _date: 'YYYY年MM月DD日'}}</code></pre><p>输出:</p><pre class="hljs language-null"><code>2017年08月24日
Loading...
\ No newline at end of file diff --git a/theme/date/zh/index.html b/theme/date/zh/index.html index c0c07aa5c..c6b5e435c 100644 --- a/theme/date/zh/index.html +++ b/theme/date/zh/index.html @@ -1 +1 @@ -_date - NG-ALAIN

日期

基于 date-fns 日期格式化,显示更多细节参考 date-fns(国内镜像:moment format

最大好处是 date-fns 支持不同种类的时间格式,例如:

  • 2018-08-24 18:08:20

  • 2018-08-24

  • 20180824

  • 1503571962333

等等。

{{data.registered | _date: 'YYYY年MM月DD日'}}</code></pre><p>输出:</p><pre class="hljs language-null"><code>2017年08月24日
Loading...
\ No newline at end of file +_date - NG-ALAIN

日期

基于 date-fns 日期格式化,显示更多细节参考 date-fns(国内镜像:moment format

最大好处是 date-fns 支持不同种类的时间格式,例如:

  • 2018-08-24 18:08:20

  • 2018-08-24

  • 20180824

  • 1503571962333

等等。

{{data.registered | _date: 'YYYY年MM月DD日'}}</code></pre><p>输出:</p><pre class="hljs language-null"><code>2017年08月24日
Loading...
\ No newline at end of file diff --git a/theme/drawer/en/index.html b/theme/drawer/en/index.html index a07ad02c6..c5e97b8a1 100644 --- a/theme/drawer/en/index.html +++ b/theme/drawer/en/index.html @@ -51,4 +51,4 @@ this.msg.info(res); }); } -}

API

名称类型默认值功能
size指定抽屉大小,响应式只支持非数字值,若值为数值类型,则根据 nzPlacement 自动转化为 nzHeightnzWidthsm,md,lg,xl,numbermd
footer是否需要工具条booleantrue
footerHeight工具条高度number55
exact是否精准(默认:true),若返回值非空值(nullundefined)视为成功,否则视为错误booleantrue
drawerOptions抽屉 NzDrawerOptions 参数NzDrawerOptions-

Method

Loading...
\ No newline at end of file +}

API

名称类型默认值功能
size指定抽屉大小,响应式只支持非数字值,若值为数值类型,则根据 nzPlacement 自动转化为 nzHeightnzWidthsm,md,lg,xl,numbermd
footer是否需要工具条booleantrue
footerHeight工具条高度number55
exact是否精准(默认:true),若返回值非空值(nullundefined)视为成功,否则视为错误booleantrue
drawerOptions抽屉 NzDrawerOptions 参数NzDrawerOptions-

Method

Loading...
\ No newline at end of file diff --git a/theme/drawer/zh/index.html b/theme/drawer/zh/index.html index 7faf43c6a..13f893ab1 100644 --- a/theme/drawer/zh/index.html +++ b/theme/drawer/zh/index.html @@ -51,4 +51,4 @@ this.msg.info(res); }); } -}

API

名称类型默认值功能
size指定抽屉大小,响应式只支持非数字值,若值为数值类型,则根据 nzPlacement 自动转化为 nzHeightnzWidthsm,md,lg,xl,numbermd
footer是否需要工具条booleantrue
footerHeight工具条高度number55
exact是否精准(默认:true),若返回值非空值(nullundefined)视为成功,否则视为错误booleantrue
drawerOptions抽屉 NzDrawerOptions 参数NzDrawerOptions-

Method

MenuService 菜单服务 ModalHelper 对话框辅助类
Loading...
\ No newline at end of file +}

API

名称类型默认值功能
size指定抽屉大小,响应式只支持非数字值,若值为数值类型,则根据 nzPlacement 自动转化为 nzHeightnzWidthsm,md,lg,xl,numbermd
footer是否需要工具条booleantrue
footerHeight工具条高度number55
exact是否精准(默认:true),若返回值非空值(nullundefined)视为成功,否则视为错误booleantrue
drawerOptions抽屉 NzDrawerOptions 参数NzDrawerOptions-

Method

MenuService 菜单服务 ModalHelper 对话框辅助类
Loading...
\ No newline at end of file diff --git a/theme/getting-started/en/index.html b/theme/getting-started/en/index.html index 53c99115e..f5bf3c51c 100644 --- a/theme/getting-started/en/index.html +++ b/theme/getting-started/en/index.html @@ -1 +1 @@ -开始使用 - NG-ALAIN

开始使用

@delon/theme 是 ng-alain 脚手架唯一必须引入的模块。它包含了非常多主题样式参数,通过覆盖参数数值进而定制一些特别的需求;以及若干通用性服务管道

样式

ng-alain 默认使用 less 作为样式语言,建议在使用前或者遇到疑问时学习一下 less 的相关特性,如果想获取基础的 CSS 知识或查阅属性,可以参考 MDN文档

布局

脚手架提供两种布局:默认布局空白布局,脚手架并不包含两种布局样式文件,它位于 @delon/theme 类库当中。

脚手架样式

在开发过程中,绝大部分情况下可以利用 ng-alain 提供的工具集来调整间距、颜色、大小、边框等,它是一个套类似 bootstrap 风格的工具集。

或通过 theme.less 下定制你的样式,这些样式将会在全局应用中有效,且有两个问题比较突出:

  • 全局污染 —— CSS 文件中的选择器是全局生效的,不同文件中的同名选择器,根据 build 后生成文件中的先后顺序,后面的样式会将前面的覆盖;

  • 选择器复杂 —— 为了避免上面的问题,我们在编写样式的时候不得不小心翼翼,类名里会带上限制范围的标识,变得越来越长,多人开发时还很容易导致命名风格混乱,一个元素上使用的选择器个数也可能越来越多。

因此,除非设计师明确需求以外,我们应该尽可能使用组件 styles 属性创建组件样式,有关如何Angular样式请参考《关于Angular样式封装》。

样式文件类别

在一个项目中,样式文件根据功能不同,可以划分为不同的类别。

theme.less

全局样式文件,在这里你可以进行一些通用设置。

工具集

请参考 工具集样式

页面级

具体页面相关的样式,例如 monitor.component.less,里面的内容仅和本页面的内容相关。一般情况下,如果不是页面内容特别复杂,有了前面全局样式、工具集样式的配合,这里要写的应该不多。

如何覆盖参数

ng-alain 的样式使用了 Less 作为开发语言,并定义了一系列全局/组件的样式变量,你可以根据需求进行相应调整。

要改变的参数统一放在 theme.less LESS文件中,所有参数包括:

如果以上变量不能满足你的定制需求,可以给我们提 issue。

Loading...
\ No newline at end of file +开始使用 - NG-ALAIN

开始使用

@delon/theme 是 ng-alain 脚手架唯一必须引入的模块。它包含了非常多主题样式参数,通过覆盖参数数值进而定制一些特别的需求;以及若干通用性服务管道

样式

ng-alain 默认使用 less 作为样式语言,建议在使用前或者遇到疑问时学习一下 less 的相关特性,如果想获取基础的 CSS 知识或查阅属性,可以参考 MDN文档

布局

脚手架提供两种布局:默认布局空白布局,脚手架并不包含两种布局样式文件,它位于 @delon/theme 类库当中。

脚手架样式

在开发过程中,绝大部分情况下可以利用 ng-alain 提供的工具集来调整间距、颜色、大小、边框等,它是一个套类似 bootstrap 风格的工具集。

或通过 theme.less 下定制你的样式,这些样式将会在全局应用中有效,且有两个问题比较突出:

  • 全局污染 —— CSS 文件中的选择器是全局生效的,不同文件中的同名选择器,根据 build 后生成文件中的先后顺序,后面的样式会将前面的覆盖;

  • 选择器复杂 —— 为了避免上面的问题,我们在编写样式的时候不得不小心翼翼,类名里会带上限制范围的标识,变得越来越长,多人开发时还很容易导致命名风格混乱,一个元素上使用的选择器个数也可能越来越多。

因此,除非设计师明确需求以外,我们应该尽可能使用组件 styles 属性创建组件样式,有关如何Angular样式请参考《关于Angular样式封装》。

样式文件类别

在一个项目中,样式文件根据功能不同,可以划分为不同的类别。

theme.less

全局样式文件,在这里你可以进行一些通用设置。

工具集

请参考 工具集样式

页面级

具体页面相关的样式,例如 monitor.component.less,里面的内容仅和本页面的内容相关。一般情况下,如果不是页面内容特别复杂,有了前面全局样式、工具集样式的配合,这里要写的应该不多。

如何覆盖参数

ng-alain 的样式使用了 Less 作为开发语言,并定义了一系列全局/组件的样式变量,你可以根据需求进行相应调整。

要改变的参数统一放在 theme.less LESS文件中,所有参数包括:

如果以上变量不能满足你的定制需求,可以给我们提 issue。

Loading...
\ No newline at end of file diff --git a/theme/getting-started/zh/index.html b/theme/getting-started/zh/index.html index 67ae0b443..19cfab3aa 100644 --- a/theme/getting-started/zh/index.html +++ b/theme/getting-started/zh/index.html @@ -1 +1 @@ -开始使用 - NG-ALAIN

开始使用

@delon/theme 是 ng-alain 脚手架唯一必须引入的模块。它包含了非常多主题样式参数,通过覆盖参数数值进而定制一些特别的需求;以及若干通用性服务管道

样式

ng-alain 默认使用 less 作为样式语言,建议在使用前或者遇到疑问时学习一下 less 的相关特性,如果想获取基础的 CSS 知识或查阅属性,可以参考 MDN文档

布局

脚手架提供两种布局:默认布局空白布局,脚手架并不包含两种布局样式文件,它位于 @delon/theme 类库当中。

脚手架样式

在开发过程中,绝大部分情况下可以利用 ng-alain 提供的工具集来调整间距、颜色、大小、边框等,它是一个套类似 bootstrap 风格的工具集。

或通过 theme.less 下定制你的样式,这些样式将会在全局应用中有效,且有两个问题比较突出:

  • 全局污染 —— CSS 文件中的选择器是全局生效的,不同文件中的同名选择器,根据 build 后生成文件中的先后顺序,后面的样式会将前面的覆盖;

  • 选择器复杂 —— 为了避免上面的问题,我们在编写样式的时候不得不小心翼翼,类名里会带上限制范围的标识,变得越来越长,多人开发时还很容易导致命名风格混乱,一个元素上使用的选择器个数也可能越来越多。

因此,除非设计师明确需求以外,我们应该尽可能使用组件 styles 属性创建组件样式,有关如何Angular样式请参考《关于Angular样式封装》。

样式文件类别

在一个项目中,样式文件根据功能不同,可以划分为不同的类别。

theme.less

全局样式文件,在这里你可以进行一些通用设置。

工具集

请参考 工具集样式

页面级

具体页面相关的样式,例如 monitor.component.less,里面的内容仅和本页面的内容相关。一般情况下,如果不是页面内容特别复杂,有了前面全局样式、工具集样式的配合,这里要写的应该不多。

如何覆盖参数

ng-alain 的样式使用了 Less 作为开发语言,并定义了一系列全局/组件的样式变量,你可以根据需求进行相应调整。

要改变的参数统一放在 theme.less LESS文件中,所有参数包括:

如果以上变量不能满足你的定制需求,可以给我们提 issue。

Loading...
\ No newline at end of file +开始使用 - NG-ALAIN

开始使用

@delon/theme 是 ng-alain 脚手架唯一必须引入的模块。它包含了非常多主题样式参数,通过覆盖参数数值进而定制一些特别的需求;以及若干通用性服务管道

样式

ng-alain 默认使用 less 作为样式语言,建议在使用前或者遇到疑问时学习一下 less 的相关特性,如果想获取基础的 CSS 知识或查阅属性,可以参考 MDN文档

布局

脚手架提供两种布局:默认布局空白布局,脚手架并不包含两种布局样式文件,它位于 @delon/theme 类库当中。

脚手架样式

在开发过程中,绝大部分情况下可以利用 ng-alain 提供的工具集来调整间距、颜色、大小、边框等,它是一个套类似 bootstrap 风格的工具集。

或通过 theme.less 下定制你的样式,这些样式将会在全局应用中有效,且有两个问题比较突出:

  • 全局污染 —— CSS 文件中的选择器是全局生效的,不同文件中的同名选择器,根据 build 后生成文件中的先后顺序,后面的样式会将前面的覆盖;

  • 选择器复杂 —— 为了避免上面的问题,我们在编写样式的时候不得不小心翼翼,类名里会带上限制范围的标识,变得越来越长,多人开发时还很容易导致命名风格混乱,一个元素上使用的选择器个数也可能越来越多。

因此,除非设计师明确需求以外,我们应该尽可能使用组件 styles 属性创建组件样式,有关如何Angular样式请参考《关于Angular样式封装》。

样式文件类别

在一个项目中,样式文件根据功能不同,可以划分为不同的类别。

theme.less

全局样式文件,在这里你可以进行一些通用设置。

工具集

请参考 工具集样式

页面级

具体页面相关的样式,例如 monitor.component.less,里面的内容仅和本页面的内容相关。一般情况下,如果不是页面内容特别复杂,有了前面全局样式、工具集样式的配合,这里要写的应该不多。

如何覆盖参数

ng-alain 的样式使用了 Less 作为开发语言,并定义了一系列全局/组件的样式变量,你可以根据需求进行相应调整。

要改变的参数统一放在 theme.less LESS文件中,所有参数包括:

如果以上变量不能满足你的定制需求,可以给我们提 issue。

Loading...
\ No newline at end of file diff --git a/theme/global/en/index.html b/theme/global/en/index.html index 877bc10ac..1d0325c07 100644 --- a/theme/global/en/index.html +++ b/theme/global/en/index.html @@ -1 +1 @@ -全局参数 - NG-ALAIN

全局参数

公共类

名称默认值功能
@layout-gutter8pxantd布局间距,不可改变
@font-size-base14pxantd字号
@primary-color蓝色antd 主色
@mobile-min768pxPC端
@mobile-max767px移动端
@text-xs@font-size-base - 2xs 文本大小
@text-sm@font-size-base + 0sm 文本大小
@text-md@font-size-base + 2md 文本大小
@text-lg@font-size-base + 4lg 文本大小
@text-xl@font-size-base + 8xl 文本大小
@text-xxl@font-size-base + 12xxl 文本大小
@icon-sm@font-size-base * 2sm 图标
@icon-md@font-size-base * 4md 图标
@icon-lg@font-size-base * 6lg 图标
@icon-xl@font-size-base * 8xl 图标
@icon-xxl@font-size-base * 10xxl 图标
@h1-font-size32pxh1字号
@h2-font-size24pxh2字号
@h3-font-size20pxh3字号
@h4-font-size16pxh4字号
@h5-font-size14pxh5字号
@h6-font-size12pxh6字号
@enable-all-colorsfalse开启背景、文本颜色
例如:.bg-teal.text-teal
有关颜色值见样式规则章节
@modal-sm300px小号对话框
@modal-md500px中号对话框
@modal-lg900px大号对话框
@modal-xl1200px超大号对话框
@drawer-sm300px小号抽屉
@drawer-md500px中号抽屉
@drawer-lg900px大号抽屉
@drawer-xl1200px超大号抽屉
@drawer-sm-height200px小号抽屉
@drawer-md-height400px中号抽屉
@drawer-lg-height600px大号抽屉
@drawer-xl-height800px超大号抽屉
@code-border-color#eee<code> 边框颜色
@code-bg#f7f7f7<code> 背景颜色
@widthsxs @layout-gutter * 10
sm @layout-gutter * 20
md @layout-gutter * 30
lg @layout-gutter * 40
xl @layout-gutter * 50
xxl @layout-gutter * 50
宽度
@border-radius-md4px中号边框圆角
@border-radius-lg6px大号边框圆角
@masonry-column-gap@layout-gutter * 2CSS瀑布流列与列的间距
@scrollbar-enabledtrue启用美化滚动条
@scrollbar-width6px美化滚动条宽度
@scrollbar-height6px美化滚动条高度
@scrollbar-track-colorrgba(0, 0, 0, 0.3)美化滚动条的轨道颜色
@scrollbar-thumb-color#6e6e6e美化滚动条小方块颜色
@scrollbar-table-enabledfalse启用美化表格滚动条
@rtl-enabledfalse是否支持 RTL
@enabled-util-aligntrue是否启用工具类 align
@enabled-util-bordertrue是否启用工具类 border
@enabled-util-codetrue是否启用工具类 code
@enabled-util-colortrue是否启用工具类 color
@enabled-util-displaytrue是否启用工具类 display
@enabled-util-floattrue是否启用工具类 float
@enabled-util-icontrue是否启用工具类 icon
@enabled-util-imgtrue是否启用工具类 img
@enabled-util-positiontrue是否启用工具类 position
@enabled-util-overflowtrue是否启用工具类 overflow
@enabled-util-responsivetrue是否启用工具类 responsive
@enabled-util-spacingtrue是否启用工具类 spacing
@enabled-util-texttrue是否启用工具类 text
@enabled-util-widthtrue是否启用工具类 width
@enabled-util-scrollbartrue是否启用工具类 scrollbar
@enabled-util-othertrue是否启用工具类 other

Ng补丁

通用

名称默认值功能
@preserve-white-spaces-enabledtrue解决开启 preserveWhitespaces 时按钮间可能会出现无缝
@preserve-sf-and-st-spaces16pxsfst 间间距
@preserve-buttons-spaces按钮间间距(包括:button、button-group、popconfirm)
@router-animation-enabledfalse是否启用路由切换动画
@router-animation-durationantFadeIn路由切换动画
@router-animation-duration1s路由切换动画时长

Zorro组件补丁

通用

名称默认值功能
@forced-turn-off-nz-modal-animation-enabledfalse强制关闭 nz-modal 动画效果

表单

名称默认值功能
@form-state-visual-feedback-enabledfalse开启表单元素的视觉反馈
@search-form-bg#fbfbfb列表页简易搜索表单背景色
@search-form-radius4px列表页简易搜索表单圆角

表格

nz-table

名称默认值功能
@nz-table-img-radius4px表格中的图片圆角
@nz-table-img-margin-right4px表格中的图片右外边距
@nz-table-img-max-width32px表格中的图片最大宽度
@nz-table-img-max-height32px表格中的图片最大高度
@nz-table-even-backgroundnone奇偶背景
@nz-table-rep-max-width@mobile-max当移动端屏幕时触发表格响应式
@nz-table-rep-header-background@border-color-split表格响应式:标题背景色
@nz-table-rep-even-background#f9f9f9表格响应式:偶数行背景色
@nz-table-rep-padding-vertical8px表格响应式:单元格垂直间距
@nz-table-rep-padding-horizontal8px表格响应式:单元格水平间距
@nz-table-rep-column-name-width100px表格响应式:列名最大宽度
@nz-table-rep-column-name-text-alignright表格响应式:列名文本对齐方式
@nz-table-rep-column-name-padding-rightright表格响应式:列名右间距
@nz-table-rep-column-name-colorrgba(0, 0, 0, 0.5)表格响应式:列名颜色

小部件

名称默认值功能
@hafl-enabledtrue半图
@abs-enabledtrue中心元素
@masonry-enabledtrueCSS瀑布流列
@setting-drawer-enabledtrue主题设置
@search__form-enabledtruePro搜索框,DEMO
Loading...
\ No newline at end of file +全局参数 - NG-ALAIN

全局参数

公共类

名称默认值功能
@layout-gutter8pxantd布局间距,不可改变
@font-size-base14pxantd字号
@primary-color蓝色antd 主色
@mobile-min768pxPC端
@mobile-max767px移动端
@text-xs@font-size-base - 2xs 文本大小
@text-sm@font-size-base + 0sm 文本大小
@text-md@font-size-base + 2md 文本大小
@text-lg@font-size-base + 4lg 文本大小
@text-xl@font-size-base + 8xl 文本大小
@text-xxl@font-size-base + 12xxl 文本大小
@icon-sm@font-size-base * 2sm 图标
@icon-md@font-size-base * 4md 图标
@icon-lg@font-size-base * 6lg 图标
@icon-xl@font-size-base * 8xl 图标
@icon-xxl@font-size-base * 10xxl 图标
@h1-font-size32pxh1字号
@h2-font-size24pxh2字号
@h3-font-size20pxh3字号
@h4-font-size16pxh4字号
@h5-font-size14pxh5字号
@h6-font-size12pxh6字号
@enable-all-colorsfalse开启背景、文本颜色
例如:.bg-teal.text-teal
有关颜色值见样式规则章节
@modal-sm300px小号对话框
@modal-md500px中号对话框
@modal-lg900px大号对话框
@modal-xl1200px超大号对话框
@drawer-sm300px小号抽屉
@drawer-md500px中号抽屉
@drawer-lg900px大号抽屉
@drawer-xl1200px超大号抽屉
@drawer-sm-height200px小号抽屉
@drawer-md-height400px中号抽屉
@drawer-lg-height600px大号抽屉
@drawer-xl-height800px超大号抽屉
@code-border-color#eee<code> 边框颜色
@code-bg#f7f7f7<code> 背景颜色
@widthsxs @layout-gutter * 10
sm @layout-gutter * 20
md @layout-gutter * 30
lg @layout-gutter * 40
xl @layout-gutter * 50
xxl @layout-gutter * 50
宽度
@border-radius-md4px中号边框圆角
@border-radius-lg6px大号边框圆角
@masonry-column-gap@layout-gutter * 2CSS瀑布流列与列的间距
@scrollbar-enabledtrue启用美化滚动条
@scrollbar-width6px美化滚动条宽度
@scrollbar-height6px美化滚动条高度
@scrollbar-track-colorrgba(0, 0, 0, 0.3)美化滚动条的轨道颜色
@scrollbar-thumb-color#6e6e6e美化滚动条小方块颜色
@scrollbar-table-enabledfalse启用美化表格滚动条
@rtl-enabledfalse是否支持 RTL
@enabled-util-aligntrue是否启用工具类 align
@enabled-util-bordertrue是否启用工具类 border
@enabled-util-codetrue是否启用工具类 code
@enabled-util-colortrue是否启用工具类 color
@enabled-util-displaytrue是否启用工具类 display
@enabled-util-floattrue是否启用工具类 float
@enabled-util-icontrue是否启用工具类 icon
@enabled-util-imgtrue是否启用工具类 img
@enabled-util-positiontrue是否启用工具类 position
@enabled-util-overflowtrue是否启用工具类 overflow
@enabled-util-responsivetrue是否启用工具类 responsive
@enabled-util-spacingtrue是否启用工具类 spacing
@enabled-util-texttrue是否启用工具类 text
@enabled-util-widthtrue是否启用工具类 width
@enabled-util-scrollbartrue是否启用工具类 scrollbar
@enabled-util-othertrue是否启用工具类 other

Ng补丁

通用

名称默认值功能
@preserve-white-spaces-enabledtrue解决开启 preserveWhitespaces 时按钮间可能会出现无缝
@preserve-sf-and-st-spaces16pxsfst 间间距
@preserve-buttons-spaces按钮间间距(包括:button、button-group、popconfirm)
@router-animation-enabledfalse是否启用路由切换动画
@router-animation-durationantFadeIn路由切换动画
@router-animation-duration1s路由切换动画时长

Zorro组件补丁

通用

名称默认值功能
@forced-turn-off-nz-modal-animation-enabledfalse强制关闭 nz-modal 动画效果

表单

名称默认值功能
@form-state-visual-feedback-enabledfalse开启表单元素的视觉反馈
@search-form-bg#fbfbfb列表页简易搜索表单背景色
@search-form-radius4px列表页简易搜索表单圆角

表格

nz-table

名称默认值功能
@nz-table-img-radius4px表格中的图片圆角
@nz-table-img-margin-right4px表格中的图片右外边距
@nz-table-img-max-width32px表格中的图片最大宽度
@nz-table-img-max-height32px表格中的图片最大高度
@nz-table-even-backgroundnone奇偶背景
@nz-table-rep-max-width@mobile-max当移动端屏幕时触发表格响应式
@nz-table-rep-header-background@border-color-split表格响应式:标题背景色
@nz-table-rep-even-background#f9f9f9表格响应式:偶数行背景色
@nz-table-rep-padding-vertical8px表格响应式:单元格垂直间距
@nz-table-rep-padding-horizontal8px表格响应式:单元格水平间距
@nz-table-rep-column-name-width100px表格响应式:列名最大宽度
@nz-table-rep-column-name-text-alignright表格响应式:列名文本对齐方式
@nz-table-rep-column-name-padding-rightright表格响应式:列名右间距
@nz-table-rep-column-name-colorrgba(0, 0, 0, 0.5)表格响应式:列名颜色

小部件

名称默认值功能
@hafl-enabledtrue半图
@abs-enabledtrue中心元素
@masonry-enabledtrueCSS瀑布流列
@setting-drawer-enabledtrue主题设置
@search__form-enabledtruePro搜索框,DEMO
Loading...
\ No newline at end of file diff --git a/theme/global/zh/index.html b/theme/global/zh/index.html index 59cd5e710..eeab55eca 100644 --- a/theme/global/zh/index.html +++ b/theme/global/zh/index.html @@ -1 +1 @@ -全局参数 - NG-ALAIN

全局参数

公共类

名称默认值功能
@layout-gutter8pxantd布局间距,不可改变
@font-size-base14pxantd字号
@primary-color蓝色antd 主色
@mobile-min768pxPC端
@mobile-max767px移动端
@text-xs@font-size-base - 2xs 文本大小
@text-sm@font-size-base + 0sm 文本大小
@text-md@font-size-base + 2md 文本大小
@text-lg@font-size-base + 4lg 文本大小
@text-xl@font-size-base + 8xl 文本大小
@text-xxl@font-size-base + 12xxl 文本大小
@icon-sm@font-size-base * 2sm 图标
@icon-md@font-size-base * 4md 图标
@icon-lg@font-size-base * 6lg 图标
@icon-xl@font-size-base * 8xl 图标
@icon-xxl@font-size-base * 10xxl 图标
@h1-font-size32pxh1字号
@h2-font-size24pxh2字号
@h3-font-size20pxh3字号
@h4-font-size16pxh4字号
@h5-font-size14pxh5字号
@h6-font-size12pxh6字号
@enable-all-colorsfalse开启背景、文本颜色
例如:.bg-teal.text-teal
有关颜色值见样式规则章节
@modal-sm300px小号对话框
@modal-md500px中号对话框
@modal-lg900px大号对话框
@modal-xl1200px超大号对话框
@drawer-sm300px小号抽屉
@drawer-md500px中号抽屉
@drawer-lg900px大号抽屉
@drawer-xl1200px超大号抽屉
@drawer-sm-height200px小号抽屉
@drawer-md-height400px中号抽屉
@drawer-lg-height600px大号抽屉
@drawer-xl-height800px超大号抽屉
@code-border-color#eee<code> 边框颜色
@code-bg#f7f7f7<code> 背景颜色
@widthsxs @layout-gutter * 10
sm @layout-gutter * 20
md @layout-gutter * 30
lg @layout-gutter * 40
xl @layout-gutter * 50
xxl @layout-gutter * 50
宽度
@border-radius-md4px中号边框圆角
@border-radius-lg6px大号边框圆角
@masonry-column-gap@layout-gutter * 2CSS瀑布流列与列的间距
@scrollbar-enabledtrue启用美化滚动条
@scrollbar-width6px美化滚动条宽度
@scrollbar-height6px美化滚动条高度
@scrollbar-track-colorrgba(0, 0, 0, 0.3)美化滚动条的轨道颜色
@scrollbar-thumb-color#6e6e6e美化滚动条小方块颜色
@scrollbar-table-enabledfalse启用美化表格滚动条
@rtl-enabledfalse是否支持 RTL
@enabled-util-aligntrue是否启用工具类 align
@enabled-util-bordertrue是否启用工具类 border
@enabled-util-codetrue是否启用工具类 code
@enabled-util-colortrue是否启用工具类 color
@enabled-util-displaytrue是否启用工具类 display
@enabled-util-floattrue是否启用工具类 float
@enabled-util-icontrue是否启用工具类 icon
@enabled-util-imgtrue是否启用工具类 img
@enabled-util-positiontrue是否启用工具类 position
@enabled-util-overflowtrue是否启用工具类 overflow
@enabled-util-responsivetrue是否启用工具类 responsive
@enabled-util-spacingtrue是否启用工具类 spacing
@enabled-util-texttrue是否启用工具类 text
@enabled-util-widthtrue是否启用工具类 width
@enabled-util-scrollbartrue是否启用工具类 scrollbar
@enabled-util-othertrue是否启用工具类 other

Ng补丁

通用

名称默认值功能
@preserve-white-spaces-enabledtrue解决开启 preserveWhitespaces 时按钮间可能会出现无缝
@preserve-sf-and-st-spaces16pxsfst 间间距
@preserve-buttons-spaces按钮间间距(包括:button、button-group、popconfirm)
@router-animation-enabledfalse是否启用路由切换动画
@router-animation-durationantFadeIn路由切换动画
@router-animation-duration1s路由切换动画时长

Zorro组件补丁

通用

名称默认值功能
@forced-turn-off-nz-modal-animation-enabledfalse强制关闭 nz-modal 动画效果

表单

名称默认值功能
@form-state-visual-feedback-enabledfalse开启表单元素的视觉反馈
@search-form-bg#fbfbfb列表页简易搜索表单背景色
@search-form-radius4px列表页简易搜索表单圆角

表格

nz-table

名称默认值功能
@nz-table-img-radius4px表格中的图片圆角
@nz-table-img-margin-right4px表格中的图片右外边距
@nz-table-img-max-width32px表格中的图片最大宽度
@nz-table-img-max-height32px表格中的图片最大高度
@nz-table-even-backgroundnone奇偶背景
@nz-table-rep-max-width@mobile-max当移动端屏幕时触发表格响应式
@nz-table-rep-header-background@border-color-split表格响应式:标题背景色
@nz-table-rep-even-background#f9f9f9表格响应式:偶数行背景色
@nz-table-rep-padding-vertical8px表格响应式:单元格垂直间距
@nz-table-rep-padding-horizontal8px表格响应式:单元格水平间距
@nz-table-rep-column-name-width100px表格响应式:列名最大宽度
@nz-table-rep-column-name-text-alignright表格响应式:列名文本对齐方式
@nz-table-rep-column-name-padding-rightright表格响应式:列名右间距
@nz-table-rep-column-name-colorrgba(0, 0, 0, 0.5)表格响应式:列名颜色

小部件

名称默认值功能
@hafl-enabledtrue半图
@abs-enabledtrue中心元素
@masonry-enabledtrueCSS瀑布流列
@setting-drawer-enabledtrue主题设置
@search__form-enabledtruePro搜索框,DEMO
Loading...
\ No newline at end of file +全局参数 - NG-ALAIN

全局参数

公共类

名称默认值功能
@layout-gutter8pxantd布局间距,不可改变
@font-size-base14pxantd字号
@primary-color蓝色antd 主色
@mobile-min768pxPC端
@mobile-max767px移动端
@text-xs@font-size-base - 2xs 文本大小
@text-sm@font-size-base + 0sm 文本大小
@text-md@font-size-base + 2md 文本大小
@text-lg@font-size-base + 4lg 文本大小
@text-xl@font-size-base + 8xl 文本大小
@text-xxl@font-size-base + 12xxl 文本大小
@icon-sm@font-size-base * 2sm 图标
@icon-md@font-size-base * 4md 图标
@icon-lg@font-size-base * 6lg 图标
@icon-xl@font-size-base * 8xl 图标
@icon-xxl@font-size-base * 10xxl 图标
@h1-font-size32pxh1字号
@h2-font-size24pxh2字号
@h3-font-size20pxh3字号
@h4-font-size16pxh4字号
@h5-font-size14pxh5字号
@h6-font-size12pxh6字号
@enable-all-colorsfalse开启背景、文本颜色
例如:.bg-teal.text-teal
有关颜色值见样式规则章节
@modal-sm300px小号对话框
@modal-md500px中号对话框
@modal-lg900px大号对话框
@modal-xl1200px超大号对话框
@drawer-sm300px小号抽屉
@drawer-md500px中号抽屉
@drawer-lg900px大号抽屉
@drawer-xl1200px超大号抽屉
@drawer-sm-height200px小号抽屉
@drawer-md-height400px中号抽屉
@drawer-lg-height600px大号抽屉
@drawer-xl-height800px超大号抽屉
@code-border-color#eee<code> 边框颜色
@code-bg#f7f7f7<code> 背景颜色
@widthsxs @layout-gutter * 10
sm @layout-gutter * 20
md @layout-gutter * 30
lg @layout-gutter * 40
xl @layout-gutter * 50
xxl @layout-gutter * 50
宽度
@border-radius-md4px中号边框圆角
@border-radius-lg6px大号边框圆角
@masonry-column-gap@layout-gutter * 2CSS瀑布流列与列的间距
@scrollbar-enabledtrue启用美化滚动条
@scrollbar-width6px美化滚动条宽度
@scrollbar-height6px美化滚动条高度
@scrollbar-track-colorrgba(0, 0, 0, 0.3)美化滚动条的轨道颜色
@scrollbar-thumb-color#6e6e6e美化滚动条小方块颜色
@scrollbar-table-enabledfalse启用美化表格滚动条
@rtl-enabledfalse是否支持 RTL
@enabled-util-aligntrue是否启用工具类 align
@enabled-util-bordertrue是否启用工具类 border
@enabled-util-codetrue是否启用工具类 code
@enabled-util-colortrue是否启用工具类 color
@enabled-util-displaytrue是否启用工具类 display
@enabled-util-floattrue是否启用工具类 float
@enabled-util-icontrue是否启用工具类 icon
@enabled-util-imgtrue是否启用工具类 img
@enabled-util-positiontrue是否启用工具类 position
@enabled-util-overflowtrue是否启用工具类 overflow
@enabled-util-responsivetrue是否启用工具类 responsive
@enabled-util-spacingtrue是否启用工具类 spacing
@enabled-util-texttrue是否启用工具类 text
@enabled-util-widthtrue是否启用工具类 width
@enabled-util-scrollbartrue是否启用工具类 scrollbar
@enabled-util-othertrue是否启用工具类 other

Ng补丁

通用

名称默认值功能
@preserve-white-spaces-enabledtrue解决开启 preserveWhitespaces 时按钮间可能会出现无缝
@preserve-sf-and-st-spaces16pxsfst 间间距
@preserve-buttons-spaces按钮间间距(包括:button、button-group、popconfirm)
@router-animation-enabledfalse是否启用路由切换动画
@router-animation-durationantFadeIn路由切换动画
@router-animation-duration1s路由切换动画时长

Zorro组件补丁

通用

名称默认值功能
@forced-turn-off-nz-modal-animation-enabledfalse强制关闭 nz-modal 动画效果

表单

名称默认值功能
@form-state-visual-feedback-enabledfalse开启表单元素的视觉反馈
@search-form-bg#fbfbfb列表页简易搜索表单背景色
@search-form-radius4px列表页简易搜索表单圆角

表格

nz-table

名称默认值功能
@nz-table-img-radius4px表格中的图片圆角
@nz-table-img-margin-right4px表格中的图片右外边距
@nz-table-img-max-width32px表格中的图片最大宽度
@nz-table-img-max-height32px表格中的图片最大高度
@nz-table-even-backgroundnone奇偶背景
@nz-table-rep-max-width@mobile-max当移动端屏幕时触发表格响应式
@nz-table-rep-header-background@border-color-split表格响应式:标题背景色
@nz-table-rep-even-background#f9f9f9表格响应式:偶数行背景色
@nz-table-rep-padding-vertical8px表格响应式:单元格垂直间距
@nz-table-rep-padding-horizontal8px表格响应式:单元格水平间距
@nz-table-rep-column-name-width100px表格响应式:列名最大宽度
@nz-table-rep-column-name-text-alignright表格响应式:列名文本对齐方式
@nz-table-rep-column-name-padding-rightright表格响应式:列名右间距
@nz-table-rep-column-name-colorrgba(0, 0, 0, 0.5)表格响应式:列名颜色

小部件

名称默认值功能
@hafl-enabledtrue半图
@abs-enabledtrue中心元素
@masonry-enabledtrueCSS瀑布流列
@setting-drawer-enabledtrue主题设置
@search__form-enabledtruePro搜索框,DEMO
Loading...
\ No newline at end of file diff --git a/theme/http/en/index.html b/theme/http/en/index.html index 9594701c9..7c6c1eab8 100644 --- a/theme/http/en/index.html +++ b/theme/http/en/index.html @@ -75,4 +75,4 @@ });

IGNORE_BASE_URL

是否忽略API前缀。

// When environment.api.baseUrl set '/api'
 
 this.http.get(`/path`) // Request Url: /api/path
-this.http.get(`/path`, { context: new HttpContext().set(IGNORE_BASE_URL, true) }) // Request Url: /path

RAW_BODY

是否原样返回请求Body。

Loading...
\ No newline at end of file +this.http.get(`/path`, { context: new HttpContext().set(IGNORE_BASE_URL, true) }) // Request Url: /path

RAW_BODY

是否原样返回请求Body。

Loading...
\ No newline at end of file diff --git a/theme/http/zh/index.html b/theme/http/zh/index.html index b89c0c9e3..b920d5711 100644 --- a/theme/http/zh/index.html +++ b/theme/http/zh/index.html @@ -75,4 +75,4 @@ });

IGNORE_BASE_URL

是否忽略API前缀。

// When environment.api.baseUrl set '/api'
 
 this.http.get(`/path`) // Request Url: /api/path
-this.http.get(`/path`, { context: new HttpContext().set(IGNORE_BASE_URL, true) }) // Request Url: /path

RAW_BODY

是否原样返回请求Body。

theme-btn 组件-切换样式 SettingsService 项目配置项服务
Loading...
\ No newline at end of file +this.http.get(`/path`, { context: new HttpContext().set(IGNORE_BASE_URL, true) }) // Request Url: /path

RAW_BODY

是否原样返回请求Body。

theme-btn 组件-切换样式 SettingsService 项目配置项服务
Loading...
\ No newline at end of file diff --git a/theme/icon/en/index.html b/theme/icon/en/index.html index f7e025f08..a3d09d5c9 100644 --- a/theme/icon/en/index.html +++ b/theme/icon/en/index.html @@ -57,4 +57,4 @@ value = this.san.bypassSecurityTrustHtml( `icon: `, ); -}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/theme/icon/zh/index.html b/theme/icon/zh/index.html index 9ceca34dc..c38949d36 100644 --- a/theme/icon/zh/index.html +++ b/theme/icon/zh/index.html @@ -57,4 +57,4 @@ value = this.san.bypassSecurityTrustHtml( `icon: `, ); -}
组件样式 全局参数
Loading...
\ No newline at end of file +}
组件样式 全局参数
Loading...
\ No newline at end of file diff --git a/theme/index.html b/theme/index.html index 34fd10fe0..2bf62a808 100644 --- a/theme/index.html +++ b/theme/index.html @@ -1 +1 @@ -一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file +一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file diff --git a/theme/index/en/index.html b/theme/index/en/index.html index 22dd8cda3..e7dd05baf 100644 --- a/theme/index/en/index.html +++ b/theme/index/en/index.html @@ -10,4 +10,4 @@ ], { preloadingStrategy: PreloadOptionalModules })] -})
Loading...
\ No newline at end of file +})
Loading...
\ No newline at end of file diff --git a/theme/index/zh/index.html b/theme/index/zh/index.html index 9211089f4..ff582d7af 100644 --- a/theme/index/zh/index.html +++ b/theme/index/zh/index.html @@ -10,4 +10,4 @@ ], { preloadingStrategy: PreloadOptionalModules })] -})
RTLService RTL服务 _date 日期
Loading...
\ No newline at end of file +})
RTLService RTL服务 _date 日期
Loading...
\ No newline at end of file diff --git a/theme/keys/en/index.html b/theme/keys/en/index.html index 15e872039..f43d17b52 100644 --- a/theme/keys/en/index.html +++ b/theme/keys/en/index.html @@ -2,4 +2,4 @@ <div >{{item.key}} {{item.value | json}}</div> }

字典可迭代

const data = { 1: '正常', 2: '删除' };

若希望保持键名为 number 数字型:

@for (item of data | keys: true; track $index) {
   
{{item.key}} {{item.value | json}}
-}

Angular 6.1.0 以后原生支持 KeyValuePipe,用法有点类似。

Loading...
\ No newline at end of file +}

Angular 6.1.0 以后原生支持 KeyValuePipe,用法有点类似。

Loading...
\ No newline at end of file diff --git a/theme/keys/zh/index.html b/theme/keys/zh/index.html index 9164c0971..a3b5c7fa9 100644 --- a/theme/keys/zh/index.html +++ b/theme/keys/zh/index.html @@ -2,4 +2,4 @@ <div >{{item.key}} {{item.value | json}}</div> }

字典可迭代

const data = { 1: '正常', 2: '删除' };

若希望保持键名为 number 数字型:

@for (item of data | keys: true; track $index) {
   
{{item.key}} {{item.value | json}}
-}

Angular 6.1.0 以后原生支持 KeyValuePipe,用法有点类似。

_date 日期 safe 安全HTML等
Loading...
\ No newline at end of file +}

Angular 6.1.0 以后原生支持 KeyValuePipe,用法有点类似。

_date 日期 safe 安全HTML等
Loading...
\ No newline at end of file diff --git a/theme/layout-blank/en/index.html b/theme/layout-blank/en/index.html index a36c51148..6374497d5 100644 --- a/theme/layout-blank/en/index.html +++ b/theme/layout-blank/en/index.html @@ -1 +1 @@ -空白布局 - NG-ALAIN

空白布局

用于无须任何顶部和侧边区域,一般用于高定制性页面,诸如大屏幕数据等。默认布局所有参数都以 @alain-blank- 开头。

使用方式

src/styles.less 引入:

@import '@delon/theme/layout-blank/style/index';

参数

名称默认值功能
@prefix.alain-blank布局样式前缀
@bg#f5f7fa背景色
@content-padding-vertical0垂直内边距
@content-padding-horizontal16px水平内边距
Loading...
\ No newline at end of file +空白布局 - NG-ALAIN

空白布局

用于无须任何顶部和侧边区域,一般用于高定制性页面,诸如大屏幕数据等。默认布局所有参数都以 @alain-blank- 开头。

使用方式

src/styles.less 引入:

@import '@delon/theme/layout-blank/style/index';

参数

名称默认值功能
@prefix.alain-blank布局样式前缀
@bg#f5f7fa背景色
@content-padding-vertical0垂直内边距
@content-padding-horizontal16px水平内边距
Loading...
\ No newline at end of file diff --git a/theme/layout-blank/zh/index.html b/theme/layout-blank/zh/index.html index 5f947ec60..bcdc797f5 100644 --- a/theme/layout-blank/zh/index.html +++ b/theme/layout-blank/zh/index.html @@ -1 +1 @@ -空白布局 - NG-ALAIN

空白布局

用于无须任何顶部和侧边区域,一般用于高定制性页面,诸如大屏幕数据等。默认布局所有参数都以 @alain-blank- 开头。

使用方式

src/styles.less 引入:

@import '@delon/theme/layout-blank/style/index';

参数

名称默认值功能
@prefix.alain-blank布局样式前缀
@bg#f5f7fa背景色
@content-padding-vertical0垂直内边距
@content-padding-horizontal16px水平内边距
Loading...
\ No newline at end of file +空白布局 - NG-ALAIN

空白布局

用于无须任何顶部和侧边区域,一般用于高定制性页面,诸如大屏幕数据等。默认布局所有参数都以 @alain-blank- 开头。

使用方式

src/styles.less 引入:

@import '@delon/theme/layout-blank/style/index';

参数

名称默认值功能
@prefix.alain-blank布局样式前缀
@bg#f5f7fa背景色
@content-padding-vertical0垂直内边距
@content-padding-horizontal16px水平内边距
Loading...
\ No newline at end of file diff --git a/theme/layout-default/en/index.html b/theme/layout-default/en/index.html index 7a78ea948..5964ee3b5 100644 --- a/theme/layout-default/en/index.html +++ b/theme/layout-default/en/index.html @@ -64,4 +64,4 @@ } constructor(private settings: SettingsService) {} -}

通过 LayoutDefaultService 服务可以在运行时动态管理布局。除此之外,在布局的操作都可以通过 SettingsService.notify 来订阅布局的变化(例如:侧边栏的展开与收缩等),注意所有布局相关的变化都会通过这个接口,所以需要做好 filter 操作。

API

layout-default

成员说明类型默认值
[options]选项LayoutDefaultOptions-
[asideUser]侧边用户信息TemplateRef<void>-
[asideBottom]侧边底部信息TemplateRef<void>-
[nav]导航信息TemplateRef<void>-
[content]内容信息TemplateRef<void>-
[customError]自定义异常路由错误消息,当 null 时表示不显示错误消息string, nullCould not load ${evt.url} route
[fetchingStrictly]是否完全受控顶部加载动画状态booleanfalse
[fetching]顶部加载动画状态booleanfalse

LayoutDefaultOptions

成员说明类型默认值
[logo]自定义 Logo 区域TemplateRef<void>-
[logoExpanded]展开时 Logo 地址string./assets/logo-full.svg
[logoCollapsed]收缩时 Logo 地址string./assets/logo.svg
[logoFixWidth]指定固定 Logo 宽度number-
[logoLink]指定 Logo 路由地址string/
[hideAside]隐藏侧边栏,同时不显收缩图标按钮booleanfalse
[hideHeader]隐藏顶栏booleanfalse
[showHeaderCollapse]是否在顶栏显示菜单折叠按钮booleantrue
[showSiderCollapse]是否在侧边栏底部显示菜单折叠按钮booleanfalse

layout-default-nav

成员说明类型默认值
[disabledAcl]acl 校验失败时以 disabled 状态显示booleanfalse
[autoCloseUnderPad]小于Pad宽度时路由切换后自动关闭侧边栏booleantrue
[recursivePath]自动向上递归查找,菜单数据源包含 /ware,则 /ware/1 也视为 /warebooleantrue
[openStrictly]展开完全受控,不再自动关闭已展开的项booleanfalse
[maxLevelIcon]Icon最多显示到第几层number3
(select)点击菜单时回调(包含 disabledEventEmitter<Menu>-

组件的数据来自 MenuService(其结构为 Menu), MenuService 的操作会自动同步至该组件。

layout-default-header-item

成员说明类型默认值
[hidden]隐藏行为pc, mobile, nonenones
[direction]方向left, middle, rightright

layout-default-header-item-trigger

头部项的触发样式。

layout-default-top-menu-item

头部业务菜单项,使用方式请参考 layout.component.ts(预览)。

布局说明

按上-左-右布局方式,运用于业务页的开发。其规范细节:

参数是指可以通过 src/styles/theme.less 文件按需要调整。

顶部区域

位置:src/app/layout/base/widgets

脚手架默认提供了一些常规顶部区域组件,这些组件都存放于 components 目录中。同时 @delon/abc 也提供若干顶部组件(例如:notice-icon 通知菜单组件)。你可以根据提供的组件自行组合或自行开发。

脚手架支持响应式布局,对于顶部区域可能会是在小屏幕下需要隐藏一些组件,因此你可以在对应的DOM节点上加上 hidden-xs 表示当屏幕小于 768px 时自动隐藏。

侧边区域

位置:src/app/layout/default/sidebar

只包括一个用户信息和主菜单。主菜单是一个 layout-default-nav

内部区域

内容区域是业务页区域,规范细节:

样式参数

名称默认值功能
@alain-default-prefix.alain-default布局样式前缀
@alain-default-easecubic-bezier(.25, 0, .15, 1)动画过滤函数
@alain-default-header-hg64px顶部高度
@alain-default-header-bg@primary-color顶部背景色
@alain-default-header-padding@layout-gutter * 2顶部左右内边距
@alain-default-header-search-enabledtrue是否开启顶部搜索框
@alain-default-header-icon-fs18px顶部 Icon 大小
@alain-default-header-logo-max-height36pxLogo 图最高高度
@alain-default-aside-wd200px侧边栏宽度
@alain-default-aside-bg#fff侧边栏背景色
@alain-default-aside-scrollbar-width0侧边栏滚动条宽度
@alain-default-aside-scrollbar-height0侧边栏滚动条高度
@alain-default-aside-scrollbar-track-colortransparent侧边栏滚动条的轨道颜色
@alain-default-aside-scrollbar-thumb-colortransparent侧边栏滚动条小方块颜色
@alain-default-aside-nav-fs14px侧边栏菜单字号
@alain-default-aside-nav-icon-width14px侧边栏菜单 ICON 宽度
@alain-default-aside-nav-img-wh14px侧边栏菜单图像宽高
@alain-default-aside-nav-padding-top-bottom@layout-gutter侧边栏菜单项上下内边距
@alain-default-aside-nav-padding-left-right@layout-gutter * 2侧边栏菜单项左右内边距
@alain-default-aside-nav-text-colorrgba(0, 0, 0, 0.65)侧边栏菜单文本颜色
@alain-default-aside-nav-text-hover-color#108ee9侧边栏菜单文本悬停颜色
@alain-default-aside-nav-group-text-colorrgba(0, 0, 0, 0.43)侧边栏菜单分组文本颜色
@alain-default-aside-nav-selected-text-color#108ee9侧边栏菜单激活时文本颜色
@alain-default-aside-nav-selected-bg#fcfcfc侧边栏菜单激活时背景颜色
@alain-default-aside-collapsed-wd@layout-gutter * 8侧边栏收缩后宽度
@alain-default-aside-collapsed-nav-fs24px侧边栏收缩后文本字号
@alain-default-aside-collapsed-nav-img-wh24px侧边栏收缩后图像宽高
@alain-default-content-heading-bg#fafbfc内容区域标题背景色
@alain-default-content-heading-border#efe3e5内容区域标题底部边框色
@alain-default-content-padding@layout-gutter * 3内容区域内边距
@alain-default-content-bg#f5f7fa内容区域背景色
@alain-default-widget-app-icons-enabledtrue是否 app-icon 小部件样式
@alain-default-aside-user-enabledtrue是否侧边栏用户信息样式

常见问题

为什么会有两个快捷菜单

快捷菜单生成规则统一在 0 索引下查找,并按以下顺序来获取:

  1. 【推荐】 children 存在 shortcutRoot: true 则最优先

  2. 否则查找带有【dashboard】字样链接,若存在则在此菜单的下方创建快捷入口

  3. 否则放在0节点位置

因此,建议在菜单数据的 0 索引下保持一个有效的 shortcutRoot: true 数据。

常见问题

隐藏主菜单项

表示永远不显示菜单,可以在菜单设置 hide: true

隐藏自动生成导航隐藏面包屑

表示不显示该节点,可以在菜单设置 hideInBreadcrumb: true

关于层级

虽然支持无限层级,但为了用户体验请保持最多不超过四层(含组别)。

如何更新某个菜单项

当调用 MenuService.setItem(key, newValue) 时会自动重新渲染主菜单,其中 key 必须是存在值,请参考 Menu 的定义。

如何控制菜单展开

利用 LayoutDefaultService.toggleCollapsed() 来运行时手动控制。

Loading...
\ No newline at end of file +}

通过 LayoutDefaultService 服务可以在运行时动态管理布局。除此之外,在布局的操作都可以通过 SettingsService.notify 来订阅布局的变化(例如:侧边栏的展开与收缩等),注意所有布局相关的变化都会通过这个接口,所以需要做好 filter 操作。

API

layout-default

成员说明类型默认值
[options]选项LayoutDefaultOptions-
[asideUser]侧边用户信息TemplateRef<void>-
[asideBottom]侧边底部信息TemplateRef<void>-
[nav]导航信息TemplateRef<void>-
[content]内容信息TemplateRef<void>-
[customError]自定义异常路由错误消息,当 null 时表示不显示错误消息string, nullCould not load ${evt.url} route
[fetchingStrictly]是否完全受控顶部加载动画状态booleanfalse
[fetching]顶部加载动画状态booleanfalse

LayoutDefaultOptions

成员说明类型默认值
[logo]自定义 Logo 区域TemplateRef<void>-
[logoExpanded]展开时 Logo 地址string./assets/logo-full.svg
[logoCollapsed]收缩时 Logo 地址string./assets/logo.svg
[logoFixWidth]指定固定 Logo 宽度number-
[logoLink]指定 Logo 路由地址string/
[hideAside]隐藏侧边栏,同时不显收缩图标按钮booleanfalse
[hideHeader]隐藏顶栏booleanfalse
[showHeaderCollapse]是否在顶栏显示菜单折叠按钮booleantrue
[showSiderCollapse]是否在侧边栏底部显示菜单折叠按钮booleanfalse

layout-default-nav

成员说明类型默认值
[disabledAcl]acl 校验失败时以 disabled 状态显示booleanfalse
[autoCloseUnderPad]小于Pad宽度时路由切换后自动关闭侧边栏booleantrue
[recursivePath]自动向上递归查找,菜单数据源包含 /ware,则 /ware/1 也视为 /warebooleantrue
[openStrictly]展开完全受控,不再自动关闭已展开的项booleanfalse
[maxLevelIcon]Icon最多显示到第几层number3
(select)点击菜单时回调(包含 disabledEventEmitter<Menu>-

组件的数据来自 MenuService(其结构为 Menu), MenuService 的操作会自动同步至该组件。

layout-default-header-item

成员说明类型默认值
[hidden]隐藏行为pc, mobile, nonenones
[direction]方向left, middle, rightright

layout-default-header-item-trigger

头部项的触发样式。

layout-default-top-menu-item

头部业务菜单项,使用方式请参考 layout.component.ts(预览)。

布局说明

按上-左-右布局方式,运用于业务页的开发。其规范细节:

参数是指可以通过 src/styles/theme.less 文件按需要调整。

顶部区域

位置:src/app/layout/base/widgets

脚手架默认提供了一些常规顶部区域组件,这些组件都存放于 components 目录中。同时 @delon/abc 也提供若干顶部组件(例如:notice-icon 通知菜单组件)。你可以根据提供的组件自行组合或自行开发。

脚手架支持响应式布局,对于顶部区域可能会是在小屏幕下需要隐藏一些组件,因此你可以在对应的DOM节点上加上 hidden-xs 表示当屏幕小于 768px 时自动隐藏。

侧边区域

位置:src/app/layout/default/sidebar

只包括一个用户信息和主菜单。主菜单是一个 layout-default-nav

内部区域

内容区域是业务页区域,规范细节:

样式参数

名称默认值功能
@alain-default-prefix.alain-default布局样式前缀
@alain-default-easecubic-bezier(.25, 0, .15, 1)动画过滤函数
@alain-default-header-hg64px顶部高度
@alain-default-header-bg@primary-color顶部背景色
@alain-default-header-padding@layout-gutter * 2顶部左右内边距
@alain-default-header-search-enabledtrue是否开启顶部搜索框
@alain-default-header-icon-fs18px顶部 Icon 大小
@alain-default-header-logo-max-height36pxLogo 图最高高度
@alain-default-aside-wd200px侧边栏宽度
@alain-default-aside-bg#fff侧边栏背景色
@alain-default-aside-scrollbar-width0侧边栏滚动条宽度
@alain-default-aside-scrollbar-height0侧边栏滚动条高度
@alain-default-aside-scrollbar-track-colortransparent侧边栏滚动条的轨道颜色
@alain-default-aside-scrollbar-thumb-colortransparent侧边栏滚动条小方块颜色
@alain-default-aside-nav-fs14px侧边栏菜单字号
@alain-default-aside-nav-icon-width14px侧边栏菜单 ICON 宽度
@alain-default-aside-nav-img-wh14px侧边栏菜单图像宽高
@alain-default-aside-nav-padding-top-bottom@layout-gutter侧边栏菜单项上下内边距
@alain-default-aside-nav-padding-left-right@layout-gutter * 2侧边栏菜单项左右内边距
@alain-default-aside-nav-text-colorrgba(0, 0, 0, 0.65)侧边栏菜单文本颜色
@alain-default-aside-nav-text-hover-color#108ee9侧边栏菜单文本悬停颜色
@alain-default-aside-nav-group-text-colorrgba(0, 0, 0, 0.43)侧边栏菜单分组文本颜色
@alain-default-aside-nav-selected-text-color#108ee9侧边栏菜单激活时文本颜色
@alain-default-aside-nav-selected-bg#fcfcfc侧边栏菜单激活时背景颜色
@alain-default-aside-collapsed-wd@layout-gutter * 8侧边栏收缩后宽度
@alain-default-aside-collapsed-nav-fs24px侧边栏收缩后文本字号
@alain-default-aside-collapsed-nav-img-wh24px侧边栏收缩后图像宽高
@alain-default-content-heading-bg#fafbfc内容区域标题背景色
@alain-default-content-heading-border#efe3e5内容区域标题底部边框色
@alain-default-content-padding@layout-gutter * 3内容区域内边距
@alain-default-content-bg#f5f7fa内容区域背景色
@alain-default-widget-app-icons-enabledtrue是否 app-icon 小部件样式
@alain-default-aside-user-enabledtrue是否侧边栏用户信息样式

常见问题

为什么会有两个快捷菜单

快捷菜单生成规则统一在 0 索引下查找,并按以下顺序来获取:

  1. 【推荐】 children 存在 shortcutRoot: true 则最优先

  2. 否则查找带有【dashboard】字样链接,若存在则在此菜单的下方创建快捷入口

  3. 否则放在0节点位置

因此,建议在菜单数据的 0 索引下保持一个有效的 shortcutRoot: true 数据。

常见问题

隐藏主菜单项

表示永远不显示菜单,可以在菜单设置 hide: true

隐藏自动生成导航隐藏面包屑

表示不显示该节点,可以在菜单设置 hideInBreadcrumb: true

关于层级

虽然支持无限层级,但为了用户体验请保持最多不超过四层(含组别)。

如何更新某个菜单项

当调用 MenuService.setItem(key, newValue) 时会自动重新渲染主菜单,其中 key 必须是存在值,请参考 Menu 的定义。

如何控制菜单展开

利用 LayoutDefaultService.toggleCollapsed() 来运行时手动控制。

Loading...
\ No newline at end of file diff --git a/theme/layout-default/zh/index.html b/theme/layout-default/zh/index.html index 8001022ff..493f8439c 100644 --- a/theme/layout-default/zh/index.html +++ b/theme/layout-default/zh/index.html @@ -64,4 +64,4 @@ } constructor(private settings: SettingsService) {} -}

通过 LayoutDefaultService 服务可以在运行时动态管理布局。除此之外,在布局的操作都可以通过 SettingsService.notify 来订阅布局的变化(例如:侧边栏的展开与收缩等),注意所有布局相关的变化都会通过这个接口,所以需要做好 filter 操作。

API

layout-default

成员说明类型默认值
[options]选项LayoutDefaultOptions-
[asideUser]侧边用户信息TemplateRef<void>-
[asideBottom]侧边底部信息TemplateRef<void>-
[nav]导航信息TemplateRef<void>-
[content]内容信息TemplateRef<void>-
[customError]自定义异常路由错误消息,当 null 时表示不显示错误消息string, nullCould not load ${evt.url} route
[fetchingStrictly]是否完全受控顶部加载动画状态booleanfalse
[fetching]顶部加载动画状态booleanfalse

LayoutDefaultOptions

成员说明类型默认值
[logo]自定义 Logo 区域TemplateRef<void>-
[logoExpanded]展开时 Logo 地址string./assets/logo-full.svg
[logoCollapsed]收缩时 Logo 地址string./assets/logo.svg
[logoFixWidth]指定固定 Logo 宽度number-
[logoLink]指定 Logo 路由地址string/
[hideAside]隐藏侧边栏,同时不显收缩图标按钮booleanfalse
[hideHeader]隐藏顶栏booleanfalse
[showHeaderCollapse]是否在顶栏显示菜单折叠按钮booleantrue
[showSiderCollapse]是否在侧边栏底部显示菜单折叠按钮booleanfalse

layout-default-nav

成员说明类型默认值
[disabledAcl]acl 校验失败时以 disabled 状态显示booleanfalse
[autoCloseUnderPad]小于Pad宽度时路由切换后自动关闭侧边栏booleantrue
[recursivePath]自动向上递归查找,菜单数据源包含 /ware,则 /ware/1 也视为 /warebooleantrue
[openStrictly]展开完全受控,不再自动关闭已展开的项booleanfalse
[maxLevelIcon]Icon最多显示到第几层number3
(select)点击菜单时回调(包含 disabledEventEmitter<Menu>-

组件的数据来自 MenuService(其结构为 Menu), MenuService 的操作会自动同步至该组件。

layout-default-header-item

成员说明类型默认值
[hidden]隐藏行为pc, mobile, nonenones
[direction]方向left, middle, rightright

layout-default-header-item-trigger

头部项的触发样式。

layout-default-top-menu-item

头部业务菜单项,使用方式请参考 layout.component.ts(预览)。

布局说明

按上-左-右布局方式,运用于业务页的开发。其规范细节:

参数是指可以通过 src/styles/theme.less 文件按需要调整。

顶部区域

位置:src/app/layout/base/widgets

脚手架默认提供了一些常规顶部区域组件,这些组件都存放于 components 目录中。同时 @delon/abc 也提供若干顶部组件(例如:notice-icon 通知菜单组件)。你可以根据提供的组件自行组合或自行开发。

脚手架支持响应式布局,对于顶部区域可能会是在小屏幕下需要隐藏一些组件,因此你可以在对应的DOM节点上加上 hidden-xs 表示当屏幕小于 768px 时自动隐藏。

侧边区域

位置:src/app/layout/default/sidebar

只包括一个用户信息和主菜单。主菜单是一个 layout-default-nav

内部区域

内容区域是业务页区域,规范细节:

样式参数

名称默认值功能
@alain-default-prefix.alain-default布局样式前缀
@alain-default-easecubic-bezier(.25, 0, .15, 1)动画过滤函数
@alain-default-header-hg64px顶部高度
@alain-default-header-bg@primary-color顶部背景色
@alain-default-header-padding@layout-gutter * 2顶部左右内边距
@alain-default-header-search-enabledtrue是否开启顶部搜索框
@alain-default-header-icon-fs18px顶部 Icon 大小
@alain-default-header-logo-max-height36pxLogo 图最高高度
@alain-default-aside-wd200px侧边栏宽度
@alain-default-aside-bg#fff侧边栏背景色
@alain-default-aside-scrollbar-width0侧边栏滚动条宽度
@alain-default-aside-scrollbar-height0侧边栏滚动条高度
@alain-default-aside-scrollbar-track-colortransparent侧边栏滚动条的轨道颜色
@alain-default-aside-scrollbar-thumb-colortransparent侧边栏滚动条小方块颜色
@alain-default-aside-nav-fs14px侧边栏菜单字号
@alain-default-aside-nav-icon-width14px侧边栏菜单 ICON 宽度
@alain-default-aside-nav-img-wh14px侧边栏菜单图像宽高
@alain-default-aside-nav-padding-top-bottom@layout-gutter侧边栏菜单项上下内边距
@alain-default-aside-nav-padding-left-right@layout-gutter * 2侧边栏菜单项左右内边距
@alain-default-aside-nav-text-colorrgba(0, 0, 0, 0.65)侧边栏菜单文本颜色
@alain-default-aside-nav-text-hover-color#108ee9侧边栏菜单文本悬停颜色
@alain-default-aside-nav-group-text-colorrgba(0, 0, 0, 0.43)侧边栏菜单分组文本颜色
@alain-default-aside-nav-selected-text-color#108ee9侧边栏菜单激活时文本颜色
@alain-default-aside-nav-selected-bg#fcfcfc侧边栏菜单激活时背景颜色
@alain-default-aside-collapsed-wd@layout-gutter * 8侧边栏收缩后宽度
@alain-default-aside-collapsed-nav-fs24px侧边栏收缩后文本字号
@alain-default-aside-collapsed-nav-img-wh24px侧边栏收缩后图像宽高
@alain-default-content-heading-bg#fafbfc内容区域标题背景色
@alain-default-content-heading-border#efe3e5内容区域标题底部边框色
@alain-default-content-padding@layout-gutter * 3内容区域内边距
@alain-default-content-bg#f5f7fa内容区域背景色
@alain-default-widget-app-icons-enabledtrue是否 app-icon 小部件样式
@alain-default-aside-user-enabledtrue是否侧边栏用户信息样式

常见问题

为什么会有两个快捷菜单

快捷菜单生成规则统一在 0 索引下查找,并按以下顺序来获取:

  1. 【推荐】 children 存在 shortcutRoot: true 则最优先

  2. 否则查找带有【dashboard】字样链接,若存在则在此菜单的下方创建快捷入口

  3. 否则放在0节点位置

因此,建议在菜单数据的 0 索引下保持一个有效的 shortcutRoot: true 数据。

常见问题

隐藏主菜单项

表示永远不显示菜单,可以在菜单设置 hide: true

隐藏自动生成导航隐藏面包屑

表示不显示该节点,可以在菜单设置 hideInBreadcrumb: true

关于层级

虽然支持无限层级,但为了用户体验请保持最多不超过四层(含组别)。

如何更新某个菜单项

当调用 MenuService.setItem(key, newValue) 时会自动重新渲染主菜单,其中 key 必须是存在值,请参考 Menu 的定义。

如何控制菜单展开

利用 LayoutDefaultService.toggleCollapsed() 来运行时手动控制。

样式工具类 空白布局
Loading...
\ No newline at end of file +}

通过 LayoutDefaultService 服务可以在运行时动态管理布局。除此之外,在布局的操作都可以通过 SettingsService.notify 来订阅布局的变化(例如:侧边栏的展开与收缩等),注意所有布局相关的变化都会通过这个接口,所以需要做好 filter 操作。

API

layout-default

成员说明类型默认值
[options]选项LayoutDefaultOptions-
[asideUser]侧边用户信息TemplateRef<void>-
[asideBottom]侧边底部信息TemplateRef<void>-
[nav]导航信息TemplateRef<void>-
[content]内容信息TemplateRef<void>-
[customError]自定义异常路由错误消息,当 null 时表示不显示错误消息string, nullCould not load ${evt.url} route
[fetchingStrictly]是否完全受控顶部加载动画状态booleanfalse
[fetching]顶部加载动画状态booleanfalse

LayoutDefaultOptions

成员说明类型默认值
[logo]自定义 Logo 区域TemplateRef<void>-
[logoExpanded]展开时 Logo 地址string./assets/logo-full.svg
[logoCollapsed]收缩时 Logo 地址string./assets/logo.svg
[logoFixWidth]指定固定 Logo 宽度number-
[logoLink]指定 Logo 路由地址string/
[hideAside]隐藏侧边栏,同时不显收缩图标按钮booleanfalse
[hideHeader]隐藏顶栏booleanfalse
[showHeaderCollapse]是否在顶栏显示菜单折叠按钮booleantrue
[showSiderCollapse]是否在侧边栏底部显示菜单折叠按钮booleanfalse

layout-default-nav

成员说明类型默认值
[disabledAcl]acl 校验失败时以 disabled 状态显示booleanfalse
[autoCloseUnderPad]小于Pad宽度时路由切换后自动关闭侧边栏booleantrue
[recursivePath]自动向上递归查找,菜单数据源包含 /ware,则 /ware/1 也视为 /warebooleantrue
[openStrictly]展开完全受控,不再自动关闭已展开的项booleanfalse
[maxLevelIcon]Icon最多显示到第几层number3
(select)点击菜单时回调(包含 disabledEventEmitter<Menu>-

组件的数据来自 MenuService(其结构为 Menu), MenuService 的操作会自动同步至该组件。

layout-default-header-item

成员说明类型默认值
[hidden]隐藏行为pc, mobile, nonenones
[direction]方向left, middle, rightright

layout-default-header-item-trigger

头部项的触发样式。

layout-default-top-menu-item

头部业务菜单项,使用方式请参考 layout.component.ts(预览)。

布局说明

按上-左-右布局方式,运用于业务页的开发。其规范细节:

参数是指可以通过 src/styles/theme.less 文件按需要调整。

顶部区域

位置:src/app/layout/base/widgets

脚手架默认提供了一些常规顶部区域组件,这些组件都存放于 components 目录中。同时 @delon/abc 也提供若干顶部组件(例如:notice-icon 通知菜单组件)。你可以根据提供的组件自行组合或自行开发。

脚手架支持响应式布局,对于顶部区域可能会是在小屏幕下需要隐藏一些组件,因此你可以在对应的DOM节点上加上 hidden-xs 表示当屏幕小于 768px 时自动隐藏。

侧边区域

位置:src/app/layout/default/sidebar

只包括一个用户信息和主菜单。主菜单是一个 layout-default-nav

内部区域

内容区域是业务页区域,规范细节:

样式参数

名称默认值功能
@alain-default-prefix.alain-default布局样式前缀
@alain-default-easecubic-bezier(.25, 0, .15, 1)动画过滤函数
@alain-default-header-hg64px顶部高度
@alain-default-header-bg@primary-color顶部背景色
@alain-default-header-padding@layout-gutter * 2顶部左右内边距
@alain-default-header-search-enabledtrue是否开启顶部搜索框
@alain-default-header-icon-fs18px顶部 Icon 大小
@alain-default-header-logo-max-height36pxLogo 图最高高度
@alain-default-aside-wd200px侧边栏宽度
@alain-default-aside-bg#fff侧边栏背景色
@alain-default-aside-scrollbar-width0侧边栏滚动条宽度
@alain-default-aside-scrollbar-height0侧边栏滚动条高度
@alain-default-aside-scrollbar-track-colortransparent侧边栏滚动条的轨道颜色
@alain-default-aside-scrollbar-thumb-colortransparent侧边栏滚动条小方块颜色
@alain-default-aside-nav-fs14px侧边栏菜单字号
@alain-default-aside-nav-icon-width14px侧边栏菜单 ICON 宽度
@alain-default-aside-nav-img-wh14px侧边栏菜单图像宽高
@alain-default-aside-nav-padding-top-bottom@layout-gutter侧边栏菜单项上下内边距
@alain-default-aside-nav-padding-left-right@layout-gutter * 2侧边栏菜单项左右内边距
@alain-default-aside-nav-text-colorrgba(0, 0, 0, 0.65)侧边栏菜单文本颜色
@alain-default-aside-nav-text-hover-color#108ee9侧边栏菜单文本悬停颜色
@alain-default-aside-nav-group-text-colorrgba(0, 0, 0, 0.43)侧边栏菜单分组文本颜色
@alain-default-aside-nav-selected-text-color#108ee9侧边栏菜单激活时文本颜色
@alain-default-aside-nav-selected-bg#fcfcfc侧边栏菜单激活时背景颜色
@alain-default-aside-collapsed-wd@layout-gutter * 8侧边栏收缩后宽度
@alain-default-aside-collapsed-nav-fs24px侧边栏收缩后文本字号
@alain-default-aside-collapsed-nav-img-wh24px侧边栏收缩后图像宽高
@alain-default-content-heading-bg#fafbfc内容区域标题背景色
@alain-default-content-heading-border#efe3e5内容区域标题底部边框色
@alain-default-content-padding@layout-gutter * 3内容区域内边距
@alain-default-content-bg#f5f7fa内容区域背景色
@alain-default-widget-app-icons-enabledtrue是否 app-icon 小部件样式
@alain-default-aside-user-enabledtrue是否侧边栏用户信息样式

常见问题

为什么会有两个快捷菜单

快捷菜单生成规则统一在 0 索引下查找,并按以下顺序来获取:

  1. 【推荐】 children 存在 shortcutRoot: true 则最优先

  2. 否则查找带有【dashboard】字样链接,若存在则在此菜单的下方创建快捷入口

  3. 否则放在0节点位置

因此,建议在菜单数据的 0 索引下保持一个有效的 shortcutRoot: true 数据。

常见问题

隐藏主菜单项

表示永远不显示菜单,可以在菜单设置 hide: true

隐藏自动生成导航隐藏面包屑

表示不显示该节点,可以在菜单设置 hideInBreadcrumb: true

关于层级

虽然支持无限层级,但为了用户体验请保持最多不超过四层(含组别)。

如何更新某个菜单项

当调用 MenuService.setItem(key, newValue) 时会自动重新渲染主菜单,其中 key 必须是存在值,请参考 Menu 的定义。

如何控制菜单展开

利用 LayoutDefaultService.toggleCollapsed() 来运行时手动控制。

样式工具类 空白布局
Loading...
\ No newline at end of file diff --git a/theme/locale/en/index.html b/theme/locale/en/index.html index a2444c4c8..bd9cc0584 100644 --- a/theme/locale/en/index.html +++ b/theme/locale/en/index.html @@ -10,4 +10,4 @@ switchLanguage() { this.delonLocaleService.setLocale(en_US); -}

注意:en_US 是语言包名称,以下表格也遵循同样的规则。

支持语言

语言语言包名称
英语(美式)en_US
简体中文zh_CN
繁体中文zh_TW
土耳其语tr_TR
波兰语pl_PL
希腊语el_GR
朝鲜语ko_KR
克罗地亚hr_HR
日语ja_JP
斯洛文尼亚文sl_SI
法文fr_FR
西班牙语es_ES
意大利语it_IT

增加语言包

如果你找不到你需要的语言包,欢迎你在 英文语言包(你也可以参考 #308 向我们贡献语言包)的基础上创建一个新的语言包,并给我们 Pull Request。

Loading...
\ No newline at end of file +}

注意:en_US 是语言包名称,以下表格也遵循同样的规则。

支持语言

语言语言包名称
英语(美式)en_US
简体中文zh_CN
繁体中文zh_TW
土耳其语tr_TR
波兰语pl_PL
希腊语el_GR
朝鲜语ko_KR
克罗地亚hr_HR
日语ja_JP
斯洛文尼亚文sl_SI
法文fr_FR
西班牙语es_ES
意大利语it_IT

增加语言包

如果你找不到你需要的语言包,欢迎你在 英文语言包(你也可以参考 #308 向我们贡献语言包)的基础上创建一个新的语言包,并给我们 Pull Request。

Loading...
\ No newline at end of file diff --git a/theme/locale/zh/index.html b/theme/locale/zh/index.html index d536f6eaf..3dd1d449e 100644 --- a/theme/locale/zh/index.html +++ b/theme/locale/zh/index.html @@ -10,4 +10,4 @@ switchLanguage() { this.delonLocaleService.setLocale(en_US); -}

注意:en_US 是语言包名称,以下表格也遵循同样的规则。

支持语言

语言语言包名称
英语(美式)en_US
简体中文zh_CN
繁体中文zh_TW
土耳其语tr_TR
波兰语pl_PL
希腊语el_GR
朝鲜语ko_KR
克罗地亚hr_HR
日语ja_JP
斯洛文尼亚文sl_SI
法文fr_FR
西班牙语es_ES
意大利语it_IT

增加语言包

如果你找不到你需要的语言包,欢迎你在 英文语言包(你也可以参考 #308 向我们贡献语言包)的基础上创建一个新的语言包,并给我们 Pull Request。

开始使用 定制主题
Loading...
\ No newline at end of file +}

注意:en_US 是语言包名称,以下表格也遵循同样的规则。

支持语言

语言语言包名称
英语(美式)en_US
简体中文zh_CN
繁体中文zh_TW
土耳其语tr_TR
波兰语pl_PL
希腊语el_GR
朝鲜语ko_KR
克罗地亚hr_HR
日语ja_JP
斯洛文尼亚文sl_SI
法文fr_FR
西班牙语es_ES
意大利语it_IT

增加语言包

如果你找不到你需要的语言包,欢迎你在 英文语言包(你也可以参考 #308 向我们贡献语言包)的基础上创建一个新的语言包,并给我们 Pull Request。

开始使用 定制主题
Loading...
\ No newline at end of file diff --git a/theme/menu/en/index.html b/theme/menu/en/index.html index 9b55c9bfc..b861840cd 100644 --- a/theme/menu/en/index.html +++ b/theme/menu/en/index.html @@ -1 +1 @@ -MenuService - NG-ALAIN

菜单服务

菜单服务的数据格式是一个 Menu 数组,其中 text 属性表示菜单文本为必填项,而且本身并不受外部组件的影响(例如sidebar-nav组件),这是因为菜单是贯穿整个项目必不可少的组成部分,而将其独立成一个服务可以更有效被使用,例如:动态生成导航、标题等。

建议: 在 Angular 启动服务(startup.service.ts)从远程获取到菜单数据后,调用 add() 方法。

API

方法描述
add设置菜单数据
clear清空菜单数据
resume重置菜单,可能I18N、用户权限变动时需要调用刷新
find利用 urlkey 查找菜单
getItem根据 key 获取菜单
getPathByUrl根据url获取菜单列表
setItem设置菜单值
open展开某菜单
toggleOpen切换菜单的展开或关闭
openAll展开或关闭所有菜单

recursive

表示自动向上递归查找,例如菜单数据源包含 /ware,则 /ware/1 也视为 /ware 项。

成员说明类型默认值
text文本(支持HTML),必填项string-
i18ni18n主键(支持HTML)string-
group是否显示分组名,指示例中的【主导航】字样booleantrue
link路由,linkexternalLink 二选其一string-
externalLink外部链接,linkexternalLink 二选其一string-
target链接 target_blank,_self,_parent,_top-
icon图标,指示例中的【仪表盘】前图标,只对一级菜单有效string | MenuIcon-
badge徽标数,展示的数字,指示例中的【小部件】后的红色块。(注:group:true 时无效)number-
badgeDot徽标数,显示小红点boolean-
badgeStatus徽标 Badge 颜色success,processing,default,error,warningerror
open是否打开菜单booleanfalse
disabled是否禁用菜单booleanfalse
hide是否隐藏菜单booleanfalse
hideInBreadcrumb隐藏面包屑,指 page-header 组件的自动生成面包屑时有效boolean-
aclACL配置,若导入 @delon/acl 时自动有效,等同于 ACLService.can(roleOrAbility: ACLCanType) 参数值any-
shortcut是否快捷菜单项boolean-
shortcutRoot快捷菜单根节点boolean-
reuse是否允许复用,需配合 reuse-tab 组件boolean-
key菜单项唯一标识符,可用于 getItemsetItem 来更新某个菜单string-
children子菜单Menu[]-
成员说明类型默认值
[type]类型;img, svg 类型需要 14px 宽与高尺寸class,icon,iconfont,img,svgicon
[value]值,包含:类名、图标 nzType、图像string-
[theme]图标主题风格outline,twotone,filloutline
[spin]是否有旋转动画booleanfalse
[twoToneColor]仅适用双色图标,设置双色图标的主要颜色,仅对当前 icon 生效string-
[iconfont]指定来自 IconFont 的图标类型string-
[rotate]图标旋转角度number-

使用 iconfont 类型必须先加载 NzIconService.fetchFromIconfont,建议在根模块中执行。

Loading...
\ No newline at end of file +MenuService - NG-ALAIN

菜单服务

菜单服务的数据格式是一个 Menu 数组,其中 text 属性表示菜单文本为必填项,而且本身并不受外部组件的影响(例如sidebar-nav组件),这是因为菜单是贯穿整个项目必不可少的组成部分,而将其独立成一个服务可以更有效被使用,例如:动态生成导航、标题等。

建议: 在 Angular 启动服务(startup.service.ts)从远程获取到菜单数据后,调用 add() 方法。

API

方法描述
add设置菜单数据
clear清空菜单数据
resume重置菜单,可能I18N、用户权限变动时需要调用刷新
find利用 urlkey 查找菜单
getItem根据 key 获取菜单
getPathByUrl根据url获取菜单列表
setItem设置菜单值
open展开某菜单
toggleOpen切换菜单的展开或关闭
openAll展开或关闭所有菜单

recursive

表示自动向上递归查找,例如菜单数据源包含 /ware,则 /ware/1 也视为 /ware 项。

成员说明类型默认值
text文本(支持HTML),必填项string-
i18ni18n主键(支持HTML)string-
group是否显示分组名,指示例中的【主导航】字样booleantrue
link路由,linkexternalLink 二选其一string-
externalLink外部链接,linkexternalLink 二选其一string-
target链接 target_blank,_self,_parent,_top-
icon图标,指示例中的【仪表盘】前图标,只对一级菜单有效string | MenuIcon-
badge徽标数,展示的数字,指示例中的【小部件】后的红色块。(注:group:true 时无效)number-
badgeDot徽标数,显示小红点boolean-
badgeStatus徽标 Badge 颜色success,processing,default,error,warningerror
open是否打开菜单booleanfalse
disabled是否禁用菜单booleanfalse
hide是否隐藏菜单booleanfalse
hideInBreadcrumb隐藏面包屑,指 page-header 组件的自动生成面包屑时有效boolean-
aclACL配置,若导入 @delon/acl 时自动有效,等同于 ACLService.can(roleOrAbility: ACLCanType) 参数值any-
shortcut是否快捷菜单项boolean-
shortcutRoot快捷菜单根节点boolean-
reuse是否允许复用,需配合 reuse-tab 组件boolean-
key菜单项唯一标识符,可用于 getItemsetItem 来更新某个菜单string-
children子菜单Menu[]-
成员说明类型默认值
[type]类型;img, svg 类型需要 14px 宽与高尺寸class,icon,iconfont,img,svgicon
[value]值,包含:类名、图标 nzType、图像string-
[theme]图标主题风格outline,twotone,filloutline
[spin]是否有旋转动画booleanfalse
[twoToneColor]仅适用双色图标,设置双色图标的主要颜色,仅对当前 icon 生效string-
[iconfont]指定来自 IconFont 的图标类型string-
[rotate]图标旋转角度number-

使用 iconfont 类型必须先加载 NzIconService.fetchFromIconfont,建议在根模块中执行。

Loading...
\ No newline at end of file diff --git a/theme/menu/zh/index.html b/theme/menu/zh/index.html index 33d153df8..1858c84e5 100644 --- a/theme/menu/zh/index.html +++ b/theme/menu/zh/index.html @@ -1 +1 @@ -MenuService - NG-ALAIN

菜单服务

菜单服务的数据格式是一个 Menu 数组,其中 text 属性表示菜单文本为必填项,而且本身并不受外部组件的影响(例如sidebar-nav组件),这是因为菜单是贯穿整个项目必不可少的组成部分,而将其独立成一个服务可以更有效被使用,例如:动态生成导航、标题等。

建议: 在 Angular 启动服务(startup.service.ts)从远程获取到菜单数据后,调用 add() 方法。

API

方法描述
add设置菜单数据
clear清空菜单数据
resume重置菜单,可能I18N、用户权限变动时需要调用刷新
find利用 urlkey 查找菜单
getItem根据 key 获取菜单
getPathByUrl根据url获取菜单列表
setItem设置菜单值
open展开某菜单
toggleOpen切换菜单的展开或关闭
openAll展开或关闭所有菜单

recursive

表示自动向上递归查找,例如菜单数据源包含 /ware,则 /ware/1 也视为 /ware 项。

成员说明类型默认值
text文本(支持HTML),必填项string-
i18ni18n主键(支持HTML)string-
group是否显示分组名,指示例中的【主导航】字样booleantrue
link路由,linkexternalLink 二选其一string-
externalLink外部链接,linkexternalLink 二选其一string-
target链接 target_blank,_self,_parent,_top-
icon图标,指示例中的【仪表盘】前图标,只对一级菜单有效string | MenuIcon-
badge徽标数,展示的数字,指示例中的【小部件】后的红色块。(注:group:true 时无效)number-
badgeDot徽标数,显示小红点boolean-
badgeStatus徽标 Badge 颜色success,processing,default,error,warningerror
open是否打开菜单booleanfalse
disabled是否禁用菜单booleanfalse
hide是否隐藏菜单booleanfalse
hideInBreadcrumb隐藏面包屑,指 page-header 组件的自动生成面包屑时有效boolean-
aclACL配置,若导入 @delon/acl 时自动有效,等同于 ACLService.can(roleOrAbility: ACLCanType) 参数值any-
shortcut是否快捷菜单项boolean-
shortcutRoot快捷菜单根节点boolean-
reuse是否允许复用,需配合 reuse-tab 组件boolean-
key菜单项唯一标识符,可用于 getItemsetItem 来更新某个菜单string-
children子菜单Menu[]-
成员说明类型默认值
[type]类型;img, svg 类型需要 14px 宽与高尺寸class,icon,iconfont,img,svgicon
[value]值,包含:类名、图标 nzType、图像string-
[theme]图标主题风格outline,twotone,filloutline
[spin]是否有旋转动画booleanfalse
[twoToneColor]仅适用双色图标,设置双色图标的主要颜色,仅对当前 icon 生效string-
[iconfont]指定来自 IconFont 的图标类型string-
[rotate]图标旋转角度number-

使用 iconfont 类型必须先加载 NzIconService.fetchFromIconfont,建议在根模块中执行。

Loading...
\ No newline at end of file +MenuService - NG-ALAIN

菜单服务

菜单服务的数据格式是一个 Menu 数组,其中 text 属性表示菜单文本为必填项,而且本身并不受外部组件的影响(例如sidebar-nav组件),这是因为菜单是贯穿整个项目必不可少的组成部分,而将其独立成一个服务可以更有效被使用,例如:动态生成导航、标题等。

建议: 在 Angular 启动服务(startup.service.ts)从远程获取到菜单数据后,调用 add() 方法。

API

方法描述
add设置菜单数据
clear清空菜单数据
resume重置菜单,可能I18N、用户权限变动时需要调用刷新
find利用 urlkey 查找菜单
getItem根据 key 获取菜单
getPathByUrl根据url获取菜单列表
setItem设置菜单值
open展开某菜单
toggleOpen切换菜单的展开或关闭
openAll展开或关闭所有菜单

recursive

表示自动向上递归查找,例如菜单数据源包含 /ware,则 /ware/1 也视为 /ware 项。

成员说明类型默认值
text文本(支持HTML),必填项string-
i18ni18n主键(支持HTML)string-
group是否显示分组名,指示例中的【主导航】字样booleantrue
link路由,linkexternalLink 二选其一string-
externalLink外部链接,linkexternalLink 二选其一string-
target链接 target_blank,_self,_parent,_top-
icon图标,指示例中的【仪表盘】前图标,只对一级菜单有效string | MenuIcon-
badge徽标数,展示的数字,指示例中的【小部件】后的红色块。(注:group:true 时无效)number-
badgeDot徽标数,显示小红点boolean-
badgeStatus徽标 Badge 颜色success,processing,default,error,warningerror
open是否打开菜单booleanfalse
disabled是否禁用菜单booleanfalse
hide是否隐藏菜单booleanfalse
hideInBreadcrumb隐藏面包屑,指 page-header 组件的自动生成面包屑时有效boolean-
aclACL配置,若导入 @delon/acl 时自动有效,等同于 ACLService.can(roleOrAbility: ACLCanType) 参数值any-
shortcut是否快捷菜单项boolean-
shortcutRoot快捷菜单根节点boolean-
reuse是否允许复用,需配合 reuse-tab 组件boolean-
key菜单项唯一标识符,可用于 getItemsetItem 来更新某个菜单string-
children子菜单Menu[]-
成员说明类型默认值
[type]类型;img, svg 类型需要 14px 宽与高尺寸class,icon,iconfont,img,svgicon
[value]值,包含:类名、图标 nzType、图像string-
[theme]图标主题风格outline,twotone,filloutline
[spin]是否有旋转动画booleanfalse
[twoToneColor]仅适用双色图标,设置双色图标的主要颜色,仅对当前 icon 生效string-
[iconfont]指定来自 IconFont 的图标类型string-
[rotate]图标旋转角度number-

使用 iconfont 类型必须先加载 NzIconService.fetchFromIconfont,建议在根模块中执行。

Loading...
\ No newline at end of file diff --git a/theme/modal/en/index.html b/theme/modal/en/index.html index 33f83c3e9..93e0eeccf 100644 --- a/theme/modal/en/index.html +++ b/theme/modal/en/index.html @@ -78,4 +78,4 @@ this.msg.info(res); }); } -}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/theme/modal/zh/index.html b/theme/modal/zh/index.html index cc78cc596..d53f39faa 100644 --- a/theme/modal/zh/index.html +++ b/theme/modal/zh/index.html @@ -78,4 +78,4 @@ this.msg.info(res); }); } -}
DrawerHelper 抽屉辅助类 TitleService 页面标题服务
Loading...
\ No newline at end of file +}
DrawerHelper 抽屉辅助类 TitleService 页面标题服务
Loading...
\ No newline at end of file diff --git a/theme/performance/en/index.html b/theme/performance/en/index.html index 8dee33242..14556e152 100644 --- a/theme/performance/en/index.html +++ b/theme/performance/en/index.html @@ -1,2 +1,2 @@ 包体优化 - NG-ALAIN

包体优化

ng-alain 除了提供主题方案以外,还包含一套类似 Bootstrap 的工具集,并且严格遵守 Antd 的设计价值观,对于熟悉 Bootstrap 的人来说会非常友好,因为所有命名方式都尽可能与 Bootstrap 相同。同时,我们为 VSCode 写的 ng-alain插件 会自动为你提供这套CSS工具集的智能提醒。

如何优化

我们包含着上百种 Less 变量(包含ng-zorro-antd、ng-alain),这些变更有部分是包含着-enabled 后缀,它表示这些类库是可选的。

你可以在 ng-alain 项目的 theme.less 中设置为 false,可以有效减少 css 文件大小。

// 不需要 masonry 样式
-@masonry-enabled: false

参数

名称默认值功能
@scrollbar-enabledtrue启用美化滚动条
@preserve-white-spaces-enabledtrue解决开启 preserveWhitespaces 时按钮间可能会出现无缝
@form-state-visual-feedback-enabledfalse开启表单元素的视觉反馈
@hafl-enabledtrue半图
@abs-enabledtrue中心元素
@masonry-enabledtrueCSS瀑布流列
@setting-drawer-enabledtrue主题设置
@search-form-enabledtrue简化搜索框,DEMO
@search__form-enabledtruePro搜索框,DEMO
Loading...
\ No newline at end of file +@masonry-enabled: false

参数

名称默认值功能
@scrollbar-enabledtrue启用美化滚动条
@preserve-white-spaces-enabledtrue解决开启 preserveWhitespaces 时按钮间可能会出现无缝
@form-state-visual-feedback-enabledfalse开启表单元素的视觉反馈
@hafl-enabledtrue半图
@abs-enabledtrue中心元素
@masonry-enabledtrueCSS瀑布流列
@setting-drawer-enabledtrue主题设置
@search-form-enabledtrue简化搜索框,DEMO
@search__form-enabledtruePro搜索框,DEMO
Loading...
\ No newline at end of file diff --git a/theme/performance/zh/index.html b/theme/performance/zh/index.html index e2bd66f67..f5cec8711 100644 --- a/theme/performance/zh/index.html +++ b/theme/performance/zh/index.html @@ -1,2 +1,2 @@ 包体优化 - NG-ALAIN

包体优化

ng-alain 除了提供主题方案以外,还包含一套类似 Bootstrap 的工具集,并且严格遵守 Antd 的设计价值观,对于熟悉 Bootstrap 的人来说会非常友好,因为所有命名方式都尽可能与 Bootstrap 相同。同时,我们为 VSCode 写的 ng-alain插件 会自动为你提供这套CSS工具集的智能提醒。

如何优化

我们包含着上百种 Less 变量(包含ng-zorro-antd、ng-alain),这些变更有部分是包含着-enabled 后缀,它表示这些类库是可选的。

你可以在 ng-alain 项目的 theme.less 中设置为 false,可以有效减少 css 文件大小。

// 不需要 masonry 样式
-@masonry-enabled: false

参数

名称默认值功能
@scrollbar-enabledtrue启用美化滚动条
@preserve-white-spaces-enabledtrue解决开启 preserveWhitespaces 时按钮间可能会出现无缝
@form-state-visual-feedback-enabledfalse开启表单元素的视觉反馈
@hafl-enabledtrue半图
@abs-enabledtrue中心元素
@masonry-enabledtrueCSS瀑布流列
@setting-drawer-enabledtrue主题设置
@search-form-enabledtrue简化搜索框,DEMO
@search__form-enabledtruePro搜索框,DEMO
Loading...
\ No newline at end of file +@masonry-enabled: false

参数

名称默认值功能
@scrollbar-enabledtrue启用美化滚动条
@preserve-white-spaces-enabledtrue解决开启 preserveWhitespaces 时按钮间可能会出现无缝
@form-state-visual-feedback-enabledfalse开启表单元素的视觉反馈
@hafl-enabledtrue半图
@abs-enabledtrue中心元素
@masonry-enabledtrueCSS瀑布流列
@setting-drawer-enabledtrue主题设置
@search-form-enabledtrue简化搜索框,DEMO
@search__form-enabledtruePro搜索框,DEMO
定制主题 组件样式
Loading...
\ No newline at end of file diff --git a/theme/responsive/en/index.html b/theme/responsive/en/index.html index 9527d52cf..9617f418a 100644 --- a/theme/responsive/en/index.html +++ b/theme/responsive/en/index.html @@ -24,4 +24,4 @@ ], }; } -}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/theme/responsive/zh/index.html b/theme/responsive/zh/index.html index 3187c1126..fef067425 100644 --- a/theme/responsive/zh/index.html +++ b/theme/responsive/zh/index.html @@ -24,4 +24,4 @@ ], }; } -}
TitleService 页面标题服务 RTLService RTL服务
Loading...
\ No newline at end of file +}
TitleService 页面标题服务 RTLService RTL服务
Loading...
\ No newline at end of file diff --git a/theme/rtl/en/index.html b/theme/rtl/en/index.html index 00ed0cb4d..5be7c1ed7 100644 --- a/theme/rtl/en/index.html +++ b/theme/rtl/en/index.html @@ -1 +1 @@ -RTLService - NG-ALAIN

RTL服务

RTL服务控制。

API

接口名参数描述
dirDirection获取或设置当前文字方向
nextDirDirection获取下一次文字方向
changeObservable<Direction>订阅变更通知
toggle()-切换文字方向
Loading...
\ No newline at end of file +RTLService - NG-ALAIN

RTL服务

RTL服务控制。

API

接口名参数描述
dirDirection获取或设置当前文字方向
nextDirDirection获取下一次文字方向
changeObservable<Direction>订阅变更通知
toggle()-切换文字方向
Loading...
\ No newline at end of file diff --git a/theme/rtl/zh/index.html b/theme/rtl/zh/index.html index 3b840eddc..ea936b400 100644 --- a/theme/rtl/zh/index.html +++ b/theme/rtl/zh/index.html @@ -1 +1 @@ -RTLService - NG-ALAIN

RTL服务

RTL服务控制。

API

接口名参数描述
dirDirection获取或设置当前文字方向
nextDirDirection获取下一次文字方向
changeObservable<Direction>订阅变更通知
toggle()-切换文字方向
Loading...
\ No newline at end of file +RTLService - NG-ALAIN

RTL服务

RTL服务控制。

API

接口名参数描述
dirDirection获取或设置当前文字方向
nextDirDirection获取下一次文字方向
changeObservable<Direction>订阅变更通知
toggle()-切换文字方向
Loading...
\ No newline at end of file diff --git a/theme/safe/en/index.html b/theme/safe/en/index.html index 1dfd49251..ed185c849 100644 --- a/theme/safe/en/index.html +++ b/theme/safe/en/index.html @@ -1 +1 @@ -safe - NG-ALAIN

安全HTML等

html

简化 bypassSecurityTrustHtml 的使用。

<div [innerHTML]="content | html"></div>

url

简化 bypassSecurityTrustUrl 的使用。

<a [href]="file_url | url" target="_blank"></a>
Loading...
\ No newline at end of file +safe - NG-ALAIN

安全HTML等

html

简化 bypassSecurityTrustHtml 的使用。

<div [innerHTML]="content | html"></div>

url

简化 bypassSecurityTrustUrl 的使用。

<a [href]="file_url | url" target="_blank"></a>
Loading...
\ No newline at end of file diff --git a/theme/safe/zh/index.html b/theme/safe/zh/index.html index 9cd34e62e..de0cf64fc 100644 --- a/theme/safe/zh/index.html +++ b/theme/safe/zh/index.html @@ -1 +1 @@ -safe - NG-ALAIN

安全HTML等

html

简化 bypassSecurityTrustHtml 的使用。

<div [innerHTML]="content | html"></div>

url

简化 bypassSecurityTrustUrl 的使用。

<a [href]="file_url | url" target="_blank"></a>
Loading...
\ No newline at end of file +safe - NG-ALAIN

安全HTML等

html

简化 bypassSecurityTrustHtml 的使用。

<div [innerHTML]="content | html"></div>

url

简化 bypassSecurityTrustUrl 的使用。

<a [href]="file_url | url" target="_blank"></a>
Loading...
\ No newline at end of file diff --git a/theme/settings/en/index.html b/theme/settings/en/index.html index 0cf3459ba..a9d8fde39 100644 --- a/theme/settings/en/index.html +++ b/theme/settings/en/index.html @@ -8,4 +8,4 @@ + app: 'new-app', + }, + }, -];
Loading...
\ No newline at end of file +];
Loading...
\ No newline at end of file diff --git a/theme/settings/zh/index.html b/theme/settings/zh/index.html index 2cdab793e..a944b6271 100644 --- a/theme/settings/zh/index.html +++ b/theme/settings/zh/index.html @@ -8,4 +8,4 @@ + app: 'new-app', + }, + }, -];
_HttpClient MenuService 菜单服务
Loading...
\ No newline at end of file +];
_HttpClient MenuService 菜单服务
Loading...
\ No newline at end of file diff --git a/theme/theme-btn/en/index.html b/theme/theme-btn/en/index.html index 180f59908..6a9a11044 100644 --- a/theme/theme-btn/en/index.html +++ b/theme/theme-btn/en/index.html @@ -1 +1 @@ -theme-btn - NG-ALAIN

组件-切换样式
IMPORT MODULE

用于在运行过程中切换定制样式文件,从而起到换在线换肤功能。

API

layout-default

成员说明类型默认值
[types]类型列表ThemeBtnType[][ { key: 'default', text: 'Default Theme' }, { key: 'dark', text: 'Dark Theme' }, { key: 'compact', text: 'Compact Theme' }, ]
[devTips]开发提示StringWhen the dark.css file can't be found, you need to run it once: npm run theme
[deployUrl]文件将部署到的 URL,一般到使用 ng b --deploy-url 时需要String-
(themeChange)主题变更通知EventEmitter<string>-
Loading...
\ No newline at end of file +theme-btn - NG-ALAIN

组件-切换样式
IMPORT MODULE

用于在运行过程中切换定制样式文件,从而起到换在线换肤功能。

API

layout-default

成员说明类型默认值
[types]类型列表ThemeBtnType[][ { key: 'default', text: 'Default Theme' }, { key: 'dark', text: 'Dark Theme' }, { key: 'compact', text: 'Compact Theme' }, ]
[devTips]开发提示StringWhen the dark.css file can't be found, you need to run it once: npm run theme
[deployUrl]文件将部署到的 URL,一般到使用 ng b --deploy-url 时需要String-
(themeChange)主题变更通知EventEmitter<string>-
Loading...
\ No newline at end of file diff --git a/theme/theme-btn/zh/index.html b/theme/theme-btn/zh/index.html index 11f1b54f8..d62608868 100644 --- a/theme/theme-btn/zh/index.html +++ b/theme/theme-btn/zh/index.html @@ -1 +1 @@ -theme-btn - NG-ALAIN

组件-切换样式
IMPORT MODULE

用于在运行过程中切换定制样式文件,从而起到换在线换肤功能。

API

layout-default

成员说明类型默认值
[types]类型列表ThemeBtnType[][ { key: 'default', text: 'Default Theme' }, { key: 'dark', text: 'Dark Theme' }, { key: 'compact', text: 'Compact Theme' }, ]
[devTips]开发提示StringWhen the dark.css file can't be found, you need to run it once: npm run theme
[deployUrl]文件将部署到的 URL,一般到使用 ng b --deploy-url 时需要String-
(themeChange)主题变更通知EventEmitter<string>-
Loading...
\ No newline at end of file +theme-btn - NG-ALAIN

组件-切换样式
IMPORT MODULE

用于在运行过程中切换定制样式文件,从而起到换在线换肤功能。

API

layout-default

成员说明类型默认值
[types]类型列表ThemeBtnType[][ { key: 'default', text: 'Default Theme' }, { key: 'dark', text: 'Dark Theme' }, { key: 'compact', text: 'Compact Theme' }, ]
[devTips]开发提示StringWhen the dark.css file can't be found, you need to run it once: npm run theme
[deployUrl]文件将部署到的 URL,一般到使用 ng b --deploy-url 时需要String-
(themeChange)主题变更通知EventEmitter<string>-
Loading...
\ No newline at end of file diff --git a/theme/title/en/index.html b/theme/title/en/index.html index e4a67fb64..5d0a6ad5f 100644 --- a/theme/title/en/index.html +++ b/theme/title/en/index.html @@ -1 +1 @@ -TitleService - NG-ALAIN

页面标题服务

用于设置页面标题,一般监听路由变化并重新刷新标题,例如:app.component.ts;同时标题的默认数据来源于 MenuService

建议: 在 Angular 启动服务(startup.service.ts)过程中设置 prefixsuffix 值来调整统一的标题前后缀。

获取顺序

根据以下顺序获取 title 值:

  1. 路由配置 { data: { title: 'page name', titleI18n: 'page-name' } as RouteTitle }

  2. 根据当前 URL 解析菜单数据

  3. 页面 alain-default__content-titlepage-header__title 中获取 h1 内容

  4. 默认标题名

API

名称类型描述
defaultproperty设置默认标题名
selectorproperty设置默认CSS选择器字符串
separatorproperty设置分隔符
prefixproperty设置前缀
suffixproperty设置后缀
reverseproperty设置是否反转
setTitle(title?: string | string[])method设置标题,受限于 #1261 会有 25ms 的延迟
setTitleByI18n(key: string, params?: Object)method设置国际化标题
Loading...
\ No newline at end of file +TitleService - NG-ALAIN

页面标题服务

用于设置页面标题,一般监听路由变化并重新刷新标题,例如:app.component.ts;同时标题的默认数据来源于 MenuService

建议: 在 Angular 启动服务(startup.service.ts)过程中设置 prefixsuffix 值来调整统一的标题前后缀。

获取顺序

根据以下顺序获取 title 值:

  1. 路由配置 { data: { title: 'page name', titleI18n: 'page-name' } as RouteTitle }

  2. 根据当前 URL 解析菜单数据

  3. 页面 alain-default__content-titlepage-header__title 中获取 h1 内容

  4. 默认标题名

API

名称类型描述
defaultproperty设置默认标题名
selectorproperty设置默认CSS选择器字符串
separatorproperty设置分隔符
prefixproperty设置前缀
suffixproperty设置后缀
reverseproperty设置是否反转
setTitle(title?: string | string[])method设置标题,受限于 #1261 会有 25ms 的延迟
setTitleByI18n(key: string, params?: Object)method设置国际化标题
Loading...
\ No newline at end of file diff --git a/theme/title/zh/index.html b/theme/title/zh/index.html index 04584b28f..40af3abf8 100644 --- a/theme/title/zh/index.html +++ b/theme/title/zh/index.html @@ -1 +1 @@ -TitleService - NG-ALAIN

页面标题服务

用于设置页面标题,一般监听路由变化并重新刷新标题,例如:app.component.ts;同时标题的默认数据来源于 MenuService

建议: 在 Angular 启动服务(startup.service.ts)过程中设置 prefixsuffix 值来调整统一的标题前后缀。

获取顺序

根据以下顺序获取 title 值:

  1. 路由配置 { data: { title: 'page name', titleI18n: 'page-name' } as RouteTitle }

  2. 根据当前 URL 解析菜单数据

  3. 页面 alain-default__content-titlepage-header__title 中获取 h1 内容

  4. 默认标题名

API

名称类型描述
defaultproperty设置默认标题名
selectorproperty设置默认CSS选择器字符串
separatorproperty设置分隔符
prefixproperty设置前缀
suffixproperty设置后缀
reverseproperty设置是否反转
setTitle(title?: string | string[])method设置标题,受限于 #1261 会有 25ms 的延迟
setTitleByI18n(key: string, params?: Object)method设置国际化标题
Loading...
\ No newline at end of file +TitleService - NG-ALAIN

页面标题服务

用于设置页面标题,一般监听路由变化并重新刷新标题,例如:app.component.ts;同时标题的默认数据来源于 MenuService

建议: 在 Angular 启动服务(startup.service.ts)过程中设置 prefixsuffix 值来调整统一的标题前后缀。

获取顺序

根据以下顺序获取 title 值:

  1. 路由配置 { data: { title: 'page name', titleI18n: 'page-name' } as RouteTitle }

  2. 根据当前 URL 解析菜单数据

  3. 页面 alain-default__content-titlepage-header__title 中获取 h1 内容

  4. 默认标题名

API

名称类型描述
defaultproperty设置默认标题名
selectorproperty设置默认CSS选择器字符串
separatorproperty设置分隔符
prefixproperty设置前缀
suffixproperty设置后缀
reverseproperty设置是否反转
setTitle(title?: string | string[])method设置标题,受限于 #1261 会有 25ms 的延迟
setTitleByI18n(key: string, params?: Object)method设置国际化标题
Loading...
\ No newline at end of file diff --git a/theme/tools/en/index.html b/theme/tools/en/index.html index cb114ce7f..f9512773d 100644 --- a/theme/tools/en/index.html +++ b/theme/tools/en/index.html @@ -39,4 +39,4 @@ // 旋转90度 .rotate-90 // 旋转360度 -.rotate-360

Other

名称说明
block-centermargin: 0 auto
pointcursor: pointer
no-data空数据行
no-resize设置不允许调整元素
bg-center背景图垂直居中
scrollbar美化 div 滚动条
color-weak色弱模式

小部件

瀑布流

在线示例

名称说明
row-masonry
row-masonry-{xs|sm|md|lg|xl}-{1-10}列,响应式样式
col-masonry

ng-zorro

nz-card

名称说明
ant-card__body-nopadding强制内容无间距

nz-modal

名称说明
modal-{sm|md|lg|xl}设置Modal的大小,wrapClassName: 'modal-lg'
modal-body-nopadding内容无内边距
modal-header自定义Modal时非常有效,DEMO
modal-footer自定义Modal时非常有效,DEMO

nz-table

名称说明
ant-table-rep__title标题
ant-table-rep__hide-header-footer小屏幕时才显示标题或底部

nz-tag

名称说明
ant-tag__plus增加按钮样式
Loading...
\ No newline at end of file +.rotate-360

Other

名称说明
block-centermargin: 0 auto
pointcursor: pointer
no-data空数据行
no-resize设置不允许调整元素
bg-center背景图垂直居中
scrollbar美化 div 滚动条
color-weak色弱模式

小部件

瀑布流

在线示例

名称说明
row-masonry
row-masonry-{xs|sm|md|lg|xl}-{1-10}列,响应式样式
col-masonry

ng-zorro

nz-card

名称说明
ant-card__body-nopadding强制内容无间距

nz-modal

名称说明
modal-{sm|md|lg|xl}设置Modal的大小,wrapClassName: 'modal-lg'
modal-body-nopadding内容无内边距
modal-header自定义Modal时非常有效,DEMO
modal-footer自定义Modal时非常有效,DEMO

nz-table

名称说明
ant-table-rep__title标题
ant-table-rep__hide-header-footer小屏幕时才显示标题或底部

nz-tag

名称说明
ant-tag__plus增加按钮样式
Loading...
\ No newline at end of file diff --git a/theme/tools/zh/index.html b/theme/tools/zh/index.html index 306bc9e7d..c600345c4 100644 --- a/theme/tools/zh/index.html +++ b/theme/tools/zh/index.html @@ -39,4 +39,4 @@ // 旋转90度 .rotate-90 // 旋转360度 -.rotate-360

Other

名称说明
block-centermargin: 0 auto
pointcursor: pointer
no-data空数据行
no-resize设置不允许调整元素
bg-center背景图垂直居中
scrollbar美化 div 滚动条
color-weak色弱模式

小部件

瀑布流

在线示例

名称说明
row-masonry
row-masonry-{xs|sm|md|lg|xl}-{1-10}列,响应式样式
col-masonry

ng-zorro

nz-card

名称说明
ant-card__body-nopadding强制内容无间距

nz-modal

名称说明
modal-{sm|md|lg|xl}设置Modal的大小,wrapClassName: 'modal-lg'
modal-body-nopadding内容无内边距
modal-header自定义Modal时非常有效,DEMO
modal-footer自定义Modal时非常有效,DEMO

nz-table

名称说明
ant-table-rep__title标题
ant-table-rep__hide-header-footer小屏幕时才显示标题或底部

nz-tag

名称说明
ant-tag__plus增加按钮样式
全局参数 默认布局
Loading...
\ No newline at end of file +.rotate-360

Other

名称说明
block-centermargin: 0 auto
pointcursor: pointer
no-data空数据行
no-resize设置不允许调整元素
bg-center背景图垂直居中
scrollbar美化 div 滚动条
color-weak色弱模式

小部件

瀑布流

在线示例

名称说明
row-masonry
row-masonry-{xs|sm|md|lg|xl}-{1-10}列,响应式样式
col-masonry

ng-zorro

nz-card

名称说明
ant-card__body-nopadding强制内容无间距

nz-modal

名称说明
modal-{sm|md|lg|xl}设置Modal的大小,wrapClassName: 'modal-lg'
modal-body-nopadding内容无内边距
modal-header自定义Modal时非常有效,DEMO
modal-footer自定义Modal时非常有效,DEMO

nz-table

名称说明
ant-table-rep__title标题
ant-table-rep__hide-header-footer小屏幕时才显示标题或底部

nz-tag

名称说明
ant-tag__plus增加按钮样式
全局参数 默认布局
Loading...
\ No newline at end of file diff --git a/theme/yn/en/index.html b/theme/yn/en/index.html index a8b21cd66..41db909ae 100644 --- a/theme/yn/en/index.html +++ b/theme/yn/en/index.html @@ -1,3 +1,3 @@ yn - NG-ALAIN

徽章

yn 将boolean类型徽章化。

<td [innerHTML]="enabled | yn"></td>
 Output:
-<td><i class="text-blue"><svg viewBox="64 64 896 896" fill="currentColor" width="1em" height="1em" aria-hidden="true"><path d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"></path></svg></i></td>
Loading...
\ No newline at end of file +<td><i class="text-blue"><svg viewBox="64 64 896 896" fill="currentColor" width="1em" height="1em" aria-hidden="true"><path d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"></path></svg></i></td>
Loading...
\ No newline at end of file diff --git a/theme/yn/zh/index.html b/theme/yn/zh/index.html index de557b16c..9a652fc2b 100644 --- a/theme/yn/zh/index.html +++ b/theme/yn/zh/index.html @@ -1,3 +1,3 @@ yn - NG-ALAIN

徽章

yn 将boolean类型徽章化。

<td [innerHTML]="enabled | yn"></td>
 Output:
-<td><i class="text-blue"><svg viewBox="64 64 896 896" fill="currentColor" width="1em" height="1em" aria-hidden="true"><path d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"></path></svg></i></td>
Loading...
\ No newline at end of file +<td><i class="text-blue"><svg viewBox="64 64 896 896" fill="currentColor" width="1em" height="1em" aria-hidden="true"><path d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"></path></svg></i></td>
safe 安全HTML等
Loading...
\ No newline at end of file diff --git a/util/array/en/index.html b/util/array/en/index.html index 65bf56ce4..a7313fb60 100644 --- a/util/array/en/index.html +++ b/util/array/en/index.html @@ -2,4 +2,4 @@ srv.flat([1, [2, 3, [4, 5, [6]]]], 1) => [1,2,3,[4, 5, [6]]]

groupBy

对数组进行分组。

srv.groupBy([6.1, 4.2, 6.3], Math.floor) => {"4":[4.2],"6":[6.1,6.3]}
 srv.groupBy(['one', 'two', 'three'], v => v.length) => {"3":["one","two"],"5":["three"]}

uniq

创建去重后的数组。

uniq([1, 2, 2, 3, 1]) => [1,2,3]
 uniq([{ a: 1 }, { a: 1 }, { a: 2 }], 'a') => [{"a":1},{"a":2}]
-uniq([{ a: 1 }, { a: 1 }, { a: 2 }], i => (i.a === 1 ? 'a' : 'b')) => [{"a":1},{"a":2}]
Loading...
\ No newline at end of file +uniq([{ a: 1 }, { a: 1 }, { a: 2 }], i => (i.a === 1 ? 'a' : 'b')) => [{"a":1},{"a":2}]
Loading...
\ No newline at end of file diff --git a/util/array/zh/index.html b/util/array/zh/index.html index 20f8336ea..edb6d5dd5 100644 --- a/util/array/zh/index.html +++ b/util/array/zh/index.html @@ -2,4 +2,4 @@ srv.flat([1, [2, 3, [4, 5, [6]]]], 1) => [1,2,3,[4, 5, [6]]]

groupBy

对数组进行分组。

srv.groupBy([6.1, 4.2, 6.3], Math.floor) => {"4":[4.2],"6":[6.1,6.3]}
 srv.groupBy(['one', 'two', 'three'], v => v.length) => {"3":["one","two"],"5":["three"]}

uniq

创建去重后的数组。

uniq([1, 2, 2, 3, 1]) => [1,2,3]
 uniq([{ a: 1 }, { a: 1 }, { a: 2 }], 'a') => [{"a":1},{"a":2}]
-uniq([{ a: 1 }, { a: 1 }, { a: 2 }], i => (i.a === 1 ? 'a' : 'b')) => [{"a":1},{"a":2}]
开始使用 browser Cookie、Copy、DOM 等
Loading...
\ No newline at end of file +uniq([{ a: 1 }, { a: 1 }, { a: 2 }], i => (i.a === 1 ? 'a' : 'b')) => [{"a":1},{"a":2}]
开始使用 browser Cookie、Copy、DOM 等
Loading...
\ No newline at end of file diff --git a/util/browser/en/index.html b/util/browser/en/index.html index 2c9939aae..c073b8da0 100644 --- a/util/browser/en/index.html +++ b/util/browser/en/index.html @@ -7,4 +7,4 @@ [ this.cls ]: true, [ `a-${this.cls}` ]: true } -)

copy

复制字符串文档至剪贴板。

ScrollService

滚动条控制,允许滚动至指定元素所处位置。

接口名参数描述
getScrollPositionelement?: Element获取滚动条位置
scrollToPositionelement: Element | Window, position: [number, number]设置滚动条位置
scrollToElementelement?: Element, topOffset = 0设置滚动条至指定元素
scrollToToptopOffset = 0滚动至顶部
Loading...
\ No newline at end of file +)

copy

复制字符串文档至剪贴板。

ScrollService

滚动条控制,允许滚动至指定元素所处位置。

接口名参数描述
getScrollPositionelement?: Element获取滚动条位置
scrollToPositionelement: Element | Window, position: [number, number]设置滚动条位置
scrollToElementelement?: Element, topOffset = 0设置滚动条至指定元素
scrollToToptopOffset = 0滚动至顶部
Loading...
\ No newline at end of file diff --git a/util/browser/zh/index.html b/util/browser/zh/index.html index 5d9450860..1bf9f2134 100644 --- a/util/browser/zh/index.html +++ b/util/browser/zh/index.html @@ -7,4 +7,4 @@ [ this.cls ]: true, [ `a-${this.cls}` ]: true } -)

copy

复制字符串文档至剪贴板。

ScrollService

滚动条控制,允许滚动至指定元素所处位置。

接口名参数描述
getScrollPositionelement?: Element获取滚动条位置
scrollToPositionelement: Element | Window, position: [number, number]设置滚动条位置
scrollToElementelement?: Element, topOffset = 0设置滚动条至指定元素
scrollToToptopOffset = 0滚动至顶部
array 数组,树,扁平,分组,去重 date-time 日期时间转换
Loading...
\ No newline at end of file +)

copy

复制字符串文档至剪贴板。

ScrollService

滚动条控制,允许滚动至指定元素所处位置。

接口名参数描述
getScrollPositionelement?: Element获取滚动条位置
scrollToPositionelement: Element | Window, position: [number, number]设置滚动条位置
scrollToElementelement?: Element, topOffset = 0设置滚动条至指定元素
scrollToToptopOffset = 0滚动至顶部
array 数组,树,扁平,分组,去重 date-time 日期时间转换
Loading...
\ No newline at end of file diff --git a/util/date-time/en/index.html b/util/date-time/en/index.html index b5a011d83..84745cf22 100644 --- a/util/date-time/en/index.html +++ b/util/date-time/en/index.html @@ -1,2 +1,2 @@ date-time - NG-ALAIN

日期时间转换

toDate

转换成 Date 格式,支持 Date, number, string 类型,如果是 number 表示 Unix timestamp。

  • formatString 如果转换失败尝试根据 formatString 格式来转换

  • defaultValue 无效日期应返回的默认值,默认:new Date(NaN)

  • timestampSecond 传入值是否秒级

formatDate

格式化日期,支持 Date, number, string 类型,如果是 number 表示 Unix timestamp)。

  • 字符串格式请参考 date-fnd format

  • dateLocale 建议通过使用 inject(NZ_DATE_LOCALE) 与 NG-ZORRO 保持一致

dateTimePickerUtil

一组针对 DatePicker 的工具类。

  • now 当前本地时间

  • date 当前本地日期(不包含时间部分)

  • removeTime 移除日期的时间部分

  • format 格式化日期

  • getDiffDays 计算两个日期相差天数,0 表示同一天

  • disabledBeforeDate 禁用之前日期(默认:今天),一般服务于 nzDisabledDate

  • disabledAfterDate 禁用之后日期(默认:今天),一般服务于 nzDisabledDate

  • disabledBeforeTime 禁用之前时间(默认:现在),一般服务于 nzDisabledTime

  • disabledAfterTime 禁用之后时间(默认:现在),一般服务于 nzDisabledTime

disabledDate = dateTimePickerUtil.disabledBeforeDate();
-disabledDateTime = dateTimePickerUtil.disabledBeforeTime({ offsetSeconds: 60 * 5 });

getTimeDistance

获取时间范围,返回 [ Date, Date] 表示开始与结束日期,例如:获取本周时间:

getTimeDistance('week')

参数

  • type 快捷类型,带 - 表示过去一个时间,若指定 number 表示天数

    • today-todayyesterday 今天或昨天

    • week-week 本周或上周

    • month-month 本月或上月

    • year-year 今年或去年

  • time 指定开始时间,默认为:now

Loading...
\ No newline at end of file +disabledDateTime = dateTimePickerUtil.disabledBeforeTime({ offsetSeconds: 60 * 5 });

getTimeDistance

获取时间范围,返回 [ Date, Date] 表示开始与结束日期,例如:获取本周时间:

getTimeDistance('week')

参数

Loading...
\ No newline at end of file diff --git a/util/date-time/zh/index.html b/util/date-time/zh/index.html index eb8e862c5..e4d083571 100644 --- a/util/date-time/zh/index.html +++ b/util/date-time/zh/index.html @@ -1,2 +1,2 @@ date-time - NG-ALAIN

日期时间转换

toDate

转换成 Date 格式,支持 Date, number, string 类型,如果是 number 表示 Unix timestamp。

  • formatString 如果转换失败尝试根据 formatString 格式来转换

  • defaultValue 无效日期应返回的默认值,默认:new Date(NaN)

  • timestampSecond 传入值是否秒级

formatDate

格式化日期,支持 Date, number, string 类型,如果是 number 表示 Unix timestamp)。

  • 字符串格式请参考 date-fnd format

  • dateLocale 建议通过使用 inject(NZ_DATE_LOCALE) 与 NG-ZORRO 保持一致

dateTimePickerUtil

一组针对 DatePicker 的工具类。

  • now 当前本地时间

  • date 当前本地日期(不包含时间部分)

  • removeTime 移除日期的时间部分

  • format 格式化日期

  • getDiffDays 计算两个日期相差天数,0 表示同一天

  • disabledBeforeDate 禁用之前日期(默认:今天),一般服务于 nzDisabledDate

  • disabledAfterDate 禁用之后日期(默认:今天),一般服务于 nzDisabledDate

  • disabledBeforeTime 禁用之前时间(默认:现在),一般服务于 nzDisabledTime

  • disabledAfterTime 禁用之后时间(默认:现在),一般服务于 nzDisabledTime

disabledDate = dateTimePickerUtil.disabledBeforeDate();
-disabledDateTime = dateTimePickerUtil.disabledBeforeTime({ offsetSeconds: 60 * 5 });

getTimeDistance

获取时间范围,返回 [ Date, Date] 表示开始与结束日期,例如:获取本周时间:

getTimeDistance('week')

参数

  • type 快捷类型,带 - 表示过去一个时间,若指定 number 表示天数

    • today-todayyesterday 今天或昨天

    • week-week 本周或上周

    • month-month 本月或上月

    • year-year 今年或去年

  • time 指定开始时间,默认为:now

Loading...
\ No newline at end of file +disabledDateTime = dateTimePickerUtil.disabledBeforeTime({ offsetSeconds: 60 * 5 });

getTimeDistance

获取时间范围,返回 [ Date, Date] 表示开始与结束日期,例如:获取本周时间:

getTimeDistance('week')

参数

browser Cookie、Copy、DOM 等 decorator 装饰器
Loading...
\ No newline at end of file diff --git a/util/decorator/en/index.html b/util/decorator/en/index.html index 4fb0f6f96..29cb33011 100644 --- a/util/decorator/en/index.html +++ b/util/decorator/en/index.html @@ -13,4 +13,4 @@ @ZoneRun() run(): void {} -}
Loading...
\ No newline at end of file +}
Loading...
\ No newline at end of file diff --git a/util/decorator/zh/index.html b/util/decorator/zh/index.html index e4363c243..cc40a61ac 100644 --- a/util/decorator/zh/index.html +++ b/util/decorator/zh/index.html @@ -13,4 +13,4 @@ @ZoneRun() run(): void {} -}
date-time 日期时间转换 form 响应式表单校验
Loading...
\ No newline at end of file +}
date-time 日期时间转换 form 响应式表单校验
Loading...
\ No newline at end of file diff --git a/util/form/en/index.html b/util/form/en/index.html index 3cc8ac52b..7748c4a75 100644 --- a/util/form/en/index.html +++ b/util/form/en/index.html @@ -6,4 +6,4 @@ });

_Validators

一套用于响应式表单的验证器,包含:

每一个验证型都包括着用于表单验证器:

this.valForm = fb.group({
   // 手机号
   mobile: [null, Validators.compose([Validators.required, _Validators.mobile])]
-});
Loading...
\ No newline at end of file +});
Loading...
\ No newline at end of file diff --git a/util/form/zh/index.html b/util/form/zh/index.html index 4fcd47fa4..ede9d0319 100644 --- a/util/form/zh/index.html +++ b/util/form/zh/index.html @@ -6,4 +6,4 @@ });

_Validators

一套用于响应式表单的验证器,包含:

每一个验证型都包括着用于表单验证器:

this.valForm = fb.group({
   // 手机号
   mobile: [null, Validators.compose([Validators.required, _Validators.mobile])]
-});
decorator 装饰器 format 字符,校验,货币,掩码
Loading...
\ No newline at end of file +});
decorator 装饰器 format 字符,校验,货币,掩码
Loading...
\ No newline at end of file diff --git a/util/format/en/index.html b/util/format/en/index.html index f4b08c8b8..09221329c 100644 --- a/util/format/en/index.html +++ b/util/format/en/index.html @@ -11,4 +11,4 @@ 1.34 => 壹元叁角肆分

format

字符串格式化。

format('this is ${name}', { name: 'asdf' })
 // output: this is asdf
 format('this is ${user.name}', { user: { name: 'asdf' } }, true)
-// output: this is asdf

REGEX

一组常见的正则表达式。也可以通过 REGEX_STR 来获取它们的正则字符串格式,配合 new RegExp 完成一些额外的处理。

num

是否为数字。

int

是否为整数。

decimal

是否为小数点数值。

idCard

是否为中华人民共和国居民身份证。

isMobile

是否为手机号(中国)。

isUrl

是否URL地址。

isIp

是否IP地址(支持v4、v6)。

isColor

是否颜色代码值。

isChinese

是否中文。

Loading...
\ No newline at end of file +// output: this is asdf

REGEX

一组常见的正则表达式。也可以通过 REGEX_STR 来获取它们的正则字符串格式,配合 new RegExp 完成一些额外的处理。

num

是否为数字。

int

是否为整数。

decimal

是否为小数点数值。

idCard

是否为中华人民共和国居民身份证。

isMobile

是否为手机号(中国)。

isUrl

是否URL地址。

isIp

是否IP地址(支持v4、v6)。

isColor

是否颜色代码值。

isChinese

是否中文。

Loading...
\ No newline at end of file diff --git a/util/format/zh/index.html b/util/format/zh/index.html index 8543b1628..cedb2e9a4 100644 --- a/util/format/zh/index.html +++ b/util/format/zh/index.html @@ -11,4 +11,4 @@ 1.34 => 壹元叁角肆分

format

字符串格式化。

format('this is ${name}', { name: 'asdf' })
 // output: this is asdf
 format('this is ${user.name}', { user: { name: 'asdf' } }, true)
-// output: this is asdf

REGEX

一组常见的正则表达式。也可以通过 REGEX_STR 来获取它们的正则字符串格式,配合 new RegExp 完成一些额外的处理。

num

是否为数字。

int

是否为整数。

decimal

是否为小数点数值。

idCard

是否为中华人民共和国居民身份证。

isMobile

是否为手机号(中国)。

isUrl

是否URL地址。

isIp

是否IP地址(支持v4、v6)。

isColor

是否颜色代码值。

isChinese

是否中文。

form 响应式表单校验 math 范围、四舍五入
Loading...
\ No newline at end of file +// output: this is asdf

REGEX

一组常见的正则表达式。也可以通过 REGEX_STR 来获取它们的正则字符串格式,配合 new RegExp 完成一些额外的处理。

num

是否为数字。

int

是否为整数。

decimal

是否为小数点数值。

idCard

是否为中华人民共和国居民身份证。

isMobile

是否为手机号(中国)。

isUrl

是否URL地址。

isIp

是否IP地址(支持v4、v6)。

isColor

是否颜色代码值。

isChinese

是否中文。

form 响应式表单校验 math 范围、四舍五入
Loading...
\ No newline at end of file diff --git a/util/getting-started/en/index.html b/util/getting-started/en/index.html index b57ebf29e..6acce9511 100644 --- a/util/getting-started/en/index.html +++ b/util/getting-started/en/index.html @@ -1 +1 @@ -开始使用 - NG-ALAIN

开始使用

@delon/util 是一组日常普通使用的工具函数的集合。

Loading...
\ No newline at end of file +开始使用 - NG-ALAIN

开始使用

@delon/util 是一组日常普通使用的工具函数的集合。

Loading...
\ No newline at end of file diff --git a/util/getting-started/zh/index.html b/util/getting-started/zh/index.html index f3d8b4176..3867218dc 100644 --- a/util/getting-started/zh/index.html +++ b/util/getting-started/zh/index.html @@ -1 +1 @@ -开始使用 - NG-ALAIN

开始使用

@delon/util 是一组日常普通使用的工具函数的集合。

Loading...
\ No newline at end of file +开始使用 - NG-ALAIN

开始使用

@delon/util 是一组日常普通使用的工具函数的集合。

Loading...
\ No newline at end of file diff --git a/util/index.html b/util/index.html index 34fd10fe0..2bf62a808 100644 --- a/util/index.html +++ b/util/index.html @@ -1 +1 @@ -一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file +一个基于 Antd 中后台前端解决方案 - NG-ALAIN

NG-ALAIN

一个基于 Antd 中后台前端解决方案,提供更多通用性业务模块,让开发者更加专注于业务。

特征

Ant Design

符合 Ant Design 设计价值观

NG-ZORRO

丰富的几十种基础组件

Delon

一组更高阶的业务组件、图表、认证、授权、缓存、Mock、测试等

开箱即用

一个完整、可直接用于生产环境的Angular脚手架

简单定制

百种LESS参数定制品牌视觉

响应式

支持不同设备使用

工具支持

包含 NG-ALAIN Schematics 、VSCODE插件

示例页

大量示例页可直接参考与使用

Loading...
\ No newline at end of file diff --git a/util/math/en/index.html b/util/math/en/index.html index 577ab6dd4..cd621511b 100644 --- a/util/math/en/index.html +++ b/util/math/en/index.html @@ -9,4 +9,4 @@ floor(0.046, 2); // 0.04 floor(4060, -2); // 4000

round

根据 precision(精度) 四舍五入 number

round(4.006); // 4
 round(4.006, 2); // 4.01
-round(4060, -2); // 4100
Loading...
\ No newline at end of file +round(4060, -2); // 4100
Loading...
\ No newline at end of file diff --git a/util/math/zh/index.html b/util/math/zh/index.html index df03052e3..8c44a7376 100644 --- a/util/math/zh/index.html +++ b/util/math/zh/index.html @@ -9,4 +9,4 @@ floor(0.046, 2); // 0.04 floor(4060, -2); // 4000

round

根据 precision(精度) 四舍五入 number

round(4.006); // 4
 round(4.006, 2); // 4.01
-round(4060, -2); // 4100
format 字符,校验,货币,掩码 other 深获取、拷贝、合并、延迟、断言
Loading...
\ No newline at end of file +round(4060, -2); // 4100
format 字符,校验,货币,掩码 other 深获取、拷贝、合并、延迟、断言
Loading...
\ No newline at end of file diff --git a/util/other/en/index.html b/util/other/en/index.html index 1a296edd7..70c5efc4c 100644 --- a/util/other/en/index.html +++ b/util/other/en/index.html @@ -22,4 +22,4 @@ // do something }); } -}

assert

断言表达式是否符合预期,并在开发模式下会在控制台抛出一个错误。

Loading...
\ No newline at end of file +}

assert

断言表达式是否符合预期,并在开发模式下会在控制台抛出一个错误。

Loading...
\ No newline at end of file diff --git a/util/other/zh/index.html b/util/other/zh/index.html index 7bd506540..26584efdb 100644 --- a/util/other/zh/index.html +++ b/util/other/zh/index.html @@ -22,4 +22,4 @@ // do something }); } -}

assert

断言表达式是否符合预期,并在开发模式下会在控制台抛出一个错误。

math 范围、四舍五入 token Token
Loading...
\ No newline at end of file +}

assert

断言表达式是否符合预期,并在开发模式下会在控制台抛出一个错误。

math 范围、四舍五入 token Token
Loading...
\ No newline at end of file diff --git a/util/pipes-currency/en/index.html b/util/pipes-currency/en/index.html index 38ee68fdd..74e743c7a 100644 --- a/util/pipes-currency/en/index.html +++ b/util/pipes-currency/en/index.html @@ -1 +1 @@ -currency - NG-ALAIN

货币管道
IMPORT MODULE

可以通过全局配置覆盖 startingUnitmegaUnitprecisioningoreZeroPrecision 等参数。

price

用逗号将数字格式化为千位分隔符。

mega

大数据格式化。

cny

转化成人民币表示法。

Loading...
\ No newline at end of file +currency - NG-ALAIN

货币管道
IMPORT MODULE

可以通过全局配置覆盖 startingUnitmegaUnitprecisioningoreZeroPrecision 等参数。

price

用逗号将数字格式化为千位分隔符。

mega

大数据格式化。

cny

转化成人民币表示法。

Loading...
\ No newline at end of file diff --git a/util/pipes-currency/zh/index.html b/util/pipes-currency/zh/index.html index 1dad26fd5..8e9b34255 100644 --- a/util/pipes-currency/zh/index.html +++ b/util/pipes-currency/zh/index.html @@ -1 +1 @@ -currency - NG-ALAIN

货币管道
IMPORT MODULE

可以通过全局配置覆盖 startingUnitmegaUnitprecisioningoreZeroPrecision 等参数。

price

用逗号将数字格式化为千位分隔符。

mega

大数据格式化。

cny

转化成人民币表示法。

Loading...
\ No newline at end of file +currency - NG-ALAIN

货币管道
IMPORT MODULE

可以通过全局配置覆盖 startingUnitmegaUnitprecisioningoreZeroPrecision 等参数。

price

用逗号将数字格式化为千位分隔符。

mega

大数据格式化。

cny

转化成人民币表示法。

Loading...
\ No newline at end of file diff --git a/util/pipes-filter/en/index.html b/util/pipes-filter/en/index.html index 14a5cca81..6de88aaa1 100644 --- a/util/pipes-filter/en/index.html +++ b/util/pipes-filter/en/index.html @@ -1 +1 @@ -filter - NG-ALAIN

过滤数组
IMPORT MODULE

filter

过滤数组。

Loading...
\ No newline at end of file +filter - NG-ALAIN

过滤数组
IMPORT MODULE

filter

过滤数组。

Loading...
\ No newline at end of file diff --git a/util/pipes-filter/zh/index.html b/util/pipes-filter/zh/index.html index 2d41feda9..20f468426 100644 --- a/util/pipes-filter/zh/index.html +++ b/util/pipes-filter/zh/index.html @@ -1 +1 @@ -filter - NG-ALAIN

过滤数组
IMPORT MODULE

filter

过滤数组。

Loading...
\ No newline at end of file +filter - NG-ALAIN

过滤数组
IMPORT MODULE

filter

过滤数组。

Loading...
\ No newline at end of file diff --git a/util/pipes-format/en/index.html b/util/pipes-format/en/index.html index ed21bf6d8..b9e231429 100644 --- a/util/pipes-format/en/index.html +++ b/util/pipes-format/en/index.html @@ -1 +1 @@ -format - NG-ALAIN

掩码
IMPORT MODULE

mask

格式化掩码。

Loading...
\ No newline at end of file +format - NG-ALAIN

掩码
IMPORT MODULE

mask

格式化掩码。

Loading...
\ No newline at end of file diff --git a/util/pipes-format/zh/index.html b/util/pipes-format/zh/index.html index 3fc3df5b7..e8632d2ff 100644 --- a/util/pipes-format/zh/index.html +++ b/util/pipes-format/zh/index.html @@ -1 +1 @@ -format - NG-ALAIN

掩码
IMPORT MODULE

mask

格式化掩码。

Loading...
\ No newline at end of file +format - NG-ALAIN

掩码
IMPORT MODULE

mask

格式化掩码。

Loading...
\ No newline at end of file diff --git a/util/token/en/index.html b/util/token/en/index.html index 000cc1b0e..427795eb5 100644 --- a/util/token/en/index.html +++ b/util/token/en/index.html @@ -1 +1 @@ -token - NG-ALAIN

Token

WINDOW

访问全局 window 对象。

PAGE_VISIBILITY

通过 visibilitychange 事件来监听浏览器选项卡是否可见,一般用于当用户离开应用时暂时中断后端持续发送请求时。

Loading...
\ No newline at end of file +token - NG-ALAIN

Token

WINDOW

访问全局 window 对象。

PAGE_VISIBILITY

通过 visibilitychange 事件来监听浏览器选项卡是否可见,一般用于当用户离开应用时暂时中断后端持续发送请求时。

Loading...
\ No newline at end of file diff --git a/util/token/zh/index.html b/util/token/zh/index.html index b71bc62d9..c875c2955 100644 --- a/util/token/zh/index.html +++ b/util/token/zh/index.html @@ -1 +1 @@ -token - NG-ALAIN

Token

WINDOW

访问全局 window 对象。

PAGE_VISIBILITY

通过 visibilitychange 事件来监听浏览器选项卡是否可见,一般用于当用户离开应用时暂时中断后端持续发送请求时。

Loading...
\ No newline at end of file +token - NG-ALAIN

Token

WINDOW

访问全局 window 对象。

PAGE_VISIBILITY

通过 visibilitychange 事件来监听浏览器选项卡是否可见,一般用于当用户离开应用时暂时中断后端持续发送请求时。

Loading...
\ No newline at end of file