import Vue from 'vue'
import App from '@/App'
import router from '@/router' // api: https://github.com/vuejs/vue-router
import store from '@/store' // api: https://github.com/vuejs/vuex
import VueCookie from 'vue-cookie' // api: https://github.com/alfhen/vue-cookie
import '@/element-ui' // api: https://github.com/ElemeFE/element
import '@/icons' // api: http://www.iconfont.cn/
import '@/element-ui-theme'
import '@/assets/scss/index.scss'
import httpRequest from '@/utils/httpRequest' // api: https://github.com/axios/axios
import '@/mock/modules/sys-menu.js'
import '@/assets/styles/fonts.css' //字体样式

import * as imageConversion from 'image-conversion';
import { getCompressionQuality, compressImage } from '@/utils/compressionUtils.js';

// Vue.prototype.Tupiantou ='https://mxys.chuanghai-tech.com/sqx_fast/alioss/upload'//线上
Vue.prototype.Tupiantou ='https://mxys.chuanghai-tech.com/wm-test/wm-api/sqx_fast/alioss/upload'//线下
Vue.prototype.Tupian =function(img){
	return 'https://mxys.chuanghai-tech.com/wmfile'+img
}//全局图片请求头

//上传图片前压缩图片
Vue.prototype.$processImage = function(that, file, isUnload) {
  const imgType = file.type.toUpperCase();
  const isLt30M = file.size / 1024 / 1024 < 30;
  const isLt2M = file.size / 1024 / 1024 < 2;
  const isLtSize = file.size / 1024 / 1024;
  console.log("压缩前图片size", file.size / 1024 / 1024);
  // uploadData.isCompressed = 0
  if (
    imgType !== "IMAGE/JPG" &&
    imgType !== "IMAGE/JPEG" &&
    imgType !== "IMAGE/PNG" &&
    imgType !== "IMAGE/WEBP"
  ) {
    that.$message.error("请上传正确格式的图片");
    return false;
  }
  if (!isLt30M) {
    that.$message.error("上传的图片不能超过30Mb");
    return false;
  }
  //压缩质量
  const quality = getCompressionQuality(isLtSize, imgType);
  // 按倍率压缩
  // //大于2M走压缩逻辑
  // if (!isLt2M) {
  //   console.log("quality", quality);
  //   return compressImage(file, quality)
  //     .then(compressedFile => {
  //       return compressedFile;
  //     })
  //     .catch(err => {
  //       console.error("Image compression error:", err);
  //       return file;
  //     });
  // }
  // 按指定大小压缩
  if (!isLt2M) {
    // this.$message.error("上传头像图片大小不能超过2MB");
    // return false;
    return new Promise(resolve => {
      // 压缩到100KB,这里的100就是要压缩的大小，可自定义
      imageConversion.compressAccurately(file, 1800).then(res => {
        console.log(res.size / 1024 / 1024,'压缩后图片大小');
        resolve(res);
      });
    });
  }

};

import {
  isAuth
} from '@/utils'
import cloneDeep from 'lodash/cloneDeep'
import BaiduMap from 'vue-baidu-map'
import {
  VueJsonp
} from 'vue-jsonp'
Vue.use(VueJsonp)



console.log('sysmenu')
Vue.use(BaiduMap, {
  ak: 'miP4RMG1yZoROVRSqTPghvUaRb68iGUB'
})

Vue.use(VueCookie)
Vue.config.productionTip = false

// 非生产环境, 适配mockjs模拟数据                 // api: https://github.com/nuysoft/Mock
if (process.env.NODE_ENV !== 'production') {
  require('@/mock')
}

// 挂载全局
Vue.prototype.$http = httpRequest // ajax请求方法
Vue.prototype.isAuth = isAuth // 权限方法

// 保存整站vuex本地储存初始状态
window.SITE_CONFIG['storeState'] = cloneDeep(store.state)
router.afterEach(() => {
  document.body.scrollTop = 0;
  document.documentElement.scrollTop = 0;
   // window.scrollTo(0, 0);
})
/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  store,
  template: '<App/>',
  components: {
    App
  }
})
