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.

119 lines
3.8 KiB

// system入口
import Vue from "vue";
import Element from "element-ui";
// import 'lib-flexible/flexible'
import App from "./App.vue";
import router from "./router";
import store from "./store";
import http from "./utils/request";
import jQuery from "jquery";
import "element-ui/lib/theme-chalk/index.css";
import "@/icons";
import "@/assets/scss/aui.scss";
import "@/assets/scss/reset.scss";
import i18n from "@/i18n";
import * as filters from "@/filters";
import renRadioGroup from "@/components/ren-radio-group";
import renDeptTree from "@/components/ren-dept-tree";
import { hasPermission, getDictLabel } from "@/utils";
import cloneDeep from "lodash/cloneDeep";
import "xe-utils";
import VXETable from "vxe-table";
import "vxe-table/lib/index.css";
// import echarts from 'echarts'
import * as echarts from "echarts";
import moment from "moment";
import VueChatScroll from "vue-chat-scroll";
import "default-passive-events";
// import jsNSV from '@/utils/js-NSV.js'
import Base64 from "@/utils/base64.js";
Vue.prototype.$Base64 = Base64;
import Print from "vue-print-nb";
Vue.use(Print);
import { confirm } from "@/utils/confirm";
Vue.prototype.$confirmFun = confirm;
// import VueDragResize from 'vue-drag-resize'
// Vue.component('vue-drag-resize', VueDragResize)
// 裁切工具
import VueCropper from "vue-cropper";
Vue.use(VueCropper);
import Recorder from "js-audio-recorder";
const recorder = new Recorder({
sampleBits: 16, // 采样位数,支持 8 或 16,默认是16
sampleRate: 16000, // 采样率,支持 11025、16000、22050、24000、44100、48000,根据浏览器默认值,我的chrome是48000
numChannels: 1, // 声道,支持 1 或 2, 默认是1
// compiling: false,(0.x版本中生效,1.x增加中) // 是否边录边转换,默认是false
});
Vue.prototype.$recorder = recorder;
// 全局监听DOM元素
import ElementResizeDetectorMaker from "element-resize-detector";
Vue.prototype.$erd = ElementResizeDetectorMaker();
import animejs from "animejs";
Vue.prototype.$anime = animejs;
moment.locale("zh-cn"); // 设置语言 或 moment.lang('zh-cn');
Vue.use(Element, {
size: "default",
i18n: (key, value) => i18n.t(key, value),
});
Object.keys(filters).forEach((key) => {
Vue.filter(key, filters[key]);
});
// 全局组件
Vue.use(renRadioGroup);
Vue.use(renDeptTree);
Vue.use(VueChatScroll);
Vue.use(VXETable);
// DICOM
import cornerstone from "cornerstone-core";
import cornerstoneMath from "cornerstone-math";
import cornerstoneTools from "cornerstone-tools";
import Hammer from "hammerjs";
import dicomParser from "dicom-parser";
import cornerstoneWADOImageLoader from "cornerstone-wado-image-loader";
import cornerstoneWebImageLoader from "cornerstone-web-image-loader";
cornerstoneTools.external.cornerstone = cornerstone;
cornerstoneTools.external.Hammer = Hammer;
cornerstoneTools.external.cornerstoneMath = cornerstoneMath;
cornerstoneWADOImageLoader.external.dicomParser = dicomParser;
cornerstoneWADOImageLoader.external.cornerstoneMath = cornerstoneMath;
cornerstoneWADOImageLoader.external.cornerstone = cornerstone;
cornerstoneWebImageLoader.external.cornerstone = cornerstone;
cornerstone.registerImageLoader("http", cornerstoneWADOImageLoader.loadImage);
cornerstone.registerImageLoader("https", cornerstoneWADOImageLoader.loadImage);
cornerstone.registerImageLoader("http", cornerstoneWebImageLoader.loadImage);
Vue.prototype.$cornerstone = cornerstone;
Vue.prototype.$cornerstoneTools = cornerstoneTools;
// 挂载全局
Vue.prototype.$http = http;
Vue.prototype.$ = jQuery;
Vue.prototype.$hasPermission = hasPermission;
Vue.prototype.$getDictLabel = getDictLabel;
Vue.prototype.$moment = moment;
Vue.prototype.$echarts = echarts;
Vue.config.productionTip = false;
// 保存整站vuex本地储存初始状态
window.SITE_CONFIG.storeState = cloneDeep(store.state);
new Vue({
i18n,
router,
store,
render: (h) => h(App),
}).$mount("#app");