You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

184 lines
6.1 KiB

import Vue from 'vue'
import Element from 'element-ui'
import '../styles/element-variables.scss'
import enLang from 'element-ui/lib/locale/lang/zh-CN' // 如果使用中文语言包请默认支持,无需额外引入,请删除该依赖
import Cookies from 'js-cookie' //Cookies
import * as eCharts from 'echarts' //echarts
import Plugin from 'v-fit-columns' //table自适应宽高
import AFTableColumn from 'af-table-column'
import '../icons' // icon
import '../permission' // permission control
import '../utils/error-log' // error log
import {
default as staticOptions
} from '@/filters/statusType' // 全局静态变量
Vue.prototype.$staticOptions = staticOptions
import
* as isTableColumns
from "@/utils/tableColumns/index" //全局table表头
Vue.prototype.$isTableColumns = isTableColumns
import *
as isDetailsTableColumns
from "@/utils/detailsTableColumns/index" //全局table表头
Vue.prototype.$isDetailsTableColumns = isDetailsTableColumns
import *
as isSummaryTableColumns
from "@/utils/summaryTableColumns/index" //全局table表头——汇总
Vue.prototype.$isSummaryTableColumns = isSummaryTableColumns
import *
as isTabsDesTions
from "@/utils/tabsDesTions/index" //全局table表头——汇总
Vue.prototype.$isTabsDesTions = isTabsDesTions
import *
as isQuicklySearchOption
from "@/utils/quicklySearchOption/index" //主表查询-快速搜索数据配置
Vue.prototype.$isQuicklySearchOption = isQuicklySearchOption
import *
as isPrimarySearchOption
from "@/utils/primarySearchOption/index" //主表查询-初级搜索数据配置
Vue.prototype.$isPrimarySearchOption = isPrimarySearchOption
//axios序列化插件
import qs from 'qs'
Vue.prototype.$qs = qs
import currenForm from "@/components/currenForm"; //form表单
import currenDrawer from "@/components/commonTabel-drawer"; //抽屉
import currenButton from "@/components/currenButton" //按钮
import currenTable from "@/components/currenTable" //table
import tablePagination from "@/components/tablePagination"; //第一视图集成
import importFile from "@/components/importFile" //导入
import exportDrop from "@/components/exportDrop" //导出
import pagination from "@/components/Pagination" //分页器
import conditionFilters from "@/components/conditionFilters" //高级筛选
import searchPage from '@/components/searchPage' //autocomplete拉取数据探弹窗
import newAndEdiDialog from '@/components/newAndEdiDialog' //普通新增与编辑
import stepsForm from '@/components/StepsForm' //步骤新增
import handelFrom from '@/components/handelFrom' //执行表单
import umyTable from '@/components/umyTable' // 用于数据量过大table
import filterForDetailPage from '@/components/filterForDetailPage' //明细查询
import newAndEdiDialogForDetail from '@/components/newAndEdiDialogForDetail' //普通新增与编辑(带明细)
// Mixins
// import { tableMixins } from "@/mixins/TableMixins"
// import { LoadingMixins } from "@/mixins/LoadingMixins"
// import { drawerMixins } from "@/mixins/drawerMixins"
// import { TableHeaderMixins } from "@/mixins/TableHeaderMixins"
// import { mixins } from "@/mixins/mixins"
// 注册全局MIxins
// Vue.mixin(tableMixins)
// Vue.mixin(LoadingMixins)
// Vue.mixin(drawerMixins)
// Vue.mixin(TableHeaderMixins)
// Vue.mixin(mixins)
// Vue.mixin(autoCompleteSelectMixins)
const fontRate = {
CHAR_RATE: 1.0, // 汉字比率
NUM_RATE: 0.65, // 数字
OTHER_RATE: 0.8 // 除汉字和数字以外的字符的比率
}
const fontSize = 20
Vue.use(Plugin)
Vue.use(AFTableColumn, {
fontRate,
fontSize
})
// Element引用
Vue.use(Element, {
size: Cookies.get('size') || 'medium', // set element-ui default size
locale: enLang // 如果使用中文,无需设置,请删除
})
Element.Dialog.props.closeOnClickModal.default = false
Element.Dialog.props.closeOnPressEscape.default = false
Element.Dialog.props.showClose.default = false
// 注册成为全局的组件
Vue.component('currenForm', currenForm)
Vue.component('currenDrawer', currenDrawer)
Vue.component('currenButton', currenButton)
Vue.component('currenTable', currenTable)
Vue.component('tablePagination', tablePagination)
Vue.component('importFile', importFile)
Vue.component('exportDrop', exportDrop)
Vue.component('pagination', pagination)
Vue.component('conditionFilters', conditionFilters)
Vue.component('searchPage', searchPage)
Vue.component('newAndEdiDialog', newAndEdiDialog)
Vue.component('newAndEdiDialogForDetail', newAndEdiDialogForDetail)
Vue.component('stepsForm', stepsForm)
Vue.component('handelFrom', handelFrom)
Vue.component('umyTable', umyTable)
Vue.component('filterForDetailPage', filterForDetailPage)
Vue.prototype.$echarts = eCharts
Vue.prototype.$isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)
Vue.prototype.$isAndroid = navigator.userAgent.indexOf('Android') > -1 || navigator.userAgent.indexOf('Adr') > -1
Vue.prototype.$successMsg = function (message = '') {
this.$message({
message,
type: 'success',
duration: 5000
})
}
Vue.prototype.$errorMsg = function (message = '') {
this.$message({
message,
type: 'error',
duration: 5000
})
}
Vue.prototype.$warningMsg = function (message = '') {
this.$message({
message,
type: 'warning',
duration: 5000
})
}
Vue.prototype.$showConfirmDialog = function (message = '') {
return this.$confirm(message, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
}
Vue.prototype.publishEvent = function (eventName, payload) {
if (!eventName) return
const fun = this[eventName]
fun && fun(payload)
}
Vue.prototype.registeEvent = function (events) {
for (const item in events) {
const handle = events[item]
if (handle instanceof Function) {
this[item] = handle.bind(this)
}
}
}
Vue.prototype.isInited = function (prop) {
return this[prop] && this[prop].init
}
Vue.prototype.$listAssign = function (arrA, arrB) {
Object.keys(arrA).forEach(key => {
arrA[key] = arrB[key] || arrA[key]
})
}
Vue.prototype.$CopeListAssign = function (arrA, arrB) {
Object.keys(arrA).forEach(key => {
arrA[key] = arrB[key]
})
}