123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- import Vue from 'vue'
- import axios from './router/axios'
- import VueAxios from 'vue-axios'
- import App from './App'
- import router from './router/router'
- import './permission' // 权限
- import './error' // 日志
- import './cache' //页面缓存
- import store from './store'
- import { loadStyle } from './util/util'
- import * as urls from '@/config/env'
- import Element from 'element-ui'
- import { iconfontUrl, iconfontVersion } from '@/config/env'
- import i18n from './lang' // Internationalization
- import './styles/common.scss'
- import basicBlock from './components/basic-block/main'
- import basicContainer from './components/basic-container/main'
- import thirdRegister from './components/third-register/main'
- import avueUeditor from 'avue-plugin-ueditor'
- import website from '@/config/website'
- import crudCommon from '@/mixins/crud'
- import Example from './components/example'
- import Pagination from './components/Pagination'
- import directive from './util/directives'
- import { dictDataEcho } from './util/util' //字典数据回显
- //cdn迁移进src目录
- import './assets/cdn/element-ui/2.15.1/theme-chalk/index.css'
- import './assets/cdn/animate/3.5.2/animate.css'
- import './assets/cdn/iconfont/avue/iconfont.css'
- import './assets/cdn/iconfont/saber/iconfont.css'
- import './assets/cdn/avue/2.8.18/index.css'
- import { set } from 'nprogress'
- import { setToken } from '@/util/auth'
- // 注册全局crud驱动
- window.$crudCommon = crudCommon
- // 加载Vue拓展
- Vue.use(router)
- Vue.use(VueAxios, axios)
- Vue.use(Element, {
- i18n: (key, value) => i18n.t(key, value),
- })
- Vue.use(window.AVUE, {
- size: 'small',
- tableSize: 'small',
- calcHeight: 65,
- i18n: (key, value) => i18n.t(key, value),
- })
- Vue.use(Example)
- Vue.use(Pagination)
- Vue.use(set)
- Vue.use(directive)
- Element.Select.props.filterable = {
- type: Boolean,
- default: true,
- }
- Element.Select.props.clearable = {
- type: Boolean,
- default: true,
- }
- Element.TimePicker.props.editable = {
- type: Boolean,
- default: false,
- }
- Element.TimeSelect.props.editable = {
- type: Boolean,
- default: false,
- }
- Element.DatePicker.props.editable = {
- type: Boolean,
- default: false,
- }
- Element.Dialog.props.closeOnClickModal.default = false
- Element.Dialog.props.appendToBody.default = true
- // 注册全局容器
- Vue.component('basicContainer', basicContainer)
- Vue.component('basicBlock', basicBlock)
- Vue.component('thirdRegister', thirdRegister)
- Vue.component('avueUeditor', avueUeditor)
- Vue.component('Example', Example)
- Vue.component('Pagination', Pagination)
- Vue.prototype.msgSuccess = function (msg) {
- this.$message({ showClose: true, message: msg, type: 'success' })
- }
- Vue.prototype.msgError = function (msg) {
- this.$message({ showClose: true, message: msg, type: 'error' })
- }
- Vue.prototype.msgWarning = function (msg) {
- this.$message({ showClose: true, message: msg, type: 'warning' })
- }
- Vue.prototype.msgInfo = function (msg) {
- this.$message.info(msg)
- }
- Vue.prototype.dictDataEcho = dictDataEcho
- // 加载相关url地址
- Object.keys(urls).forEach((key) => {
- Vue.prototype[key] = urls[key]
- })
- // 加载website
- Vue.prototype.website = website
- // 动态加载阿里云字体库
- iconfontVersion.forEach((ele) => {
- loadStyle(iconfontUrl.replace('$key', ele))
- })
- //乾坤代码
- Vue.config.productionTip = false
- let instance = null
- function render({ props = {} } = {}) {
- console.log(props)
- const { container } = props
- instance = new Vue({
- router,
- store,
- i18n,
- data() { },
- render: (h) => h(App),
- }).$mount(container ? container.querySelector('#fjhxCloudVue') : '#fjhxCloudVue')
- console.log(instance)
- }
- // 独立运行时
- ; (function () {
- console.log(window.__POWERED_BY_QIANKUN__)
- if (window.__POWERED_BY_QIANKUN__) {
- __webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__
- } else {
- render()
- }
- })()
- export async function bootstrap() {
- console.log('vue app bootstraped')
- }
- export async function mount(props) {
- //设置token
- console.log(props.data.token)
- //挂载父路由
- Vue.prototype.$parentRouter = props.data.router
- if (props.data.token != null) {
- //注入父应用传来的登录信息
- setToken(props.data.token.access_token)
- store.commit('SET_TOKEN', props.data.token.access_token)
- store.commit('SET_REFRESH_TOKEN', props.data.token.refresh_token)
- store.commit('SET_TENANT_ID', props.data.token.tenant_id)
- store.commit('SET_USER_INFO', props.data.token)
- //设置监听事件触发方法,全局共享
- props.onGlobalStateChange((state, prev) => {
- // state: 变更后的状态; prev 变更前的状态
- console.log(state, prev, '子组件监听')
- })
- }
- //发送数据给全局
- // props.setGlobalState({ token: 21312312 })
- render(props)
- }
- export async function unmount() {
- // instance.$destroy();
- instance.$el.innerHTML = ''
- instance = null
- // router = null;
- }
- Vue.config.productionTip = false
|