import Vue from "vue"; import LeftMenu from "./components/left-menu/LeftMenu.vue"; import PageHeader from "./components/page-header/PageHeader.vue"; import BreadcrumbNav from "./components/breadcrumb-nav/BreadcrumbNav.vue"; import Login from "./components/auth/Login.vue"; import { routeTopologyService } from "./services/route-topology.service"; import { breadcrumbNavService } from "./services/breadcrumb-nav.service"; import Contextmenu from "vue-contextmenujs"; import { OauthConfig } from "./model/OauthConfig"; import { CoreConfig } from "./model/CoreConfig"; import { oauthService } from "./services/oauth.service"; import { userStore } from "./stores/user.store"; import { SCOPE, STATE } from "./constants/config/oauth.config"; import { AuthType } from "./constants/enum/auth-type.enum"; import "./styles/index.scss"; export * from "./components/index"; export * from "./constants/index"; export * from "./model/index"; export * from "./services/index"; export * from "./stores/index"; export * from "./types/dc"; const components: any = { PageHeader: PageHeader, LeftMenu: LeftMenu, BreadcrumbNav: BreadcrumbNav, Login: Login, }; const install: any = function (vue: typeof Vue, options: CoreConfig) { if (install.installed) return; install.installed = true; Object.keys(components).forEach((key) => { vue.component(key, components[key]); }); // 初始化授权类型 options.authPreferTo = options.authPreferTo ? options.authPreferTo : AuthType.OAUTH.code; // 初始化oauth的基本数据 const oauthConfig: OauthConfig = new OauthConfig(options.oauth); oauthConfig.scope = oauthConfig.scope ? oauthConfig.scope : SCOPE; oauthConfig.state = oauthConfig.state ? oauthConfig.state : STATE; vue.use(Contextmenu as any); // Vue.use(Modal); vue.prototype.$dc = { sysId: options.sysId || "", baseApi: options.baseApi || "", iconUrl: options.iconUrl || "", btoaPassword: options.btoaPassword || false, authPreferTo: options.authPreferTo, oauth: oauthConfig, cas: options.cas, wxQyOauth: options.wxQyOauth, }; vue.prototype.$breadcrumbNavService = breadcrumbNavService; vue.prototype.$routeTopologyService = routeTopologyService; vue.prototype.$oauthService = oauthService; vue.prototype.$userStore = userStore; }; const VueDc = { install, }; export default VueDc;