Ext4 Grid规则校验

Ext4 的排班规则列表, 需要在选中一个规则时, 判断是否与已经选中的规则存在冲突。

在Ext 的 ruleModel 中增加字段 ruleMutexs, 接收从后台传来的互斥规则代码列表。因为一个规则的互斥规则有可能多个,

有些担心 Ext.data.Model 中的字段是否能接收数组类型。试试再说。

 

 

//排班规则
	Ext.define('ruleModel',{
		extend:'Ext.data.Model',
		fields:[
			{name:'ruleCode',type:'string'},
			{name:'ruleName',type:'string'},
			{name:'ruleTypeName',type:'string'},
			{name:'ruleSelected'},
			{name:'ruleMutexs'}
		]
	});

 

后台, 在 ScheduleRuleDto  中增加对应的数据字段

	//互斥规则
	public String[] ruleMutexs;
	
	public String[] getRuleMutexs() {
		return ruleMutexs;
	}

	public void setRuleMutexs(String[] ruleMutexs) {
		this.ruleMutexs = ruleMutexs;
	}
	

跑起, 页面中打印 slct[i].data.ruleMutexs.length 得到 1 , 说明数组成功得到。

 

在选中事件中增加判断, 如果存在冲突, 那么取消选中。

 

	airportGrid.on('select',function( rm, record, index, eOpts ){
		if(!conflictChk){
			return;
		}
		var slct = airportGrid.getSelectionModel().getSelection();
		for(var i=0;i<slct.length; i++){
			if(slct[i].data.ruleCode != record.data.ruleCode){//排除自己
				var mutexs = slct[i].data.ruleMutexs;
				for(var j=0;j<mutexs.length;j++){
					//alert(mutexs[j]);
					if(mutexs[j] == record.data.ruleCode){
						alert("该规则与已选的规则:" + slct[i].data.ruleName + "冲突!");
						airportGrid.getSelectionModel().deselect(record,true,false);
					}
				}
			}
		}
		//判断当前选中的规则是否与已经选中的规则存在冲突
		//alert(record.data.ruleCode);
	});

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值