um-new"> 37
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/PanJiaChen/vue-element-admin.git"
+ },
+ "bugs": {
+ "url": "https://github.com/PanJiaChen/vue-element-admin/issues"
+ },
+ "dependencies": {
+ "axios": "0.18.1",
+ "clipboard": "2.0.4",
+ "codemirror": "5.45.0",
+ "driver.js": "0.9.5",
+ "dropzone": "5.5.1",
+ "echarts": "4.2.1",
+ "element-ui": "2.13.0",
+ "file-saver": "2.0.1",
+ "fuse.js": "3.4.4",
+ "js-cookie": "2.2.0",
+ "jsonlint": "1.6.3",
+ "jszip": "3.2.1",
+ "normalize.css": "7.0.0",
+ "nprogress": "0.2.0",
+ "path-to-regexp": "2.4.0",
+ "qs": "^6.9.3",
+ "screenfull": "4.2.0",
+ "script-loader": "0.7.2",
+ "showdown": "1.9.0",
+ "sortablejs": "1.8.4",
+ "tui-editor": "1.3.3",
+ "vue": "2.6.10",
+ "vue-count-to": "1.0.13",
+ "vue-router": "3.0.2",
+ "vue-splitpane": "1.0.4",
+ "vuedraggable": "2.20.0",
+ "vuex": "3.1.0",
+ "xlsx": "0.14.1"
+ },
+ "devDependencies": {
+ "@babel/core": "7.0.0",
+ "@babel/register": "7.0.0",
+ "@vue/cli-plugin-babel": "3.5.3",
+ "@vue/cli-plugin-eslint": "^3.9.1",
+ "@vue/cli-plugin-unit-jest": "3.5.3",
+ "@vue/cli-service": "3.5.3",
+ "@vue/test-utils": "1.0.0-beta.29",
+ "autoprefixer": "^9.5.1",
+ "babel-core": "7.0.0-bridge.0",
+ "babel-eslint": "10.0.1",
+ "babel-jest": "23.6.0",
+ "chalk": "2.4.2",
+ "chokidar": "2.1.5",
+ "connect": "3.6.6",
+ "eslint": "5.15.3",
+ "eslint-plugin-vue": "5.2.2",
+ "html-webpack-plugin": "3.2.0",
+ "husky": "1.3.1",
+ "lint-staged": "8.1.5",
+ "mockjs": "1.0.1-beta3",
+ "node-sass": "^4.9.0",
+ "plop": "2.3.0",
+ "runjs": "^4.3.2",
+ "sass-loader": "^7.1.0",
+ "script-ext-html-webpack-plugin": "2.1.3",
+ "serve-static": "^1.13.2",
+ "svg-sprite-loader": "4.1.3",
+ "svgo": "1.2.0",
+ "vue-template-compiler": "2.6.10"
+ },
+ "engines": {
+ "node": ">=8.9",
+ "npm": ">= 3.0.0"
+ },
+ "browserslist": [
+ "> 1%",
+ "last 2 versions"
+ ]
+}
@@ -0,0 +1,26 @@ |
||
| 1 |
+{{#if template}}
|
|
| 2 |
+<template> |
|
| 3 |
+ <div /> |
|
| 4 |
+</template> |
|
| 5 |
+{{/if}}
|
|
| 6 |
+ |
|
| 7 |
+{{#if script}}
|
|
| 8 |
+<script> |
|
| 9 |
+export default {
|
|
| 10 |
+ name: '{{ properCase name }}',
|
|
| 11 |
+ props: {},
|
|
| 12 |
+ data() {
|
|
| 13 |
+ return {}
|
|
| 14 |
+ }, |
|
| 15 |
+ created() {},
|
|
| 16 |
+ mounted() {},
|
|
| 17 |
+ methods: {}
|
|
| 18 |
+} |
|
| 19 |
+</script> |
|
| 20 |
+{{/if}}
|
|
| 21 |
+ |
|
| 22 |
+{{#if style}}
|
|
| 23 |
+<style lang="scss" scoped> |
|
| 24 |
+ |
|
| 25 |
+</style> |
|
| 26 |
+{{/if}}
|
@@ -0,0 +1,55 @@ |
||
| 1 |
+const { notEmpty } = require('../utils.js')
|
|
| 2 |
+ |
|
| 3 |
+module.exports = {
|
|
| 4 |
+ description: 'generate vue component', |
|
| 5 |
+ prompts: [{
|
|
| 6 |
+ type: 'input', |
|
| 7 |
+ name: 'name', |
|
| 8 |
+ message: 'component name please', |
|
| 9 |
+ validate: notEmpty('name')
|
|
| 10 |
+ }, |
|
| 11 |
+ {
|
|
| 12 |
+ type: 'checkbox', |
|
| 13 |
+ name: 'blocks', |
|
| 14 |
+ message: 'Blocks:', |
|
| 15 |
+ choices: [{
|
|
| 16 |
+ name: '<template>', |
|
| 17 |
+ value: 'template', |
|
| 18 |
+ checked: true |
|
| 19 |
+ }, |
|
| 20 |
+ {
|
|
| 21 |
+ name: '<script>', |
|
| 22 |
+ value: 'script', |
|
| 23 |
+ checked: true |
|
| 24 |
+ }, |
|
| 25 |
+ {
|
|
| 26 |
+ name: 'style', |
|
| 27 |
+ value: 'style', |
|
| 28 |
+ checked: true |
|
| 29 |
+ } |
|
| 30 |
+ ], |
|
| 31 |
+ validate(value) {
|
|
| 32 |
+ if (value.indexOf('script') === -1 && value.indexOf('template') === -1) {
|
|
| 33 |
+ return 'Components require at least a <script> or <template> tag.' |
|
| 34 |
+ } |
|
| 35 |
+ return true |
|
| 36 |
+ } |
|
| 37 |
+ } |
|
| 38 |
+ ], |
|
| 39 |
+ actions: data => {
|
|
| 40 |
+ const name = '{{properCase name}}'
|
|
| 41 |
+ const actions = [{
|
|
| 42 |
+ type: 'add', |
|
| 43 |
+ path: `src/components/${name}/index.vue`,
|
|
| 44 |
+ templateFile: 'plop-templates/component/index.hbs', |
|
| 45 |
+ data: {
|
|
| 46 |
+ name: name, |
|
| 47 |
+ template: data.blocks.includes('template'),
|
|
| 48 |
+ script: data.blocks.includes('script'),
|
|
| 49 |
+ style: data.blocks.includes('style')
|
|
| 50 |
+ } |
|
| 51 |
+ }] |
|
| 52 |
+ |
|
| 53 |
+ return actions |
|
| 54 |
+ } |
|
| 55 |
+} |
@@ -0,0 +1,16 @@ |
||
| 1 |
+{{#if state}}
|
|
| 2 |
+const state = {}
|
|
| 3 |
+{{/if}}
|
|
| 4 |
+ |
|
| 5 |
+{{#if mutations}}
|
|
| 6 |
+const mutations = {}
|
|
| 7 |
+{{/if}}
|
|
| 8 |
+ |
|
| 9 |
+{{#if actions}}
|
|
| 10 |
+const actions = {}
|
|
| 11 |
+{{/if}}
|
|
| 12 |
+ |
|
| 13 |
+export default {
|
|
| 14 |
+ namespaced: true, |
|
| 15 |
+ {{options}}
|
|
| 16 |
+} |
@@ -0,0 +1,62 @@ |
||
| 1 |
+const { notEmpty } = require('../utils.js')
|
|
| 2 |
+ |
|
| 3 |
+module.exports = {
|
|
| 4 |
+ description: 'generate store', |
|
| 5 |
+ prompts: [{
|
|
| 6 |
+ type: 'input', |
|
| 7 |
+ name: 'name', |
|
| 8 |
+ message: 'store name please', |
|
| 9 |
+ validate: notEmpty('name')
|
|
| 10 |
+ }, |
|
| 11 |
+ {
|
|
| 12 |
+ type: 'checkbox', |
|
| 13 |
+ name: 'blocks', |
|
| 14 |
+ message: 'Blocks:', |
|
| 15 |
+ choices: [{
|
|
| 16 |
+ name: 'state', |
|
| 17 |
+ value: 'state', |
|
| 18 |
+ checked: true |
|
| 19 |
+ }, |
|
| 20 |
+ {
|
|
| 21 |
+ name: 'mutations', |
|
| 22 |
+ value: 'mutations', |
|
| 23 |
+ checked: true |
|
| 24 |
+ }, |
|
| 25 |
+ {
|
|
| 26 |
+ name: 'actions', |
|
| 27 |
+ value: 'actions', |
|
| 28 |
+ checked: true |
|
| 29 |
+ } |
|
| 30 |
+ ], |
|
| 31 |
+ validate(value) {
|
|
| 32 |
+ if (!value.includes('state') || !value.includes('mutations')) {
|
|
| 33 |
+ return 'store require at least state and mutations' |
|
| 34 |
+ } |
|
| 35 |
+ return true |
|
| 36 |
+ } |
|
| 37 |
+ } |
|
| 38 |
+ ], |
|
| 39 |
+ actions(data) {
|
|
| 40 |
+ const name = '{{name}}'
|
|
| 41 |
+ const { blocks } = data
|
|
| 42 |
+ const options = ['state', 'mutations'] |
|
| 43 |
+ const joinFlag = `, |
|
| 44 |
+ ` |
|
| 45 |
+ if (blocks.length === 3) {
|
|
| 46 |
+ options.push('actions')
|
|
| 47 |
+ } |
|
| 48 |
+ |
|
| 49 |
+ const actions = [{
|
|
| 50 |
+ type: 'add', |
|
| 51 |
+ path: `src/store/modules/${name}.js`,
|
|
| 52 |
+ templateFile: 'plop-templates/store/index.hbs', |
|
| 53 |
+ data: {
|
|
| 54 |
+ options: options.join(joinFlag), |
|
| 55 |
+ state: blocks.includes('state'),
|
|
| 56 |
+ mutations: blocks.includes('mutations'),
|
|
| 57 |
+ actions: blocks.includes('actions')
|
|
| 58 |
+ } |
|
| 59 |
+ }] |
|
| 60 |
+ return actions |
|
| 61 |
+ } |
|
| 62 |
+} |
@@ -0,0 +1,9 @@ |
||
| 1 |
+exports.notEmpty = name => {
|
|
| 2 |
+ return v => {
|
|
| 3 |
+ if (!v || v.trim === '') {
|
|
| 4 |
+ return `${name} is required`
|
|
| 5 |
+ } else {
|
|
| 6 |
+ return true |
|
| 7 |
+ } |
|
| 8 |
+ } |
|
| 9 |
+} |
@@ -0,0 +1,26 @@ |
||
| 1 |
+{{#if template}}
|
|
| 2 |
+<template> |
|
| 3 |
+ <div /> |
|
| 4 |
+</template> |
|
| 5 |
+{{/if}}
|
|
| 6 |
+ |
|
| 7 |
+{{#if script}}
|
|
| 8 |
+<script> |
|
| 9 |
+export default {
|
|
| 10 |
+ name: '{{ properCase name }}',
|
|
| 11 |
+ props: {},
|
|
| 12 |
+ data() {
|
|
| 13 |
+ return {}
|
|
| 14 |
+ }, |
|
| 15 |
+ created() {},
|
|
| 16 |
+ mounted() {},
|
|
| 17 |
+ methods: {}
|
|
| 18 |
+} |
|
| 19 |
+</script> |
|
| 20 |
+{{/if}}
|
|
| 21 |
+ |
|
| 22 |
+{{#if style}}
|
|
| 23 |
+<style lang="scss" scoped> |
|
| 24 |
+ |
|
| 25 |
+</style> |
|
| 26 |
+{{/if}}
|
@@ -0,0 +1,55 @@ |
||
| 1 |
+const { notEmpty } = require('../utils.js')
|
|
| 2 |
+ |
|
| 3 |
+module.exports = {
|
|
| 4 |
+ description: 'generate a view', |
|
| 5 |
+ prompts: [{
|
|
| 6 |
+ type: 'input', |
|
| 7 |
+ name: 'name', |
|
| 8 |
+ message: 'view name please', |
|
| 9 |
+ validate: notEmpty('name')
|
|
| 10 |
+ }, |
|
| 11 |
+ {
|
|
| 12 |
+ type: 'checkbox', |
|
| 13 |
+ name: 'blocks', |
|
| 14 |
+ message: 'Blocks:', |
|
| 15 |
+ choices: [{
|
|
| 16 |
+ name: '<template>', |
|
| 17 |
+ value: 'template', |
|
| 18 |
+ checked: true |
|
| 19 |
+ }, |
|
| 20 |
+ {
|
|
| 21 |
+ name: '<script>', |
|
| 22 |
+ value: 'script', |
|
| 23 |
+ checked: true |
|
| 24 |
+ }, |
|
| 25 |
+ {
|
|
| 26 |
+ name: 'style', |
|
| 27 |
+ value: 'style', |
|
| 28 |
+ checked: true |
|
| 29 |
+ } |
|
| 30 |
+ ], |
|
| 31 |
+ validate(value) {
|
|
| 32 |
+ if (value.indexOf('script') === -1 && value.indexOf('template') === -1) {
|
|
| 33 |
+ return 'View require at least a <script> or <template> tag.' |
|
| 34 |
+ } |
|
| 35 |
+ return true |
|
| 36 |
+ } |
|
| 37 |
+ } |
|
| 38 |
+ ], |
|
| 39 |
+ actions: data => {
|
|
| 40 |
+ const name = '{{name}}'
|
|
| 41 |
+ const actions = [{
|
|
| 42 |
+ type: 'add', |
|
| 43 |
+ path: `src/views/${name}/index.vue`,
|
|
| 44 |
+ templateFile: 'plop-templates/view/index.hbs', |
|
| 45 |
+ data: {
|
|
| 46 |
+ name: name, |
|
| 47 |
+ template: data.blocks.includes('template'),
|
|
| 48 |
+ script: data.blocks.includes('script'),
|
|
| 49 |
+ style: data.blocks.includes('style')
|
|
| 50 |
+ } |
|
| 51 |
+ }] |
|
| 52 |
+ |
|
| 53 |
+ return actions |
|
| 54 |
+ } |
|
| 55 |
+} |
@@ -0,0 +1,9 @@ |
||
| 1 |
+const viewGenerator = require('./plop-templates/view/prompt')
|
|
| 2 |
+const componentGenerator = require('./plop-templates/component/prompt')
|
|
| 3 |
+const storeGenerator = require('./plop-templates/store/prompt.js')
|
|
| 4 |
+ |
|
| 5 |
+module.exports = function(plop) {
|
|
| 6 |
+ plop.setGenerator('view', viewGenerator)
|
|
| 7 |
+ plop.setGenerator('component', componentGenerator)
|
|
| 8 |
+ plop.setGenerator('store', storeGenerator)
|
|
| 9 |
+} |
@@ -0,0 +1,5 @@ |
||
| 1 |
+module.exports = {
|
|
| 2 |
+ plugins: {
|
|
| 3 |
+ autoprefixer: {}
|
|
| 4 |
+ } |
|
| 5 |
+} |
@@ -0,0 +1,15 @@ |
||
| 1 |
+<!DOCTYPE html> |
|
| 2 |
+<html> |
|
| 3 |
+ <head> |
|
| 4 |
+ <meta charset="utf-8"> |
|
| 5 |
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
|
| 6 |
+ <meta name="renderer" content="webkit"> |
|
| 7 |
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> |
|
| 8 |
+ <link rel="icon" href="<%= BASE_URL %>favicon.ico"> |
|
| 9 |
+ <title><%= webpackConfig.name %></title> |
|
| 10 |
+ </head> |
|
| 11 |
+ <body> |
|
| 12 |
+ <div id="app"></div> |
|
| 13 |
+ <!-- built files will be auto injected --> |
|
| 14 |
+ </body> |
|
| 15 |
+</html> |
@@ -0,0 +1,11 @@ |
||
| 1 |
+<template> |
|
| 2 |
+ <div id="app"> |
|
| 3 |
+ <router-view /> |
|
| 4 |
+ </div> |
|
| 5 |
+</template> |
|
| 6 |
+ |
|
| 7 |
+<script> |
|
| 8 |
+export default {
|
|
| 9 |
+ name: 'App' |
|
| 10 |
+} |
|
| 11 |
+</script> |
@@ -0,0 +1,13 @@ |
||
| 1 |
+import request from '@/utils/request' |
|
| 2 |
+import store from '@/store' |
|
| 3 |
+import qs from 'qs' |
|
| 4 |
+ |
|
| 5 |
+export function fetchDashboard(data) {
|
|
| 6 |
+ data['brand_id'] = 'ywkRTh5vtswRvhh8uLvTTQ' |
|
| 7 |
+ data['admin_id'] = store.getters.token |
|
| 8 |
+ return request({
|
|
| 9 |
+ url: '/admin/dashboard', |
|
| 10 |
+ method: 'post', |
|
| 11 |
+ data: qs.stringify(data) |
|
| 12 |
+ }) |
|
| 13 |
+} |
@@ -0,0 +1,21 @@ |
||
| 1 |
+import request from '@/utils/request' |
|
| 2 |
+import store from '@/store' |
|
| 3 |
+import qs from 'qs' |
|
| 4 |
+ |
|
| 5 |
+export function fetchList(data) {
|
|
| 6 |
+ data['admin_id'] = store.getters.token |
|
| 7 |
+ return request({
|
|
| 8 |
+ url: '/admin/order/list', |
|
| 9 |
+ method: 'post', |
|
| 10 |
+ data: qs.stringify(data) |
|
| 11 |
+ }) |
|
| 12 |
+} |
|
| 13 |
+ |
|
| 14 |
+export function updateOrder(data) {
|
|
| 15 |
+ data['admin_id'] = store.getters.token |
|
| 16 |
+ return request({
|
|
| 17 |
+ url: '/admin/order/update', |
|
| 18 |
+ method: 'post', |
|
| 19 |
+ data: qs.stringify(data) |
|
| 20 |
+ }) |
|
| 21 |
+} |
@@ -0,0 +1,25 @@ |
||
| 1 |
+import request from '@/utils/request' |
|
| 2 |
+import qs from 'qs' |
|
| 3 |
+ |
|
| 4 |
+export function login(data) {
|
|
| 5 |
+ return request({
|
|
| 6 |
+ url: '/admin/login', |
|
| 7 |
+ method: 'post', |
|
| 8 |
+ data: qs.stringify(data) |
|
| 9 |
+ }) |
|
| 10 |
+} |
|
| 11 |
+ |
|
| 12 |
+export function getInfo(token) {
|
|
| 13 |
+ return request({
|
|
| 14 |
+ url: '/vue-element-admin/user/info', |
|
| 15 |
+ method: 'get', |
|
| 16 |
+ params: { token }
|
|
| 17 |
+ }) |
|
| 18 |
+} |
|
| 19 |
+ |
|
| 20 |
+export function logout() {
|
|
| 21 |
+ return request({
|
|
| 22 |
+ url: '/vue-element-admin/user/logout', |
|
| 23 |
+ method: 'post' |
|
| 24 |
+ }) |
|
| 25 |
+} |
@@ -0,0 +1 @@ |