34 lines
1.0 KiB
TypeScript
34 lines
1.0 KiB
TypeScript
import { createApp } from 'vue';
|
|
import { createPinia } from 'pinia';
|
|
import * as ElementPlusIconsVue from '@element-plus/icons-vue';
|
|
import App from './App.vue';
|
|
import router from './router';
|
|
import { usePermissStore } from './store/permiss';
|
|
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
|
|
import 'element-plus/dist/index.css';
|
|
import './assets/css/icon.css';
|
|
import WebSocketService from "@/utils/webSocket.js";
|
|
const ws = new WebSocketService()
|
|
const app = createApp(App);
|
|
const pinia = createPinia();
|
|
pinia.use(piniaPluginPersistedstate);
|
|
app.use(pinia);
|
|
app.use(router);
|
|
app.provide('ws', ws)
|
|
|
|
// 注册elementplus图标
|
|
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
|
|
app.component(key, component);
|
|
}
|
|
// 自定义权限指令
|
|
const permiss = usePermissStore();
|
|
app.directive('permiss', {
|
|
mounted(el, binding) {
|
|
if (binding.value && !permiss.key.includes(String(binding.value))) {
|
|
el['hidden'] = true;
|
|
}
|
|
},
|
|
});
|
|
|
|
app.mount('#app');
|