// 导入组件
import GdyTable from '../packages/table/index.vue'
// eslint-disable-next-line no-unused-vars
import Vue from 'vue'
import { DatePicker, Input, Select, Button, Pagination, ConfigProvider, Form, Modal, Tooltip } from 'ant-design-vue'
// import Vue from 'vue'
import 'ant-design-vue/dist/antd.css'
// import { DatePicker, Input, Select, Button, Pagination, ConfigProvider, Form } from 'ant-design-vue'

// 图片预览
import preview from 'vue-photo-preview'
import 'vue-photo-preview/dist/skin.css'

// 存储组件列表
const components = [GdyTable]

// 定义 install 方法，接收 Vue 作为参数。如果使用 use 注册插件，则所有的组件都将被注册
// eslint-disable-next-line no-shadow
const install = function (Vue) {
  // 判断是否安装
  if (install.installed) return
  // 遍历注册全局组件
  components.map(component => Vue.component(component.name, component))

  // Vue.component('a-pagination', Pagination)
  // Vue.component('a-range-picker', DatePicker)
  // Vue.component('a-input', Input)
  // Vue.component('a-select', Select)
  // Vue.component('a-button', Button)
  // Vue.component('a-configProvider', ConfigProvider)
  // Vue.component('a-form', Form)
  Vue.use(DatePicker)
  Vue.use(Input)
  Vue.use(Select)
  Vue.use(Button)
  Vue.use(Pagination)
  Vue.use(ConfigProvider)
  Vue.use(Form)
  Vue.use(Modal)
  Vue.use(Tooltip)

  Vue.use(preview)
}

// 判断是否是直接引入文件
if (typeof window !== 'undefined' && window.Vue) {
  install(window.Vue)
}

export default {
  // 导出的对象必须具有 install，才能被 Vue.use() 方法安装
  install,
  // 以下是具体的组件列表
  GdyTable
}
