mirror of
https://gitee.com/orangeform/orange-admin.git
synced 2026-01-17 10:36:31 +08:00
73 lines
2.5 KiB
TypeScript
73 lines
2.5 KiB
TypeScript
import { createApp } from 'vue';
|
||
import * as ElementPlusIconsVue from '@element-plus/icons-vue';
|
||
import '@/common/http/request';
|
||
// eslint-disable-next-line import/named
|
||
import { debounce } from 'lodash';
|
||
import { VxeTable, VxeColumn, Edit } from 'vxe-table';
|
||
import App from '@/App.vue';
|
||
import { router } from '@/router/index';
|
||
import pinia from '@/store';
|
||
import useStaticDictStore from '@/store/staticDict';
|
||
|
||
// 表格样式
|
||
import 'vxe-table/lib/style.css';
|
||
// layui样式
|
||
import '@layui/layui-vue/lib/index.css';
|
||
// vant样式
|
||
import 'vant/lib/index.css';
|
||
// element-plus 按需导入缺少的样式
|
||
import 'element-plus/theme-chalk/el-loading.css';
|
||
import 'element-plus/theme-chalk/el-message.css';
|
||
import 'element-plus/theme-chalk/el-message-box.css';
|
||
import 'element-plus/theme-chalk/el-notification.css';
|
||
import 'element-plus/theme-chalk/el-cascader.css';
|
||
import 'element-plus/theme-chalk/el-cascader-panel.css';
|
||
import 'element-plus/theme-chalk/el-tree.css';
|
||
import 'element-plus/theme-chalk/el-date-picker.css';
|
||
import 'element-plus/theme-chalk/el-input-number.css';
|
||
import 'element-plus/theme-chalk/el-switch.css';
|
||
|
||
// 其它样式
|
||
import '@/assets/online-icon/iconfont.css';
|
||
// 静态字典
|
||
import * as staticDict from '@/common/staticDict/index';
|
||
import * as olineDicgt from '@/common/staticDict/online';
|
||
import * as flowDict from '@/common/staticDict/flow';
|
||
|
||
import { ANY_OBJECT } from '@/types/generic';
|
||
|
||
// vxe-table设置
|
||
function useTable(app: ANY_OBJECT) {
|
||
app.use(VxeTable).use(VxeColumn).use(Edit);
|
||
}
|
||
// 静态字典设置
|
||
function useStaticDict(app: ANY_OBJECT, staticDict: ANY_OBJECT) {
|
||
if (app.config.globalProperties.StaticDict == null) {
|
||
app.config.globalProperties.StaticDict = {};
|
||
}
|
||
Object.keys(staticDict).forEach(key => {
|
||
app.config.globalProperties.StaticDict[key] = staticDict[key];
|
||
});
|
||
}
|
||
// webpack需要重写ResizeObserver,否则会报错
|
||
const resizeObserver = window.ResizeObserver;
|
||
window.ResizeObserver = class ResizeObserver extends resizeObserver {
|
||
constructor(callback) {
|
||
callback = debounce(callback, 10);
|
||
super(callback);
|
||
}
|
||
};
|
||
|
||
const app = createApp(App);
|
||
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
|
||
app.component(key, component);
|
||
}
|
||
useStaticDict(app, staticDict);
|
||
useStaticDict(app, olineDicgt);
|
||
useStaticDict(app, flowDict);
|
||
app.use(pinia).use(router).use(useTable);
|
||
app.mount('#app');
|
||
// 设置静态字典
|
||
const staticDictStore = useStaticDictStore();
|
||
staticDictStore.setStaticDict(app.config.globalProperties.StaticDict);
|