import Vue from 'vue'

import 'normalize.css/normalize.css' // A modern alternative to CSS resets

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
// import locale from 'element-ui/lib/locale/lang/en' // lang i18n
import echarts from 'echarts'
import '@/styles/index.scss' // global css
import '@/customIcons/icon.css' // 自定义icon

import App from './App.vue'
import store from './store'
import router from './router'

import '@/icons' // icon
import '@/permission' // permission control

/**
 * If you don't want to use mock-server
 * you want to use MockJs for mock api
 * you can execute: mockXHR()
 *
 * Currently MockJs will be used in the production environment,
 * please remove it before going online ! ! !
 */

Vue.prototype.$echarts = echarts
// if (process.env.NODE_ENV === 'production') {
//   const { mockXHR } = require('../mock')
//   mockXHR()
// }

Vue.directive('tableHeight', {
  update(el, binding) {
    function changeElHeight() {
      let height = 0
      if (!binding.value) {
        const navbarHeight = 46
        const tabsHeight = 62
        const searchHeight = document.querySelector('.app-container>.filter-container') ? document.querySelector('.app-container>.filter-container').offsetHeight : 0
        const pageHeight = document.querySelector('.app-container>.pagination-container') ? 75 : 20
        const otherHeight = document.querySelector('.app-container>.other-container') ? document.querySelector('.app-container>.other-container').offsetHeight : 0
        height = navbarHeight + tabsHeight + searchHeight + pageHeight + otherHeight
      } else {
        height = binding.value
      }
      el.style.height = `${window.innerHeight - height > 230 ? window.innerHeight - height : 230}px`
    }
    changeElHeight()
    window.onresize = () => {
      changeElHeight()
    }
  }
})

// set ElementUI lang to EN
// Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui，按如下方式声明
Vue.use(ElementUI)

Vue.prototype.common = {
  seamingImgUrl(url) {
    if (!url) return ''
    // return url.startsWith('https://') ? url : 'https://www.tuanfengkeji.cn:9527/dts-admin-api/admin/storage/fetch/' + url
    if (url.startsWith('http://')) {
      return url.replace('http://', 'https://')
    } else if (url.startsWith('https://')) {
      return url
    } else if (url.startsWith('//')) {
      return 'https:' + url
    }
    // https://tuanfengkeji.oss-cn-beijing.aliyuncs.com/tfshop/
    // https://jufeng-shop-1317254189.cos.ap-guangzhou.myqcloud.com/
    return 'https://jufeng-shop-1317254189.cos.ap-guangzhou.myqcloud.com/' + url
  }
}

Vue.config.productionTip = false

new Vue({
  el: '#app',
  router,
  store,
  render: (h) => h(App)
})
