类名 common/document/renderer/support/UniqueValueInfo.js
import { defaultValue } from '../../../util'
import { Symbol } from '../../../base/symbol'
/**
 * 三维专题图-单值信息
 * @class UniqueValueInfo
 * @moduleEX RendererModule
 * @classdesc 三维专题图-单值信息
 * @param {Object} options 初始化参数
 * @param {String|Number} [options.value] 指定字段下的要素值,具有此值的要素将使用给定的符号可视化
 * @param {Symbol} [options.symbol] 符号,用来渲染指定要素
 * @param {String} [options.label] 标签,用来描述符号表示的值
 * @param {Boolean} [options.visible = true] 是否可视化单值信息
 */
class UniqueValueInfo {
  constructor(options) {
    options = defaultValue(options, {})
    /**
     * 指定字段下的要素值,具有此值的要素将使用给定的符号可视化
     * @member {String|Number} UniqueValueInfo.prototype.value
     */
    this.value = options.value
    /**
     * 符号,用来渲染指定要素
     * @member {Symbol} UniqueValueInfo.prototype.symbol
     */
    this.symbol = Symbol.fromJSON(options.symbol)
    /**
     * 标签,用来描述符号表示的值
     * @member {String} UniqueValueInfo.prototype.label
     */
    this.label = defaultValue(options.label, null)
    /**
     * 描述信息
     * @member {String} UniqueValueInfo.prototype.description
     */
    this.description = defaultValue(options.description, null)
    /**
     * 是否可视化单值信息
     * @member {Boolean} UniqueValueInfo.prototype.visible
     */
    this.visible = defaultValue(options.visible, true)
  }

  /**
   * @description 将JSON格式的单值信息转换为JS对象
   * @param {UniqueValueInfo} 单值信息描述对象
   */
  static fromJSON(json) {
    json = defaultValue(json, {})
    return new UniqueValueInfo(json)
  }

  /**
   * 将JS对象转换为JSON格式
   * @returns {Object} 单值信息的实例化JSON
   */
  toJSON() {
    return {
      value: this.value,
      symbol: this.symbol.toJSON(),
      label: this.label,
      description: this.description,
      visible: this.visible
    }
  }

  /**
   * 克隆UniqueValueInfo对象
   * @return {UniqueValueInfo} 克隆后的UniqueValueInfo对象
   */
  clone() {
    return new UniqueValueInfo(this.toJSON())
  }
}

export default UniqueValueInfo
构造函数
成员变量
方法
事件