// 说明文档
import styles from './Explanation.less';
import { ExclamationCircleFilled } from '@ant-design/icons';

export default ({ type }: { type: string }) => {
  return (
    <div className={styles.doc} style={{ marginLeft: 12 }}>
      <h1>1.概述</h1>
      <div>
        场景联动是规则引擎中，一种业务逻辑的可视化编程方式，您可以通过可视化的方式定义设备之间联动规则。当触发条件指定的事件或属性变化事件发生时，系统通过判断执行条件是否已满足，来决定是否执行规则中定义的执行动作。如果满足执行条件，则执行定义的执行动作；反之则不执行。
      </div>
      <div>场景联动的规则可用于告警规则的引用，达到触发条件时将生成对应的告警记录。</div>
      <h1>2.配置说明</h1>
      {type === 'manual' && (
        <>
          <h2>1. 手动触发</h2>
          <div>适用于第三方平台向物联网平台下发指令控制设备。</div>
          <div>
            <b>例如：</b>用户通过智能家居APP开启或关闭设备。
          </div>
        </>
      )}
      {type === 'timer' && (
        <>
          <h2>1. 定时触发</h2>
          <div>
            适用于第三方平台向物联网平台下发指令控制设备。支持按周、按月、按Corn表达式3种方式配置频率。
          </div>
          <div>
            <b>例如：</b>每天早上9点打开空调，并将空调开到26度。
          </div>
        </>
      )}
      {type === 'device' && (
        <>
          <h2>1. 设备触发</h2>
          <div>
            适用于多个不同设备间执行动作的联动。选择具体设备时支持指定产品下属的固定设备、全部设备或选择产品下归属于具体部门的设备
          </div>
          <div>
            <b>例如：</b>打开综合办部门房间门的时候，打开电灯、空调。
          </div>
        </>
      )}

      <h2>2.执行动作:</h2>
      <div>
        支持消息通知、设备输出、延迟执行3种方式，延迟执行只在执行动作为串行时显示。另外串行模式下，多个执行动作间可以通过条件过滤判断时候继续执行后续动作。
      </div>
      <h3>a.消息通知</h3>
      <div>
        通过系统外的渠道给相关人员发送对应的通知模板内容。若钉钉消息、微信企业消息的通知模板中没有定义固定通知人，可在当前页面进行配置。同时“收信人”字段支持同步平台与微信、钉钉用户映射关系（对应类型的通知配置列表页配置），实现选择平台用户即可通知到对应的微信、钉钉用户。
      </div>
      <div className={styles.notice}>
        <ExclamationCircleFilled />
        注：只有设备触发时，收信人可选择关系用户。
      </div>
      <div>
        <b>例如：</b>
        设备下线时，以微信或钉钉的方式通知该“设备负责人”（需管理员先在“关系配置”菜单中定义设备与用户的关系，然后到设备实例信息页面填写值）。
      </div>

      <h3>b.设备输出:</h3>
      <div>
        联动其他设备进行功能调用、读取属性、设置属性操作。
        选择设备时支持固定设备、按标签（需在设备物模型中自定义配置）、按关系（需管理员先在“关系配置”菜单中定义设备与用户的关系，然后到设备实例信息页面填写值）3种方式。
      </div>
      <div className={styles.notice}>
        <ExclamationCircleFilled />
        注：只有设备触发时，被联动设备支持按关系选择。
      </div>
      <div>
        <b>例如：</b>
        {`温度传感器>30度时，与该设备相同“设备负责人”（自定义关系名）的空调执行打开操作。即可实现张三的温度传感器>30度时自动打开张三的空调，李四的温度传感器>30度时自动打开李四的空调。`}
      </div>

      <h3>c.延迟执行:</h3>
      <div>设置延时时间后，设备执行动作将保持当前状态，时间结束后再执行下一条动作。</div>
      <div>房间门打开时，摄像头开启录像，延迟执行5s后，停止录像。</div>

      <h3>d.条件过滤:</h3>
      <div>根据当前动作执行是否成功，判断是否执行后续动作</div>
      <div>
        <b>例如：</b>
        房间门打开时，执行打开空调，如果打开空调失败，给维修人员发送微信通知。
      </div>
    </div>
  );
};
