Browse Source

Merge branch 'master' into dev

gaoshuaixing 4 years ago
parent
commit
146d0c1ead

+ 5 - 0
README.md

@@ -95,6 +95,11 @@
 8. 上传文件到sm图床demo(已完成)
 9. 开发模式实时渲染页面(已完成)
 
+## 关于pr
+请前往[GitHub项目](https://github.com/wallace5303/electron-egg)提pr(避免代码同步后,pr被覆盖掉),感谢!
+
+地址:https://github.com/wallace5303/electron-egg
+
 ## 欢迎star
 
 

+ 0 - 1
app/public/css/app.2c9f504d.css

@@ -1 +0,0 @@
-#components-layout-demo-responsive .logo[data-v-e0a55cae]{border-bottom:1px solid #e8e8e8}#components-layout-demo-responsive .pic-logo[data-v-e0a55cae]{height:32px;margin:10px}#components-layout-demo-responsive .layout-sider[data-v-e0a55cae]{border-right:1px solid #e8e8e8}#components-layout-demo-responsive .menu-item .ant-menu-item[data-v-e0a55cae]{background-color:#fff;margin-top:0;margin-bottom:0}#components-layout-demo-responsive .sub-layout-sider[data-v-e0a55cae]{background-color:#fafafa}#components-layout-demo-responsive .sub-menu-item .ant-menu-item[data-v-e0a55cae]{margin-top:0;margin-bottom:0}#components-layout-demo-responsive .sub-menu-item .ant-menu-item[data-v-e0a55cae]:after{border-right:3px solid #f2f2f2}#components-layout-demo-responsive .sub-menu-item .ant-menu-item-selected[data-v-e0a55cae]{background-color:#f2f2f2}#components-layout-demo-responsive .sub-menu-item .ant-menu-item-selected span[data-v-e0a55cae]{color:#111}#components-layout-demo-responsive .sub-menu-item.ant-menu[data-v-e0a55cae]{background:#fafafa}#components-layout-demo-responsive .sub-menu-item.ant-menu-inline[data-v-e0a55cae]{border-right:0 solid #fafafa}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50}

+ 1 - 0
app/public/css/app.3886a9b8.css

@@ -0,0 +1 @@
+#components-layout-demo-responsive .logo[data-v-8e59b2f6]{border-bottom:1px solid #e8e8e8}#components-layout-demo-responsive .pic-logo[data-v-8e59b2f6]{height:32px;margin:10px}#components-layout-demo-responsive .layout-sider[data-v-8e59b2f6]{border-right:1px solid #e8e8e8}#components-layout-demo-responsive .menu-item .ant-menu-item[data-v-8e59b2f6]{background-color:#fff;margin-top:0;margin-bottom:0}#components-layout-demo-responsive .sub-layout-sider[data-v-8e59b2f6]{background-color:#fafafa}#components-layout-demo-responsive .sub-menu-item .ant-menu-item[data-v-8e59b2f6]{margin-top:0;margin-bottom:0}#components-layout-demo-responsive .sub-menu-item .ant-menu-item[data-v-8e59b2f6]:after{border-right:3px solid #f2f2f2}#components-layout-demo-responsive .sub-menu-item .ant-menu-item-selected[data-v-8e59b2f6]{background-color:#f2f2f2}#components-layout-demo-responsive .sub-menu-item .ant-menu-item-selected span[data-v-8e59b2f6]{color:#111}#components-layout-demo-responsive .sub-menu-item.ant-menu[data-v-8e59b2f6]{background:#fafafa}#components-layout-demo-responsive .sub-menu-item.ant-menu-inline[data-v-8e59b2f6]{border-right:0 solid #fafafa}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50}

+ 1 - 1
app/public/index.html

@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>electron-egg</title><link href="/css/chunk-85272794.56abef7d.css" rel="prefetch"><link href="/js/chunk-40561e72.58ad986f.js" rel="prefetch"><link href="/js/chunk-798c13e2.24c4b750.js" rel="prefetch"><link href="/js/chunk-85272794.20d8c8f3.js" rel="prefetch"><link href="/css/app.2c9f504d.css" rel="preload" as="style"><link href="/css/chunk-vendors.a1538f74.css" rel="preload" as="style"><link href="/js/app.e8c8fa84.js" rel="preload" as="script"><link href="/js/chunk-vendors.3d275796.js" rel="preload" as="script"><link href="/css/chunk-vendors.a1538f74.css" rel="stylesheet"><link href="/css/app.2c9f504d.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but electron-egg doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/js/chunk-vendors.3d275796.js"></script><script src="/js/app.e8c8fa84.js"></script></body></html>
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>electron-egg</title><link href="/css/chunk-85272794.56abef7d.css" rel="prefetch"><link href="/js/chunk-0facd6c5.d60d4450.js" rel="prefetch"><link href="/js/chunk-23265f79.da93d63b.js" rel="prefetch"><link href="/js/chunk-2d209522.0701dc73.js" rel="prefetch"><link href="/js/chunk-85272794.20d8c8f3.js" rel="prefetch"><link href="/css/app.3886a9b8.css" rel="preload" as="style"><link href="/css/chunk-vendors.a1538f74.css" rel="preload" as="style"><link href="/js/app.ccc8bea4.js" rel="preload" as="script"><link href="/js/chunk-vendors.3d275796.js" rel="preload" as="script"><link href="/css/chunk-vendors.a1538f74.css" rel="stylesheet"><link href="/css/app.3886a9b8.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but electron-egg doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/js/chunk-vendors.3d275796.js"></script><script src="/js/app.ccc8bea4.js"></script></body></html>

File diff suppressed because it is too large
+ 0 - 0
app/public/js/app.ccc8bea4.js


File diff suppressed because it is too large
+ 0 - 0
app/public/js/app.ccc8bea4.js.map


File diff suppressed because it is too large
+ 0 - 0
app/public/js/app.e8c8fa84.js


File diff suppressed because it is too large
+ 0 - 0
app/public/js/app.e8c8fa84.js.map


File diff suppressed because it is too large
+ 0 - 0
app/public/js/chunk-0facd6c5.d60d4450.js


File diff suppressed because it is too large
+ 0 - 0
app/public/js/chunk-0facd6c5.d60d4450.js.map


+ 2 - 0
app/public/js/chunk-23265f79.da93d63b.js

@@ -0,0 +1,2 @@
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-23265f79"],{"5cb9":function(t,n,e){"use strict";e.r(n);var o=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("h3",{style:{marginBottom:"16px"}},[t._v(" demo1 打开文件夹实现 ")]),e("a-list",{attrs:{bordered:"","data-source":t.data},scopedSlots:t._u([{key:"renderItem",fn:function(n){return e("a-list-item",{on:{click:function(e){return t.openDirectry(n.id)}}},[t._v(" "+t._s(n.content)+" "),e("a-button",{attrs:{type:"link"}},[t._v(" 打开 ")])],1)}}])})],1)},a=[],i=e("a358"),u=[{content:"【下载】目录",id:"download"},{content:"【图片】目录",id:"picture"},{content:"【文档】目录",id:"doc"},{content:"【音乐】目录",id:"music"}],c={data:function(){return{data:u}},methods:{openDirectry:function(t){console.log("id:",t);var n={id:t};Object(i["b"])(n).then((function(t){if(0!==t.code)return!1})).catch((function(t){console.log("err:",t)}))}}},r=c,d=e("2877"),l=Object(d["a"])(r,o,a,!1,null,null,null);n["default"]=l.exports},a358:function(t,n,e){"use strict";e.d(n,"a",(function(){return i})),e.d(n,"b",(function(){return u}));var o=e("b775"),a={outApi:"/api/v1/outApi",openDir:"/api/v1/example/openLocalDir",uploadFile:"/api/v1/example/uploadFile",autoLaunchEnable:"/api/v1/setting/autoLaunchEnable",autoLaunchDisable:"/api/v1/setting/autoLaunchDisable",autoLaunchIsEnabled:"/api/v1/setting/autoLaunchIsEnabled"};function i(t,n){return Object(o["b"])({url:a[t],method:"post",data:n})}function u(t){return Object(o["b"])({url:a.openDir,method:"post",data:t})}}}]);
+//# sourceMappingURL=chunk-23265f79.da93d63b.js.map

File diff suppressed because it is too large
+ 0 - 0
app/public/js/chunk-23265f79.da93d63b.js.map


+ 2 - 0
app/public/js/chunk-2d209522.0701dc73.js

@@ -0,0 +1,2 @@
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d209522"],{a90d:function(t,n,e){"use strict";e.r(n);var o=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("h3",{style:{marginBottom:"16px"}},[t._v(" demo3 渲染进程与主进程IPC通信 ")]),e("a-list",{attrs:{bordered:""}},[e("a-input-search",{on:{search:t.helloHandle},model:{value:t.content,callback:function(n){t.content=n},expression:"content"}},[e("a-button",{attrs:{slot:"enterButton"},slot:"enterButton"},[t._v(" send ")])],1)],1)],1)},l=[],a={data:function(){return{content:"hello",reply:""}},methods:{helloHandle:function(t){var n=this;this.$callMain("example.hello",t).then((function(t){n.$message.info(t)}))}}},s=a,c=e("2877"),r=Object(c["a"])(s,o,l,!1,null,null,null);n["default"]=r.exports}}]);
+//# sourceMappingURL=chunk-2d209522.0701dc73.js.map

File diff suppressed because it is too large
+ 0 - 0
app/public/js/chunk-2d209522.0701dc73.js.map


+ 0 - 2
app/public/js/chunk-40561e72.58ad986f.js

@@ -1,2 +0,0 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-40561e72"],{a358:function(t,n,e){"use strict";e.d(n,"a",(function(){return i})),e.d(n,"b",(function(){return u}));var o=e("b775"),a={outApi:"/api/v1/outApi",openDir:"/api/v1/example/openLocalDir",uploadFile:"/api/v1/example/uploadFile",autoLaunchEnable:"/api/v1/setting/autoLaunchEnable",autoLaunchDisable:"/api/v1/setting/autoLaunchDisable",autoLaunchIsEnabled:"/api/v1/setting/autoLaunchIsEnabled"};function i(t,n){return Object(o["b"])({url:a[t],method:"post",data:n})}function u(t){return Object(o["b"])({url:a.openDir,method:"post",data:t})}},a778:function(t,n,e){"use strict";e.r(n);var o=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("h3",{style:{marginBottom:"16px"}},[t._v(" demo1 打开文件夹实现 ")]),e("a-list",{attrs:{bordered:"","data-source":t.data},scopedSlots:t._u([{key:"renderItem",fn:function(n){return e("a-list-item",{on:{click:function(e){return t.openDirectry(n.id)}}},[t._v(" "+t._s(n.content)+" "),e("a-button",{attrs:{type:"link"}},[t._v(" 打开 ")])],1)}}])})],1)},a=[],i=e("a358"),u=[{content:"【下载】目录",id:"download"},{content:"【图片】目录",id:"picture"},{content:"【文档】目录",id:"doc"},{content:"【音乐】目录",id:"music"}],c={data:function(){return{data:u}},methods:{openDirectry:function(t){console.log("id:",t);var n={id:t};Object(i["b"])(n).then((function(t){if(0!==t.code)return!1})).catch((function(t){console.log("err:",t)}))}}},r=c,d=e("2877"),l=Object(d["a"])(r,o,a,!1,null,null,null);n["default"]=l.exports}}]);
-//# sourceMappingURL=chunk-40561e72.58ad986f.js.map

File diff suppressed because it is too large
+ 0 - 0
app/public/js/chunk-40561e72.58ad986f.js.map


File diff suppressed because it is too large
+ 0 - 0
app/public/js/chunk-798c13e2.24c4b750.js


File diff suppressed because it is too large
+ 0 - 0
app/public/js/chunk-798c13e2.24c4b750.js.map


+ 1 - 1
app/view/index.ejs

@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>electron-egg</title><link href="/css/chunk-85272794.56abef7d.css" rel="prefetch"><link href="/js/chunk-40561e72.58ad986f.js" rel="prefetch"><link href="/js/chunk-798c13e2.24c4b750.js" rel="prefetch"><link href="/js/chunk-85272794.20d8c8f3.js" rel="prefetch"><link href="/css/app.2c9f504d.css" rel="preload" as="style"><link href="/css/chunk-vendors.a1538f74.css" rel="preload" as="style"><link href="/js/app.e8c8fa84.js" rel="preload" as="script"><link href="/js/chunk-vendors.3d275796.js" rel="preload" as="script"><link href="/css/chunk-vendors.a1538f74.css" rel="stylesheet"><link href="/css/app.2c9f504d.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but electron-egg doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/js/chunk-vendors.3d275796.js"></script><script src="/js/app.e8c8fa84.js"></script></body></html>
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>electron-egg</title><link href="/css/chunk-85272794.56abef7d.css" rel="prefetch"><link href="/js/chunk-0facd6c5.d60d4450.js" rel="prefetch"><link href="/js/chunk-23265f79.da93d63b.js" rel="prefetch"><link href="/js/chunk-2d209522.0701dc73.js" rel="prefetch"><link href="/js/chunk-85272794.20d8c8f3.js" rel="prefetch"><link href="/css/app.3886a9b8.css" rel="preload" as="style"><link href="/css/chunk-vendors.a1538f74.css" rel="preload" as="style"><link href="/js/app.ccc8bea4.js" rel="preload" as="script"><link href="/js/chunk-vendors.3d275796.js" rel="preload" as="script"><link href="/css/chunk-vendors.a1538f74.css" rel="stylesheet"><link href="/css/app.3886a9b8.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but electron-egg doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/js/chunk-vendors.3d275796.js"></script><script src="/js/app.ccc8bea4.js"></script></body></html>

+ 0 - 0
app/public/images/loding.gif → asset/images/loding.gif


+ 0 - 0
app/public/images/tray_logo.png → asset/images/tray_logo.png


+ 22 - 0
asset/loading.html

@@ -0,0 +1,22 @@
+<html>
+ <head> 
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
+  <style type="text/css">
+    body{
+      margin:0px auto;
+    }
+    #picture1 {
+      position: absolute;
+      left: 50%;
+      top: 50%;
+      transform: translate(-50%, -50%);
+    }
+  </style> 
+  <title></title> 
+ </head> 
+ <body> 
+  <div id="picture1">
+   <img src="./images/loding.gif" />
+  </div>  
+ </body>
+</html>

+ 12 - 12
electron/apis/base.js

@@ -1,21 +1,21 @@
-'use strict';
+'use strict'
 
-const AutoLaunchManager = require('../lib/AutoLaunch');
+const AutoLaunchManager = require('../lib/AutoLaunch')
 
 exports.autoLaunchEnable = function () {
-  const autoLaunchManager = new AutoLaunchManager();
-  const enable = autoLaunchManager.enable();
-  return enable;
+  const autoLaunchManager = new AutoLaunchManager()
+  const enable = autoLaunchManager.enable()
+  return enable
 }
 
 exports.autoLaunchDisable = function () {
-  const autoLaunchManager = new AutoLaunchManager();
-  const disable = autoLaunchManager.disable();
-  return disable;
+  const autoLaunchManager = new AutoLaunchManager()
+  const disable = autoLaunchManager.disable()
+  return disable
 }
 
 exports.autoLaunchIsEnabled = function () {
-  const autoLaunchManager = new AutoLaunchManager();
-  const isEnable = autoLaunchManager.isEnabled();
-  return isEnable;
-}
+  const autoLaunchManager = new AutoLaunchManager()
+  const isEnable = autoLaunchManager.isEnabled()
+  return isEnable
+}

+ 2 - 0
electron/autoUpdater.js

@@ -33,6 +33,8 @@ exports.setup = function () {
   autoUpdater.on('update-downloaded', (info) => {
     sendStatusToWindow('Update downloaded');
     // quit and update
+    MAIN_WINDOW.destroy();
+    app.quit();
     autoUpdater.quitAndInstall();
   });
 

+ 4 - 3
electron/config.js

@@ -37,6 +37,7 @@ const config = {
     minHeight: 600,
     webPreferences: {
       //webSecurity: false,
+      contextIsolation: false, // 设置此项为false后,才可在渲染进程中使用electron api
       nodeIntegration: true,
       preload: path.join(__dirname, '../preload.js')
     },
@@ -78,7 +79,7 @@ exports.get = function (flag = '', env = 'prod') {
   if (flag === 'webEgg') {
     return config.egg;
   }
-  
+
   if (flag === 'egg') {
     const eggConfig = storage.getEggConfig();
     if (env === 'prod' && eggConfig.port) {
@@ -90,8 +91,8 @@ exports.get = function (flag = '', env = 'prod') {
   if (flag === 'autoUpdate') {
     return config.autoUpdate;
   }
-  
+
   return {};
 };
 
-exports = module.exports;
+exports = module.exports;

+ 8 - 0
electron/ipc/example.js

@@ -0,0 +1,8 @@
+const { answerRenderer } = require('./index')
+
+answerRenderer('example.hello', async (msg) => {
+  let newMsg = msg + " +1"
+  let reply = ''
+  reply = '收到:' + msg + ',返回:' + newMsg
+  return reply
+})

+ 40 - 0
electron/ipc/index.js

@@ -0,0 +1,40 @@
+const { ipcMain: ipc } = require('electron')
+const path = require('path')
+const fs = require('fs-extra')
+
+/**
+ * 发送响应信息给渲染进程
+ * @param event
+ * @param channel
+ * @param data
+ * @private
+ */
+const _echo = (event, channel, data) => {
+  event.reply(`${channel}`, data)
+}
+
+/**
+ * 执行主进程函数,并响应渲染进程
+ * @param channel
+ * @param callback
+ */
+module.exports.answerRenderer = (channel, callback) => {
+  ipc.on(channel, async (event, param) => {
+    const result = await callback(param)
+    _echo(event, channel, result)
+  })
+}
+
+/**
+ * 加载所有的主程序
+ */
+module.exports.setup = () => {
+  const ipcDir = path.normalize(__dirname + '/')
+
+  fs.readdirSync(ipcDir).forEach(function (filename) {
+    if (path.extname(filename) === '.js' && filename !== 'index.js') {
+      const filePath = path.join(ipcDir, filename)
+      require(filePath)
+    }
+  })
+}

+ 8 - 1
electron/setup.js

@@ -5,17 +5,24 @@ const storage = require('./storage');
 const config = require('./config');
 const is = require('electron-is');
 const api = require('./api');
+const ipc = require('./ipc');
 
 module.exports = () => {
+  // 存储模块
   storage.setup();
+  // 日志
   logger();
+  // 自动更新
   const updateConfig = config.get('autoUpdate');
   if ((is.windows() && updateConfig.windows) || (is.macOS() && updateConfig.macOS)
     || (is.linux() && updateConfig.linux)) {
     const autoUpdater = require('./autoUpdater');
     autoUpdater.setup();
   }
+  // electron业务模块
   api.setup();
+  // 加载所有的主进程函数
+  ipc.setup();
 }
 
 function logger () {
@@ -32,4 +39,4 @@ function logger () {
   }
 
   return true;
-};
+};

+ 1 - 1
electron/tray.js

@@ -20,7 +20,7 @@ module.exports = () => {
       app.quit()
     }
   }]
-  let iconPath = path.join(app.getAppPath(), '/app/public/images/tray_logo.png');
+  let iconPath = path.join(app.getAppPath(), '/asset/images/tray_logo.png');
   APP_TRAY = new Tray(iconPath);
   const contextMenu = Menu.buildFromTemplate(trayMenuTemplate);
   APP_TRAY.setToolTip(pkg.softName);

+ 8 - 3
frontend/src/config/router.config.js

@@ -10,12 +10,17 @@ export const constantRouterMap = [
       {
         path: 'fileOpenDir',
         name: 'FileOpenDir',
-        component: () => import('@/views/file/OpenDir')
+        component: () => import('@/views/example/OpenDir')
       },
       {
         path: 'uploadFile',
         name: 'UploadFile',
-        component: () => import('@/views/file/UploadFile')
+        component: () => import('@/views/example/UploadFile')
+      },
+      {
+        path: 'ipc',
+        name: 'Ipc',
+        component: () => import('@/views/example/Ipc')
       },
       {
         path: 'setting',
@@ -24,4 +29,4 @@ export const constantRouterMap = [
       }
     ]
   }
-]
+]

+ 12 - 9
frontend/src/main.js

@@ -1,17 +1,20 @@
-import Vue from 'vue';
-import antd from 'ant-design-vue';
-import 'ant-design-vue/dist/antd.css';
-import App from './App';
-import router from './router';
+import Vue from 'vue'
+import antd from 'ant-design-vue'
+import 'ant-design-vue/dist/antd.css'
+import App from './App'
+import router from './router'
 import { VueAxios } from './utils/request'
+import InjectIpc from '@/utils/injectIpc'
 
-Vue.use(antd);
+Vue.use(antd)
 // mount axios to `Vue.$http` and `this.$http`
 Vue.use(VueAxios)
+// 全局注入IPC
+Vue.use(InjectIpc)
 
-Vue.config.productionTip = false;
+Vue.config.productionTip = false
 
 new Vue({
   router,
-  render: h => h(App),
-}).$mount('#app');
+  render: h => h(App)
+}).$mount('#app')

+ 26 - 0
frontend/src/utils/injectIpc.js

@@ -0,0 +1,26 @@
+const { ipcRenderer: ipc } = window.require('electron')
+
+/**
+ * 异步调用主函数
+ * @param ipc
+ * @param channel
+ * @param param
+ * @returns {Promise<unknown>}
+ */
+const callMain = (ipc, channel, param) => {
+  return new Promise((resolve) => {
+    // 声明渲染进程函数, 用于主进程函数回调, 返回数据
+    // 调用主进程函数
+    ipc.send(channel, param)
+    ipc.once(channel, (event, result) => {
+      resolve(result)
+    })
+  })
+}
+
+export default {
+  install(Vue) {
+    Vue.prototype.$ipc = ipc // 全局注入ipc
+    Vue.prototype.$callMain = (channel, param) => callMain(ipc, channel, param) // 全局注入调用主进程函数的方法
+  }
+}

+ 5 - 0
frontend/src/views/Layout.vue

@@ -63,6 +63,11 @@ export default {
             title: '打开文件夹',
             pageName: 'FileOpenDir',
             params: {},
+          },
+          'subMenu_3' : {
+            title: '通信',
+            pageName: 'Ipc',
+            params: {},
           }
         },
         'menu_2' : {

+ 34 - 0
frontend/src/views/example/Ipc.vue

@@ -0,0 +1,34 @@
+<template>
+  <div>
+    <h3 :style="{ marginBottom: '16px' }">
+      demo3 渲染进程与主进程IPC通信
+    </h3>
+    <a-list bordered>
+      <!-- <a-button @click="helloHandle">打招呼</a-button> -->
+      <a-input-search v-model="content" @search="helloHandle">
+        <a-button slot="enterButton">
+          send
+        </a-button>
+      </a-input-search>
+    </a-list>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      content: 'hello',
+      reply: ''
+    }
+  },
+  methods: {
+    helloHandle(value) {
+      const self = this;
+      this.$callMain('example.hello', value).then(r => {
+        self.$message.info(r);
+      })
+    }
+  }
+}
+</script>
+<style></style>

+ 0 - 0
frontend/src/views/file/OpenDir.vue → frontend/src/views/example/OpenDir.vue


+ 0 - 0
frontend/src/views/file/UploadFile.vue → frontend/src/views/example/UploadFile.vue


+ 1 - 1
main.js

@@ -72,7 +72,7 @@ async function createWindow () {
   }
 
   // loding page
-  MAIN_WINDOW.loadURL(path.join('file://', __dirname, '/app/public/loading.html'))
+  MAIN_WINDOW.loadURL(path.join('file://', __dirname, '/asset/loading.html'))
   
   // tray 
   setTray();

+ 8 - 4
package.json

@@ -1,6 +1,6 @@
 {
   "name": "electron-egg",
-  "version": "1.8.0",
+  "version": "1.9.0",
   "description": "A fast, desktop software development framework",
   "main": "main.js",
   "softName": "electron-egg",
@@ -9,7 +9,7 @@
     "dev": "electron . --env=local",
     "build-w": "electron-builder -w",
     "build-m": "electron-builder -m",
-    "build-l": "electron-builder -l",
+    "build-l": "electron-builder -l deb tar.xz",
     "web-start": "egg-scripts start --daemon --title=electron-egg --ignore-stderr --env=prod --workers=1",
     "web-stop": "egg-scripts stop --title=electron-egg",
     "web-dev": "egg-bin dev",
@@ -77,7 +77,10 @@
       ]
     },
     "linux": {
-      "icon": "build/icons"
+      "icon": "build/icons/256x256.png",
+      "target": [
+        "deb"
+      ]
     }
   },
   "repository": "https://github.com/wallace5303/electron-egg.git",
@@ -85,7 +88,7 @@
     "Electron",
     "Egg"
   ],
-  "author": "wallace5303",
+  "author": "wallace5303, Inc <530353222@qq.com>",
   "license": "Apache",
   "devDependencies": {
     "autod": "^3.0.1",
@@ -112,6 +115,7 @@
     "egg-view-ejs": "^2.0.0",
     "electron-is": "^3.0.0",
     "electron-log": "^4.2.2",
+    "electron-updater": "^4.3.5",
     "get-port": "^5.1.1",
     "glob": "^7.1.6",
     "lodash": "^4.17.11",

Some files were not shown because too many files changed in this diff