---
order: 4
navTitle: 条件表达式
---
# 条件表达式

系统提供了一个用于简易计算的条件表达式语法，和`Javascript`语法类似。如：

1. [属性配置](./component-properties.md)的`condition`，判断属性是否生效。
2. [属性配置](./component-properties.md)的`linkage`，控制属性联动时如何修改其它属性值。
3. [属性面板配置](./component-ppteditor.md)的`visibleCondition`，判断属性是否显示。

## 访问属性

在一个组件内部，通过属性名称可以访问属性值。

1. 通过`catalog.property`的形式访问其它属性分组下的属性。
2. `JSON`格式的属性通过`property.key`的形式访问内部属性。如`icon`的格式为`{type: string, code: string}`，通过`icon.type`可以访问`type`的值。

## 操作符

|名称|操作符|示例|
|---|---|---|
|等于| == |`tooltipContentType == 'richText'`|
|不等于| != |`scroll != 'none'`|
|大于| > >= |`dataCount > 0`|
|小于| < <= |`dataCount < 0`|
|AND| && |`scroll != 'none' && dataCount == 'totalValue'`|
|OR| || |`labelPosition=='top' || labelPosition=='bottom'`|
|NOT| ! |`!!gridEnabled`|
|三元表达式| ? : |`position == 'top' ? 1 : 0`|

## 全局变量

系统提供了一些全局变量供配置使用。通过`object.property`的方式访问。如`$page.type`。

### $page

页面对象。可以访问页面的相关属性，如页面类型等。

- `type`。
  - `dash` - 仪表板
  - `spg` - SuperPage
  - `rpt` - 报表
  - `webform` - web表单
  - `excelform` - excel表单

### $parent

访问子组件的父组件，无法访问上级容器组件。通过`$parent.propertyName`可以父组件上的属性。
