# 常用表达式

在属性面板的表达式中,我们经常会用到表达式来绑定数据,这里介绍一些常用的表达式。

# 获取当前用户信息

在表达式里面可以通过 utils.user 工具类获取当前用户信息。


utils.user // 用户信息对象
utils.user.userId // 用户ID
utils.user.name // 用户名称
utils.user.token // 用户token
utils.user.tenantId // 租户ID
utils.user.tenantCode // 租户编码
utils.user.tenantName // 租户名称
utils.user.raw // 是个对象,包含了更多用户信息

另外,在 utils.user.raw 中包含了更多用户的原始信息,可以通过该表达式获取,具体有哪些,取决于登录认证后的接口返回,可以将该对象打印出来查看。

例如获取用户的组织信息:

utils.user.raw.org_id // 用户所属组织Id
utils.user.raw.org_name // 用户所属组织名称
utils.user.raw.email // 用户邮箱

# 获取页面请求参数

当前页面获取参数,在表达式里面可以通过request.params.key1获取,其中key1为请求参数名。

request.params.key1

# 获取服务端配置项

获取服务端配置项,在表达式里面可以通过 utils.config 工具类获取,常用的配置项,可以查看浏览器 network 请求 config.json。

utils.config.find("apiBaseUrl")

需要额外增加配置项的,需要在 config.yml 中追加配置,例如:

theme: "dark"

获取方式:

utils.config.find("theme")

# 日期格式化

内置了 dayjs 日期处理库,用于日期格式化,可以通过 utils.dayjs 工具类获取。

utils.dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')

# 随机生成字符串/数字

内置了 random 函数来实现随机生成字符串或者数字。

// 生成长度为 16 字符的随机串
utils.random(16)

// 生成长度为 6 的随机数字,第二个参数是指限制在指定的字符内生成
utils.random(6, "1234567890")

# 调用lodash工具方法

lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。在表达式里面可以通过 utils.lodash 工具类获取。

具体方法参考: https://www.lodashjs.com/ (opens new window)

// 例如使用find方法
utils.lodash.find([1, 2, 3], (n) => {
  return n % 2 == 0;
});

// 调用深拷贝方法
utils.lodash.cloneDeep({ 'a': 1 });

// 调用排序方法
var users = [
  { 'user': 'fred',   'age': 48 },
  { 'user': 'barney', 'age': 36 },
  { 'user': 'fred',   'age': 40 },
  { 'user': 'barney', 'age': 34 }
];
utils.lodash.sortBy(users, ['user', 'age']);

# 获取数据字典

在表达式里面可以通过 utils.optionSet 工具类获取数据字典。


// 获取数据字典对象
utils.optionSet.find('Gender')
// 返回:
{ "title": "性别", "source": "java", "items": [ { "title": "男", "value": "M" }, { "title": "女", "value": "F" }, { "title": "未知", "value": "U" } ], "name": "Gender", "id": "Gender" }


// 获取数据字典items
utils.optionSet.find('Gender').items
// 返回:
[ { "title": "男", "value": "M" }, { "title": "女", "value": "F" }, { "title": "未知", "value": "U" } ]

// 获取单个数据字典item
utils.optionSet.findItem('Gender', 'F')
// 返回:
{ "title": "女", "value": "F" }

// 获取字典项的title
utils.optionSet.getTitleByValue('Gender', 'F')
// 返回:女

# 判断是否有权限

在表达式里面可以通过 utils.hasPermission 工具类判断是否有权限。

如果是功能权限,可以通过 utils.hasPermission('功能权限编码') 判断是否有权限。如果是资源权限,可以通过 utils.hasPermission('资源编码.操作编码') 判断是否有权限。

# byte字节转文本

经常会遇到需要对字节数自适应转成对应的 KB,MB,TB 等文本输出,框架内置了 bytesToSize 函数

utils.bytesToSize(1024*1024); // 输出 1M
顶部