├── static
├── .gitkeep
├── api.json
├── img
│ ├── head.jpg
│ └── test.gif
└── image
│ ├── begin.png
│ ├── food1.png
│ ├── food2.png
│ ├── food3.png
│ ├── food4.png
│ ├── food5.png
│ ├── food6.png
│ ├── food7.png
│ ├── food8.png
│ ├── food9.png
│ └── icon_tabbar.png
├── .eslintignore
├── .vscode
└── settings.json
├── config
├── prod.env.js
├── dev.env.js
└── index.js
├── src
├── assets
│ ├── head.jpg
│ ├── icon.png
│ ├── logo.png
│ ├── fontIcon
│ │ ├── iconfont.eot
│ │ ├── iconfont.ttf
│ │ ├── iconfont.woff
│ │ ├── iconfont.css
│ │ ├── iconfont.svg
│ │ └── iconfont.js
│ ├── mixin.scss
│ └── common.scss
├── directives
│ ├── index.js
│ ├── autofix.js
│ └── myclickoutside.js
├── components
│ ├── global
│ │ ├── backtop
│ │ │ ├── index.js
│ │ │ └── src
│ │ │ │ └── main.vue
│ │ ├── utils
│ │ │ └── dispatch.js
│ │ ├── sidebar
│ │ │ └── src
│ │ │ │ ├── menu-item.vue
│ │ │ │ ├── my-submenu.vue
│ │ │ │ └── my-menu.vue
│ │ └── dropdown
│ │ │ ├── item.vue
│ │ │ └── index.vue
│ ├── index.js
│ └── header.vue
├── views
│ ├── test.vue
│ ├── mirrow.vue
│ ├── when.vue
│ ├── home
│ │ ├── setColor.vue
│ │ └── home.vue
│ ├── editName.vue
│ ├── editFood.vue
│ ├── memo.vue
│ ├── info.vue
│ ├── EatWhat.vue
│ ├── icon.vue
│ ├── setIcon.vue
│ ├── DatePlan.vue
│ ├── moneyRecord.vue
│ └── money.vue
├── utils
│ ├── bus.js
│ └── utils.js
├── services
│ └── api.js
├── main.js
├── router
│ └── index.js
└── App.vue
├── .jsbeautifyrc
├── .editorconfig
├── .gitignore
├── .postcssrc.js
├── .babelrc
├── index.html
├── .eslintrc.js
├── README.md
└── package.json
/static/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | build/*.js
2 | config/*.js
3 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "git.ignoreLimitWarning": true
3 | }
--------------------------------------------------------------------------------
/static/api.json:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0,
3 | "data": "helloword"
4 | }
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"production"'
3 | }
4 |
--------------------------------------------------------------------------------
/src/assets/head.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/src/assets/head.jpg
--------------------------------------------------------------------------------
/src/assets/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/src/assets/icon.png
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/src/assets/logo.png
--------------------------------------------------------------------------------
/static/img/head.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/static/img/head.jpg
--------------------------------------------------------------------------------
/static/img/test.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/static/img/test.gif
--------------------------------------------------------------------------------
/static/image/begin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/static/image/begin.png
--------------------------------------------------------------------------------
/static/image/food1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/static/image/food1.png
--------------------------------------------------------------------------------
/static/image/food2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/static/image/food2.png
--------------------------------------------------------------------------------
/static/image/food3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/static/image/food3.png
--------------------------------------------------------------------------------
/static/image/food4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/static/image/food4.png
--------------------------------------------------------------------------------
/static/image/food5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/static/image/food5.png
--------------------------------------------------------------------------------
/static/image/food6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/static/image/food6.png
--------------------------------------------------------------------------------
/static/image/food7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/static/image/food7.png
--------------------------------------------------------------------------------
/static/image/food8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/static/image/food8.png
--------------------------------------------------------------------------------
/static/image/food9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/static/image/food9.png
--------------------------------------------------------------------------------
/static/image/icon_tabbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/static/image/icon_tabbar.png
--------------------------------------------------------------------------------
/.jsbeautifyrc:
--------------------------------------------------------------------------------
1 | {
2 | "indent_size": 2,
3 | "indent_char": " ",
4 | "css": {
5 | "indent_size": 2
6 | }
7 | }
--------------------------------------------------------------------------------
/src/assets/fontIcon/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/src/assets/fontIcon/iconfont.eot
--------------------------------------------------------------------------------
/src/assets/fontIcon/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/src/assets/fontIcon/iconfont.ttf
--------------------------------------------------------------------------------
/src/assets/mixin.scss:
--------------------------------------------------------------------------------
1 | $colors: #f04134, #00a854, #108ee9, #f5317f, #f56a00, #7265e6, #ffbf00, #00a2ae, #2e3238;
2 |
--------------------------------------------------------------------------------
/src/assets/fontIcon/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sxzy/vue-assistant/HEAD/src/assets/fontIcon/iconfont.woff
--------------------------------------------------------------------------------
/config/dev.env.js:
--------------------------------------------------------------------------------
1 | var merge = require('webpack-merge')
2 | var prodEnv = require('./prod.env')
3 |
4 | module.exports = merge(prodEnv, {
5 | NODE_ENV: '"development"'
6 | })
7 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 4
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/src/directives/index.js:
--------------------------------------------------------------------------------
1 | import clickOutSide from './myclickOutSide.js'
2 | import autofix from './autofix.js'
3 |
4 | export default function (Vue) {
5 | Vue.use(clickOutSide)
6 | Vue.use(autofix)
7 | }
8 |
--------------------------------------------------------------------------------
/.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 | *.suo
11 | *.ntvs*
12 | *.njsproj
13 | *.sln
14 |
--------------------------------------------------------------------------------
/src/components/global/backtop/index.js:
--------------------------------------------------------------------------------
1 | import BackTop from './backtop/src/main';
2 |
3 | /* istanbul ignore next */
4 | BackTop.install = function(Vue) {
5 | Vue.component(BackTop.name, BackTop);
6 | };
7 |
8 | export default BackTop;
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | // to edit target browsers: use "browserslist" field in package.json
6 | "autoprefixer": {}
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/assets/common.scss:
--------------------------------------------------------------------------------
1 | @import './mixin.scss';
2 | /* 设置几个主题颜色 */
3 | @for $i from 1 to 10 {
4 | .color#{$i} {
5 | color: nth($colors, $i)
6 | }
7 | }
8 | a {
9 | text-decoration: none;
10 | }
11 | a:link{
12 | color: #000;
13 | }
14 | a:visited{
15 | color: #000;
16 | }
17 | a:hover{
18 | color: inherit;
19 | }
--------------------------------------------------------------------------------
/src/views/test.vue:
--------------------------------------------------------------------------------
1 |
17 |
--------------------------------------------------------------------------------
/src/utils/bus.js:
--------------------------------------------------------------------------------
1 | /* 这里用来做事件中心,负责分发事件 */
2 |
3 | export default (Vue) => {
4 | let eventHub = new Vue()
5 | Vue.prototype.$bus = {
6 | $on (...arg) {
7 | eventHub.$on(...arg)
8 | },
9 | $off (...arg) {
10 | eventHub.$off(...arg)
11 | },
12 | $emit (...arg) {
13 | eventHub.$emit(...arg)
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/.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-runtime"],
12 | "env": {
13 | "test": {
14 | "presets": ["env", "stage-2"],
15 | "plugins": ["istanbul"]
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | my-tool
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/utils/utils.js:
--------------------------------------------------------------------------------
1 | export default {
2 | hexToRgba (hex, opacity = 0.3) {
3 | let color = []
4 | let rgb = []
5 | hex = hex.replace(/#/, '')
6 |
7 | if (hex.length === 3) { // 处理 "#abc" 成 "#aabbcc"
8 | var tmp = []
9 | for (let i = 0; i < 3; i++) {
10 | tmp.push(hex.charAt(i) + hex.charAt(i))
11 | }
12 | hex = tmp.join('')
13 | }
14 |
15 | for (var i = 0; i < 3; i++) {
16 | color[i] = '0x' + hex.substr(i * 2, 2)
17 | rgb.push(parseInt(Number(color[i])))
18 | }
19 | return 'rgba(' + rgb.join(',') + `,${opacity})`
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/components/global/utils/dispatch.js:
--------------------------------------------------------------------------------
1 | /* 用于模拟dispatch, 找到父组件, 并且触发父组件方法 如果_componentTag 找不到,那就打印vue 的¥parent 看是什么咯 */
2 | export default {
3 | methods: {
4 | dispatch (componentName, eventName, params = []) {
5 | let parent = this.$parent || this.$root
6 | let name = parent.$options._componentTag
7 |
8 | while (parent && (!name || name !== componentName)) {
9 | parent = parent.$parent
10 | if (parent) {
11 | name = parent.$options._componentTag
12 | }
13 | }
14 | if (parent) {
15 | parent.$emit(eventName, params)
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/components/global/sidebar/src/menu-item.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
28 |
29 |
--------------------------------------------------------------------------------
/src/views/mirrow.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
27 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | // http://eslint.org/docs/user-guide/configuring
2 |
3 | module.exports = {
4 | root: true,
5 | parser: 'babel-eslint',
6 | parserOptions: {
7 | sourceType: 'module'
8 | },
9 | env: {
10 | browser: true,
11 | },
12 | // https://github.com/standard/standard/blob/master/docs/RULES-en.md
13 | extends: 'standard',
14 | // required to lint *.vue files
15 | plugins: [
16 | 'html'
17 | ],
18 | // add your custom rules here
19 | 'rules': {
20 | // allow paren-less arrow functions
21 | 'arrow-parens': 0,
22 | // allow async-await
23 | 'generator-star-spacing': 0,
24 | // "indent": ["error", 4],
25 | // allow debugger during development
26 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/services/api.js:
--------------------------------------------------------------------------------
1 | import axios from 'axios'
2 |
3 | export default (Vue) => {
4 | axios.interceptors.request.use(
5 | config => {
6 | // 一个习惯, 本地开发时候,通常需要设置代理来支持跨域,于是加上'/api' 前缀用于脚手架config文件的识别设置
7 | // config.url = location.host.indexOf('localhost') >= 0 ? `/api${config.url}` : config.url
8 | return config
9 | },
10 | err => {
11 | return Promise.reject(err)
12 | })
13 |
14 | // http response 拦截器
15 | axios.interceptors.response.use(
16 | response => {
17 | // 对错误码进行统一的处理
18 | if (response.data.code !== 0) {
19 | return Promise.reject('有错')
20 | }
21 | return response
22 | },
23 | error => {
24 | return Promise.reject(error.response.data) // 返回接口返回的错误信息
25 | })
26 | Vue.prototype.$axios = axios
27 | }
28 |
--------------------------------------------------------------------------------
/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 Bus from '@/utils/bus.js'
6 | import globalUI from '@/components'
7 | import directives from '@/directives'
8 | import router from './router'
9 | import MintUI from 'mint-ui'
10 | import api from '@/services/api'
11 | import 'mint-ui/lib/style.css'
12 | import '@/assets/fontIcon/iconfont.css'
13 |
14 | Bus(Vue)
15 |
16 | /* 注册指令插件 */
17 | directives(Vue)
18 |
19 | /* 全局组件 */
20 | Vue.use(MintUI)
21 | Vue.use(globalUI)
22 |
23 | // 给axios添加拦截器并添加到全局
24 | api(Vue)
25 |
26 | Vue.config.productionTip = false
27 |
28 | /* eslint-disable no-new */
29 | new Vue({
30 | el: '#app',
31 | router,
32 | template: ' ',
33 | components: { App }
34 | })
35 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # my-tool
2 | 基于vue.js的前端开发,没有后台,只需要用localstorage进行本地的数据存储。
3 | 主要实现了几个模块,分别是换肤功能,头像更换,todolist,还有记账功能,同时还有备忘录,当然,如果你是一个选择困难症,还可以让它帮你选择今天吃什么。
4 | 一个十足的date-helper.
5 | > A Vue.js project
6 | > 安装,部分电脑安装nodesass经常出错,推荐cnpm安装,请戳 https://npm.taobao.org/
7 | ## 演示
8 | 
9 | ## 项目在线demo(移动端)
10 | http://kimy.coding.me/vue-assistant/#/
11 |
12 | ## Build Setup
13 |
14 | ``` bash
15 | # install dependencies
16 | npm install
17 |
18 | # serve with hot reload at localhost:8080
19 | npm run dev
20 |
21 | # build for production with minification
22 | npm run build
23 |
24 | # build for production and view the bundle analyzer report
25 | npm run build --report
26 | ```
27 |
28 | For detailed explanation on how things work, checkout the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
29 |
--------------------------------------------------------------------------------
/src/components/index.js:
--------------------------------------------------------------------------------
1 | import dropdown from '@/components/global/dropdown'
2 | import item from '@/components/global/dropdown/item.vue'
3 |
4 | import mymenu from '@/components/global/sidebar//src/my-menu.vue'
5 | import menuitem from '@/components/global/sidebar/src/menu-item.vue'
6 | import mysubmenu from '@/components/global/sidebar/src/my-submenu.vue'
7 | import BackTop from '@/components/global/backtop/src/main'
8 |
9 | const components = [
10 | dropdown,
11 | item,
12 | mymenu,
13 | menuitem,
14 | mysubmenu,
15 | BackTop
16 | ]
17 |
18 | const install = (Vue, OPts) => {
19 | if (install.installed) {
20 | return
21 | }
22 | components.map(component => {
23 | Vue.component(component.name, component)
24 | })
25 | }
26 |
27 | export default {
28 | version: '0.0.1',
29 | author: 'kimmy',
30 | install,
31 | dropdown,
32 | item,
33 | mymenu,
34 | menuitem,
35 | mysubmenu,
36 | BackTop
37 | }
38 |
--------------------------------------------------------------------------------
/src/directives/autofix.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by kimmy on 2017/10/06.
3 | * 图片自动根据宽高比例压缩,并在父div偏移,达到定位居中的功能
4 | */
5 |
6 | export default {
7 | install (Vue) {
8 | Vue.directive('autofix', {
9 | bind (el, binding, vnode) {
10 | },
11 | update (el, binding, vnode) {
12 | console.log('carry', binding)
13 | let img = new Image()
14 | let boxWidth = el.parentNode.offsetWidth
15 | img.onload = () => {
16 | // 以长度小的边为基准, 按比例缩放,然后偏移最长边和当前边框长度差的一半
17 | if (img.width < img.height) {
18 | el.style.height = Math.floor(img.height / img.width * boxWidth) + 'px'
19 | el.style.width = boxWidth + 'px'
20 | el.style.marginTop = -(el.offsetHeight - boxWidth) / 2 + 'px'
21 | } else {
22 | el.style.width = Math.floor(img.width / img.height * boxWidth) + 'px'
23 | el.style.height = boxWidth + 'px'
24 | el.style.marginLeft = -(el.offsetWidth - boxWidth) / 2 + 'px'
25 | }
26 | }
27 | img.src = el.src
28 | },
29 | unbind (el) {
30 | }
31 | })
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/directives/myclickoutside.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by kimmy on 2017/5/13.
3 | * 鼠标点击外部事件,用于收起下拉框等操作,示例: v-myclickoutside = 'handler'
4 | */
5 |
6 | export default {
7 | install (Vue) {
8 | let myNode = []
9 | document.body.addEventListener('mousedown', (e) => {
10 | for (let i = myNode.length; i--;) {
11 | myNode[i].handlerfn(e, myNode[i])
12 | }
13 | })
14 | Vue.directive('myclickoutside', {
15 | bind (el, binding, vnode) {
16 | // id 这里用长度加随机数,防止删除了一些组件后,再次生成的id重复
17 | el.id = myNode.push(el) - 1 + Math.round(Math.random() * 100).toString()
18 | const handlefn = (e) => {
19 | // 是否在组件内部
20 | if (el.contains(e.target)) {
21 | return false
22 | } else {
23 | // 执行处理
24 | vnode.context[binding.expression]()
25 | }
26 | }
27 | el.handlerfn = handlefn
28 | },
29 | unbind (el) {
30 | let len = myNode.length
31 | for (let i = 0; i < len; i++) {
32 | if (myNode[i].id === el.id) {
33 | myNode.splice(i, 1)
34 | break
35 | }
36 | }
37 | }
38 | })
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/components/global/dropdown/item.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
23 |
24 |
25 |
57 |
--------------------------------------------------------------------------------
/src/components/header.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | 再怎么
17 | 点也是
18 | 没用的
19 |
20 |
21 |
22 |
23 |
24 |
47 |
48 |
49 |
55 |
--------------------------------------------------------------------------------
/src/views/when.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
41 |
59 |
--------------------------------------------------------------------------------
/config/index.js:
--------------------------------------------------------------------------------
1 | // see http://vuejs-templates.github.io/webpack for documentation.
2 | var path = require('path')
3 |
4 | module.exports = {
5 | build: {
6 | env: require('./prod.env'),
7 | index: path.resolve(__dirname, '../dist/index.html'),
8 | assetsRoot: path.resolve(__dirname, '../dist'),
9 | assetsSubDirectory: './static',
10 | assetsPublicPath: './',
11 | productionSourceMap: true,
12 | // Gzip off by default as many popular static hosts such as
13 | // Surge or Netlify already gzip all static assets for you.
14 | // Before setting to `true`, make sure to:
15 | // npm install --save-dev compression-webpack-plugin
16 | productionGzip: false,
17 | productionGzipExtensions: ['js', 'css'],
18 | // Run the build command with an extra argument to
19 | // View the bundle analyzer report after build finishes:
20 | // `npm run build --report`
21 | // Set to `true` or `false` to always turn it on or off
22 | bundleAnalyzerReport: process.env.npm_config_report
23 | },
24 | dev: {
25 | env: require('./dev.env'),
26 | port: 8888,
27 | autoOpenBrowser: true,
28 | assetsSubDirectory: 'static',
29 | assetsPublicPath: '/',
30 | proxyTable: {},
31 | // CSS Sourcemaps off by default because relative paths are "buggy"
32 | // with this option, according to the CSS-Loader README
33 | // (https://github.com/webpack/css-loader#sourcemaps)
34 | // In our experience, they generally work as expected,
35 | // just be aware of this issue when enabling this option.
36 | cssSourceMap: false
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/components/global/dropdown/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 |
10 |
11 |
14 |
15 |
16 |
35 |
36 |
37 |
71 |
--------------------------------------------------------------------------------
/src/views/home/setColor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
38 |
39 |
40 |
71 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Router from 'vue-router'
3 | import home from '@/views/home/home.vue'
4 | import info from '@/views/info.vue'
5 |
6 | import DatePlan from '@/views/DatePlan'
7 | import EatWhat from '@/views/EatWhat'
8 | import icon from '@/views/icon'
9 | import memo from '@/views/memo'
10 | import mirrow from '@/views/mirrow'
11 | import when from '@/views/when'
12 | import editName from '@/views/editName'
13 | import editFood from '@/views/editFood'
14 | import money from '@/views/money'
15 | import moneyRecord from '@/views/moneyRecord'
16 | import setIcon from '@/views/setIcon'
17 |
18 | Vue.use(Router)
19 |
20 | export default new Router({
21 | routes: [
22 | {
23 | path: '/',
24 | name: 'home',
25 | component: home
26 | },
27 | {
28 | path: '/info',
29 | name: 'info',
30 | component: info
31 | },
32 | {
33 | component: EatWhat,
34 | name: 'EatWhat',
35 | path: '/EatWhat'
36 | },
37 | {
38 | component: icon,
39 | name: 'icon',
40 | path: '/icon'
41 | },
42 | {
43 | component: memo,
44 | name: 'memo',
45 | path: '/memo'
46 | },
47 | {
48 | component: mirrow,
49 | name: 'mirrow',
50 | path: '/mirrow'
51 | },
52 | {
53 | component: when,
54 | name: 'when',
55 | path: '/when'
56 | },
57 | {
58 | component: editName,
59 | name: 'editName',
60 | path: '/editName'
61 | },
62 | {
63 | component: DatePlan,
64 | name: 'DatePlan',
65 | path: '/DatePlan'
66 | },
67 | {
68 | component: editFood,
69 | name: 'editFood',
70 | path: '/editFood'
71 | },
72 | {
73 | component: money,
74 | name: 'money',
75 | path: '/money'
76 | },
77 | {
78 | component: moneyRecord,
79 | name: 'moneyRecord',
80 | path: '/moneyRecord'
81 | },
82 | {
83 | component: setIcon,
84 | name: 'setIcon',
85 | path: '/setIcon'
86 | }
87 | ]
88 | })
89 |
--------------------------------------------------------------------------------
/src/views/editName.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
11 |
12 |
13 |
14 |
15 |
16 |
35 |
76 |
--------------------------------------------------------------------------------
/src/components/global/sidebar/src/my-submenu.vue:
--------------------------------------------------------------------------------
1 |
2 |
14 |
15 |
62 |
65 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "my-tool",
3 | "version": "1.0.0",
4 | "description": "A Vue.js project",
5 | "author": "kimmy",
6 | "private": true,
7 | "scripts": {
8 | "dev": "node build/dev-server.js",
9 | "start": "node build/dev-server.js",
10 | "build": "node build/build.js",
11 | "lint": "eslint --ext .js,.vue src"
12 | },
13 | "dependencies": {
14 | "axios": "^0.16.2",
15 | "css-loader": "^0.28.7",
16 | "mint-ui": "^2.2.9",
17 | "node-sass": "^4.5.3",
18 | "sass": "^1.0.0-beta.2",
19 | "sass-loader": "^6.0.6",
20 | "vue": "^2.4.2",
21 | "vue-loader": "^13.0.5",
22 | "vue-router": "^2.7.0",
23 | "vue-style-loader": "^3.0.3"
24 | },
25 | "devDependencies": {
26 | "autoprefixer": "^7.1.2",
27 | "babel-core": "^6.22.1",
28 | "babel-eslint": "^7.1.1",
29 | "babel-loader": "^7.1.1",
30 | "babel-plugin-transform-runtime": "^6.22.0",
31 | "babel-preset-env": "^1.3.2",
32 | "babel-preset-stage-2": "^6.22.0",
33 | "babel-register": "^6.22.0",
34 | "chalk": "^2.0.1",
35 | "connect-history-api-fallback": "^1.3.0",
36 | "copy-webpack-plugin": "^4.0.1",
37 | "css-loader": "^0.28.0",
38 | "cssnano": "^3.10.0",
39 | "eslint": "^3.19.0",
40 | "eslint-friendly-formatter": "^3.0.0",
41 | "eslint-loader": "^1.7.1",
42 | "eslint-plugin-html": "^3.0.0",
43 | "eslint-config-standard": "^6.2.1",
44 | "eslint-plugin-promise": "^3.4.0",
45 | "eslint-plugin-standard": "^2.0.1",
46 | "eventsource-polyfill": "^0.9.6",
47 | "express": "^4.14.1",
48 | "extract-text-webpack-plugin": "^2.0.0",
49 | "file-loader": "^0.11.1",
50 | "friendly-errors-webpack-plugin": "^1.1.3",
51 | "html-webpack-plugin": "^2.28.0",
52 | "http-proxy-middleware": "^0.17.3",
53 | "webpack-bundle-analyzer": "^2.2.1",
54 | "semver": "^5.3.0",
55 | "shelljs": "^0.7.6",
56 | "opn": "^5.1.0",
57 | "optimize-css-assets-webpack-plugin": "^2.0.0",
58 | "ora": "^1.2.0",
59 | "rimraf": "^2.6.0",
60 | "url-loader": "^0.5.8",
61 | "vue-loader": "^13.0.4",
62 | "vue-style-loader": "^3.0.1",
63 | "vue-template-compiler": "^2.4.2",
64 | "webpack": "^2.6.1",
65 | "webpack-dev-middleware": "^1.10.0",
66 | "webpack-hot-middleware": "^2.18.0",
67 | "webpack-merge": "^4.1.0"
68 | },
69 | "engines": {
70 | "node": ">= 4.0.0",
71 | "npm": ">= 3.0.0"
72 | },
73 | "browserslist": [
74 | "> 1%",
75 | "last 2 versions",
76 | "not ie <= 8"
77 | ]
78 | }
79 |
--------------------------------------------------------------------------------
/src/components/global/backtop/src/main.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
65 |
103 |
--------------------------------------------------------------------------------
/src/views/editFood.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
62 |
96 |
97 |
--------------------------------------------------------------------------------
/src/views/memo.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
{{memo}}
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
删除备忘录
24 |
真的要删除当前备忘吗?
25 |
29 |
30 |
31 |
32 |
33 |
83 |
126 |
--------------------------------------------------------------------------------
/src/views/info.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | K.K
18 |
19 |
20 | wanna to be a Brilliant gentle
21 |
22 |
23 | And a pretty girl
24 |
25 |
26 |
27 |
28 |
29 |
94 |
95 |
158 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | 我的个人助手小系统呀
14 | 首页
15 | DatePlan
16 | 今天吃什么
17 | 备忘录
18 | 什么时候放假
19 | 抛硬币
20 |
21 |
22 | 记记账
23 | 记账首页
24 | 添加记账
25 |
26 | 这是有下拉菜单
27 | 我是第一个
28 | 我是第二个
29 |
30 |
31 | 这是有下拉菜单
32 | 我是第一个
33 | 我是第二个
34 |
35 | 这是有下拉菜单
36 | 我是第一dddddd个
37 | 我是第二ddddddddddddd个
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
104 |
105 |
132 |
--------------------------------------------------------------------------------
/src/components/global/sidebar/src/my-menu.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
61 |
196 |
--------------------------------------------------------------------------------
/src/views/EatWhat.vue:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
130 |
131 |
152 |
--------------------------------------------------------------------------------
/src/views/home/home.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
dataplan
15 |
今天吃什么
16 |
备忘录
17 |
什么时候放假
18 |
抛硬币
19 |
记记账
20 |
皮肤
21 |
设置
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
82 |
83 |
84 |
176 |
--------------------------------------------------------------------------------
/src/views/icon.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
11 |
12 |
{{message}}
13 |
14 |
18 |
19 |
20 |
71 |
187 |
--------------------------------------------------------------------------------
/src/assets/fontIcon/iconfont.css:
--------------------------------------------------------------------------------
1 |
2 | @font-face {font-family: "iconfont";
3 | src: url('iconfont.eot?t=1507424161312'); /* IE9*/
4 | src: url('iconfont.eot?t=1507424161312#iefix') format('embedded-opentype'), /* IE6-IE8 */
5 | url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'),
6 | url('iconfont.ttf?t=1507424161312') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
7 | url('iconfont.svg?t=1507424161312#iconfont') format('svg'); /* iOS 4.1- */
8 | }
9 |
10 | .iconfont {
11 | font-family:"iconfont" !important;
12 | font-size:16px;
13 | font-style:normal;
14 | -webkit-font-smoothing: antialiased;
15 | -moz-osx-font-smoothing: grayscale;
16 | }
17 |
18 | .icon-shezhi:before { content: "\e614"; }
19 |
20 | .icon-shiliangzhinengduixiang9:before { content: "\e600"; }
21 |
22 | .icon-rili:before { content: "\e6ad"; }
23 |
24 | .icon-kaishipaizhao:before { content: "\e605"; }
25 |
26 | .icon-pifu:before { content: "\e64f"; }
27 |
28 | .icon-jizhang:before { content: "\e603"; }
29 |
30 | .icon-fan:before { content: "\e604"; }
31 |
32 | .icon-beiwanglu:before { content: "\e8dc"; }
33 |
34 | .icon-rili1:before { content: "\e618"; }
35 |
36 | .icon-menu:before { content: "\e60a"; }
37 |
38 | .icon-yingbi:before { content: "\e615"; }
39 |
40 | .icon-weibiaoti--copy:before { content: "\e6ae"; }
41 |
42 |
--------------------------------------------------------------------------------
/src/views/setIcon.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | {{iconList[index].title}}
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
添加新项目
28 |
删除项目
29 |
新添加的项目会显示在项目列表的顶端,确定添加新项目吗?
30 |
真的要删除当前的项目吗?该分类下的数据将会被删除
31 |
36 |
37 |
38 |
39 |
40 |
153 |
215 |
--------------------------------------------------------------------------------
/src/views/DatePlan.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
TODOLIST
12 |
13 |
14 |
15 |
16 |
17 | {{todoTask[index]}}
18 |
19 |
20 |
21 |
22 |
23 |
24 |
DONELIST
25 |
26 |
27 |
28 |
29 |
30 | {{task}}
31 |
32 |
33 |
34 |
35 |
36 |
37 |
40 |
41 |
42 |
52 |
53 |
54 |
55 |
56 |
清空计划
57 |
真的要清空当前的所有的计划吗?
58 |
真的要清空当前的todo列表的计划吗?
59 |
真的要清空当前的done列表的计划吗?
60 |
64 |
65 |
66 |
67 |
68 |
69 |
175 |
245 |
246 |
--------------------------------------------------------------------------------
/src/views/moneyRecord.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
11 |
12 |
16 |
17 |
18 |
19 |
20 |
21 | {{icon.title}}
22 |
23 |
24 |
25 |
26 |
27 | 设置
28 |
29 |
30 |
33 |
34 |
38 |
43 |
44 |
45 |
46 |
199 |
296 |
297 |
--------------------------------------------------------------------------------
/src/views/money.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
{{year}}年
7 |
{{month}}月
8 |
9 |
10 |
11 |
支出(元)
12 |
{{outCome}}
13 |
14 |
15 |
收入(元)
16 |
{{inCome}}
17 |
18 |
19 |
20 |
28 |
29 |
{{item.date}} 收入:{{item.income}},支出:{{item.outcome}}
30 |
31 |
32 |
33 |
34 | {{iconName[singleitem.icontype]}}
35 |
36 |
{{singleitem.money}}
37 |
38 |
39 |
40 |
报表部分
41 |
44 |
49 |
50 |
51 |
52 |
53 |
251 |
329 |
--------------------------------------------------------------------------------
/src/assets/fontIcon/iconfont.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 | Created by iconfont
9 |
10 |
11 |
12 |
13 |
21 |
22 |
23 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/src/assets/fontIcon/iconfont.js:
--------------------------------------------------------------------------------
1 | (function(window){var svgSprite=' ';var script=function(){var scripts=document.getElementsByTagName("script");return scripts[scripts.length-1]}();var shouldInjectCss=script.getAttribute("data-injectcss");var ready=function(fn){if(document.addEventListener){if(~["complete","loaded","interactive"].indexOf(document.readyState)){setTimeout(fn,0)}else{var loadFn=function(){document.removeEventListener("DOMContentLoaded",loadFn,false);fn()};document.addEventListener("DOMContentLoaded",loadFn,false)}}else if(document.attachEvent){IEContentLoaded(window,fn)}function IEContentLoaded(w,fn){var d=w.document,done=false,init=function(){if(!done){done=true;fn()}};var polling=function(){try{d.documentElement.doScroll("left")}catch(e){setTimeout(polling,50);return}init()};polling();d.onreadystatechange=function(){if(d.readyState=="complete"){d.onreadystatechange=null;init()}}}};var before=function(el,target){target.parentNode.insertBefore(el,target)};var prepend=function(el,target){if(target.firstChild){before(el,target.firstChild)}else{target.appendChild(el)}};function appendSvg(){var div,svg;div=document.createElement("div");div.innerHTML=svgSprite;svgSprite=null;svg=div.getElementsByTagName("svg")[0];if(svg){svg.setAttribute("aria-hidden","true");svg.style.position="absolute";svg.style.width=0;svg.style.height=0;svg.style.overflow="hidden";prepend(svg,document.body)}}if(shouldInjectCss&&!window.__iconfont__svg__cssinject__){window.__iconfont__svg__cssinject__=true;try{document.write("")}catch(e){console&&console.log(e)}}ready(appendSvg)})(window)
--------------------------------------------------------------------------------