├── src ├── mock │ └── mock.js ├── components │ ├── game │ │ └── five │ │ │ ├── index.js │ │ │ └── index.vue │ ├── icon │ │ ├── font │ │ │ ├── iconfont.eot │ │ │ ├── iconfont.ttf │ │ │ ├── iconfont.woff │ │ │ └── demo.css │ │ ├── icon.js │ │ └── icon.vue │ ├── talk │ │ ├── talk.js │ │ └── talk.vue │ ├── login │ │ ├── login.js │ │ └── login.vue │ ├── canvas │ │ ├── canvas.js │ │ └── canvas.vue │ ├── search │ │ ├── search_input.js │ │ └── search_input.vue │ ├── todoList │ │ ├── todoList.js │ │ ├── todoList.vue │ │ ├── Todo.vue │ │ └── index.vue │ ├── quiArrow.vue │ ├── quiButton.vue │ ├── echarts │ │ ├── index.js │ │ ├── polar.vue │ │ ├── sLine.vue │ │ ├── pie.vue │ │ ├── bar.vue │ │ ├── gantt.vue │ │ ├── radar.vue │ │ ├── graph.vue │ │ ├── relation.vue │ │ ├── scatter.vue │ │ ├── cMap.vue │ │ ├── tree.vue │ │ ├── calender.vue │ │ └── sMap.vue │ ├── css │ │ ├── reset.import.css │ │ ├── qui-nav.import.css │ │ └── qui-btn.import.css │ ├── quiNav.vue │ └── quiList.vue ├── assets │ ├── css │ │ ├── index.css │ │ ├── App.css │ │ └── reset.import.css │ ├── logo.png │ └── img │ │ ├── bg.jpg │ │ └── mik.jpg ├── pages │ ├── blog │ │ └── index.vue │ ├── game │ │ └── index.vue │ ├── mock │ │ └── index.vue │ ├── music │ │ └── index.vue │ ├── apis │ │ ├── icon │ │ │ └── index.vue │ │ ├── backTotop │ │ │ └── index.vue │ │ ├── background │ │ │ └── index.vue │ │ ├── todolist │ │ │ └── index.vue │ │ ├── starrating │ │ │ └── index.vue │ │ ├── mark │ │ │ └── index.vue │ │ ├── carousel │ │ │ └── index.vue │ │ ├── permission │ │ │ └── index.vue │ │ ├── process │ │ │ └── index.vue │ │ ├── form │ │ │ └── index.vue │ │ ├── dataPiker │ │ │ └── index.vue │ │ └── table │ │ │ └── index.vue │ ├── video │ │ └── index.vue │ ├── vue_ppt │ │ └── index.vue │ ├── gallery │ │ └── index.vue │ ├── navTable │ │ └── index.vue │ ├── introduce │ │ ├── bg.jpg │ │ └── index.vue │ ├── gal │ │ └── ten.vue │ ├── todoList │ │ └── index.vue │ ├── Code404 │ │ └── Code404.vue │ ├── Code500 │ │ └── Code500.vue │ ├── next │ │ └── index.vue │ ├── editor │ │ ├── rich │ │ │ └── index.vue │ │ ├── markdown │ │ │ └── index.vue │ │ └── json │ │ │ └── index.vue │ ├── animation │ │ └── index.vue │ ├── echarts │ │ └── index.vue │ ├── shop │ │ └── index.vue │ ├── markdown │ │ └── index.vue │ ├── login │ │ └── login.vue │ ├── index.vue │ ├── icon │ │ └── index.vue │ └── upload │ │ └── index.vue ├── vuex │ └── store.js ├── utils │ └── mock.js ├── store │ └── store.js ├── App.vue ├── main.js └── router │ └── index.js ├── cypress.json ├── bg.jpg ├── babel.config.js ├── img ├── nav.png ├── code.png ├── index.png ├── login.png ├── rich.png ├── echarts.png ├── markdown.png └── todolist.png ├── tests ├── unit │ ├── .eslintrc.js │ └── example.spec.js └── e2e │ ├── .eslintrc.js │ ├── specs │ └── test.js │ ├── support │ ├── index.js │ └── commands.js │ └── plugins │ └── index.js ├── Vue+element.xmind ├── Vue+element管理后台.jpg ├── public ├── favicon.ico └── index.html ├── mock ├── mock.json └── shop.json ├── .gitignore ├── vue.config.js ├── README.md └── package.json /src/mock/mock.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/game/five/index.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/game/five/index.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/css/index.css: -------------------------------------------------------------------------------- 1 | div{ 2 | color:red; 3 | } 4 | -------------------------------------------------------------------------------- /cypress.json: -------------------------------------------------------------------------------- 1 | { 2 | "pluginsFile": "tests/e2e/plugins/index.js" 3 | } 4 | -------------------------------------------------------------------------------- /bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/bg.jpg -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ["@vue/cli-plugin-babel/preset"] 3 | }; 4 | -------------------------------------------------------------------------------- /img/nav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/img/nav.png -------------------------------------------------------------------------------- /tests/unit/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | mocha: true 4 | } 5 | }; 6 | -------------------------------------------------------------------------------- /img/code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/img/code.png -------------------------------------------------------------------------------- /img/index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/img/index.png -------------------------------------------------------------------------------- /img/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/img/login.png -------------------------------------------------------------------------------- /img/rich.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/img/rich.png -------------------------------------------------------------------------------- /src/pages/blog/index.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/pages/game/index.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/pages/mock/index.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/pages/music/index.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /img/echarts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/img/echarts.png -------------------------------------------------------------------------------- /img/markdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/img/markdown.png -------------------------------------------------------------------------------- /img/todolist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/img/todolist.png -------------------------------------------------------------------------------- /src/pages/apis/icon/index.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/pages/video/index.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/pages/vue_ppt/index.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /Vue+element.xmind: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/Vue+element.xmind -------------------------------------------------------------------------------- /Vue+element管理后台.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/Vue+element管理后台.jpg -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/public/favicon.ico -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/src/assets/logo.png -------------------------------------------------------------------------------- /src/pages/gallery/index.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/pages/navTable/index.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/assets/img/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/src/assets/img/bg.jpg -------------------------------------------------------------------------------- /src/pages/apis/backTotop/index.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/assets/img/mik.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/src/assets/img/mik.jpg -------------------------------------------------------------------------------- /src/pages/apis/background/index.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/pages/apis/todolist/index.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/pages/introduce/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/src/pages/introduce/bg.jpg -------------------------------------------------------------------------------- /src/pages/introduce/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/components/icon/font/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/src/components/icon/font/iconfont.eot -------------------------------------------------------------------------------- /src/components/icon/font/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/src/components/icon/font/iconfont.ttf -------------------------------------------------------------------------------- /src/components/icon/font/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calamus0427/vue-element-admin-calamus/master/src/components/icon/font/iconfont.woff -------------------------------------------------------------------------------- /src/components/icon/icon.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import CLIcon from './icon.vue'; 3 | 4 | Vue.component('cl-icon', CLIcon); 5 | 6 | export default CLIcon; -------------------------------------------------------------------------------- /src/components/talk/talk.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import clTalk from './talk.vue'; 3 | 4 | Vue.component('cl-talk', clTalk); 5 | 6 | export default clTalk; 7 | -------------------------------------------------------------------------------- /src/components/login/login.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import CLLogin from "./login.vue"; 3 | 4 | Vue.component("cl-login", CLLogin); 5 | 6 | export default CLLogin; 7 | -------------------------------------------------------------------------------- /src/components/canvas/canvas.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import CLCanvasBg from './canvas.vue'; 3 | 4 | Vue.component('cl-canvasBg', CLCanvasBg); 5 | 6 | export default CLCanvasBg; 7 | -------------------------------------------------------------------------------- /src/components/search/search_input.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import CLSearch from './search_input.vue'; 3 | 4 | Vue.component('cl-search', CLSearch); 5 | 6 | export default CLSearch; -------------------------------------------------------------------------------- /src/components/todoList/todoList.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import CLtodolist from './index.vue'; 3 | 4 | Vue.component('cl-todolist', CLtodolist); 5 | 6 | export default CLtodolist; 7 | -------------------------------------------------------------------------------- /src/pages/gal/ten.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /src/pages/todoList/index.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /tests/e2e/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: ["cypress"], 3 | env: { 4 | mocha: true, 5 | "cypress/globals": true 6 | }, 7 | rules: { 8 | strict: "off" 9 | } 10 | }; 11 | -------------------------------------------------------------------------------- /src/vuex/store.js: -------------------------------------------------------------------------------- 1 | // const store = new Vuex.Store({ 2 | // state: { 3 | // count: 0 4 | // }, 5 | // mutations: { 6 | // increment (state) { 7 | // state.count++ 8 | // } 9 | // } 10 | // }) -------------------------------------------------------------------------------- /src/utils/mock.js: -------------------------------------------------------------------------------- 1 | import Mock from 'mockjs'; 2 | 3 | export default Mock.mock('http://g.cn', { 4 | 5 |           'name'    : '@name', 6 | 7 |           'age|1-100': 100, 8 | 9 |           'color'    : '@color' 10 | 11 | }); -------------------------------------------------------------------------------- /tests/e2e/specs/test.js: -------------------------------------------------------------------------------- 1 | // https://docs.cypress.io/api/introduction/api.html 2 | 3 | describe("My First Test", () => { 4 | it("Visits the app root url", () => { 5 | cy.visit("/"); 6 | cy.contains("h1", "Welcome to Your Vue.js App"); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /src/store/store.js: -------------------------------------------------------------------------------- 1 | const STORAGE_KEY = 'todos-vuejs' 2 | export default{ 3 | fetch(){ 4 | return JSON.parse(window.localStorage.getItem(STORAGE_KEY || '')) 5 | }, 6 | save(items){ 7 | window.localStorage.setItem(STORAGE_KEY,JSON.stringify(items)) 8 | } 9 | } -------------------------------------------------------------------------------- /src/components/quiArrow.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 17 | 18 | -------------------------------------------------------------------------------- /mock/mock.json: -------------------------------------------------------------------------------- 1 | { 2 | "l1": { 3 | "l1_1": [ 4 | "l1_1_1", 5 | "l1_1_2" 6 | ], 7 | "l1_2": { 8 | "l1_2_1": 121 9 | } 10 | }, 11 | "l2": { 12 | "l2_1": null, 13 | "l2_2": true, 14 | "l2_3": {} 15 | } 16 | } -------------------------------------------------------------------------------- /src/pages/Code404/Code404.vue: -------------------------------------------------------------------------------- 1 | 6 | 17 | 18 | -------------------------------------------------------------------------------- /src/pages/Code500/Code500.vue: -------------------------------------------------------------------------------- 1 | 6 | 17 | 18 | -------------------------------------------------------------------------------- /src/pages/next/index.vue: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /src/components/login/login.vue: -------------------------------------------------------------------------------- 1 | 6 | 16 | 21 | 22 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 15 | 16 | 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | package-lock.json 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | .history 25 | .VSCodeCounter 26 | package-lock.json 27 | out/linecount.json 28 | out -------------------------------------------------------------------------------- /src/components/talk/talk.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 18 | 19 | 20 | 21 | 26 | -------------------------------------------------------------------------------- /tests/unit/example.spec.js: -------------------------------------------------------------------------------- 1 | import { expect } from "chai"; 2 | import { shallowMount } from "@vue/test-utils"; 3 | import HelloWorld from "@/components/HelloWorld.vue"; 4 | 5 | describe("HelloWorld.vue", () => { 6 | it("renders props.msg when passed", () => { 7 | const msg = "new message"; 8 | const wrapper = shallowMount(HelloWorld, { 9 | propsData: { msg } 10 | }); 11 | expect(wrapper.text()).to.include(msg); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /src/assets/css/App.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding: 0; 3 | margin: 0; 4 | } 5 | 6 | #app { 7 | font-family: punctuation, "PingFangSC-Regular", "Microsoft Yahei", "sans-serif"; 8 | -webkit-font-smoothing: subpixel-antialiased; 9 | /* text-align: center; */ 10 | color: #2c3e50; 11 | } 12 | 13 | .page-title { 14 | color: #00A0D8; 15 | font-size: 36px; 16 | font-weight: bold; 17 | padding: 30px 0; 18 | } 19 | 20 | .page-title a { 21 | color: #00A0D8; 22 | } -------------------------------------------------------------------------------- /src/pages/editor/rich/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 24 | -------------------------------------------------------------------------------- /src/components/quiButton.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 22 | 26 | 27 | -------------------------------------------------------------------------------- /src/components/todoList/todoList.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /src/components/search/search_input.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 26 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | calamus-vue-element-admin 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /mock/shop.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": 1, 3 | "result": { 4 | "totalMoney": 100, 5 | "list": [{ 6 | "productId": "1", 7 | "productName": "坚果", 8 | "productPrice": 20, 9 | "parts": [{ 10 | "partsId": "1001", 11 | "partsName": "蔓越莓干" 12 | }] 13 | }, 14 | { 15 | "productId": "2", 16 | "productName": "小鱼仔", 17 | "productPrice": 20, 18 | "parts": [{ 19 | "partsId": "1002", 20 | "partsName": "芒果干" 21 | }] 22 | } 23 | ] 24 | }, 25 | "message": "" 26 | } -------------------------------------------------------------------------------- /tests/e2e/support/index.js: -------------------------------------------------------------------------------- 1 | // *********************************************************** 2 | // This example support/index.js is processed and 3 | // loaded automatically before your test files. 4 | // 5 | // This is a great place to put global configuration and 6 | // behavior that modifies Cypress. 7 | // 8 | // You can change the location of this file or turn off 9 | // automatically serving support files with the 10 | // 'supportFile' configuration option. 11 | // 12 | // You can read more here: 13 | // https://on.cypress.io/configuration 14 | // *********************************************************** 15 | 16 | // Import commands.js using ES2015 syntax: 17 | import "./commands"; 18 | 19 | // Alternatively you can use CommonJS syntax: 20 | // require('./commands') 21 | -------------------------------------------------------------------------------- /src/components/echarts/index.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import Bar from "./bar.vue"; 3 | import Pie from "./pie.vue"; 4 | import ChineseMap from "./cMap.vue"; 5 | import Calender from "./calender.vue"; 6 | import Polar from "./polar.vue"; 7 | import Scatter from "./scatter.vue"; 8 | import Radar from "./radar.vue"; 9 | import SMap from "./sMap.vue"; 10 | import GMap from "./gMap.vue"; 11 | import SLine from "./sLine.vue"; 12 | import Tree from "./tree.vue"; 13 | import Relation from "./relation.vue"; 14 | import Graph from "./graph.vue"; 15 | 16 | const components = [Tree,Bar, ChineseMap,Calender,Pie,Polar,Scatter,Radar,SMap,GMap,SLine,Relation,Graph]; 17 | 18 | components.forEach(component => { 19 | Vue.component(component.name, component); 20 | }); 21 | 22 | export default components; -------------------------------------------------------------------------------- /src/assets/css/reset.import.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Basic reset css for mobile 3 | * author : cheunglong 4 | */ 5 | html, body, div, span, iframe, h1, h2, h3, h4, h5, h6, p, blockquote,a,address, 6 | em, img, ol, ul, li, fieldset, form, label, legend, table, tbody, tfoot, thead, tr, th, td,i,b,s { 7 | margin:0; padding:0; border:0; font-weight:inherit; font-style:inherit; font-size:100%;font-family:microsoft yahei,Helvetica,Arial,sans-serif; 8 | } 9 | 10 | 11 | ul,ol{list-style: none} 12 | a img { border:none;vertical-align: top; } 13 | a {text-decoration: none;} 14 | 15 | button {overflow:visible;padding:0;margin:0;border:0 none;background-color:transparent;font-family:microsoft yahei,Helvetica,Arial,sans-serif;} 16 | button::-moz-focus-inner { padding:0;} 17 | 18 | input[type=password] {-webkit-text-security:disc;} 19 | textarea:focus,input:focus,button:focus{outline:none;} 20 | body {word-wrap:break-word;} 21 | * {-webkit-tap-highlight-color:rgba(0,0,0,0);} -------------------------------------------------------------------------------- /src/components/css/reset.import.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Basic reset css for mobile 3 | * author : cheunglong 4 | */ 5 | html, body, div, span, iframe, h1, h2, h3, h4, h5, h6, p, blockquote,a,address, 6 | em, img, ol, ul, li, fieldset, form, label, legend, table, tbody, tfoot, thead, tr, th, td,i,b,s { 7 | margin:0; padding:0; border:0; font-weight:inherit; font-style:inherit; font-size:100%;font-family:microsoft yahei,Helvetica,Arial,sans-serif; 8 | } 9 | 10 | 11 | ul,ol{list-style: none} 12 | a img { border:none;vertical-align: top; } 13 | a {text-decoration: none;} 14 | 15 | button {overflow:visible;padding:0;margin:0;border:0 none;background-color:transparent;font-family:microsoft yahei,Helvetica,Arial,sans-serif;} 16 | button::-moz-focus-inner { padding:0;} 17 | 18 | input[type=password] {-webkit-text-security:disc;} 19 | textarea:focus,input:focus,button:focus{outline:none;} 20 | body {word-wrap:break-word;} 21 | * {-webkit-tap-highlight-color:rgba(0,0,0,0);} -------------------------------------------------------------------------------- /tests/e2e/support/commands.js: -------------------------------------------------------------------------------- 1 | // *********************************************** 2 | // This example commands.js shows you how to 3 | // create various custom commands and overwrite 4 | // existing commands. 5 | // 6 | // For more comprehensive examples of custom 7 | // commands please read more here: 8 | // https://on.cypress.io/custom-commands 9 | // *********************************************** 10 | // 11 | // 12 | // -- This is a parent command -- 13 | // Cypress.Commands.add("login", (email, password) => { ... }) 14 | // 15 | // 16 | // -- This is a child command -- 17 | // Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) 18 | // 19 | // 20 | // -- This is a dual command -- 21 | // Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) 22 | // 23 | // 24 | // -- This is will overwrite an existing command -- 25 | // Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) 26 | -------------------------------------------------------------------------------- /src/pages/animation/index.vue: -------------------------------------------------------------------------------- 1 | 10 | 28 | 29 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | module.exports = { 4 | // 基本路径 5 | publicPath: "./", 6 | 7 | // 输出文件目录 8 | outputDir: "dist", 9 | 10 | assetsDir: "static", 11 | 12 | // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md 13 | // webpack配置 14 | // chainWebpack: config => {}, 15 | configureWebpack: config => { 16 | config.devtool = 'source-map' 17 | if (process.env.NODE_ENV === "production") { 18 | // 为生产环境修改配置... 19 | config.mode = "production"; 20 | } else { 21 | // 为开发环境修改配置... 22 | config.mode = "development"; 23 | } 24 | let plugin = []; 25 | config.plugins = [...config.plugins, ...plugin]; 26 | config.resolve.alias.vue$ = "vue/dist/vue.esm.js"; 27 | }, 28 | // 生产环境是否生成 sourceMap 文件 29 | productionSourceMap: false, 30 | 31 | // css相关配置 32 | // 是否为 Babel 或 TypeScript 使用 thread-loader。该选项在系统的 CPU 有多于一个内核时自动启用,仅作用于生产构建。 33 | parallel: require("os").cpus().length > 1, 34 | 35 | lintOnSave: false 36 | }; 37 | -------------------------------------------------------------------------------- /tests/e2e/plugins/index.js: -------------------------------------------------------------------------------- 1 | // https://docs.cypress.io/guides/guides/plugins-guide.html 2 | 3 | // if you need a custom webpack configuration you can uncomment the following import 4 | // and then use the `file:preprocessor` event 5 | // as explained in the cypress docs 6 | // https://docs.cypress.io/api/plugins/preprocessors-api.html#Examples 7 | 8 | /* eslint-disable import/no-extraneous-dependencies, global-require, arrow-body-style */ 9 | // const webpack = require('@cypress/webpack-preprocessor') 10 | 11 | module.exports = (on, config) => { 12 | // on('file:preprocessor', webpack({ 13 | // webpackOptions: require('@vue/cli-service/webpack.config'), 14 | // watchOptions: {} 15 | // })) 16 | 17 | return Object.assign({}, config, { 18 | fixturesFolder: "tests/e2e/fixtures", 19 | integrationFolder: "tests/e2e/specs", 20 | screenshotsFolder: "tests/e2e/screenshots", 21 | videosFolder: "tests/e2e/videos", 22 | supportFile: "tests/e2e/support/index.js" 23 | }); 24 | }; 25 | -------------------------------------------------------------------------------- /src/pages/echarts/index.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 23 | 24 | 37 | 38 | -------------------------------------------------------------------------------- /src/pages/shop/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/pages/editor/markdown/index.vue: -------------------------------------------------------------------------------- 1 | 22 | 23 | 35 | 42 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vue Element 管理后台 2 | ## 项目运行 3 | #### [在线预览](https://calamus0427.github.io/vue-element-admin-calamus/#/login) 4 | 安装依赖:npm install 5 | 6 | 运行:npm run dev 7 | 8 | 编译:npm run build 9 | 10 | 11 | ## 技术栈 12 | - vue 13 | - element 14 | - vue-router 15 | - vue-markdown 16 | - echarts 17 | - vue-codemirror 18 | - vue-editor2 19 | - sass 20 | - mavon editor 21 | - mockjs 22 | - webpack 23 | - axios 24 | 25 | ## 基础功能 26 | - [x] 登录 27 | 28 | ![image](https://cdn.calamus.xyz/calamus-element-admin/login.png) 29 | - [x] 首页 30 | 31 | ![image](https://cdn.calamus.xyz/calamus-element-admin/index.png) 32 | - 基础组件们 33 | 34 | ![image](https://cdn.calamus.xyz/calamus-element-admin/nav.png) 35 | - [x] echarts和vue的应用 36 | ![image](https://cdn.calamus.xyz/calamus-element-admin/echarts.png) 37 | - [x] vue富文本编辑器 38 | ![image](https://cdn.calamus.xyz/calamus-element-admin/rich.png) 39 | - [x] vuemarkdown编辑器 40 | ![image](https://cdn.calamus.xyz/calamus-element-admin/markdown.png) 41 | - [x] vue代码编辑器 42 | ![image](https://cdn.calamus.xyz/calamus-element-admin/code.png) 43 | - [ ] vue音乐播放器(未完成) 44 | - [ ] vue视频播放器(未完成) 45 | - [x] vue和localstorage实现todolist 46 | ![image](https://cdn.calamus.xyz/calamus-element-admin/todolist.png) 47 | -------------------------------------------------------------------------------- /src/pages/markdown/index.vue: -------------------------------------------------------------------------------- 1 | 28 | 29 | 44 | 51 | -------------------------------------------------------------------------------- /src/components/quiNav.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 48 | 52 | 53 | -------------------------------------------------------------------------------- /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 | 6 | import VueRouter from 'vue-router'; 7 | import router from './router'; 8 | 9 | import ElementUI from 'element-ui'; 10 | import 'element-ui/lib/theme-chalk/index.css'; 11 | 12 | import axios from 'axios'; 13 | Vue.prototype.$http = axios 14 | 15 | import Vuex from 'vuex'; 16 | import store from './vuex/store'; 17 | 18 | // import Mock from 'mockjs'; 19 | 20 | 21 | //图标组件 22 | import './components/icon/font/iconfont.css' ; 23 | import './components/icon/font/iconfont.js' ; 24 | import './components/icon/icon.js' ; //icon 25 | //对话框组件 26 | import './components/talk/talk.js'; //talk 27 | //搜索组件 28 | import './components/search/search_input.js'; 29 | //canvas组件 30 | import './components/canvas/canvas.js'; 31 | //登录组件 32 | import "./components/login/login.js"; 33 | //Echarts组件们 34 | // import "./components/echarts/histogram/demo1.js"; 35 | // import "./components/echarts/histogram/demo2.js"; 36 | //todolist组件 37 | import './components/todoList/todoList.js'; 38 | 39 | 40 | 41 | 42 | //关闭生产过程中的提示 43 | Vue.config.productionTip = false ; 44 | 45 | Vue.use(ElementUI) ; 46 | Vue.use(Vuex) ; 47 | Vue.use(VueRouter) ; 48 | 49 | new Vue({ 50 | store, 51 | router, 52 | render: h => h(App) 53 | }).$mount("#app"); -------------------------------------------------------------------------------- /src/pages/editor/json/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 50 | 51 | 59 | 60 | -------------------------------------------------------------------------------- /src/components/css/qui-nav.import.css: -------------------------------------------------------------------------------- 1 | /*QUI nav*/ 2 | 3 | .qui-nav{ 4 | display: -webkit-box; 5 | display: -webkit-flex; 6 | display: flex; 7 | font-size: 0; 8 | text-align: center; 9 | } 10 | .qui-nav .nav-item{ 11 | -webkit-flex:1; 12 | flex:1; 13 | height: 40px; 14 | line-height: 40px; 15 | position: relative; 16 | overflow: hidden; 17 | font-size: 14px; 18 | } 19 | .qui-nav .nav-item .nav-txt{ 20 | display: block; 21 | position: relative; 22 | height: 100%; 23 | } 24 | .qui-nav .nav-item .nav-txt:after{ 25 | content: ''; 26 | display: block; 27 | position: relative; 28 | height: 4px; 29 | background-color: #ffcd00; 30 | opacity: 0; 31 | -webkit-transform: scaleX(0); 32 | transform: scaleX(0); 33 | -webkit-transition: all .2s; 34 | transition: all .2s; 35 | width: 100%; 36 | position: absolute; 37 | bottom:0; 38 | left: 0; 39 | } 40 | .qui-nav .nav-item.active{ 41 | color: #ffcd00; 42 | } 43 | .qui-nav .nav-item.active .nav-txt:after{ 44 | -webkit-transform: scaleX(1); 45 | transform: scaleX(1); 46 | opacity: 1; 47 | } 48 | 49 | /*active态下方不铺满*/ 50 | .qui-nav.nav-type-2 .nav-item .nav-txt{ 51 | display: inline-block; 52 | padding: 0 5px; 53 | } 54 | 55 | /*居中*/ 56 | .qui-nav.nav-type-3{ 57 | display: block; 58 | } 59 | .qui-nav.nav-type-3 .nav-item{ 60 | -webkit-flex: inherit; 61 | flex: inherit; 62 | display: inline-block; 63 | width: 110px; 64 | } 65 | -------------------------------------------------------------------------------- /src/pages/apis/starrating/index.vue: -------------------------------------------------------------------------------- 1 | 43 | 56 | -------------------------------------------------------------------------------- /src/components/echarts/polar.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 80 | 81 | 87 | -------------------------------------------------------------------------------- /src/components/echarts/sLine.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 72 | 73 | 79 | -------------------------------------------------------------------------------- /src/components/quiList.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 42 | 69 | 70 | -------------------------------------------------------------------------------- /src/components/todoList/Todo.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 71 | -------------------------------------------------------------------------------- /src/pages/login/login.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 66 | 73 | 74 | -------------------------------------------------------------------------------- /src/pages/index.vue: -------------------------------------------------------------------------------- 1 | 2 | 39 | 40 | 70 | 94 | -------------------------------------------------------------------------------- /src/pages/apis/mark/index.vue: -------------------------------------------------------------------------------- 1 | 53 | 54 | 60 | 61 | -------------------------------------------------------------------------------- /src/components/echarts/pie.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 85 | 86 | 92 | -------------------------------------------------------------------------------- /src/components/icon/icon.vue: -------------------------------------------------------------------------------- 1 | 19 | 22 | 23 | 51 | 52 | 102 | 103 | -------------------------------------------------------------------------------- /src/pages/apis/carousel/index.vue: -------------------------------------------------------------------------------- 1 | 46 | 58 | 59 | 77 | -------------------------------------------------------------------------------- /src/components/echarts/bar.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 91 | 92 | 98 | -------------------------------------------------------------------------------- /src/components/css/qui-btn.import.css: -------------------------------------------------------------------------------- 1 | /*QUI button*/ 2 | .qui-btn{ 3 | position: relative; 4 | display: inline-block; 5 | border-radius: 2px; 6 | border:1px solid #C3C8CC; 7 | color: #000; 8 | box-sizing: border-box; 9 | font-size: 0; 10 | z-index:1; 11 | } 12 | .qui-btn .ico{ 13 | display: inline-block; 14 | background-size: 100% 100%; 15 | position: relative; 16 | /*top:50%;*/ 17 | /*-webkit-transform: translateY(-50%);*/ 18 | /*transform: translateY(-50%);*/ 19 | margin-right: 3px; 20 | width: 20px; 21 | height: 20px; 22 | vertical-align: -4px; 23 | } 24 | .qui-btn span { 25 | font-size: 14px; 26 | display: inline-block; 27 | height: 100%; 28 | /*line-height: 2;*/ 29 | box-sizing: border-box; 30 | } 31 | .qui-btn.bor{ 32 | border-color: transparent; 33 | } 34 | .bor:after{ 35 | content: ''; 36 | position: absolute; 37 | z-index: 1; 38 | border-radius:4px; 39 | background-color: transparent; 40 | border: 1px solid #C3C8CC; 41 | width: 200%; 42 | height: 200%; 43 | -webkit-transform:scale(.5); 44 | transform:scale(.5); 45 | -webkit-transform-origin: 0 0; 46 | transform-origin: 0 0; 47 | /*box-sizing: border-box;*/ 48 | /*left: 0;*/ 49 | /*top: 0;*/ 50 | padding: 1px; 51 | left: -1px; 52 | top: -1px; 53 | } 54 | /*小尺寸按钮*/ 55 | .qui-btn.small{ 56 | min-width: 60px; 57 | text-align: center; 58 | height: 30px; 59 | line-height: 30px; 60 | /*margin: 0 5px;*/ 61 | } 62 | /*带icon的按钮*/ 63 | .qui-btn.icon{ 64 | padding: 0 10px; 65 | min-width: auto; 66 | width: auto; 67 | } 68 | /*大尺寸按钮--一行展示一个*/ 69 | .qui-btn.large{ 70 | text-align: center; 71 | height: 40px; 72 | line-height: 40px; 73 | /*margin: 0 12px;*/ 74 | display: block; 75 | width: 100%; 76 | } 77 | .qui-btn.large span { 78 | font-size: 18px; 79 | } 80 | /*中尺寸按钮--一行多个*/ 81 | .qui-btn.middle{ 82 | text-align: center; 83 | height: 40px; 84 | line-height: 40px; 85 | margin: 0 6px; 86 | flex: 1; 87 | padding: 0; 88 | } 89 | .qui-btn.middle span { 90 | font-size: 18px; 91 | } 92 | /*带背景色的按钮*/ 93 | .qui-btn.bg:before{ 94 | content: ''; 95 | display: block; 96 | position: absolute; 97 | background-color: #eee; 98 | width: 100%; 99 | height: 100%; 100 | top: 0; 101 | left: 0; 102 | z-index: -1; 103 | } 104 | .qui-btn.bg.bor:before{ 105 | padding: 1px; 106 | left: -1px; 107 | top: -1px; 108 | } 109 | 110 | 111 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-element-admin-calamus-ice", 3 | "version": "2.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint", 9 | "test:e2e": "vue-cli-service test:e2e", 10 | "test:unit": "vue-cli-service test:unit" 11 | }, 12 | "dependencies": { 13 | "axios": "^0.19.0", 14 | "core-js": "^3.3.2", 15 | "echarts": "^4.4.0", 16 | "element-ui": "^2.12.0", 17 | "mavon-editor": "^2.7.7", 18 | "mockjs": "^1.1.0", 19 | "moment": "^2.24.0", 20 | "vue": "^2.6.10", 21 | "vue-codemirror": "^4.0.6", 22 | "vue-echarts": "^4.0.4", 23 | "vue-markdown": "^2.2.4", 24 | "vue-router": "^3.1.3", 25 | "vue2-editor": "^2.10.2", 26 | "vuex": "^3.0.1" 27 | }, 28 | "devDependencies": { 29 | "@vue/cli-plugin-babel": "^4.0.0", 30 | "@vue/cli-plugin-e2e-cypress": "^4.0.0", 31 | "@vue/cli-plugin-eslint": "^4.0.0", 32 | "@vue/cli-plugin-unit-mocha": "^4.0.0", 33 | "@vue/cli-service": "^4.0.0", 34 | "@vue/eslint-config-prettier": "^5.0.0", 35 | "@vue/test-utils": "1.0.0-beta.29", 36 | "babel-eslint": "^10.0.3", 37 | "chai": "^4.1.2", 38 | "eslint": "^5.16.0", 39 | "eslint-plugin-prettier": "^3.1.1", 40 | "eslint-plugin-vue": "^5.0.0", 41 | "node-sass": "^4.12.0", 42 | "prettier": "^1.18.2", 43 | "sass-loader": "^8.0.0", 44 | "vue-template-compiler": "^2.6.10" 45 | }, 46 | "eslintConfig": { 47 | "root": true, 48 | "env": { 49 | "node": true 50 | }, 51 | "extends": [ 52 | "plugin:vue/essential", 53 | "@vue/prettier" 54 | ], 55 | "rules": {}, 56 | "parserOptions": { 57 | "parser": "babel-eslint" 58 | }, 59 | "overrides": [ 60 | { 61 | "files": [ 62 | "**/__tests__/*.{j,t}s?(x)" 63 | ], 64 | "env": { 65 | "mocha": true 66 | } 67 | } 68 | ] 69 | }, 70 | "postcss": { 71 | "plugins": { 72 | "autoprefixer": {} 73 | } 74 | }, 75 | "browserslist": [ 76 | "> 1%", 77 | "last 2 versions" 78 | ], 79 | "main": ".eslintrc.js", 80 | "directories": { 81 | "test": "test" 82 | }, 83 | "repository": { 84 | "type": "git", 85 | "url": "git+https://github.com/calamus0427/vue-element-admin-calamus.git" 86 | }, 87 | "license": "ISC", 88 | "bugs": { 89 | "url": "https://github.com/calamus0427/vue-element-admin-calamus/issues" 90 | }, 91 | "homepage": "https://github.com/calamus0427/vue-element-admin-calamus#readme", 92 | "keywords": [ 93 | "Calamus0427", 94 | "ice-scaffold" 95 | ], 96 | "scaffoldConfig": { 97 | "type": "vue", 98 | "name": "ice-calamus-vue", 99 | "title": "ice-calamus-vue", 100 | "screenshot": "https://img.alicdn.com/tfs/TB1_bulmpOWBuNjy0FiXXXFxVXa-1920-1080.png" 101 | }, 102 | "output": { 103 | "filename": "block.json" 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /src/components/echarts/gantt.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 128 | 129 | 135 | -------------------------------------------------------------------------------- /src/components/echarts/radar.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 128 | 129 | 135 | -------------------------------------------------------------------------------- /src/pages/apis/permission/index.vue: -------------------------------------------------------------------------------- 1 | 37 | 38 | 156 | -------------------------------------------------------------------------------- /src/pages/apis/process/index.vue: -------------------------------------------------------------------------------- 1 | 99 | 100 | 124 | 140 | 141 | 142 | -------------------------------------------------------------------------------- /src/pages/icon/index.vue: -------------------------------------------------------------------------------- 1 | 79 | 80 | 114 | 116 | 117 | -------------------------------------------------------------------------------- /src/components/echarts/graph.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 179 | 180 | 186 | -------------------------------------------------------------------------------- /src/components/echarts/relation.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 179 | 180 | 186 | -------------------------------------------------------------------------------- /src/components/echarts/scatter.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 178 | 179 | 185 | -------------------------------------------------------------------------------- /src/components/echarts/cMap.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 123 | 124 | 130 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | 3 | import Router from 'vue-router' 4 | 5 | // 引用页面模板->供路由使用 6 | import index from '../pages/index.vue' 7 | import nav_aside from '../pages/nav/nav_aside.vue' 8 | import music from '../pages/music/index.vue' 9 | import icon from '../pages/icon/index.vue' 10 | import todolistShow from '../pages/todoList/index.vue' 11 | import shop from '../pages/shop/index.vue' 12 | import ten from '../pages/gal/ten.vue' 13 | import login from "../pages/login/login.vue" 14 | import Code404 from "../pages/Code404/Code404" 15 | import Code500 from "../pages/Code500/Code500" 16 | import introduce from "../pages/introduce/index" 17 | import background from "../pages/apis/background/index" 18 | import backTotop from "../pages/apis/backTotop/index" 19 | import carousel from "../pages/apis/carousel/index" 20 | import dataPiker from "../pages/apis/dataPiker/index" 21 | import form from "../pages/apis/form/index" 22 | import iconNav from "../pages/apis/icon/index" 23 | import mark from "../pages/apis/mark/index" 24 | import permission from "../pages/apis/permission/index" 25 | import process from "../pages/apis/process/index" 26 | import starrating from "../pages/apis/starrating/index" 27 | import table from "../pages/apis/table/index" 28 | import todolist from "../pages/apis/todolist/index" 29 | import jsonEditor from "../pages/editor/json/index" 30 | import richEditor from "../pages/editor/rich/index" 31 | import markdownEditor from "../pages/editor/markdown/index" 32 | import video from "../pages/video/index" 33 | import vuePpt from "../pages/vue_ppt/index" 34 | import game from "../pages/game/index" 35 | import gallery from "../pages/gallery/index" 36 | import navTable from "../pages/navTable/index" 37 | import next from "../pages/next/index" 38 | import echartsInfo from "../pages/echarts/index" 39 | import mockNav from "../pages/mock/index" 40 | import markdown from "../pages/markdown/index" 41 | import vueAnimation from "../pages/animation/index" 42 | import blog from "../pages/blog/index"; 43 | import upload from "../pages/upload/index"; 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | Vue.use(Router) 62 | 63 | export default new Router({ 64 | routes: [ 65 | { 66 | path: '/index', 67 | name: 'index', 68 | component: index 69 | }, 70 | { 71 | path: "/login", 72 | name: 'login', 73 | component: login 74 | }, 75 | { 76 | path: "/", 77 | redirect: "/login" 78 | }, 79 | { 80 | path: '/ten', 81 | name: 'ten', 82 | component: ten 83 | }, 84 | { 85 | path: '/shop', 86 | name: 'shop', 87 | component: shop 88 | }, 89 | { 90 | path: '/blog', 91 | name: 'blog', 92 | component: blog 93 | }, { 94 | path: '/todolistShow', 95 | name: 'todolistShow', 96 | component: todolistShow 97 | }, 98 | { 99 | path: '/icon', 100 | name: 'icon', 101 | component: icon, 102 | // children:[ 103 | // {path: 'example', 104 | // name: 'example', 105 | // component: example}, 106 | 107 | // ], 108 | }, 109 | { 110 | path: '/nav', 111 | name: 'nav', 112 | component: nav_aside, 113 | children:[{ 114 | path:'/todolist', 115 | name:'todolist', 116 | component:todolist, 117 | }, 118 | {path: '/music', 119 | name: 'music', 120 | component: music}, 121 | {path: '/video', 122 | name: "video", 123 | component: video 124 | }, 125 | { 126 | path: '/Code404', 127 | name: 'Code404', 128 | component: Code404 129 | }, 130 | { 131 | path: '/Code500', 132 | name: 'Code500', 133 | component: Code500 134 | }, 135 | { 136 | path: '/upload', 137 | name: "upload", 138 | component: upload 139 | }, 140 | { 141 | path: '/introduce', 142 | name: 'introduce', 143 | component: introduce 144 | }, 145 | { 146 | path: '/background', 147 | name: 'background', 148 | component: background 149 | },{ 150 | path: '/backTotop', 151 | name: "backTotop", 152 | component: backTotop 153 | },{ 154 | path: '/carousel', 155 | name: "carousel", 156 | component: carousel 157 | },{ 158 | path: '/dataPiker', 159 | name: "dataPiker", 160 | component: dataPiker 161 | },{ 162 | path: '/form', 163 | name: 'form', 164 | component: form 165 | },{ 166 | path: '/iconNav', 167 | name: 'iconNav', 168 | component: iconNav 169 | },{ 170 | path: '/mark', 171 | name: 'mark', 172 | component: mark 173 | },{ 174 | path: '/permission', 175 | name: "permission", 176 | component: permission 177 | },{ 178 | path: '/process', 179 | name: "process", 180 | component: process 181 | },{ 182 | path: '/starrating', 183 | name: "starrating", 184 | component: starrating 185 | },{ 186 | path: '/table', 187 | name: "table", 188 | component: table 189 | },{ 190 | path: '/jsonEditor', 191 | name: "jsonEditor", 192 | component: jsonEditor 193 | },{ 194 | path: '/markdownEditor', 195 | name: "markdownEditor", 196 | component: markdownEditor 197 | },{ 198 | path: '/richEditor', 199 | name: "richEditor", 200 | component: richEditor 201 | },{ 202 | path: '/vuePpt', 203 | name: "vuePpt", 204 | component: vuePpt 205 | },{ 206 | path: '/game', 207 | name: "game", 208 | component: game 209 | },{ 210 | path: '/gallery', 211 | name: "gallery", 212 | component: gallery 213 | },{ 214 | path: '/navTable', 215 | name: "navTable", 216 | component: navTable 217 | },{ 218 | path: '/next', 219 | name: "next", 220 | component: next 221 | },{ 222 | path: "/echarts", 223 | name: "echarts", 224 | component: echartsInfo 225 | },{ 226 | path: "/mockNav", 227 | name: "mockNav", 228 | component: mockNav 229 | },{ 230 | path: "/markdown", 231 | name: "markdown", 232 | component: markdown 233 | },{ 234 | path: "/vueAnimation", 235 | name: "vueAnimation", 236 | component: vueAnimation 237 | }] 238 | }, 239 | 240 | { 241 | path: "*", 242 | redirect: "/Code404" 243 | } 244 | ] 245 | }) 246 | -------------------------------------------------------------------------------- /src/components/canvas/canvas.vue: -------------------------------------------------------------------------------- 1 | 5 | 189 | 197 | -------------------------------------------------------------------------------- /src/components/echarts/tree.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 231 | 232 | 238 | -------------------------------------------------------------------------------- /src/pages/upload/index.vue: -------------------------------------------------------------------------------- 1 | 91 | 92 | 151 | 152 | 177 | -------------------------------------------------------------------------------- /src/pages/apis/form/index.vue: -------------------------------------------------------------------------------- 1 | 74 | 75 | 183 | 186 | 187 | -------------------------------------------------------------------------------- /src/components/icon/font/demo.css: -------------------------------------------------------------------------------- 1 | *{margin: 0;padding: 0;list-style: none;} 2 | /* 3 | KISSY CSS Reset 4 | 理念:1. reset 的目的不是清除浏览器的默认样式,这仅是部分工作。清除和重置是紧密不可分的。 5 | 2. reset 的目的不是让默认样式在所有浏览器下一致,而是减少默认样式有可能带来的问题。 6 | 3. reset 期望提供一套普适通用的基础样式。但没有银弹,推荐根据具体需求,裁剪和修改后再使用。 7 | 特色:1. 适应中文;2. 基于最新主流浏览器。 8 | 维护:玉伯, 正淳 9 | */ 10 | 11 | /** 清除内外边距 **/ 12 | body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, /* structural elements 结构元素 */ 13 | dl, dt, dd, ul, ol, li, /* list elements 列表元素 */ 14 | pre, /* text formatting elements 文本格式元素 */ 15 | form, fieldset, legend, button, input, textarea, /* form elements 表单元素 */ 16 | th, td /* table elements 表格元素 */ { 17 | margin: 0; 18 | padding: 0; 19 | } 20 | 21 | /** 设置默认字体 **/ 22 | body, 23 | button, input, select, textarea /* for ie */ { 24 | font: 12px/1.5 tahoma, arial, \5b8b\4f53, sans-serif; 25 | } 26 | h1, h2, h3, h4, h5, h6 { font-size: 100%; } 27 | address, cite, dfn, em, var { font-style: normal; } /* 将斜体扶正 */ 28 | code, kbd, pre, samp { font-family: courier new, courier, monospace; } /* 统一等宽字体 */ 29 | small { font-size: 12px; } /* 小于 12px 的中文很难阅读,让 small 正常化 */ 30 | 31 | /** 重置列表元素 **/ 32 | ul, ol { list-style: none; } 33 | 34 | /** 重置文本格式元素 **/ 35 | a { text-decoration: none; } 36 | a:hover { text-decoration: underline; } 37 | 38 | 39 | /** 重置表单元素 **/ 40 | legend { color: #000; } /* for ie6 */ 41 | fieldset, img { border: 0; } /* img 搭车:让链接里的 img 无边框 */ 42 | button, input, select, textarea { font-size: 100%; } /* 使得表单元素在 ie 下能继承字体大小 */ 43 | /* 注:optgroup 无法扶正 */ 44 | 45 | /** 重置表格元素 **/ 46 | table { border-collapse: collapse; border-spacing: 0; } 47 | 48 | /* 清除浮动 */ 49 | .ks-clear:after, .clear:after { 50 | content: '\20'; 51 | display: block; 52 | height: 0; 53 | clear: both; 54 | } 55 | .ks-clear, .clear { 56 | *zoom: 1; 57 | } 58 | 59 | .main { 60 | padding: 30px 100px; 61 | width: 960px; 62 | margin: 0 auto; 63 | } 64 | .main h1{font-size:36px; color:#333; text-align:left;margin-bottom:30px; border-bottom: 1px solid #eee;} 65 | 66 | .helps{margin-top:40px;} 67 | .helps pre{ 68 | padding:20px; 69 | margin:10px 0; 70 | border:solid 1px #e7e1cd; 71 | background-color: #fffdef; 72 | overflow: auto; 73 | } 74 | 75 | .icon_lists{ 76 | width: 100% !important; 77 | 78 | } 79 | 80 | .icon_lists li{ 81 | float:left; 82 | width: 100px; 83 | height:180px; 84 | text-align: center; 85 | list-style: none !important; 86 | } 87 | .icon_lists .icon{ 88 | font-size: 42px; 89 | line-height: 100px; 90 | margin: 10px 0; 91 | color:#333; 92 | -webkit-transition: font-size 0.25s ease-out 0s; 93 | -moz-transition: font-size 0.25s ease-out 0s; 94 | transition: font-size 0.25s ease-out 0s; 95 | 96 | } 97 | .icon_lists .icon:hover{ 98 | font-size: 100px; 99 | } 100 | 101 | 102 | 103 | .markdown { 104 | color: #666; 105 | font-size: 14px; 106 | line-height: 1.8; 107 | } 108 | 109 | .highlight { 110 | line-height: 1.5; 111 | } 112 | 113 | .markdown img { 114 | vertical-align: middle; 115 | max-width: 100%; 116 | } 117 | 118 | .markdown h1 { 119 | color: #404040; 120 | font-weight: 500; 121 | line-height: 40px; 122 | margin-bottom: 24px; 123 | } 124 | 125 | .markdown h2, 126 | .markdown h3, 127 | .markdown h4, 128 | .markdown h5, 129 | .markdown h6 { 130 | color: #404040; 131 | margin: 1.6em 0 0.6em 0; 132 | font-weight: 500; 133 | clear: both; 134 | } 135 | 136 | .markdown h1 { 137 | font-size: 28px; 138 | } 139 | 140 | .markdown h2 { 141 | font-size: 22px; 142 | } 143 | 144 | .markdown h3 { 145 | font-size: 16px; 146 | } 147 | 148 | .markdown h4 { 149 | font-size: 14px; 150 | } 151 | 152 | .markdown h5 { 153 | font-size: 12px; 154 | } 155 | 156 | .markdown h6 { 157 | font-size: 12px; 158 | } 159 | 160 | .markdown hr { 161 | height: 1px; 162 | border: 0; 163 | background: #e9e9e9; 164 | margin: 16px 0; 165 | clear: both; 166 | } 167 | 168 | .markdown p, 169 | .markdown pre { 170 | margin: 1em 0; 171 | } 172 | 173 | .markdown > p, 174 | .markdown > blockquote, 175 | .markdown > .highlight, 176 | .markdown > ol, 177 | .markdown > ul { 178 | width: 80%; 179 | } 180 | 181 | .markdown ul > li { 182 | list-style: circle; 183 | } 184 | 185 | .markdown > ul li, 186 | .markdown blockquote ul > li { 187 | margin-left: 20px; 188 | padding-left: 4px; 189 | } 190 | 191 | .markdown > ul li p, 192 | .markdown > ol li p { 193 | margin: 0.6em 0; 194 | } 195 | 196 | .markdown ol > li { 197 | list-style: decimal; 198 | } 199 | 200 | .markdown > ol li, 201 | .markdown blockquote ol > li { 202 | margin-left: 20px; 203 | padding-left: 4px; 204 | } 205 | 206 | .markdown code { 207 | margin: 0 3px; 208 | padding: 0 5px; 209 | background: #eee; 210 | border-radius: 3px; 211 | } 212 | 213 | .markdown pre { 214 | border-radius: 6px; 215 | background: #f7f7f7; 216 | padding: 20px; 217 | } 218 | 219 | .markdown pre code { 220 | border: none; 221 | background: #f7f7f7; 222 | margin: 0; 223 | } 224 | 225 | .markdown strong, 226 | .markdown b { 227 | font-weight: 600; 228 | } 229 | 230 | .markdown > table { 231 | border-collapse: collapse; 232 | border-spacing: 0px; 233 | empty-cells: show; 234 | border: 1px solid #e9e9e9; 235 | width: 95%; 236 | margin-bottom: 24px; 237 | } 238 | 239 | .markdown > table th { 240 | white-space: nowrap; 241 | color: #333; 242 | font-weight: 600; 243 | 244 | } 245 | 246 | .markdown > table th, 247 | .markdown > table td { 248 | border: 1px solid #e9e9e9; 249 | padding: 8px 16px; 250 | text-align: left; 251 | } 252 | 253 | .markdown > table th { 254 | background: #F7F7F7; 255 | } 256 | 257 | .markdown blockquote { 258 | font-size: 90%; 259 | color: #999; 260 | border-left: 4px solid #e9e9e9; 261 | padding-left: 0.8em; 262 | margin: 1em 0; 263 | font-style: italic; 264 | } 265 | 266 | .markdown blockquote p { 267 | margin: 0; 268 | } 269 | 270 | .markdown .anchor { 271 | opacity: 0; 272 | transition: opacity 0.3s ease; 273 | margin-left: 8px; 274 | } 275 | 276 | .markdown .waiting { 277 | color: #ccc; 278 | } 279 | 280 | .markdown h1:hover .anchor, 281 | .markdown h2:hover .anchor, 282 | .markdown h3:hover .anchor, 283 | .markdown h4:hover .anchor, 284 | .markdown h5:hover .anchor, 285 | .markdown h6:hover .anchor { 286 | opacity: 1; 287 | display: inline-block; 288 | } 289 | 290 | .markdown > br, 291 | .markdown > p > br { 292 | clear: both; 293 | } 294 | 295 | 296 | .hljs { 297 | display: block; 298 | background: white; 299 | padding: 0.5em; 300 | color: #333333; 301 | overflow-x: auto; 302 | } 303 | 304 | .hljs-comment, 305 | .hljs-meta { 306 | color: #969896; 307 | } 308 | 309 | .hljs-string, 310 | .hljs-variable, 311 | .hljs-template-variable, 312 | .hljs-strong, 313 | .hljs-emphasis, 314 | .hljs-quote { 315 | color: #df5000; 316 | } 317 | 318 | .hljs-keyword, 319 | .hljs-selector-tag, 320 | .hljs-type { 321 | color: #a71d5d; 322 | } 323 | 324 | .hljs-literal, 325 | .hljs-symbol, 326 | .hljs-bullet, 327 | .hljs-attribute { 328 | color: #0086b3; 329 | } 330 | 331 | .hljs-section, 332 | .hljs-name { 333 | color: #63a35c; 334 | } 335 | 336 | .hljs-tag { 337 | color: #333333; 338 | } 339 | 340 | .hljs-title, 341 | .hljs-attr, 342 | .hljs-selector-id, 343 | .hljs-selector-class, 344 | .hljs-selector-attr, 345 | .hljs-selector-pseudo { 346 | color: #795da3; 347 | } 348 | 349 | .hljs-addition { 350 | color: #55a532; 351 | background-color: #eaffea; 352 | } 353 | 354 | .hljs-deletion { 355 | color: #bd2c00; 356 | background-color: #ffecec; 357 | } 358 | 359 | .hljs-link { 360 | text-decoration: underline; 361 | } 362 | 363 | pre{ 364 | background: #fff; 365 | } 366 | 367 | 368 | 369 | 370 | 371 | -------------------------------------------------------------------------------- /src/pages/apis/dataPiker/index.vue: -------------------------------------------------------------------------------- 1 | 193 | 194 | 295 | 296 | 301 | 302 | 303 | -------------------------------------------------------------------------------- /src/components/echarts/calender.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 446 | 447 | 456 | -------------------------------------------------------------------------------- /src/components/todoList/index.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | 113 | 114 | 435 | -------------------------------------------------------------------------------- /src/pages/apis/table/index.vue: -------------------------------------------------------------------------------- 1 | 226 | 424 | 425 | 446 | 447 | -------------------------------------------------------------------------------- /src/components/echarts/sMap.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 515 | 516 | 522 | --------------------------------------------------------------------------------