65
+    "sortablejs": "1.8.4",
66
+    "tui-editor": "1.3.3",
67
+    "vue": "2.6.10",
68
+    "vue-count-to": "1.0.13",
69
+    "vue-router": "3.0.2",
70
+    "vue-splitpane": "1.0.4",
71
+    "vuedraggable": "2.20.0",
72
+    "vuex": "3.1.0",
73
+    "xlsx": "0.14.1"
74
+  },
75
+  "devDependencies": {
76
+    "@babel/core": "7.0.0",
77
+    "@babel/register": "7.0.0",
78
+    "@vue/cli-plugin-babel": "3.5.3",
79
+    "@vue/cli-plugin-eslint": "^3.9.1",
80
+    "@vue/cli-plugin-unit-jest": "3.5.3",
81
+    "@vue/cli-service": "3.5.3",
82
+    "@vue/test-utils": "1.0.0-beta.29",
83
+    "autoprefixer": "^9.5.1",
84
+    "babel-core": "7.0.0-bridge.0",
85
+    "babel-eslint": "10.0.1",
86
+    "babel-jest": "23.6.0",
87
+    "chalk": "2.4.2",
88
+    "chokidar": "2.1.5",
89
+    "connect": "3.6.6",
90
+    "eslint": "5.15.3",
91
+    "eslint-plugin-vue": "5.2.2",
92
+    "html-webpack-plugin": "3.2.0",
93
+    "husky": "1.3.1",
94
+    "lint-staged": "8.1.5",
95
+    "mockjs": "1.0.1-beta3",
96
+    "node-sass": "^4.9.0",
97
+    "plop": "2.3.0",
98
+    "runjs": "^4.3.2",
99
+    "sass-loader": "^7.1.0",
100
+    "script-ext-html-webpack-plugin": "2.1.3",
101
+    "serve-static": "^1.13.2",
102
+    "svg-sprite-loader": "4.1.3",
103
+    "svgo": "1.2.0",
104
+    "vue-template-compiler": "2.6.10"
105
+  },
106
+  "engines": {
107
+    "node": ">=8.9",
108
+    "npm": ">= 3.0.0"
109
+  },
110
+  "browserslist": [
111
+    "> 1%",
112
+    "last 2 versions"
113
+  ]
114
+}

+ 26 - 0
plop-templates/component/index.hbs

@@ -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}}

+ 55 - 0
plop-templates/component/prompt.js

@@ -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
+}

+ 16 - 0
plop-templates/store/index.hbs

@@ -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
+}

+ 62 - 0
plop-templates/store/prompt.js

@@ -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
+}

+ 9 - 0
plop-templates/utils.js

@@ -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
+}

+ 26 - 0
plop-templates/view/index.hbs

@@ -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}}

+ 55 - 0
plop-templates/view/prompt.js

@@ -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
+}

+ 9 - 0
plopfile.js

@@ -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
+}

+ 5 - 0
postcss.config.js

@@ -0,0 +1,5 @@
1
+module.exports = {
2
+  plugins: {
3
+    autoprefixer: {}
4
+  }
5
+}

BIN
public/favicon.ico


+ 15 - 0
public/index.html

@@ -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>

+ 11 - 0
src/App.vue

@@ -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>

+ 13 - 0
src/api/dashboard.js

@@ -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
+}

+ 21 - 0
src/api/order.js

@@ -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
+}

+ 25 - 0
src/api/user.js

@@ -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
+}

BIN
src/assets/401_images/401.gif


BIN
src/assets/404_images/404.png


BIN
src/assets/404_images/404_cloud.png


BIN
src/assets/custom-theme/fonts/element-icons.ttf


BIN
src/assets/custom-theme/fonts/element-icons.woff


+ 0 - 0
src/assets/custom-theme/index.css

@@ -0,0 +1 @@

kodo - Gogs: Go Git Service

Sin Descripción

Brightcells: f38d3bf980 Caesar Alg %!s(int64=7) %!d(string=hace) años
..
__init__.py aa31a5f59a Add kodo %!s(int64=8) %!d(string=hace) años
b64.py aa31a5f59a Add kodo %!s(int64=8) %!d(string=hace) años
caesar.py f38d3bf980 Caesar Alg %!s(int64=7) %!d(string=hace) años
rsalg.py aa31a5f59a Add kodo %!s(int64=8) %!d(string=hace) años