import {createApp} from 'vue'; import Cookies from 'js-cookie'; // 导入 hiprint 并挂载到全局 window 对象 import {hiprint} from 'vue-plugin-hiprint'; import ElementPlus, {ElDialog, ElMessage} from 'element-plus'; import zhCn from 'element-plus/es/locale/lang/zh-cn'; import 'element-plus/dist/index.css'; 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 {addDateRange, handleTree, parseTime, resetForm, 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 {registerComponents} from './template'; window.hiprint = hiprint; 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');