ButtonExpHandler.js 960 Bytes
/**
 * online 自定义按钮表达式处理类
 */
export default class ButtonExpHandler {
  /**
   * 构造器
   * @param express
   */
  constructor(express,record) {
    this._express = express;
    this._record = record;
  }

  get show() {
    if(!this._express || this._express==''){
      return true;
    }
    let arr = this._express.split('#');
    //获取字段值
    let fieldValue = this._record[arr[0]];
    //获取表达式
    let exp = arr[1].toLowerCase();
    //判断表达式
    if(exp === 'eq'){
      return fieldValue == arr[2];
    }else if(exp === 'ne'){
      return !(fieldValue == arr[2]);
    }else if(exp === 'empty'){
      if(arr[2]==='true' || arr[2]===true){
        return !fieldValue || fieldValue=='';
      }else{
        return fieldValue && fieldValue.length>0
      }
    }else if(exp === 'in'){
      let arr2 = arr[2].split(',');
      return arr2.indexOf(String(fieldValue))>=0;
    }
    return false;
  }

}