<template>
  <div>
    <base-select v-model="currentValue"
                 :api="api"
                 :clearable="clearable"
                 :filterable="filterable "
                 :multiple="multiple"
                 :options.sync="options"
                 :queryParas="queryParas"
                 :collapsetags="collapsetags"
                 :selectedField="selectedField"
                 :disabled="disabled"
                 :reload="reload"
                 :placeholder="placeholder"
                 :optionDisabled="optionDisabled"
                 @select-changed="selectChanged"
                 no-data-text="数据加载中或加载失败">
    </base-select>
  </div>
</template>

<script>
import { BaseSelect } from 'newepoch-components'
import taskManageApi from '@/api/dataAudit/taskManageApi.js'
export default {
  name: 'SelectTaskName',
  components: {
    BaseSelect
  },
  props: {
    // v-model绑定的数据
    value: {
      type: [Array, String],
      default: function () {
        return null
      }
    },
    // 是否禁用修改
    disabled: {
      type: Boolean,
      default: function () {
        return false
      }
    },
    // 是否可多选
    multiple: {
      type: Boolean,
      default: function () {
        return false
      }
    },
    // 重新加载数据（每次取非即可）
    reload: {
      type: Boolean,
      default: function () {
        return false
      }
    },
    // 是否可搜索
    filterable: {
      type: Boolean,
      default: function () {
        return true
      }
    },
    // 是否可清除
    clearable: {
      type: Boolean,
      default: function () {
        return true
      }
    },
    // 多选折叠
    collapsetags: {
      type: Boolean,
      default: function () {
        return false
      }
    },
    // 默认提示语
    placeholder: {
      type: String,
      default: function () {
        return '请选择'
      }
    },
    name: {
      type: String,
      require: false
    },
    // 动态表单当前节点
    rowIndex: {
      type: Number,
      default: function () {
        return null
      }
    },
    // 查询参数
    queryParas: {
      type: Object,
      default: function () {
        return {}
      }
    },
    // 通过验证禁用某一项下拉数据
    optionDisabled: {
      type: Function,
      default: function () {
        return function (item) {
          return false
        }
      }
    }
  },
  data () {
    return {
      // 级联 核心企业id，name
      selectedField: ['id', 'name'],
      // 下拉列表数据
      'options': []
    }
  },
  computed: {
    api () {
      return taskManageApi.offLine
    },
    // 转换绑定的选中数据，与v-model同步
    currentValue: {
      get: function () {
        return this.value
      },
      set: function (value) {
        this.$emit('input', value)
      }
    }
  },
  methods: {
    selectChanged (val, row) {
      this.$emit('selectChanged', val, this.name, row, this.rowIndex)
    }
  }
}
</script>

<style scoped>

</style>
