import { createApp } from 'vue'; import Cookies from 'js-cookie'; // 导入 hiprint 并挂载到全局 window 对象 import { hiprint } from 'vue-plugin-hiprint'; window.hiprint = hiprint; import ElementPlus from 'element-plus'; import zhCn from 'element-plus/es/locale/lang/zh-cn'; import 'element-plus/dist/index.css'; import locale from 'element-plus/es/locale/lang/zh-cn'; import '@/assets/styles/index.scss'; // global css import App from './App'; import store from './store'; import router from './router'; import directive from './directive'; // directive // 注册指令 import plugins from './plugins'; // plugins import { download, downloadGet } from '@/utils/request'; // svg图标 import 'virtual:svg-icons-register'; import SvgIcon from '@/components/SvgIcon'; import elementIcons from '@/components/SvgIcon/svgicon'; import './permission'; // permission control import { useDict } from '@/utils/dict'; import { parseTime, resetForm, addDateRange, handleTree, selectDictLabel, selectDictLabels, } from '@/utils/openhis'; import { formatDateStr } from '@/utils/index'; // 分页组件 import Pagination from '@/components/Pagination'; // 自定义表格工具组件 import RightToolbar from '@/components/RightToolbar'; // 富文本组件 import Editor from '@/components/Editor'; // 文件上传组件 import FileUpload from '@/components/FileUpload'; // 图片上传组件 import ImageUpload from '@/components/ImageUpload'; // 图片预览组件 import ImagePreview from '@/components/ImagePreview'; // 自定义树选择组件 import TreeSelect from '@/components/TreeSelect'; // 字典标签组件 import DictTag from '@/components/DictTag'; // 导入请求工具 import request from './utils/request' import { ElDialog, ElMessage } from 'element-plus'; import { registerComponents } from './template'; const app = createApp(App); if (chrome.webview !== undefined) { // 如果是webview环境,挂载CSharpAccessor对象到vue实例上 const csAccessor = chrome.webview.hostObjects.CSharpAccessor; app.config.globalProperties.csAccessor = csAccessor; } // 全局方法挂载 app.config.globalProperties.useDict = useDict; app.config.globalProperties.download = download; app.config.globalProperties.downloadGet = downloadGet; app.config.globalProperties.parseTime = parseTime; app.config.globalProperties.resetForm = resetForm; app.config.globalProperties.handleTree = handleTree; app.config.globalProperties.addDateRange = addDateRange; app.config.globalProperties.selectDictLabel = selectDictLabel; app.config.globalProperties.selectDictLabels = selectDictLabels; app.config.globalProperties.formatDateStr = formatDateStr; // 全局组件挂载 app.component('DictTag', DictTag); app.component('Pagination', Pagination); app.component('TreeSelect', TreeSelect); app.component('FileUpload', FileUpload); app.component('ImageUpload', ImageUpload); app.component('ImagePreview', ImagePreview); app.component('RightToolbar', RightToolbar); app.component('Editor', Editor); app.use(registerComponents); app.use(ElMessage); app.use(router); app.use(store); app.use(plugins); app.use(elementIcons); app.component('svg-icon', SvgIcon); directive(app); // 全局禁止点击遮罩层关闭弹窗 ElDialog.props.closeOnClickModal.default = false; // 使用element-plus 并且设置全局的大小 app.use(ElementPlus, { locale: zhCn, // 支持 large、default、small size: Cookies.get('size') || 'default', }); app.mount('#app');