Appearance
配置页面中可调用的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”,将数字格式化为字符串
value | pattern | String |
---|---|---|
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"