import store, { initStore } from '@/store';
import { i18n, initI18n } from '@/utils/i18ns';
import http, { initHttp } from '@/utils/https'
import messageTips from '@/utils/messageTips';
// 加载遮罩层
import { PrevLoading } from '@/utils/loading.js'

// 导入基本对象
import { plugins } from './plugins'
// 导入验证器
import {
  validatePostCode,
  validateOfficePhone,
  validateAmount,
  validateEmail,
  validateFax,
  validateMobile,
  validateUrl
} from '@/utils/validate'
//
import { formatAxis, formatDate, formatPast } from "@/utils/formatTime.js";
import {
  verifyFullName,
  verifyAccount,
  verifyEmail,
  verifyCarNum,
  verifyNumberInteger,
  verifyAndSpace,
  verifyCnAndSpace,
  verifyEnAndSpace,
  verifyIdCard,
  verifyIPAddress,
  verifyNumberCnUppercase,
  verifyNumberComma,
  verifyNumberIntegerAndFloat,
  verifyPassword,
  verifyPasswordPowerful,
  verifyPasswordStrength,
  verifyPhone,
  verifyTelPhone,
  verifyPostalCode,
  verifyTextColor,
  verifyUrl
} from '@/utils/toolsValidate.js'
// 导入存储方法
import { Local, Session, Cookies } from '@/utils/storage'
// 请求服务配置
import HttpService from "@/utils/HttpService";
// 导入基本系统配置
import SystemConfig, { initSystemConfig } from '@/utils/SystemConfig';
// 导入默认路由
import router, { initRoute } from "@/router";
// 导入解密和加密
import { encrypt, encryptResult, decrypt } from '@/utils/aes-encrypt'
// 导出Api
import { getMenuAdmin, signIn } from '@/utils/https/commonApi'

import DateFormat from "@/utils/plugins/vxe-table/DateUtils";

import {
  dictionaryMix,
  pageInitMix,
  formConfigMix,
  mixTableConfig,
  mixTableConstants,
  iframeMinix,
  formModalConfig
} from "@/comps/mixin/common-mixins";

import { rootNav, childNav } from './routerNavTools'


export {
  iframeMinix,
  dictionaryMix,
  pageInitMix,
  formConfigMix,
  mixTableConfig,
  formModalConfig,
  mixTableConstants,
  rootNav, childNav,
  HttpService,
  DateFormat,
  SystemConfig,
  initSystemConfig,
  router,
  initRoute,
  getMenuAdmin,
  signIn,
  i18n,
  initI18n,
  store,
  initStore,
  messageTips,
  Local,
  Session,
  Cookies,
  http,
  initHttp,
  PrevLoading,
  encryptResult,
  decrypt,
  encrypt,
  verifyTextColor,
  verifyUrl,
  verifyTelPhone,
  verifyPostalCode,
  verifyPhone,
  verifyPassword,
  verifyPasswordPowerful,
  verifyPasswordStrength,
  verifyNumberComma,
  verifyNumberIntegerAndFloat,
  verifyIPAddress,
  verifyNumberCnUppercase,
  verifyEnAndSpace,
  verifyIdCard,
  verifyAndSpace,
  verifyCnAndSpace,
  verifyNumberInteger,
  verifyCarNum,
  verifyEmail,
  verifyAccount,
  verifyFullName,
  validateEmail,
  validateFax,
  validateMobile,
  validateUrl,
  validateAmount,
  validateOfficePhone,
  validatePostCode,
  formatPast,
  formatDate,
  formatAxis
}
export default Vue => {
  plugins(Vue);
}
