1. 基本功能 1.基本功能
1.1.逻辑校验
平台默认方法支持配置逻辑校验,当条件满足时触发校验提示。校验类型包括前端值校验提示和业务对象名+ctrl文件中。消息内容支持动态取值。
2. 配置方法 2.配置方法
云平台版本需要更新到5.6.A.0+
2.1. 逻辑校验 2.1. 逻辑校验
配置
- 对象建模–多语言配置–国际化消息:新增一笔数据,输入【消息键值】为
addTest
、【消息类型】为自定义、【消息内容】、【语言名称】;然后新增子表数据,输入【消息内容】为具体提示内容、【语言名称】。其中【消息内容】支持配置变量,动态取值,配置格式:${变量名}。例如:中文名称:${bagName},不符合,请检查!
- 对象建模–业务对象–业务对象管理:编辑业务对象,进入可视化布局,选择左边的业务对象数据源,选择右边的属性定义/方法定义分组页签中的方法定义页签,编辑方法,在编辑方法页面上点击更多配置按钮,配置逻辑校验规则。增加子表数据,输入【校验名称】、【校验类型】为前端值校验提示、【国际化消息】为
addTest
、【顺序】。增加孙表数据,根据实际需求输入【属性名】、【操作符】、【值】、【值类型】、【顺序】。如果要配置【校验类型】为自定义校验可以直接参考第3步。
- 如果前端值校验不满足需求,可以配置【校验类型】为自定义校验,只需增加子表数据,输入【校验名称】、【校验类型】为自定义校验、【自定义校验名称】为自定义实现的方法名、【国际化消息】及【顺序】。用户在扩展文件Ctr,js中编写自定义校验规则,代码可参考常用扩展
- 如果国际化消息内容有配置变量,那么业务对象名+ctrl文件中添加一句对应国际化消息中定义的变量代码
this.scope.bagName = '中文名';
代码
自定义校验类型,例如生效字段,如果当前数据已经生效,要提示:序号:1(表格序列号)已为生效状态,无法进行生效操作!那么业务对象名+BsCtrl文件中生成生效方法带校验规则代码。
/**
* GLPaaS生成
* 生效 评分模板
*/
$scope.activeStatusCsScoreTemp = function(){
var checkRows = [];
checkRows.push($scope.csScoreTemp);
var isDataModified = $scope._pageState.isDataModified($scope.boStatusOptions);
if (isDataModified) {
$scope.baseShow({
title: '提示',
msg: '存在未保存的记录,请先保存!',
buttons: [{
text: '确定',
type: 'sure',
handler: function () {
}
}]
});
return;
}
if ($scope.activeStatus && !$scope.activeStatus()) {
$scope.baseAlert("提示", $scope.getRealMsg('序号:${gridNumber}已为生效状态,无法进行生效操作!'));
return ;
}
$http.post($config.ctx + '/csScoreTemp/activeStatus', checkRows).success(function (data) {
$scope.baseAlert("提示", data.msg);
$scope.refreshCurrentPage("CsScoreTemp");
})
}
3. 常用扩展 3. 常用扩展
3.1. 逻辑校验 3.1. 逻辑校验
如果国际化消息内容有配置变量,那么业务对象名+ctrl文件中添加一句对应国际化消息中定义的变量代码this.scope.bagName = '中文名';
this.scope.controlOneTestSysStBooking = function (aa, bb, cc) {
alert('dfd');
};
`this.scope.bagName = '中文名';`
自定义校验类型的扩展文件中代码参考如下:
/**
* GLPaaS生成
* 生效 评分模板
*/
$scope.activeStatus = function(){
var checkRows = $scope.csScoreTempCheckedRows;
var hasActive = false;
var indexArr = [];
checkRows.map(function (item,index) {
if(item.isActive=="Y"){
hasActive = true;
indexArr.push($scope.csScoreTempGrid.getPhysicalRow(item) + 1);
}
});
$scope.gridNumber = indexArr.join(",");
return !hasActive;
}