gaoshuaixing преди 3 години
родител
ревизия
3c4d524257
променени са 3 файла, в които са добавени 26 реда и са изтрити 3 реда
  1. 22 0
      electron/controller/example.js
  2. 1 0
      frontend/src/api/main.js
  3. 3 3
      frontend/src/views/base/window/Index.vue

+ 22 - 0
electron/controller/example.js

@@ -182,6 +182,28 @@ class ExampleController extends Controller {
     this.app.electron.mainWindow.removeBrowserView(browserViewObj);
     this.app.electron.mainWindow.removeBrowserView(browserViewObj);
     return true
     return true
   }  
   }  
+
+  /**
+   * 打开新窗口
+   */
+  createWindow (args) {
+    let content = null;
+    if (args.type == 'html') {
+      content = path.join('file://', electronApp.getAppPath(), args.content)
+    } else {
+      content = args.content;
+    }
+
+    let winObj = new BrowserWindow({
+      x: 10,
+      y: 10,
+      width: 980, 
+      height: 650 
+    })
+    winObj.loadURL(content);
+
+    return winObj.id
+  }  
 }
 }
 
 
 module.exports = ExampleController;
 module.exports = ExampleController;

+ 1 - 0
frontend/src/api/main.js

@@ -23,6 +23,7 @@ const ipcApiRoute = {
   executeJS: 'controller.example.executeJS',
   executeJS: 'controller.example.executeJS',
   loadViewContent: 'controller.example.loadViewContent',
   loadViewContent: 'controller.example.loadViewContent',
   removeViewContent: 'controller.example.removeViewContent',
   removeViewContent: 'controller.example.removeViewContent',
+  createWindow: 'controller.example.createWindow',
 }
 }
 
 
 /**
 /**

+ 3 - 3
frontend/src/views/base/window/Index.vue

@@ -23,6 +23,7 @@
   </div>
   </div>
 </template>
 </template>
 <script>
 <script>
+import { ipcApiRoute } from '@/api/main'
 
 
 export default {
 export default {
   data() {
   data() {
@@ -34,15 +35,14 @@ export default {
         },
         },
         {
         {
           type: 'html',
           type: 'html',
-          content: '/asset/view_example.html'
+          content: '/public/html/view_example.html'
         },        
         },        
       ],
       ],
     };
     };
   },
   },
   methods: {
   methods: {
     createWindow (index) {
     createWindow (index) {
-      const self = this;
-      self.$ipcCallMain('example.createWindow', this.views[index]).then(r => {
+      this.$ipcCallMain(ipcApiRoute.createWindow, this.views[index]).then(r => {
         console.log(r);
         console.log(r);
       })
       })
     },
     },