常用示例
生命周期中自定义消息和提示
//可以参考ElementUI提供的方法,以下两种写法都可以直接在生命周期中使用,用来做提示
//Notification通知:https://element.eleme.cn/#/zh-CN/component/notification#fang-fa
//Message消息提示:https://element.eleme.cn/#/zh-CN/component/message#bu-tong-zhuang-tai
this.$notify.error({
title: '出库物料编码重复',
message: '出库物料编码不能重复'
});
this.$message({
type:'error',
message:'出库物料编码不能重复'
})
自定义校验调用API
return function ({zcFormHelper, callback}){
let id = zcFormHelper.form.formData.数据源编码.数据表[0].id;
let name = zcFormHelper.form.formData.数据源编码.数据表[0].name;
let body = {
id: id,
name: name
}
ZeroCloud.util.ZcHttp.post("/***/***",body).then(response =>{
if(response){
callback(new Error("****"))
}else{
callback()
}
})
}
自定义方法中调用Decimal.js进行精度计算
return function (price, qty) {
const Decimal = this.zcFormHelper.utils.getDecimal();
return new Decimal(price).times(new Decimal(qty));
}
审批时明细表格隐藏添加行和行删除
//生命周期onBeforelnited(初始化完毕前执行)中添加以下代码
return function ({ zcFormHelper, formData, extParams }) {
let businessKey = formData.vars.processTask[0].businessKey;
let taskName = formData.vars.processTask[0].taskName;
if (businessKey && taskName != '填写') {
let schema = zcFormHelper.form.getFormCompSchema('33305b7bc1');
schema.zcAttrs.bottomAppendBtn = false;
schema.zcAttrs.optColumn.enabled = false;
}
}
自定义监听器监听明细表变化
return function ({ zcFormHelper, formData, extParams }) {
// 监听对象
let target = function () {
// 要监听的数据明细表
return formData.数据源.数据表;
};
// 监听处理
let handler = function () {
// 在此处编写触发的事件,比如自定义添加行号
let arr = formData.数据源.数据表;
let rowNum = 1;
arr.forEach(data => {
data.rowNum = rowNum;
rowNum ++;
})
};
// 监听设置
let options = {
};
// 添加自定义监听器
zcFormHelper.customListener.add(target, handler, options);
}
通过代码添加明细行
//生命周期中
//添加单行
//参数介绍:数据源编码、数据表名、父ID、行数据(是个对象)
this.appendRow('数据源','数据表',null,{
code:'SHYP-001'
name:'生活用品001'
}
//添加多行
//参数介绍:数据源编码、数据表名、父ID、行列表(是个数组)
this.appendRowsAsync('数据源','数据表',null,[{
code:'SHYP-001'
name:'生活用品001'
},{
code:'SHYP-002'
name:'生活用品002'
}])
//事件代码中
//添加单行
this.zcForm.appendRow('数据源','数据表',null,{
code:'SHYP-001'
name:'生活用品001'
})
//添加多行
this.zcForm.appendRowsAsync('数据源','数据表',null,[{
code:'SHYP-001'
name:'生活用品001'
},{
code:'SHYP-002'
name:'生活用品002'
}])
按钮打开表单
//按钮添加Click事件,事件代码示例如下
return function({zcFormHelper}){
//表单模型编码
let formModelCode = 'formModelCode';
//业务主键businessKey(若表单模型关联方式为关联字段,dataKey传主键ID值)
let dataKey = 'dataKey';
let config = {
//标题文字
title:'title',
//传递给表单的参数
extParams:{
}
};
let callback = function() {
};
ZeroCloud.util.ZcFormModelUtils.readByCode(formModelCode, dataKey, config, callback);
}
按钮发起流程
return function ({ zcFormHelper }) {
// 流程定义编码
let definitionKey = 'definitionKey';
// 流程版本号,一般情况传null即可
let versionTag = null;
// 设置
let config = {
// 标题文字
title: 'title',
// 传递给表单的参数
extParams: {
}
};
let callback = function () {
};
// 发起流程
ZeroCloud.util.ZcFlowUtils.post(definitionKey, versionTag, config, callback);
}
选择数据组件选择Ajax数据源时,定义高级搜索栏
1.组件属性中点击编辑搜索栏,开启并添加筛选字段
2.编辑组件数据源,添加参数
若为Get请求,搜索栏中的参数固定写法为:#{advancedSearch.字段名}
若为Post请求,Body中参数固定写法:this.advancedSearchModel.字段名
审批阶段临时变量如何正常显示数据
//映射到临时变量或者临时变量使用赋值表达式时使用的字段,在生命周期onlnited中onChangeValue一下
zcFormHelper.form.onChangeValue('数据源', '数据表', '字段名');
选择树组件可选规则配置
//行内数据中的code值是MT001的时候展示单/多选框
return (data) => {
return data.row.code == 'MT001';
}