import Vue from 'vue'
// 完整导入 UI 组件库
import VxeUI from 'vxe-pc-ui'
import 'vxe-pc-ui/lib/style.css'
// 完整导入 表格库
import VxeUITable from 'vxe-table'
import 'vxe-table/lib/style.css'

import iconPicker from 'e-icon-picker';
import ElementUI from 'element-ui';
import { i18n } from "@/utils/i18ns";

import 'xe-utils'
import 'vxe-table/lib/style.min.css'
import "e-icon-picker/lib/symbol.js"; //基本彩色图标库
import 'e-icon-picker/lib/index.css'; // 基本样式，包含基本图标
import 'font-awesome/css/font-awesome.min.css'; //font-awesome 图标库
import './table-formatter'
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(iconPicker, { FontAwesome: true, ElementUI: true, eIcon: true, eIconSymbol: true });
const size = 'small'
Vue.use(ElementUI);
Vue.use(VxeUITable)
VxeUI.setConfig({
    size: size, // 全局尺寸
    zIndex: 999, // 全局 zIndex 起始值，如果项目的的 z-index 样式值过大时就需要跟随设置更大，避免被遮挡；新版本可以使用 dom-zindex 共享配置
    version: 0, // 版本号，对于某些带数据缓存的功能有用到，上升版本号可以用于重置数据
    loadingText: '加载中...', // 全局loading提示内容，如果为null则不显示文本
    table: {
        showHeader: true,
        keepSource: false,
        showOverflow: null,
        showHeaderOverflow: null,
        showFooterOverflow: null,
        size: null,
        autoResize: false,
        stripe: false,
        border: false,
        round: false,
        minHeight: 144,
        emptyText: '暂无数据',
        resizeConfig: {
            refreshDelay: 250
        },
        rowConfig: {
            keyField: '_X_ROW_KEY' // 行数据的唯一主键字段名
        },
        radioConfig: {
            trigger: 'default'
        },
        checkboxConfig: {
            strict: false,
            highlight: false,
            range: false,
            trigger: 'default'
        },
        sortConfig: {
            remote: false,
            trigger: 'default',
            orders: [ 'asc', 'desc', null ],
            sortMethod: null
        },
        filterConfig: {
            remote: false,
            filterMethod: null
        },
        expandConfig: {
            trigger: 'default',
            showIcon: true
        },
        treeConfig: {
            rowField: 'id',
            parentField: 'parentId',
            children: 'children',
            hasChild: 'hasChild',
            mapChildren: '_X_ROW_CHILD',
            indent: 20,
            showIcon: true
        },
        tooltipConfig: {
            enterable: true
        },
        menuConfig: {
            visibleMethod() {
            }
        },
        editConfig: {
            mode: 'cell',
            showAsterisk: true
        },
        importConfig: {
            modes: [ 'insert', 'covering' ]
        },
        exportConfig: {
            modes: [ 'current', 'selected' ]
        },
        customConfig: {
            storage: false
        },
        areaConfig: {
            multiple: false
        },
        scrollX: {
            enabled: false, // 是否默认开启横向虚拟滚动
            gt: 60 // 当列大于指定数量时自动触发启用虚拟滚动
        },
        scrollY: {
            enabled: false, // 是否默认开启纵向虚拟滚动
            gt: 100 // 当数据大于指定数量时自动触发启用虚拟滚动
        },
        loading: {
            icon: 'vxe-icon-spinner roll',
            text: '加载中...'
        }
    },
    grid: {
        size: size,
        zoomConfig: {
            escRestore: true
        },
        pagerConfig: {
            perfect: false
        },
        toolbarConfig: {
            perfect: false
        },
        proxyConfig: {
            autoLoad: true,
            message: true,
            props: {
                list: null, // 用于列表，读取响应数据
                result: 'result', // 用于分页，读取响应数据
                total: 'page.total' // 用于分页，读取总条数
            },
            beforeItem: null,
            beforeColumn: null,
            beforeQuery: null,
            afterQuery: null,
            beforeDelete: null,
            afterDelete: null,
            beforeSave: null,
            afterSave: null
        }
    },
    pager: {
        size: size,
        autoHidden: false,
        perfect: true,
        pageSize: 10,
        pagerCount: 7,
        pageSizes: [ 10, 15, 20, 50, 100 ],
        layouts: [ 'PrevJump', 'PrevPage', 'Jump', 'PageCount', 'NextPage', 'NextJump', 'Sizes', 'Total' ]
    },
    form: {
        preventSubmit: false,
        size: size,
        colon: false,
        validConfig: {
            autoPos: true
        },
        tooltipConfig: {
            enterable: true
        },
        titleAsterisk: true
    },
    input: {
        size: size,
        transfer: false,
        parseFormat: 'yyyy-MM-dd HH:mm:ss.SSS',
        labelFormat: '',
        valueFormat: '',
        startDay: 1,
        digits: 2,
        controls: true
    },
    textarea: {
        size: size,
        autosize: {
            minRows: 1,
            maxRows: 10
        }
    },
    select: {
        size: size,
        transfer: false,
        optionConfig: {
            keyField: '_X_OPTION_KEY' // 选项数据的唯一主键字段名
        },
        multiCharOverflow: 8
    },
    toolbar: {
        size: size,
        import: {
            mode: 'covering'
        },
        export: {
            types: [ 'csv', 'html', 'xml', 'txt' ]
        },
        buttons: [],
        tools: []
    },
    button: {
        size: null,
        transfer: false
    },
    radio: {
        size: null
    },
    checkbox: {
        size: null
    },
    switch: {
        size: null
    },
    modal: {
        // size: null,
        minWidth: 340,
        minHeight: 200,
        lockView: true,
        mask: true,
        duration: 3000,
        marginSize: 0,
        dblclickZoom: true,
        showTitleOverflow: true,
        storage: false
    },
    list: {
        scrollY: {
            gt: 100
        }
    }
})
Vue.use(VxeUI, {
    // 对组件内置的提示语进行国际化翻译
    i18n: (key, args) => i18n.t(key, args),
    // 如果不使用 vue-i18n 场景，则需要自行转义字符串语法: '{xx}'，例如：
    // i18n: (key, args) => XEUtils.template(i18n.t(key, args), args, { tmplRE: /\{([.\w[\]\s]+)\}/g })
});
