Browse Source

feat: qiankun子应用改造

cuiyalong 3 months ago
parent
commit
d15cca0ce0
4 changed files with 50 additions and 21 deletions
  1. 29 5
      src/main.js
  2. 3 0
      src/public-path.js
  3. 1 1
      src/router.js
  4. 17 15
      vue.config.js

+ 29 - 5
src/main.js

@@ -1,3 +1,4 @@
+import './public-path.js';
 import Vue from 'vue'
 import ViewUI from 'view-design'
 import 'view-design/dist/styles/iview.css'
@@ -35,8 +36,31 @@ Vue.component('upload-file',uploadFile)
 Vue.component('field-map',fieldMap)
 Vue.use(cascaderMulti)
 
-new Vue({
-    router,
-    store,
-    render: h => h(App)
-}).$mount('#app')
+
+let instance = null
+function render (props = {}) {
+    const { container } = props
+    instance = new Vue({
+        router,
+        store,
+        render: h => h(App)
+    }).$mount(container ? container.querySelector('#app') : '#app');
+}
+
+// 独立运行时
+// if (!window.__POWERED_BY_QIANKUN__) {
+//     render();
+// }
+
+export async function bootstrap() {
+    console.log('[vue] vue app bootstraped');
+}
+export async function mount(props) {
+    render(props);
+}
+export async function unmount() {
+    instance.$destroy();
+    instance.$el.innerHTML = '';
+    instance = null;
+    router = null;
+}

+ 3 - 0
src/public-path.js

@@ -0,0 +1,3 @@
+if (window.__POWERED_BY_QIANKUN__) {
+    __webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;
+}

+ 1 - 1
src/router.js

@@ -125,7 +125,7 @@ const routes = [
         ]
     },
     {
-        path: '/manage',
+        path: '/manage_admin',
         component: () => import('./views/manage.vue'),
         children: [
             {

+ 17 - 15
vue.config.js

@@ -1,4 +1,6 @@
 const webpack = require('webpack')
+const packageName = 'page_admin'
+
 module.exports = {
   publicPath: '/',
   outputDir: "qmx_page_admin",
@@ -12,7 +14,12 @@ module.exports = {
     }
   },
   configureWebpack: {
-    devtool: 'source-map',
+    // devtool: 'source-map',
+    output: {
+      library: 'bigMemberSubApp',
+      libraryTarget: 'umd',
+      jsonpFunction: `webpackJsonp_${packageName}`
+    },
     plugins: [
       new webpack.ProvidePlugin({
         $:"jquery",
@@ -33,8 +40,7 @@ module.exports = {
     // allowedHosts: 'all',
     proxy: {
       '^/dev-api': {
-        // target: 'http://192.168.3.240:8987',
-        target: 'https://web2-qmx_admin.jydev.jianyu360.com',
+        target: 'https://web-qmx_admin.jydev.jianyu360.com',
         changeOrigin: true,
         ws: false,
         logLevel: 'debug',
@@ -43,8 +49,7 @@ module.exports = {
         }
       },
       '^/filemanage': {
-        // target: 'http://192.168.3.240:8987',
-        target: 'https://web2-qmx_admin.jydev.jianyu360.com',
+        target: 'https://web-qmx_admin.jydev.jianyu360.com',
         changeOrigin: true,
         ws: false,
         logLevel: 'debug',
@@ -52,17 +57,14 @@ module.exports = {
           '^/filemanage': '/filemanage'
         }
       },
-      // '^/dev-api': {
-      //   target: 'https://web-qmx_admin.jydev.jianyu360.com',
-      //   changeOrigin: true,
-      //   ws: false,
-      //   logLevel: 'debug',
-      //   pathRewrite: {
-      //     '^/dev-api': '/api/admin'
-      //   }
-      // },
+      '^/jyOrderManager': {
+        target: 'https://jybx2-webtest.jydev.jianyu360.com',
+        changeOrigin: true,
+        ws: false,
+        logLevel: 'debug',
+      },
       '^/succbi': {
-        target: 'https://web2-qmx_admin.jydev.jianyu360.com',
+        target: 'https://web-qmx_admin.jydev.jianyu360.com',
         changeOrigin: true,
         ws: false,
         logLevel: 'debug'