├── static └── .gitkeep ├── .gitattributes ├── config ├── prod.env.js ├── dev.env.js └── index.js ├── src ├── assets │ ├── large.png │ ├── logo.png │ ├── small.png │ ├── eventBus.js │ ├── normal.png │ ├── logo_small.png │ ├── logo_normal.png │ └── logo_w_small.png ├── components │ ├── Trash.vue │ ├── Note.vue │ ├── NewNote.vue │ ├── Editor.vue │ ├── NoteList.vue │ ├── ToolBar.vue │ ├── SideBar.vue │ └── Login.vue ├── main.js ├── router │ └── index.js ├── api │ └── index.js └── App.vue ├── .editorconfig ├── .gitignore ├── .babelrc ├── index.html ├── .postcssrc.js ├── LICENSE ├── package.json └── README.md /static/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.js linguist-language=vue -------------------------------------------------------------------------------- /config/prod.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | module.exports = { 3 | NODE_ENV: '"production"' 4 | } 5 | -------------------------------------------------------------------------------- /src/assets/large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itning/yunshu-notes/master/src/assets/large.png -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itning/yunshu-notes/master/src/assets/logo.png -------------------------------------------------------------------------------- /src/assets/small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itning/yunshu-notes/master/src/assets/small.png -------------------------------------------------------------------------------- /src/assets/eventBus.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | import Vue from 'Vue'; 3 | 4 | export default new Vue(); 5 | -------------------------------------------------------------------------------- /src/assets/normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itning/yunshu-notes/master/src/assets/normal.png -------------------------------------------------------------------------------- /src/assets/logo_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itning/yunshu-notes/master/src/assets/logo_small.png -------------------------------------------------------------------------------- /src/assets/logo_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itning/yunshu-notes/master/src/assets/logo_normal.png -------------------------------------------------------------------------------- /src/assets/logo_w_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itning/yunshu-notes/master/src/assets/logo_w_small.png -------------------------------------------------------------------------------- /config/dev.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const merge = require('webpack-merge') 3 | const prodEnv = require('./prod.env') 4 | 5 | module.exports = merge(prodEnv, { 6 | NODE_ENV: '"development"' 7 | }) 8 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /src/components/Trash.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | /dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Editor directories and files 9 | .idea 10 | .vscode 11 | *.suo 12 | *.ntvs* 13 | *.njsproj 14 | *.sln 15 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { 4 | "modules": false, 5 | "targets": { 6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] 7 | } 8 | }], 9 | "stage-2" 10 | ], 11 | "plugins": ["transform-vue-jsx", "transform-runtime"] 12 | } 13 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 云舒云笔记 7 | 8 | 9 |
10 | 11 | 12 | -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | "plugins": { 5 | "postcss-import": {}, 6 | "postcss-url": {}, 7 | // to edit target browsers: use "browserslist" field in package.json 8 | "autoprefixer": {} 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/components/Note.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 29 | 30 | 33 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | // The Vue build version to load with the `import` command 2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias. 3 | import Vue from 'vue' 4 | import App from './App' 5 | import router from './router' 6 | import ElementUI from 'element-ui' 7 | import VueQuillEditor from 'vue-quill-editor' 8 | import VueResource from 'vue-resource' 9 | import 'element-ui/lib/theme-chalk/index.css' 10 | import 'quill/dist/quill.core.css' 11 | import 'quill/dist/quill.snow.css' 12 | import 'quill/dist/quill.bubble.css' 13 | 14 | Vue.config.productionTip = false; 15 | 16 | Vue.use(ElementUI); 17 | Vue.use(VueQuillEditor); 18 | Vue.use(VueResource); 19 | 20 | /* eslint-disable no-new */ 21 | new Vue({ 22 | el: '#app', 23 | router, 24 | components: {App}, 25 | template: '' 26 | }); 27 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | import Note from '../components/Note' 4 | import NewNote from '../components/NewNote' 5 | import Login from '../components/Login' 6 | import Trash from '../components/Trash' 7 | 8 | Vue.use(Router); 9 | 10 | export default new Router({ 11 | mode: 'history', 12 | routes: [ 13 | { 14 | path: '/note', 15 | name: 'Note', 16 | component: Note, 17 | }, 18 | { 19 | path: '/new_note', 20 | name: 'NewNote', 21 | component: NewNote 22 | }, 23 | { 24 | path: '/trash', 25 | name: 'Trash', 26 | component: Trash 27 | }, 28 | { 29 | path: '/login', 30 | name: 'Login', 31 | component: Login, 32 | props: true 33 | }, 34 | { 35 | path: '/*', 36 | redirect: '/note' 37 | } 38 | ] 39 | }) 40 | -------------------------------------------------------------------------------- /src/api/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const BASE_URL = "http://localhost:8080"; 3 | 4 | export function NOTE_BOOK() { 5 | return { 6 | "getNoteBook": BASE_URL + '/note_books', 7 | "delNoteBook": BASE_URL + '/note_book/', 8 | "upNoteBook": BASE_URL + '/note_book/', 9 | "newNoteBook": BASE_URL + '/note_book' 10 | } 11 | } 12 | 13 | export function NOTE() { 14 | return { 15 | "getNotes": BASE_URL + '/notes/', 16 | "getNote": BASE_URL + '/note/', 17 | "delNote": BASE_URL + '/note/', 18 | "upNote": BASE_URL + '/note/', 19 | "newNote": BASE_URL + '/note' 20 | } 21 | } 22 | 23 | export function USER() { 24 | return { 25 | "login": BASE_URL + '/login', 26 | "logout": BASE_URL + '/logout', 27 | "registered": BASE_URL + '/registered', 28 | "getLoginUser": BASE_URL + '/getLoginUser', 29 | "getCode": BASE_URL + '/get_code?email=', 30 | "getVCode": BASE_URL + '/forget_get_code?email=', 31 | "forgetPassword": BASE_URL + '/forget_password', 32 | "changeUserProfile": BASE_URL + '/change_user_profile' 33 | } 34 | } 35 | 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 itning 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 43 | 44 | 56 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "yunshu-notes", 3 | "version": "1.0.0", 4 | "description": "A Vue.js project", 5 | "author": "itning ", 6 | "private": true, 7 | "scripts": { 8 | "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", 9 | "start": "npm run dev", 10 | "build": "node build/build.js" 11 | }, 12 | "dependencies": { 13 | "dayjs": "^1.7.2", 14 | "element-ui": "^2.4.3", 15 | "vue": "^2.5.2", 16 | "vue-quill-editor": "^3.0.6", 17 | "vue-resource": "^1.5.1", 18 | "vue-router": "^3.0.1" 19 | }, 20 | "devDependencies": { 21 | "autoprefixer": "^7.1.2", 22 | "babel-core": "^6.22.1", 23 | "babel-helper-vue-jsx-merge-props": "^2.0.3", 24 | "babel-loader": "^7.1.1", 25 | "babel-plugin-syntax-jsx": "^6.18.0", 26 | "babel-plugin-transform-runtime": "^6.22.0", 27 | "babel-plugin-transform-vue-jsx": "^3.5.0", 28 | "babel-preset-env": "^1.3.2", 29 | "babel-preset-stage-2": "^6.22.0", 30 | "chalk": "^2.0.1", 31 | "copy-webpack-plugin": "^4.0.1", 32 | "css-loader": "^0.28.0", 33 | "extract-text-webpack-plugin": "^3.0.0", 34 | "file-loader": "^1.1.4", 35 | "friendly-errors-webpack-plugin": "^1.6.1", 36 | "html-webpack-plugin": "^2.30.1", 37 | "node-notifier": "^5.1.2", 38 | "optimize-css-assets-webpack-plugin": "^3.2.0", 39 | "ora": "^1.2.0", 40 | "portfinder": "^1.0.13", 41 | "postcss-import": "^11.0.0", 42 | "postcss-loader": "^2.0.8", 43 | "postcss-url": "^7.2.1", 44 | "rimraf": "^2.6.0", 45 | "semver": "^5.3.0", 46 | "shelljs": "^0.7.6", 47 | "uglifyjs-webpack-plugin": "^1.1.1", 48 | "url-loader": "^0.5.8", 49 | "vue-loader": "^13.3.0", 50 | "vue-style-loader": "^3.0.1", 51 | "vue-template-compiler": "^2.5.2", 52 | "webpack": "^3.6.0", 53 | "webpack-bundle-analyzer": "^2.9.0", 54 | "webpack-dev-server": "^2.9.1", 55 | "webpack-merge": "^4.1.0" 56 | }, 57 | "engines": { 58 | "node": ">= 6.0.0", 59 | "npm": ">= 3.0.0" 60 | }, 61 | "browserslist": [ 62 | "> 1%", 63 | "last 2 versions", 64 | "not ie <= 8" 65 | ] 66 | } 67 | -------------------------------------------------------------------------------- /config/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | // Template version: 1.3.1 3 | // see http://vuejs-templates.github.io/webpack for documentation. 4 | 5 | const path = require('path') 6 | 7 | module.exports = { 8 | dev: { 9 | 10 | // Paths 11 | assetsSubDirectory: 'static', 12 | assetsPublicPath: '/', 13 | proxyTable: {}, 14 | 15 | // Various Dev Server settings 16 | host: 'localhost', // can be overwritten by process.env.HOST 17 | port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined 18 | autoOpenBrowser: false, 19 | errorOverlay: true, 20 | notifyOnErrors: true, 21 | poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- 22 | 23 | 24 | /** 25 | * Source Maps 26 | */ 27 | 28 | // https://webpack.js.org/configuration/devtool/#development 29 | devtool: 'cheap-module-eval-source-map', 30 | 31 | // If you have problems debugging vue-files in devtools, 32 | // set this to false - it *may* help 33 | // https://vue-loader.vuejs.org/en/options.html#cachebusting 34 | cacheBusting: true, 35 | 36 | cssSourceMap: true 37 | }, 38 | 39 | build: { 40 | // Template for index.html 41 | index: path.resolve(__dirname, '../dist/index.html'), 42 | 43 | // Paths 44 | assetsRoot: path.resolve(__dirname, '../dist'), 45 | assetsSubDirectory: 'static', 46 | assetsPublicPath: '/', 47 | 48 | /** 49 | * Source Maps 50 | */ 51 | 52 | productionSourceMap: true, 53 | // https://webpack.js.org/configuration/devtool/#production 54 | devtool: '#source-map', 55 | 56 | // Gzip off by default as many popular static hosts such as 57 | // Surge or Netlify already gzip all static assets for you. 58 | // Before setting to `true`, make sure to: 59 | // npm install --save-dev compression-webpack-plugin 60 | productionGzip: false, 61 | productionGzipExtensions: ['js', 'css'], 62 | 63 | // Run the build command with an extra argument to 64 | // View the bundle analyzer report after build finishes: 65 | // `npm run build --report` 66 | // Set to `true` or `false` to always turn it on or off 67 | bundleAnalyzerReport: process.env.npm_config_report 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 云舒云笔记 2 | 3 | > 基于HBASE的大数据存储分布式云计算笔记 4 | > 5 | > 云笔记使用大数据成熟的分布式存储解决方案,解决了传统笔记数据日益膨胀,数据丢失等问题。云笔记通过数据分析、用户画像等技术实现,能够通过精准推送其他人公开分享的云笔记来达到扩充用户知识行囊的目的,并且通过独立的账户安全体系来达到笔记安全私有化,保证用户独立的空间。且分布式存储可以达到用户笔记空间无限大,笔记平台响应式,满足用户不同平台办公的需求。 6 | 7 | [后端项目地址:https://github.com/itning/yunshu-notes-r](https://github.com/itning/yunshu-notes-r) 8 | 9 | [![GitHub stars](https://img.shields.io/github/stars/itning/yunshu-notes.svg?style=social&label=Stars)](https://github.com/itning/yunshu-notes/stargazers) 10 | [![GitHub forks](https://img.shields.io/github/forks/itning/yunshu-notes.svg?style=social&label=Fork)](https://github.com/itning/yunshu-notes/network/members) 11 | [![GitHub watchers](https://img.shields.io/github/watchers/itning/yunshu-notes.svg?style=social&label=Watch)](https://github.com/itning/yunshu-notes/watchers) 12 | [![GitHub followers](https://img.shields.io/github/followers/itning.svg?style=social&label=Follow)](https://github.com/itning?tab=followers) 13 | 14 | [![GitHub issues](https://img.shields.io/github/issues/itning/yunshu-notes.svg)](https://github.com/itning/yunshu-notes/issues) 15 | [![GitHub license](https://img.shields.io/github/license/itning/yunshu-notes.svg)](https://github.com/itning/yunshu-notes/blob/master/LICENSE) 16 | [![GitHub last commit](https://img.shields.io/github/last-commit/itning/yunshu-notes.svg)](https://github.com/itning/yunshu-notes/commits) 17 | [![GitHub release](https://img.shields.io/github/release/itning/yunshu-notes.svg)](https://github.com/itning/yunshu-notes/releases) 18 | [![GitHub repo size in bytes](https://img.shields.io/github/repo-size/itning/yunshu-notes.svg)](https://github.com/itning/yunshu-notes) 19 | [![HitCount](http://hits.dwyl.io/itning/yunshu-notes.svg)](http://hits.dwyl.io/itning/yunshu-notes) 20 | [![language](https://img.shields.io/badge/language-Vue-green.svg)](https://github.com/itning/yunshu-notes) 21 | 22 | ## 构建步骤 23 | 24 | ``` js 25 | # 安装依赖 26 | npm install 27 | 28 | # 开发模式部署项目 29 | npm run dev 30 | 31 | # 构建项目 32 | npm run build 33 | ``` 34 | 35 | ## 项目技术栈 36 | 37 | 38 | [vue-resource](https://github.com/pagekit/vue-resource) HTTP客户端 39 | 40 | [dayjs](https://github.com/iamkun/dayjs) 一个轻量的处理时间和日期的 JavaScript 库 41 | 42 | [element](https://github.com/ElemeFE/element) 一个Vue2.0 的UI 界面库 43 | 44 | [vue-quill-editor](https://github.com/surmon-china/vue-quill-editor) 基于 Quill、适用于 Vue 的富文本编辑器,支持服务端渲染和单页应用。 45 | 46 | [vue-router](https://github.com/vuejs/vue-router) Vue 路由 47 | 48 | ## 开源协议 49 | 50 | MIT 51 | -------------------------------------------------------------------------------- /src/components/NewNote.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 76 | 77 | 80 | -------------------------------------------------------------------------------- /src/components/Editor.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 94 | 95 | 98 | -------------------------------------------------------------------------------- /src/components/NoteList.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 101 | 102 | 121 | -------------------------------------------------------------------------------- /src/components/ToolBar.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | 112 | 113 | 128 | -------------------------------------------------------------------------------- /src/components/SideBar.vue: -------------------------------------------------------------------------------- 1 | 36 | 37 | 168 | 169 | 172 | -------------------------------------------------------------------------------- /src/components/Login.vue: -------------------------------------------------------------------------------- 1 | 68 | 69 | 259 | 260 | 266 | --------------------------------------------------------------------------------