export const CmsFormSelectTree = {
  data() {
    return {
      optionData: {
        id: undefined,
        name: undefined
      },
      options: [], // 必须是树形结构的对象数组
    }
  },
  computed: {
    inputValue: {
      get() {
        return this.value
      },
      set(val) {
        console.log('================', val);
        this.$emit('input', val);
      }
    }
  },
  props: {
    // v-model绑定
    value: [ String, Array, Boolean, Number ],
    placeholder: {
      type: String,
      default: () => {
        return '请选择'
      }
    },
    /**
     * 查询参数
     */
    extraData: {
      type: Object,
      default: () => {
        return {}
      }
    },
    // 数据源配置
    requestCall: {
      type: [ Array, Function, Object ],
      default: () => {
        return undefined
      }
    },
    /**
     * 默认是否全部展开
     */
    defaultExpandAll: {
      type: Boolean,
      default: false,
    },
    /**
     * 默认是否全部展开
     */
    expandOnClickNode: {
      type: Boolean,
      default: false,
    },
    /**
     * 设置label value属性 tree的props配置
     */
    defaultProps: {
      type: Object,
      default: () => {
        return {
          value: 'id', // ID字段名
          label: 'label', // 显示名称
          children: 'children' // 子级字段名
        }
      }
    },
    formModel: {
      type: Object,
      default: {}
    },
    // 匹配元素
    matchKey: {
      type: Object,
      default: () => {
        return undefined
      }
    },
    // 默认勾选的节点
    defaultCheckNodes: {
      type: Array, // 已经分配的资源
      default: () => {
        return []
      }
    },
    // 每个树节点用来作为唯一标识的属性
    nodeKey: {
      type: [ String, Number ],
      default: 'id'
    },
  }
}