From f7b2f70923d839d01da2b3b2f4f911708ebd145d Mon Sep 17 00:00:00 2001 From: ljc <574805242@qq.com> Date: Wed, 16 Nov 2016 15:09:58 +0800 Subject: [PATCH] init src --- .babelrc | 4 + .gitignore | 47 +-- README.md | 67 +++- app/electron.js | 101 ++++++ app/icons/icon.icns | Bin 0 -> 121562 bytes app/icons/icon.ico | Bin 0 -> 370070 bytes app/icons/icon.png | Bin 0 -> 50667 bytes app/ipcMainSets.js | 132 ++++++++ app/main.ejs | 12 + app/menuTemplate.js | 164 ++++++++++ app/package.json | 21 ++ app/src/App.vue | 29 ++ app/src/background/excelUtils.js | 174 +++++++++++ app/src/background/filterUtils.js | 146 +++++++++ app/src/background/generateHTMLString.js | 47 +++ app/src/background/index.html | 9 + app/src/background/index.js | 176 +++++++++++ app/src/components/FirstScreenPageView.vue | 72 +++++ .../FirstScreenPageView/ColSelDialog.vue | 294 ++++++++++++++++++ .../FirstScreenPageView/ExcelDisplay.vue | 195 ++++++++++++ .../FilterFormDoubleColsRange.vue | 241 ++++++++++++++ .../FilterFormMultiCalc.vue | 218 +++++++++++++ .../FilterFormSingleLogic.vue | 176 +++++++++++ .../FirstScreenPageView/FilterPanel.vue | 244 +++++++++++++++ .../FirstScreenPageView/FilterTag.vue | 105 +++++++ .../FirstScreenPageView/FilterTagList.vue | 68 ++++ .../FirstScreenPageView/GroupSelect.vue | 49 +++ .../FirstScreenPageView/SheetOfExcel.vue | 113 +++++++ app/src/components/InstructionsPageView.vue | 51 +++ .../InstructionsPageView/Instructions.vue | 198 ++++++++++++ .../InstructionsPageView/assets/qrcode.jpg | Bin 0 -> 24890 bytes app/src/components/common/FileList.vue | 172 ++++++++++ app/src/components/common/Footer.vue | 198 ++++++++++++ app/src/components/common/Header.vue | 114 +++++++ app/src/components/common/Loading.vue | 81 +++++ app/src/components/common/SideBar.vue | 107 +++++++ app/src/components/common/WindowTop.vue | 79 +++++ app/src/components/common/assets/O2-icon.png | Bin 0 -> 23257 bytes app/src/components/common/assets/common.scss | 161 ++++++++++ app/src/components/common/assets/content.scss | 101 ++++++ app/src/components/common/assets/o2logo.png | Bin 0 -> 2819 bytes app/src/components/common/assets/select.scss | 47 +++ app/src/components/common/assets/table | 0 app/src/components/common/assets/table.scss | 148 +++++++++ app/src/components/common/assets/tabs.scss | 221 +++++++++++++ app/src/main.js | 24 ++ app/src/routes.js | 16 + app/src/utils/ExcelSet.js | 106 +++++++ app/src/vuex/actions.js | 87 ++++++ app/src/vuex/getters.js | 72 +++++ app/src/vuex/modules/fileList.js | 58 ++++ app/src/vuex/modules/filterList.js | 183 +++++++++++ app/src/vuex/modules/index.js | 9 + app/src/vuex/modules/window.js | 29 ++ app/src/vuex/mutation-types.js | 25 ++ app/src/vuex/store.js | 12 + config.js | 40 +++ package.json | 82 +++++ tasks/release.js | 42 +++ tasks/runner.js | 61 ++++ tasks/vue/route.js | 46 +++ tasks/vue/route.template.txt | 11 + tasks/vue/routes.template.txt | 4 + webpack.config.js | 128 ++++++++ 64 files changed, 5579 insertions(+), 38 deletions(-) create mode 100644 .babelrc create mode 100644 app/electron.js create mode 100644 app/icons/icon.icns create mode 100644 app/icons/icon.ico create mode 100644 app/icons/icon.png create mode 100644 app/ipcMainSets.js create mode 100644 app/main.ejs create mode 100644 app/menuTemplate.js create mode 100644 app/package.json create mode 100644 app/src/App.vue create mode 100644 app/src/background/excelUtils.js create mode 100644 app/src/background/filterUtils.js create mode 100644 app/src/background/generateHTMLString.js create mode 100644 app/src/background/index.html create mode 100644 app/src/background/index.js create mode 100644 app/src/components/FirstScreenPageView.vue create mode 100644 app/src/components/FirstScreenPageView/ColSelDialog.vue create mode 100644 app/src/components/FirstScreenPageView/ExcelDisplay.vue create mode 100644 app/src/components/FirstScreenPageView/FilterFormDoubleColsRange.vue create mode 100644 app/src/components/FirstScreenPageView/FilterFormMultiCalc.vue create mode 100644 app/src/components/FirstScreenPageView/FilterFormSingleLogic.vue create mode 100644 app/src/components/FirstScreenPageView/FilterPanel.vue create mode 100644 app/src/components/FirstScreenPageView/FilterTag.vue create mode 100644 app/src/components/FirstScreenPageView/FilterTagList.vue create mode 100644 app/src/components/FirstScreenPageView/GroupSelect.vue create mode 100644 app/src/components/FirstScreenPageView/SheetOfExcel.vue create mode 100644 app/src/components/InstructionsPageView.vue create mode 100644 app/src/components/InstructionsPageView/Instructions.vue create mode 100644 app/src/components/InstructionsPageView/assets/qrcode.jpg create mode 100644 app/src/components/common/FileList.vue create mode 100644 app/src/components/common/Footer.vue create mode 100644 app/src/components/common/Header.vue create mode 100644 app/src/components/common/Loading.vue create mode 100644 app/src/components/common/SideBar.vue create mode 100644 app/src/components/common/WindowTop.vue create mode 100644 app/src/components/common/assets/O2-icon.png create mode 100644 app/src/components/common/assets/common.scss create mode 100644 app/src/components/common/assets/content.scss create mode 100644 app/src/components/common/assets/o2logo.png create mode 100644 app/src/components/common/assets/select.scss create mode 100644 app/src/components/common/assets/table create mode 100644 app/src/components/common/assets/table.scss create mode 100644 app/src/components/common/assets/tabs.scss create mode 100644 app/src/main.js create mode 100644 app/src/routes.js create mode 100644 app/src/utils/ExcelSet.js create mode 100644 app/src/vuex/actions.js create mode 100644 app/src/vuex/getters.js create mode 100644 app/src/vuex/modules/fileList.js create mode 100644 app/src/vuex/modules/filterList.js create mode 100644 app/src/vuex/modules/index.js create mode 100644 app/src/vuex/modules/window.js create mode 100644 app/src/vuex/mutation-types.js create mode 100644 app/src/vuex/store.js create mode 100644 config.js create mode 100644 package.json create mode 100644 tasks/release.js create mode 100644 tasks/runner.js create mode 100644 tasks/vue/route.js create mode 100644 tasks/vue/route.template.txt create mode 100644 tasks/vue/routes.template.txt create mode 100644 webpack.config.js diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..d5876c1 --- /dev/null +++ b/.babelrc @@ -0,0 +1,4 @@ +{ + "presets": ["es2015", "stage-0"], + "plugins": ["transform-runtime"] +} diff --git a/.gitignore b/.gitignore index 5148e52..a5bcbc1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,37 +1,12 @@ -# Logs -logs -*.log -npm-debug.log* - -# Runtime data -pids -*.pid -*.seed - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directories +.DS_Store +app/dist/index.html +app/dist/build.js +builds +builds/* node_modules -jspm_packages - -# Optional npm cache directory -.npm - -# Optional REPL history -.node_repl_history +npm-debug.log +npm-debug.log.* +thumbs.db +!.gitkeep +build/ +dist/ diff --git a/README.md b/README.md index 9e8f2b9..d749365 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,65 @@ -# xcel -一个基于 Electron 和 Vue 的 Excel 数据过滤工具——凹凸实验室出品 https://aotu.io/notes/2016/11/15/xcel/ +# XCel + +> An ultimate excel data filter + +## Build Setup + +``` bash +# install dependencies +npm install + +# serve with hot reload at localhost:9080 +npm run dev + +# build electron app for production +npm run build + +# run webpack in production +npm run pack +``` + +More information can be found [here](https://simulatedgreg.gitbooks.io/electron-vue/content/docs/npm_scripts.html). + +--- + +This project was generated from [electron-vue](https://github.com/SimulatedGREG/electron-vue) using [vue-cli](https://github.com/vuejs/vue-cli). Documentation about this project can be found [here](https://simulatedgreg.gitbooks.io/electron-vue/content/index.html). + +## Initialize the project may encounter problems +``` +ERROR in dlopen(/Users/**/Desktop/XCel/node_modules/node-sass/vendor/darwin-x64-48/binding.node, 1): no suitable image found. Did find: + /Users/**/Desktop/XCel/node_modules/node-sass/vendor/darwin-x64-48/binding.node: truncated mach-o error: segment __TEXT extends to 1212416 which is past end of file 260668 + @ ./~/vue-style-loader!./~/css-loader!./~/vue-loader/lib/style-rewriter.js!./~/sass-loader!./~/vue-loader/lib/selector.js?type=style&index=0!./app/src/App.vue 4:14-240 13:2-17:4 14:20-246 + +``` +What fixed it for me was the following: +``` +npm rebuild node-sass +``` + + +## Speed up the installation of electron in China + +### 临时方式 + +``` +DEBUG=* ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/" npm install electron +``` + +加入DEBUG=*是为了查看调试信息,确认下载源是否替换成功。 + +### 永久方式 + +给环境变量文件(.zshrc/.bashrc)加入环境变量值(前者对应zsh,后者是bash,自己看情况) + +``` +export ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/" +``` + +另外某些情况下会出现安装包下载不完整导致electron安装失败的原因,可以尝试清除electron缓存。 + +缓存的默认地址在: + +``` +$HOME/.electron +``` +通过添加ELECTRON_CUSTOM_DIR可以自定义缓存目录,方法同上。 \ No newline at end of file diff --git a/app/electron.js b/app/electron.js new file mode 100644 index 0000000..244a458 --- /dev/null +++ b/app/electron.js @@ -0,0 +1,101 @@ +'use strict' + +const electron = require('electron') +const path = require('path') +const menuTemplate = require("./menuTemplate") +const ipcMainSets = require("./ipcMainSets") +// const config = require('../config'); + +const app = electron.app +const BrowserWindow = electron.BrowserWindow +const Menu = electron.Menu +let mainWindow +let backgroundWindow +var windowBounds = {} + +let config = {} +if (process.env.NODE_ENV === 'development') { + config = require('../config') + config.mainUrl = `http://localhost:${config.port}` +} else { + config.devtron = false + config.mainUrl = `file://${__dirname}/dist/index.html` +} +config.backUrl = `file://${__dirname}/dist/background/index.html` +config.isDev = process.env.NODE_ENV === 'development' +console.log("主进程pid:", process.pid) + +function createMainWindow () { + var win = new BrowserWindow({ + height: 850, + width: 1280, + minWidth: 1120, + minHeight: 768, + backgroundColor: "#f5f5f5", + fullscreenable: false, + frame: false, + show: false + }) + windowBounds = win.getBounds() + win.loadURL(config.mainUrl) + + if (config.isDev) { + BrowserWindow.addDevToolsExtension(path.join(__dirname, '../node_modules/devtron')) + + let installExtension = require('electron-devtools-installer') + + installExtension.default(installExtension.VUEJS_DEVTOOLS) + .then((name) => win.webContents.openDevTools()) + .catch((err) => console.log('An error occurred: ', err)) + } + + win.on('closed', () => { + console.log("触发 closed") + mainWindow = null + backgroundWindow = null + // 在Mac中完全退出程序,而不会留在dock中 + app.quit() + }) + + win.on('ready-to-show', () => { + win.show() + win.focus() + }) + console.log('mainWindow opened') + return win +} + +function createBackgroundWindow () { + var win = new BrowserWindow({ + show: config.isDev + }) + win.loadURL(config.backUrl) + console.log("backgroundWindow opened") + return win +} + +app.on('ready', () => { + console.log("ready") + mainWindow = createMainWindow() + backgroundWindow = createBackgroundWindow() + ipcMainSets(mainWindow, backgroundWindow) + const menu = Menu.buildFromTemplate(menuTemplate) + Menu.setApplicationMenu(menu) +}) + + + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit() + } +}) + +// 当应用被激活时触发,常用于点击应用的 dock 图标的时候。 +// 现在取消保留在Dock中,完全退出 +app.on('activate', () => { + if (mainWindow.isDestroyed()) { + mainWindow = createMainWindow() + backgroundWindow = createBackgroundWindow() + } +}) diff --git a/app/icons/icon.icns b/app/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..b67b2ced5dcc30a27a71b107a66794a724f6a4d8 GIT binary patch literal 121562 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