Skip to content
本页目录

配置页面中可调用的API

低代码配置的页面中,可以调用平台内置的API,具体定义如下


权限验证

js
$auth("r.admin || (r.manager && p.deleteUser)")

调用$auth()方法,提供条件表达式即可 其中 r代表角色, p代表权限,r.admin 表示具备admin角色,p.deleteUser 表示拥有deleteUser 权限,可以用()、|| 、&&,分别表示优先计算、或、并且等。最终条件成立,表示拥有响应的角色(权限)

弹出窗口

js
// 主页面打开弹出窗口显示其他页面
$dialog({
  width: "60%", // 窗口宽度
  top: "47px",  // 窗口顶部位置
  title: "Json编辑器",  // 窗口标题
  appendToBody: true, // 是否添加在body上,不加在body上可能会被其他元素遮挡
  closeOnClickModal: false, // 是否可以在弹窗外单击鼠标关闭弹窗
  ... // 此处可以定义el-dialog的其他属性,参见Element UI官网
  noBindOptions: true // 必填参数,解决兼容性问题
}, "UIBlock", {
  code: "page-code",  // 需要在弹窗中显示的页面代码
  ...   // 此处可以定义code指定的页面所需要的参数
}).then(data=>{
  ... // 此处代码为弹出窗口被关闭时执行,其中data为弹出窗口放回的数据
})

// 弹出窗口中的页面如何主动关闭弹出窗口
$emit("close", data) // 其中data为需要返回给主页面的数据
$emit("cancel") // 关闭窗口,不返回任何数据

弹出抽屉面板

js
// 主页面弹出抽屉面板显示其他页面
$drawer({
  size: "60%", // 抽屉大小
  title: "Json编辑器",  // 窗口标题
  appendToBody: true, // 是否添加在body上,不加在body上可能会被其他元素遮挡
  ... // 此处可以定义el-dialog的其他属性,参见Element UI官网
}, "UIBlock", {
  code: "page-code",  // 需要在弹窗中显示的页面代码
  ...   // 此处可以定义code指定的页面所需要的参数
}).then(data=>{
  ... // 此处代码为弹出窗口被关闭时执行,其中data为弹出窗口放回的数据
})

// 弹出窗口中的页面如何主动关闭弹出窗口
$emit("close", data) // 其中data为需要返回给主页面的数据
$emit("cancel") // 关闭抽屉,不返回任何数据

消息提示

js
// 主页面弹出抽屉面板显示其他页面
$message({
  showClose: true,
  message: '恭喜你,这是一条成功消息',
  type: 'success', // success/warning/info/error 分别代表成功、警告、信息、错误
  ... // 此处可以定义Element UI Message组件的其他属性,参见Element UI官网,可设置定时关闭、显示关闭按钮等
});

// 手动关闭
let m = $message(...) // 显示提示消息
m.close() // 关闭提示消息框,一般在点击事件或异步回调中执行

弹框提示

js
// 提示消息
$alert('这是一段内容', '标题名称');
// 带回调的提示消息
$alert('这是一段内容', '标题名称', {
  confirmButtonText: '确定',
  callback: action => {
    this.$message({
      type: 'info',
      message: `action: ${ action }`
    });
  }
});

// 确认消息
$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
  confirmButtonText: '确定',
  cancelButtonText: '取消',
  type: 'warning'
}).then(() => {
  this.$message({
    type: 'success',
    message: '删除成功!'
  });
}).catch(() => {
  this.$message({
    type: 'info',
    message: '已取消删除'
  });          
});

// 提交内容
$prompt('请输入邮箱', '提示', {
  confirmButtonText: '确定',
  cancelButtonText: '取消',
  inputPattern: /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
  inputErrorMessage: '邮箱格式不正确'
}).then(({ value }) => {
  this.$message({
    type: 'success',
    message: '你的邮箱是: ' + value
  });
}).catch(() => {
  this.$message({
    type: 'info',
    message: '取消输入'
  });       
});

// 所有方法如下,更多复杂配置可参见Element UI官网说明
$msgbox(options)
$alert(message, title, options) 或 $alert(message, options)
$confirm(message, title, options) 或 $confirm(message, options)
$prompt(message, title, options) 或 $prompt(message, options)

通知

js
$notify({
  title: '成功',
  message: '这是一条成功的提示消息',
  position: 'bottom-right', // top-right/top-left/bottom-right/bottom-left
  type: 'success' //success/warning/info/error
});
// 更多复杂配置可参见Element UI官网说明

页面跳转

js
$router.push(code)  // 跳转到编码为code的页面
$router.back()  // 返回之前的页面
$router.go(num) // 历史记录中的前进、后退,其中num=0为当前页(不跳转),+1为前进一个页面记录,-1为回退一个页面记录(num=-1时,效果同back方法)

系统时间

js
$now() // 当前时间,"YYYY-MM-DD HH:mm:ss"
$today() // 今天,"YYYY-MM-DD"
$CNToday() // 今天,"YYYY年MM月DD日"
$datetime(time) // 格式化为"YYYY-MM-DD HH:mm:ss"
$MDTime(time) // 格式化为"MM-DD HH:mm:ss"
$date(time) // 格式化为"YYYY-MM-DD"
$weekday(time) // 格式化为"星期?"
$time(time) // 格式化为"HH:mm:ss"
$CNDate(time) // 格式化为"YYYY年MM月DD日"
$CNYearMonth(time) // 格式化为"YYYY年MM月"
$90days() // 获取最近90天的起止时间,返回"YYYY-MM-DD HH:mm:ss"格式的字符串数组[start, end]
$360days() // 获取最近360天的起止时间,返回"YYYY-MM-DD HH:mm:ss"格式的字符串数组[start, end]

异步加载资源文件

js
$js(moduleName, url).then(module=>{
  // moduleName 为js文件中定义的模块名称,如echarts,此名称必须和js中定义的
  // url 为js文件地址,如https://unpkg.zhimg.com/echarts@5.0.2/dist/echarts.common.min.js,js文件中必须把需要加载的模块,定义为window[moduleName]
  // module 为加载后的模块
  ... // 此处代码为css加载成功后执行
})
$loadJs(moduleName, url).then(module=>{
  // 同$js方法
})
$css(url, id, reload).then(()=> {
  // url 为需要加载的css文件地址
  // id 为页面加载对象的唯一编号,用于删除和重新加载,单次加载可不指定
  // reload 强制重新加载,默认首次加载即缓存,设置为true后,会再次加载并覆盖原先相同id的css文件
  ... // 此处代码为css加载成功后执行
})
$loadStyle(url, id, reload).then(()=> {
  // 同$css方法
})
$removeStyle(id) // 根据id,删除css加载对象,加载的css文件内容将失效

可以通过以上方法,异步加载js文件、css文件等

数字

js
$number(value, pattern) // value为数字, pattern为格式,如“0,000.00”,将数字格式化为字符串
valuepatternString
10000'0,0.0000'10,000.0000
10000.23'0,0'10,000
10000.23'+0,0'+10,000
-10000'0,0.0'-10,000.0
10000.1234'0.000'10000.123
100.1234'00000'00100
1000.1234'000000,0'001,000
10'000.00'010.00
10000.1234'0[.]00000'10000.12340
-10000'(0,0.0000)'(10,000.0000)
-0.23'.00'-.23
-0.23'(.00)'(.23)
0.23'0.00000'0.23000
0.23'0.0[0000]'0.23
1230974'0.0a'1.2m
1460'0 a'1 k
-104000'0a'-104k
1'0%'100%
0.974878234'0.000%'97.488%
-0.43'0 %'-43 %
0.43'(0.000 %)'43.000 %

金额

js
$CNY(number) // number为分的整数,格式化为中文的元角分
$money(number) // number为分的整数,格式化为"0,000.00"

内部资料,请勿外传