// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import './assets/icon/iconfont.css'
import store from './store/index.js';
import VueTypedJs from 'vue-typed-js'

//富文本
import VueQuillEditor from 'vue-quill-editor'
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'
Vue.use(VueQuillEditor);
// import CKEditor from '@ckeditor/ckeditor5-vue2'
// Vue.use( CKEditor );

import * as echarts from 'echarts';
Vue.use(echarts);

// 配置cookie
import cookie from 'vue-cookie'
Vue.prototype.$cookie = cookie;  //配置时候prototype.$这里的名字自己定义不是固定是cookie

Vue.use(VueTypedJs)


import axios from 'axios';
axios.defaults.baseURL = 'http://132.232.92.186:8888';
// axios.defaults.baseURL = 'http://132.232.92.186:8888';
//axios.defaults.baseURL = 'http://localhost:5256/'; 
import { Message } from "element-ui";

import common from './assets/js/common'//全局
Vue.use(common);//全局

import plugin from './plugin'//全局
Vue.use(plugin);//全局

import websocket from './store/websocket.js'
Vue.prototype.$websocket = websocket//websocket

//禁用浏览器前进后腿
window.addEventListener('popstate', function () {
  history.pushState(null, null, document.URL)
})

Vue.prototype.$message = Message;
Vue.prototype.$axios = axios;

Vue.config.productionTip = false
Vue.use(ElementUI);
Vue.prototype.transformDateFormat = function (time) {
  var date = new Date(time);
  var year = date.getFullYear();
  /* 在日期格式中，月份是从0开始的，因此要加0
   * 使用三元表达式在小于10的前面加0，以达到格式统一  如 09:11:05
   * */
  var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
  var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
  var hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
  var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
  var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
  // 拼接
  return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
};

// 兼容性导入方式
let marked

try {
  // 尝试作为命名导入（marked 4.x+）
  const markedModule = require('marked')
  marked = markedModule.marked || markedModule.default || markedModule
} catch (error) {
  console.error('marked 导入失败:', error)
}

// 如果导入成功，进行配置
if (marked && typeof marked === 'function') {
  marked.setOptions({
    breaks: true,
    gfm: true,
    sanitize: false
  })
  
  Vue.prototype.$marked = marked
} else {
  console.warn('marked 未正确加载，相关功能将不可用')
}


/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  store,
  components: { App },
  template: '<App/>'
})


// import htmlToPdf from './store/htmlToPdf.js';
// import htmlToPdf from './store/htmlToPdf.js';
// Vue.config.productionTip = false;

// Vue.use(htmlToPdf);

// new Vue({
//   render: (h) => h(App),
// }).$mount('#app');
