diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 35410cac..00000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# 默认忽略的文件 -/shelf/ -/workspace.xml -# 基于编辑器的 HTTP 客户端请求 -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index 03d9549e..00000000 --- a/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index b5bbda00..00000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml deleted file mode 100644 index 620ed187..00000000 --- a/.idea/php.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/travel.iml b/.idea/travel.iml deleted file mode 100644 index 86c198d9..00000000 --- a/.idea/travel.iml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1ddf..00000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/admin/.editorconfig b/admin/.editorconfig deleted file mode 100644 index 3454886e..00000000 --- a/admin/.editorconfig +++ /dev/null @@ -1,14 +0,0 @@ -# https://editorconfig.org -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true - -[*.md] -insert_final_newline = false -trim_trailing_whitespace = false diff --git a/admin/.env.development b/admin/.env.development deleted file mode 100644 index de583d09..00000000 --- a/admin/.env.development +++ /dev/null @@ -1,5 +0,0 @@ -# just a flag -ENV = 'development' - -# base api -VUE_APP_BASE_API = '/dev-api' diff --git a/admin/.env.production b/admin/.env.production deleted file mode 100644 index 14da59c8..00000000 --- a/admin/.env.production +++ /dev/null @@ -1,6 +0,0 @@ -# just a flag -ENV = 'production' - -# base api -VUE_APP_BASE_API = '/' - diff --git a/admin/.env.staging b/admin/.env.staging deleted file mode 100644 index a8793a09..00000000 --- a/admin/.env.staging +++ /dev/null @@ -1,8 +0,0 @@ -NODE_ENV = production - -# just a flag -ENV = 'staging' - -# base api -VUE_APP_BASE_API = '/stage-api' - diff --git a/admin/.eslintignore b/admin/.eslintignore deleted file mode 100644 index e6529fc0..00000000 --- a/admin/.eslintignore +++ /dev/null @@ -1,4 +0,0 @@ -build/*.js -src/assets -public -dist diff --git a/admin/.eslintrc.js b/admin/.eslintrc.js deleted file mode 100644 index c9775054..00000000 --- a/admin/.eslintrc.js +++ /dev/null @@ -1,198 +0,0 @@ -module.exports = { - root: true, - parserOptions: { - parser: 'babel-eslint', - sourceType: 'module' - }, - env: { - browser: true, - node: true, - es6: true, - }, - extends: ['plugin:vue/recommended', 'eslint:recommended'], - - // add your custom rules here - //it is base on https://github.com/vuejs/eslint-config-vue - rules: { - "vue/max-attributes-per-line": [2, { - "singleline": 10, - "multiline": { - "max": 1, - "allowFirstLine": false - } - }], - "vue/singleline-html-element-content-newline": "off", - "vue/multiline-html-element-content-newline":"off", - "vue/name-property-casing": ["error", "PascalCase"], - "vue/no-v-html": "off", - 'accessor-pairs': 2, - 'arrow-spacing': [2, { - 'before': true, - 'after': true - }], - 'block-spacing': [2, 'always'], - 'brace-style': [2, '1tbs', { - 'allowSingleLine': true - }], - 'camelcase': [0, { - 'properties': 'always' - }], - 'comma-dangle': [2, 'never'], - 'comma-spacing': [2, { - 'before': false, - 'after': true - }], - 'comma-style': [2, 'last'], - 'constructor-super': 2, - 'curly': [2, 'multi-line'], - 'dot-location': [2, 'property'], - 'eol-last': 2, - 'eqeqeq': ["error", "always", {"null": "ignore"}], - 'generator-star-spacing': [2, { - 'before': true, - 'after': true - }], - 'handle-callback-err': [2, '^(err|error)$'], - 'indent': [2, 2, { - 'SwitchCase': 1 - }], - 'jsx-quotes': [2, 'prefer-single'], - 'key-spacing': [2, { - 'beforeColon': false, - 'afterColon': true - }], - 'keyword-spacing': [2, { - 'before': true, - 'after': true - }], - 'new-cap': [2, { - 'newIsCap': true, - 'capIsNew': false - }], - 'new-parens': 2, - 'no-array-constructor': 2, - 'no-caller': 2, - 'no-console': 'off', - 'no-class-assign': 2, - 'no-cond-assign': 2, - 'no-const-assign': 2, - 'no-control-regex': 0, - 'no-delete-var': 2, - 'no-dupe-args': 2, - 'no-dupe-class-members': 2, - 'no-dupe-keys': 2, - 'no-duplicate-case': 2, - 'no-empty-character-class': 2, - 'no-empty-pattern': 2, - 'no-eval': 2, - 'no-ex-assign': 2, - 'no-extend-native': 2, - 'no-extra-bind': 2, - 'no-extra-boolean-cast': 2, - 'no-extra-parens': [2, 'functions'], - 'no-fallthrough': 2, - 'no-floating-decimal': 2, - 'no-func-assign': 2, - 'no-implied-eval': 2, - 'no-inner-declarations': [2, 'functions'], - 'no-invalid-regexp': 2, - 'no-irregular-whitespace': 2, - 'no-iterator': 2, - 'no-label-var': 2, - 'no-labels': [2, { - 'allowLoop': false, - 'allowSwitch': false - }], - 'no-lone-blocks': 2, - 'no-mixed-spaces-and-tabs': 2, - 'no-multi-spaces': 2, - 'no-multi-str': 2, - 'no-multiple-empty-lines': [2, { - 'max': 1 - }], - 'no-native-reassign': 2, - 'no-negated-in-lhs': 2, - 'no-new-object': 2, - 'no-new-require': 2, - 'no-new-symbol': 2, - 'no-new-wrappers': 2, - 'no-obj-calls': 2, - 'no-octal': 2, - 'no-octal-escape': 2, - 'no-path-concat': 2, - 'no-proto': 2, - 'no-redeclare': 2, - 'no-regex-spaces': 2, - 'no-return-assign': [2, 'except-parens'], - 'no-self-assign': 2, - 'no-self-compare': 2, - 'no-sequences': 2, - 'no-shadow-restricted-names': 2, - 'no-spaced-func': 2, - 'no-sparse-arrays': 2, - 'no-this-before-super': 2, - 'no-throw-literal': 2, - 'no-trailing-spaces': 2, - 'no-undef': 2, - 'no-undef-init': 2, - 'no-unexpected-multiline': 2, - 'no-unmodified-loop-condition': 2, - 'no-unneeded-ternary': [2, { - 'defaultAssignment': false - }], - 'no-unreachable': 2, - 'no-unsafe-finally': 2, - 'no-unused-vars': [2, { - 'vars': 'all', - 'args': 'none' - }], - 'no-useless-call': 2, - 'no-useless-computed-key': 2, - 'no-useless-constructor': 2, - 'no-useless-escape': 0, - 'no-whitespace-before-property': 2, - 'no-with': 2, - 'one-var': [2, { - 'initialized': 'never' - }], - 'operator-linebreak': [2, 'after', { - 'overrides': { - '?': 'before', - ':': 'before' - } - }], - 'padded-blocks': [2, 'never'], - 'quotes': [2, 'single', { - 'avoidEscape': true, - 'allowTemplateLiterals': true - }], - 'semi': [2, 'never'], - 'semi-spacing': [2, { - 'before': false, - 'after': true - }], - 'space-before-blocks': [2, 'always'], - 'space-before-function-paren': [2, 'never'], - 'space-in-parens': [2, 'never'], - 'space-infix-ops': 2, - 'space-unary-ops': [2, { - 'words': true, - 'nonwords': false - }], - 'spaced-comment': [2, 'always', { - 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] - }], - 'template-curly-spacing': [2, 'never'], - 'use-isnan': 2, - 'valid-typeof': 2, - 'wrap-iife': [2, 'any'], - 'yield-star-spacing': [2, 'both'], - 'yoda': [2, 'never'], - 'prefer-const': 2, - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'object-curly-spacing': [2, 'always', { - objectsInObjects: false - }], - 'array-bracket-spacing': [2, 'never'] - } -} diff --git a/admin/.gitignore b/admin/.gitignore deleted file mode 100644 index 78a752d8..00000000 --- a/admin/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -.DS_Store -node_modules/ -dist/ -npm-debug.log* -yarn-debug.log* -yarn-error.log* -**/*.log - -tests/**/coverage/ -tests/e2e/reports -selenium-debug.log - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.local - -package-lock.json -yarn.lock diff --git a/admin/.travis.yml b/admin/.travis.yml deleted file mode 100644 index f4be7a08..00000000 --- a/admin/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: 10 -script: npm run test -notifications: - email: false diff --git a/admin/LICENSE b/admin/LICENSE deleted file mode 100644 index 61515750..00000000 --- a/admin/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017-present PanJiaChen - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/admin/README.es.md b/admin/README.es.md deleted file mode 100644 index dc20fa42..00000000 --- a/admin/README.es.md +++ /dev/null @@ -1,228 +0,0 @@ -

- -

- -

- - vue - - - element-ui - - - Estado de Construcción - - - Licencia - - - Liberación Github - - - Gitter - - - Donación - -

- -Español | [English](./README.md) | [简体中文](./README.zh-CN.md) | [日本語](./README.ja.md) - -## Introducción - -[vue-element-admin](https://panjiachen.github.io/vue-element-admin) es una interfáz de administración preparada para producción. Está basada en [vue](https://github.com/vuejs/vue) y usa [element-ui](https://github.com/ElemeFE/element) como conjunto de herramientas de interfáz de usuario. - -Vue Element Admin es una solución práctica basada en la nueva plataforma de desarrollo de vue, construida con soporte a i18 para el manejo de múltiples lenguajes, plantillas estándares para aplicaciones de negocio y un conjunto de asombrosas características. Esta herramienta ayuda a construir largas y complejas Aplicacones de una sola página (SPA). Creo que lo que necesites hacer, este proyecto te ayudará. - -- [Vista Prévia de la Aplicación](https://panjiachen.github.io/vue-element-admin) - -- [Documentación](https://panjiachen.github.io/vue-element-admin-site/) - -- [Canal de Gitter](https://gitter.im/vue-element-admin/discuss) - -- [Para Donaciones](https://panjiachen.github.io/vue-element-admin-site/donate/) - -- [Enlace de Wiki](https://github.com/PanJiaChen/vue-element-admin/wiki) - -- [Canal de Gitee](https://panjiachen.gitee.io/vue-element-admin/) - -- Plantilla base recomendada para usar: [vue-admin-template](https://github.com/PanJiaChen/vue-admin-template) -- Aplicación de Escritorio: [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin) -- Plantilla de Typescript: [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (Créditos: [@Armour](https://github.com/Armour)) -- [awesome-project](https://github.com/PanJiaChen/vue-element-admin/issues/2312) - -**Después de la versión `v4.1.0+`, la rama por defecto master no tendrá soporte para i18n. Por favor utilice la rama [i18n](https://github.com/PanJiaChen/vue-element-admin/tree/i18n), los cambios serán incluidos en la rama master** - -**la versión actual es `v4.0+` construida con `vue-cli`. Si encuentra algún problema, por favor coloque un [issue](https://github.com/PanJiaChen/vue-element-admin/issues/new). Si desea usar la versión anterior, puede cambiar de rama a [tag/3.11.0](https://github.com/PanJiaChen/vue-element-admin/tree/tag/3.11.0), no relacionado con `vue-cli`** - -**Este proyecto no está soportado para versiones antigüas de navegadores (ej. IE).** - -## Preparación - -Necesita instalar [node](https://nodejs.org/) y [git](https://git-scm.com/) localmente. El proyecto es basado en [ES2015+](https://es6.ruanyifeng.com/), [vue](https://cn.vuejs.org/index.html), [vuex](https://vuex.vuejs.org/zh-cn/), [vue-router](https://router.vuejs.org/zh-cn/), [vue-cli](https://github.com/vuejs/vue-cli) , [axios](https://github.com/axios/axios) and [element-ui](https://github.com/ElemeFE/element), toda la solicitud de datos simulada se realiza a través de [Mock.js](https://github.com/nuysoft/Mock). -Entendiendo y aprendiendo esto pudiera ayudarle con su proyecto. - -[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/github/PanJiaChen/vue-element-admin/tree/CodeSandbox) - -

- -

- -## Patrocinantes - -Sea un patrocinante y coloque su logo en nuestro LEEME en GitHub con un enlace directo a su sitio web. [[Se un Patrocinante]](https://www.patreon.com/panjiachen) - -### Akveo -

Get Java backend for Vue admin with 20% discount for 39$ use coupon code SWB0RAZPZR1M -

- -### Flatlogic - -

Admin Dashboard Templates made with Vue, React and Angular.

- -## Características - -``` -- Iniciar / Cerrar Sesión - -- Permisos de Autenticación - - Página de Permisos - - Directivas de permisos - - Página de configuración de permisos - - Autenticación por dos pasos - -- Construcción Multi-entorno - - Desarrollo (dev) - - sit - - Escenario de pruebas (stage), - - Producción (prod) - -- Características Globales - - I18n - - Temas dinámicos - - Menu lateral dinámico (soporte a rutas multi-nivel) - - Barra de rutas dinámica - - Tags-view (Pestañas de página, Soporta operación de clic derecho) - - Svg Sprite - - Datos de simulación con Mock - - Pantalla completa - - Menu lateral responsivo - -- Editor - - Editor de Texto Enriquecido - - Editor Markdown - - Editor JSON - -- Excel - - Exportación a Excel - - Carga de Excel - - Visualización de Excel - - Exportación como ZIP - -- Tabla - - Tabla Dinámica - - Tabla con Arrastrar y Soltar - - Tabla de edición en línea - -- Páginas de Error - - 401 - - 404 - -- Componentes - - Carga de Avatar - - Botón para subir al inicio - - Arrastrar y Soltar (Diaglogo) - - Arrastrar y Soltar (Seleccionar) - - Arrastrar y Soltar (Kanban) - - Arrastrar y Soltar (Lista) - - Panel de división - - Componente para soltar archivos - - Adhesión de objetos - - Contador hasta - -- Ejemplo Avanzado -- Registro de Errores -- Tablero de indicadores -- Página de Guías -- ECharts (Gráficos) -- Portapapeles -- Convertidor de Markdown a HTML -``` - -## Iniciando - -```bash -# clone el proyecto -git clone https://github.com/PanJiaChen/vue-element-admin.git - -# vaya al directorio clonado -cd vue-element-admin - -# instale las dependencias -npm install - -# corra el proyecto como desarrollador -npm run dev -``` - -Automáticamente se abrirá el siguiente enlace en su navegador http://localhost:9527 - -## Construcción - -```bash -# Construcción para entornos de prueba -npm run build:stage - -# Construcción para entornos de producción -npm run build:prod -``` - -## Avanzado - -```bash -# Vista previa con efectos de entorno -npm run preview - -# Vista previa con efectos + análisis de recursos estáticos -npm run preview -- --report - -# Chequeo de formato de código -npm run lint - -# Chequeo de formato de código y auto-corrección -npm run lint -- --fix -``` - -Vaya a [Documentación](https://panjiachen.github.io/vue-element-admin-site/guide/essentials/deploy.html) para mayor información - -## Registro de Cambios - -Los cambios detallados por cada liberación se encuentran en [notas de liberación](https://github.com/PanJiaChen/vue-element-admin/releases). - -## Demostración en línea - -[Vista Prévia de la Aplicación](https://panjiachen.github.io/vue-element-admin) - -## Donación - -Si este proyecto es de mucha ayuda para ti, puedes comprarle al autor un vaso de jugo :tropical_drink: - -![Donar](https://wpimg.wallstcn.com/bd273f0d-83a0-4ef2-92e1-9ac8ed3746b9.png) - -[dona por Paypal](https://www.paypal.me/panfree23) - -[Comprame un Café](https://www.buymeacoffee.com/Pan) - -## Navegadores Soportados - -Navegadores modernos e Internet Explorer 10+. - -| [IE / Edge](https://godban.github.io/browsers-support-badges/)
IE / Edge | [Firefox](https://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](https://godban.github.io/browsers-support-badges/)
Chrome | [Safari](https://godban.github.io/browsers-support-badges/)
Safari | -| --------- | --------- | --------- | --------- | -| IE10, IE11, Edge | últimas 2 versiones | últimas 2 versiones | últimas 2 versiones | - -## Licencia - -[MIT](https://github.com/PanJiaChen/vue-element-admin/blob/master/LICENSE) - -Copyright (c) 2017-presente PanJiaChen diff --git a/admin/README.ja.md b/admin/README.ja.md deleted file mode 100644 index 3bc3ce8b..00000000 --- a/admin/README.ja.md +++ /dev/null @@ -1,224 +0,0 @@ -

- -

- -

- - vue - - - element-ui - - - Build Status - - - license - - - GitHub release - - - gitter - - - donate - -

- -日本語 | [English](./README.md) | [简体中文](./README.zh-CN.md) | [Spanish](./README.es.md) - -## 概要 - -[vue-element-admin](https://panjiachen.github.io/vue-element-admin) は管理画面のフロントエンドのインタフェースで、[vue](https://github.com/vuejs/vue) と [element-ui](https://github.com/ElemeFE/element)を使っています。i18nの多言語対応、可変ルート、権限、典型的なビジネスアプリテンプレートであり、豊富なコンポーネントを提供しています。素早くビジネス用の管理画面の現型を構築に役立ちます。 - -- [デモページ](https://panjiachen.github.io/vue-element-admin) - -- [ドキュメント](https://panjiachen.github.io/vue-element-admin-site/) - -- [Gitter](https://gitter.im/vue-element-admin/discuss) - -- [Donate](https://panjiachen.gitee.io/vue-element-admin-site/zh/donate) - -- [Wiki](https://github.com/PanJiaChen/vue-element-admin/wiki) - -- おすすめシンプルテンプレート: [vue-admin-template](https://github.com/PanJiaChen/vue-admin-template) -- デスクトップバージョン: [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin) -- Typescriptバージョン: [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (感謝: [@Armour](https://github.com/Armour)) -- [awesome-project](https://github.com/PanJiaChen/vue-element-admin/issues/2312) - -**バージョン`v4.1.0+`以降について、デフォルトのmasterブランチではi18nをサポートしていません。masterブランチと共にアップデートされる[i18n Branch](https://github.com/PanJiaChen/vue-element-admin/tree/i18n)を使用してください。 ** - -**現在のバージョン `v4.0+` は `vue-cli` で構築していて、バグ報告は[issue](https://github.com/PanJiaChen/vue-element-admin/issues/new)のissueでお願いします。旧バージョン[tag/3.11.0](https://github.com/PanJiaChen/vue-element-admin/tree/tag/3.11.0)もあります。こちらは`vue-cli`に依存しないです。** - -**低いバージョンのブラウザはサーポートしないです(例えば ie),必要があれば polyfill を追加してください。 [詳細はこちら](https://github.com/PanJiaChen/vue-element-admin/wiki#babel-polyfill)** - -## 前準備 - -ローカル環境に [node](http://nodejs.org/) と [git](https://git-scm.com/)のインストールが必要です。[ES2015+](http://es6.ruanyifeng.com/)、[vue](https://cn.vuejs.org/index.html)、[vuex](https://vuex.vuejs.org/zh-cn/)、[vue-router](https://router.vuejs.org/zh-cn/) 、[vue-cli](https://github.com/vuejs/vue-cli) 、[axios](https://github.com/axios/axios) と [element-ui](https://github.com/ElemeFE/element)で開発しています。Requestは[Mock.js](https://github.com/nuysoft/Mock)のモックデータを使っています。 - -**バグ修正や新規機能追加のissue と pull requestは大歓迎です。** - -[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/github/PanJiaChen/vue-element-admin/tree/CodeSandbox) - -

- -

- -## Sponsors - -Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor]](https://www.patreon.com/panjiachen) - -### Akveo -

Get Java backend for Vue admin with 20% discount for 39$ use coupon code SWB0RAZPZR1M -

- -### Flatlogic - -

Admin Dashboard Templates made with Vue, React and Angular.

- -## 機能一覧 - -``` -- ログイン / ログアウト - -- Auth認証 - - ページ権限 - - 権限パーミッション - - 権限設定 - - 外部IDでログイン - -- 複数環境デプロイ - - dev - - sit - - stage - - prod - -- 共通機能 - - 多言語切替 - - テーマ切替 - - サイトメニュー(ルートから生成) - - パンくずリストナビゲーション - - タブナビゲーション - - Svg Sprite アイコン - - ローカル/バックエンド モック データ - - Screenfull - -- WYSIWYG - - TinyMCE - - Markdown - - JSON - -- Excel - - エクスポート - - インポート - - リード - - Zip - -- テーブル - - ダイナミックテーブル - - ドラッグアンドドロップテーブル - - インラインエディットテーブル - -- エラーページ - - 401 - - 404 - -- コンポーネント - - アバターアップロード - - トップに戻る - - ドラッグダイアログ - - ドラッグ選択 - - ドラッグKanban - - ドラッグリスト - - ペインの分割 - - Dropzone - - スティッキー - - CountTo - -- 高度なサンプル -- エラーログ -- ダッシュボード -- ガイドページ -- ECharts -- クリップボード -- Markdown to html -``` - -## Getting started - -```bash -# clone the project -git clone https://github.com/PanJiaChen/vue-element-admin.git - -# enter the project directory -cd vue-element-admin - -# install dependency -npm install - -# develop -npm run dev -``` - -http://localhost:9527 が自動的に開きます。 - -## Build - -```bash -# build for test environment -npm run build:stage - -# build for production environment -npm run build:prod -``` - -## Advanced - -```bash -# preview the release environment effect -npm run preview - -# preview the release environment effect + static resource analysis -npm run preview -- --report - -# code format check -npm run lint - -# code format check and auto fix -npm run lint -- --fix -``` - -詳細は [Documentation](https://panjiachen.github.io/vue-element-admin-site/guide/essentials/deploy.html) を参照してください。 - -## Changelog - -各リリースの詳細は [release notes](https://github.com/PanJiaChen/vue-element-admin/releases) にあります。 - -## Online Demo - -[Preview](https://panjiachen.github.io/vue-element-admin) - -## Donate - -If you find this project useful, you can buy author a glass of juice :tropical_drink: - -![donate](https://wpimg.wallstcn.com/bd273f0d-83a0-4ef2-92e1-9ac8ed3746b9.png) - -[Paypal Me](https://www.paypal.me/panfree23) - -[Buy me a coffee](https://www.buymeacoffee.com/Pan) - -## Browsers support - -Modern browsers and Internet Explorer 10+. - -| [IE / Edge](https://godban.github.io/browsers-support-badges/)
IE / Edge | [Firefox](https://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](https://godban.github.io/browsers-support-badges/)
Chrome | [Safari](https://godban.github.io/browsers-support-badges/)
Safari | -| --------- | --------- | --------- | --------- | -| IE10, IE11, Edge | last 2 versions | last 2 versions | last 2 versions | - -## License - -[MIT](https://github.com/PanJiaChen/vue-element-admin/blob/master/LICENSE) - -Copyright (c) 2017-present PanJiaChen diff --git a/admin/README.md b/admin/README.md deleted file mode 100644 index da4b8b97..00000000 --- a/admin/README.md +++ /dev/null @@ -1,243 +0,0 @@ -

- -

- -

- - vue - - - element-ui - - - Build Status - - - license - - - GitHub release - - - gitter - - - donate - -

- -English | [简体中文](./README.zh-CN.md) | [日本語](./README.ja.md) | [Spanish](./README.es.md) - -

- SPONSORED BY -

- - - - - - -
- - - -
- -## Introduction - -[vue-element-admin](https://panjiachen.github.io/vue-element-admin) is a production-ready front-end solution for admin interfaces. It is based on [vue](https://github.com/vuejs/vue) and uses the UI Toolkit [element-ui](https://github.com/ElemeFE/element). - -[vue-element-admin](https://panjiachen.github.io/vue-element-admin) is based on the newest development stack of vue and it has a built-in i18n solution, typical templates for enterprise applications, and lots of awesome features. It helps you build large and complex Single-Page Applications. I believe whatever your needs are, this project will help you. - -- [Preview](https://panjiachen.github.io/vue-element-admin) - -- [Documentation](https://panjiachen.github.io/vue-element-admin-site/) - -- [Gitter](https://gitter.im/vue-element-admin/discuss) - -- [Donate](https://panjiachen.github.io/vue-element-admin-site/donate/) - -- [Wiki](https://github.com/PanJiaChen/vue-element-admin/wiki) - -- [Gitee](https://panjiachen.gitee.io/vue-element-admin/) 国内用户可访问该地址在线预览 - -- Base template recommends using: [vue-admin-template](https://github.com/PanJiaChen/vue-admin-template) -- Desktop: [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin) -- Typescript: [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (Credits: [@Armour](https://github.com/Armour)) -- [awesome-project](https://github.com/PanJiaChen/vue-element-admin/issues/2312) - -**After the `v4.1.0+` version, the default master branch will not support i18n. Please use [i18n Branch](https://github.com/PanJiaChen/vue-element-admin/tree/i18n), it will keep up with the master update** - -**The current version is `v4.0+` build on `vue-cli`. If you find a problem, please put [issue](https://github.com/PanJiaChen/vue-element-admin/issues/new). If you want to use the old version , you can switch branch to [tag/3.11.0](https://github.com/PanJiaChen/vue-element-admin/tree/tag/3.11.0), it does not rely on `vue-cli`** - -**This project does not support low version browsers (e.g. IE). Please add polyfill by yourself.** - -## Preparation - -You need to install [node](https://nodejs.org/) and [git](https://git-scm.com/) locally. The project is based on [ES2015+](https://es6.ruanyifeng.com/), [vue](https://cn.vuejs.org/index.html), [vuex](https://vuex.vuejs.org/zh-cn/), [vue-router](https://router.vuejs.org/zh-cn/), [vue-cli](https://github.com/vuejs/vue-cli) , [axios](https://github.com/axios/axios) and [element-ui](https://github.com/ElemeFE/element), all request data is simulated using [Mock.js](https://github.com/nuysoft/Mock). -Understanding and learning this knowledge in advance will greatly help the use of this project. - -[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/github/PanJiaChen/vue-element-admin/tree/CodeSandbox) - -

- -

- -## Sponsors - -Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor]](https://www.patreon.com/panjiachen) - -### Akveo -

Get Java backend for Vue admin with 20% discount for 39$ use coupon code SWB0RAZPZR1M -

- -### Flatlogic - -

Admin Dashboard Templates made with Vue, React and Angular.

- -## Features - -``` -- Login / Logout - -- Permission Authentication - - Page permission - - Directive permission - - Permission configuration page - - Two-step login - -- Multi-environment build - - Develop (dev) - - sit - - Stage Test (stage) - - Production (prod) - -- Global Features - - I18n - - Multiple dynamic themes - - Dynamic sidebar (supports multi-level routing) - - Dynamic breadcrumb - - Tags-view (Tab page Support right-click operation) - - Svg Sprite - - Mock data - - Screenfull - - Responsive Sidebar - -- Editor - - Rich Text Editor - - Markdown Editor - - JSON Editor - -- Excel - - Export Excel - - Upload Excel - - Visualization Excel - - Export zip - -- Table - - Dynamic Table - - Drag And Drop Table - - Inline Edit Table - -- Error Page - - 401 - - 404 - -- Components - - Avatar Upload - - Back To Top - - Drag Dialog - - Drag Select - - Drag Kanban - - Drag List - - SplitPane - - Dropzone - - Sticky - - CountTo - -- Advanced Example -- Error Log -- Dashboard -- Guide Page -- ECharts -- Clipboard -- Markdown to html -``` - -## Getting started - -```bash -# clone the project -git clone https://github.com/PanJiaChen/vue-element-admin.git - -# enter the project directory -cd vue-element-admin - -# install dependency -npm install - -# develop -npm run dev -``` - -This will automatically open http://localhost:9527 - -## Build - -```bash -# build for test environment -npm run build:stage - -# build for production environment -npm run build:prod -``` - -## Advanced - -```bash -# preview the release environment effect -npm run preview - -# preview the release environment effect + static resource analysis -npm run preview -- --report - -# code format check -npm run lint - -# code format check and auto fix -npm run lint -- --fix -``` - -Refer to [Documentation](https://panjiachen.github.io/vue-element-admin-site/guide/essentials/deploy.html) for more information - -## Changelog - -Detailed changes for each release are documented in the [release notes](https://github.com/PanJiaChen/vue-element-admin/releases). - -## Online Demo - -[Preview](https://panjiachen.github.io/vue-element-admin) - -## Donate - -If you find this project useful, you can buy author a glass of juice :tropical_drink: - -![donate](https://wpimg.wallstcn.com/bd273f0d-83a0-4ef2-92e1-9ac8ed3746b9.png) - -[Paypal Me](https://www.paypal.me/panfree23) - -[Buy me a coffee](https://www.buymeacoffee.com/Pan) - -## Browsers support - -Modern browsers and Internet Explorer 10+. - -| [IE / Edge](https://godban.github.io/browsers-support-badges/)
IE / Edge | [Firefox](https://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](https://godban.github.io/browsers-support-badges/)
Chrome | [Safari](https://godban.github.io/browsers-support-badges/)
Safari | -| --------- | --------- | --------- | --------- | -| IE10, IE11, Edge | last 2 versions | last 2 versions | last 2 versions | - -## License - -[MIT](https://github.com/PanJiaChen/vue-element-admin/blob/master/LICENSE) - -Copyright (c) 2017-present PanJiaChen diff --git a/admin/README.zh-CN.md b/admin/README.zh-CN.md deleted file mode 100644 index d34c65a4..00000000 --- a/admin/README.zh-CN.md +++ /dev/null @@ -1,266 +0,0 @@ -

- -

- -

- - vue - - - element-ui - - - Build Status - - - license - - - GitHub release - - - gitter - - - donate - -

- -简体中文 | [English](./README.md) | [日本語](./README.ja.md) | [Spanish](./README.es.md) - -

- SPONSORED BY -

- - - - - - -
- - - -
- -## 简介 - -[vue-element-admin](https://panjiachen.github.io/vue-element-admin) 是一个后台前端解决方案,它基于 [vue](https://github.com/vuejs/vue) 和 [element-ui](https://github.com/ElemeFE/element)实现。它使用了最新的前端技术栈,内置了 i18n 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型。相信不管你的需求是什么,本项目都能帮助到你。 - -- [在线预览](https://panjiachen.github.io/vue-element-admin) - -- [使用文档](https://panjiachen.github.io/vue-element-admin-site/zh/) - -- [Gitter 讨论组](https://gitter.im/vue-element-admin/discuss) - -- [Donate](https://panjiachen.gitee.io/vue-element-admin-site/zh/donate) - -- [Wiki](https://github.com/PanJiaChen/vue-element-admin/wiki) - -- [Gitee](https://panjiachen.gitee.io/vue-element-admin/) 在线预览(国内用户可访问该地址) - -- [国内访问文档](https://panjiachen.gitee.io/vue-element-admin-site/zh/) 文档(方便没翻墙的用户查看) - -- 基础模板建议使用: [vue-admin-template](https://github.com/PanJiaChen/vue-admin-template) -- 桌面端: [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin) -- Typescript 版: [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (鸣谢: [@Armour](https://github.com/Armour)) -- [awesome-project](https://github.com/PanJiaChen/vue-element-admin/issues/2312) - -**`v4.1.0+`版本之后默认 master 分支将不支持国际化,有需要的请使用[i18n](https://github.com/PanJiaChen/vue-element-admin/tree/i18n)分支,它会和 master 保持同步更新** - -**该项目不支持低版本浏览器(如 ie),有需求请自行添加 polyfill [详情](https://github.com/PanJiaChen/vue-element-admin/wiki#babel-polyfill)** - -**目前版本为 `v4.0+` 基于 `vue-cli` 进行构建,若发现问题,欢迎提[issue](https://github.com/PanJiaChen/vue-element-admin/issues/new)。若你想使用旧版本,可以切换分支到[tag/3.11.0](https://github.com/PanJiaChen/vue-element-admin/tree/tag/3.11.0),它不依赖 `vue-cli`** - -群主 **[圈子](https://jianshiapp.com/circles/1209)** 群主会经常分享一些技术相关的东西,或者加入 [qq 群](https://github.com/PanJiaChen/vue-element-admin/issues/602) 或者关注 [微博](https://weibo.com/u/3423485724?is_all=1) - -## 前序准备 - -你需要在本地安装 [node](http://nodejs.org/) 和 [git](https://git-scm.com/)。本项目技术栈基于 [ES2015+](http://es6.ruanyifeng.com/)、[vue](https://cn.vuejs.org/index.html)、[vuex](https://vuex.vuejs.org/zh-cn/)、[vue-router](https://router.vuejs.org/zh-cn/) 、[vue-cli](https://github.com/vuejs/vue-cli) 、[axios](https://github.com/axios/axios) 和 [element-ui](https://github.com/ElemeFE/element),所有的请求数据都使用[Mock.js](https://github.com/nuysoft/Mock)进行模拟,提前了解和学习这些知识会对使用本项目有很大的帮助。 - -同时配套了系列教程文章,如何从零构建后一个完整的后台项目,建议大家先看完这些文章再来实践本项目 - -- [手摸手,带你用 vue 撸后台 系列一(基础篇)](https://juejin.im/post/59097cd7a22b9d0065fb61d2) -- [手摸手,带你用 vue 撸后台 系列二(登录权限篇)](https://juejin.im/post/591aa14f570c35006961acac) -- [手摸手,带你用 vue 撸后台 系列三 (实战篇)](https://juejin.im/post/593121aa0ce4630057f70d35) -- [手摸手,带你用 vue 撸后台 系列四(vueAdmin 一个极简的后台基础模板)](https://juejin.im/post/595b4d776fb9a06bbe7dba56) -- [手摸手,带你用vue撸后台 系列五(v4.0新版本)](https://juejin.im/post/5c92ff94f265da6128275a85) -- [手摸手,带你封装一个 vue component](https://segmentfault.com/a/1190000009090836) -- [手摸手,带你优雅的使用 icon](https://juejin.im/post/59bb864b5188257e7a427c09) -- [手摸手,带你用合理的姿势使用 webpack4(上)](https://juejin.im/post/5b56909a518825195f499806) -- [手摸手,带你用合理的姿势使用 webpack4(下)](https://juejin.im/post/5b5d6d6f6fb9a04fea58aabc) - -**如有问题请先看上述使用文档和文章,若不能满足,欢迎 issue 和 pr** - -[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/github/PanJiaChen/vue-element-admin/tree/CodeSandbox) - -

- -

- -## Sponsors - -Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor]](https://www.patreon.com/panjiachen) - -### Akveo -

Java 后端整合,可以使用优惠码:SWB0RAZPZR1M,获得20%的价格优化

- -### Flatlogic - -

Admin Dashboard Templates made with Vue, React and Angular.

- - -## 功能 - -``` -- 登录 / 注销 - -- 权限验证 - - 页面权限 - - 指令权限 - - 权限配置 - - 二步登录 - -- 多环境发布 - - dev - - sit - - stage - - prod - -- 全局功能 - - 国际化多语言 - - 多种动态换肤 - - 动态侧边栏(支持多级路由嵌套) - - 动态面包屑 - - 快捷导航(标签页) - - Svg Sprite 图标 - - 本地/后端 mock 数据 - - Screenfull全屏 - - 自适应收缩侧边栏 - -- 编辑器 - - 富文本 - - Markdown - - JSON 等多格式 - -- Excel - - 导出excel - - 导入excel - - 前端可视化excel - - 导出zip - -- 表格 - - 动态表格 - - 拖拽表格 - - 内联编辑 - -- 错误页面 - - 401 - - 404 - -- 組件 - - 头像上传 - - 返回顶部 - - 拖拽Dialog - - 拖拽Select - - 拖拽看板 - - 列表拖拽 - - SplitPane - - Dropzone - - Sticky - - CountTo - -- 综合实例 -- 错误日志 -- Dashboard -- 引导页 -- ECharts 图表 -- Clipboard(剪贴复制) -- Markdown2html -``` - -## 开发 - -```bash -# 克隆项目 -git clone https://github.com/PanJiaChen/vue-element-admin.git - -# 进入项目目录 -cd vue-element-admin - -# 安装依赖 -npm install - -# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题 -npm install --registry=https://registry.npm.taobao.org - -# 启动服务 -npm run dev -``` - -浏览器访问 http://localhost:9527 - -## 发布 - -```bash -# 构建测试环境 -npm run build:stage - -# 构建生产环境 -npm run build:prod -``` - -## 其它 - -```bash -# 预览发布环境效果 -npm run preview - -# 预览发布环境效果 + 静态资源分析 -npm run preview -- --report - -# 代码格式检查 -npm run lint - -# 代码格式检查并自动修复 -npm run lint -- --fix -``` - -更多信息请参考 [使用文档](https://panjiachen.github.io/vue-element-admin-site/zh/) - -## Changelog - -Detailed changes for each release are documented in the [release notes](https://github.com/PanJiaChen/vue-element-admin/releases). - -## Online Demo - -[在线 Demo](https://panjiachen.github.io/vue-element-admin) - -## Donate - -如果你觉得这个项目帮助到了你,你可以帮作者买一杯果汁表示鼓励 :tropical_drink: -![donate](https://panjiachen.github.io/donate/donation.png) - -[更多捐赠方式](https://panjiachen.gitee.io/vue-element-admin-site/zh/donate) - -[Paypal Me](https://www.paypal.me/panfree23) - -[Buy me a coffee](https://www.buymeacoffee.com/Pan) - -## 购买贴纸 - -你也可以通过 购买[官方授权的贴纸](https://smallsticker.com/product/vue-element-admin) 的方式来支持 vue-element-admin - 每售出一张贴纸,本项目将获得 2 元的捐赠。 - -## Browsers support - -Modern browsers and Internet Explorer 10+. - -| [IE / Edge](https://godban.github.io/browsers-support-badges/)
IE / Edge | [Firefox](https://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](https://godban.github.io/browsers-support-badges/)
Chrome | [Safari](https://godban.github.io/browsers-support-badges/)
Safari | -| --------- | --------- | --------- | --------- | -| IE10, IE11, Edge | last 2 versions | last 2 versions | last 2 versions | - -## License - -[MIT](https://github.com/PanJiaChen/vue-element-admin/blob/master/LICENSE) - -Copyright (c) 2017-present PanJiaChen diff --git a/admin/babel.config.js b/admin/babel.config.js deleted file mode 100644 index fb82b271..00000000 --- a/admin/babel.config.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = { - presets: [ - // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app - '@vue/cli-plugin-babel/preset' - ], - 'env': { - 'development': { - // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require(). - // This plugin can significantly increase the speed of hot updates, when you have a large number of pages. - // https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html - 'plugins': ['dynamic-import-node'] - } - } -} diff --git a/admin/build/index.js b/admin/build/index.js deleted file mode 100644 index 0c57de2a..00000000 --- a/admin/build/index.js +++ /dev/null @@ -1,35 +0,0 @@ -const { run } = require('runjs') -const chalk = require('chalk') -const config = require('../vue.config.js') -const rawArgv = process.argv.slice(2) -const args = rawArgv.join(' ') - -if (process.env.npm_config_preview || rawArgv.includes('--preview')) { - const report = rawArgv.includes('--report') - - run(`vue-cli-service build ${args}`) - - const port = 9526 - const publicPath = config.publicPath - - var connect = require('connect') - var serveStatic = require('serve-static') - const app = connect() - - app.use( - publicPath, - serveStatic('./dist', { - index: ['index.html', '/'] - }) - ) - - app.listen(port, function () { - console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`)) - if (report) { - console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`)) - } - - }) -} else { - run(`vue-cli-service build ${args}`) -} diff --git a/admin/jest.config.js b/admin/jest.config.js deleted file mode 100644 index 143cdc86..00000000 --- a/admin/jest.config.js +++ /dev/null @@ -1,24 +0,0 @@ -module.exports = { - moduleFileExtensions: ['js', 'jsx', 'json', 'vue'], - transform: { - '^.+\\.vue$': 'vue-jest', - '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': - 'jest-transform-stub', - '^.+\\.jsx?$': 'babel-jest' - }, - moduleNameMapper: { - '^@/(.*)$': '/src/$1' - }, - snapshotSerializers: ['jest-serializer-vue'], - testMatch: [ - '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' - ], - collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'], - coverageDirectory: '/tests/unit/coverage', - // 'collectCoverage': true, - 'coverageReporters': [ - 'lcov', - 'text-summary' - ], - testURL: 'http://localhost/' -} diff --git a/admin/jsconfig.json b/admin/jsconfig.json deleted file mode 100644 index 958df046..00000000 --- a/admin/jsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": "./", - "paths": { - "@/*": ["src/*"] - } - }, - "exclude": ["node_modules", "dist"] -} \ No newline at end of file diff --git a/admin/mock/article.js b/admin/mock/article.js deleted file mode 100644 index 23d8ba51..00000000 --- a/admin/mock/article.js +++ /dev/null @@ -1,116 +0,0 @@ -const Mock = require('mockjs') - -const List = [] -const count = 100 - -const baseContent = '

I am testing data, I am testing data.

' -const image_uri = 'https://wpimg.wallstcn.com/e4558086-631c-425c-9430-56ffb46e70b3' - -for (let i = 0; i < count; i++) { - List.push(Mock.mock({ - id: '@increment', - timestamp: +Mock.Random.date('T'), - author: '@first', - reviewer: '@first', - title: '@title(5, 10)', - content_short: 'mock data', - content: baseContent, - forecast: '@float(0, 100, 2, 2)', - importance: '@integer(1, 3)', - 'type|1': ['CN', 'US', 'JP', 'EU'], - 'status|1': ['published', 'draft'], - display_time: '@datetime', - comment_disabled: true, - pageviews: '@integer(300, 5000)', - image_uri, - platforms: ['a-platform'] - })) -} - -module.exports = [ - { - url: '/vue-element-admin/article/list', - type: 'get', - response: config => { - const { importance, type, title, page = 1, limit = 20, sort } = config.query - - let mockList = List.filter(item => { - if (importance && item.importance !== +importance) return false - if (type && item.type !== type) return false - if (title && item.title.indexOf(title) < 0) return false - return true - }) - - if (sort === '-id') { - mockList = mockList.reverse() - } - - const pageList = mockList.filter((item, index) => index < limit * page && index >= limit * (page - 1)) - - return { - code: 20000, - data: { - total: mockList.length, - items: pageList - } - } - } - }, - - { - url: '/vue-element-admin/article/detail', - type: 'get', - response: config => { - const { id } = config.query - for (const article of List) { - if (article.id === +id) { - return { - code: 20000, - data: article - } - } - } - } - }, - - { - url: '/vue-element-admin/article/pv', - type: 'get', - response: _ => { - return { - code: 20000, - data: { - pvData: [ - { key: 'PC', pv: 1024 }, - { key: 'mobile', pv: 1024 }, - { key: 'ios', pv: 1024 }, - { key: 'android', pv: 1024 } - ] - } - } - } - }, - - { - url: '/vue-element-admin/article/create', - type: 'post', - response: _ => { - return { - code: 20000, - data: 'success' - } - } - }, - - { - url: '/vue-element-admin/article/update', - type: 'post', - response: _ => { - return { - code: 20000, - data: 'success' - } - } - } -] - diff --git a/admin/mock/index.js b/admin/mock/index.js deleted file mode 100644 index 2eed65db..00000000 --- a/admin/mock/index.js +++ /dev/null @@ -1,60 +0,0 @@ -const Mock = require('mockjs') -const { param2Obj } = require('./utils') - -const user = require('./user') -const role = require('./role') -const article = require('./article') -const search = require('./remote-search') - -const mocks = [ - ...user, - ...role, - ...article, - ...search -] - -// for front mock -// please use it cautiously, it will redefine XMLHttpRequest, -// which will cause many of your third-party libraries to be invalidated(like progress event). -function mockXHR() { - // mock patch - // https://github.com/nuysoft/Mock/issues/300 - Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send - Mock.XHR.prototype.send = function() { - if (this.custom.xhr) { - this.custom.xhr.withCredentials = this.withCredentials || false - - if (this.responseType) { - this.custom.xhr.responseType = this.responseType - } - } - this.proxy_send(...arguments) - } - - function XHR2ExpressReqWrap(respond) { - return function(options) { - let result = null - if (respond instanceof Function) { - const { body, type, url } = options - // https://expressjs.com/en/4x/api.html#req - result = respond({ - method: type, - body: JSON.parse(body), - query: param2Obj(url) - }) - } else { - result = respond - } - return Mock.mock(result) - } - } - - for (const i of mocks) { - Mock.mock(new RegExp(i.url), i.type || 'get', XHR2ExpressReqWrap(i.response)) - } -} - -module.exports = { - mocks, - mockXHR -} diff --git a/admin/mock/mock-server.js b/admin/mock/mock-server.js deleted file mode 100644 index 8941ec0f..00000000 --- a/admin/mock/mock-server.js +++ /dev/null @@ -1,81 +0,0 @@ -const chokidar = require('chokidar') -const bodyParser = require('body-parser') -const chalk = require('chalk') -const path = require('path') -const Mock = require('mockjs') - -const mockDir = path.join(process.cwd(), 'mock') - -function registerRoutes(app) { - let mockLastIndex - const { mocks } = require('./index.js') - const mocksForServer = mocks.map(route => { - return responseFake(route.url, route.type, route.response) - }) - for (const mock of mocksForServer) { - app[mock.type](mock.url, mock.response) - mockLastIndex = app._router.stack.length - } - const mockRoutesLength = Object.keys(mocksForServer).length - return { - mockRoutesLength: mockRoutesLength, - mockStartIndex: mockLastIndex - mockRoutesLength - } -} - -function unregisterRoutes() { - Object.keys(require.cache).forEach(i => { - if (i.includes(mockDir)) { - delete require.cache[require.resolve(i)] - } - }) -} - -// for mock server -const responseFake = (url, type, respond) => { - return { - url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`), - type: type || 'get', - response(req, res) { - console.log('request invoke:' + req.path) - res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond)) - } - } -} - -module.exports = app => { - // parse app.body - // https://expressjs.com/en/4x/api.html#req.body - app.use(bodyParser.json()) - app.use(bodyParser.urlencoded({ - extended: true - })) - - const mockRoutes = registerRoutes(app) - var mockRoutesLength = mockRoutes.mockRoutesLength - var mockStartIndex = mockRoutes.mockStartIndex - - // watch files, hot reload mock server - chokidar.watch(mockDir, { - ignored: /mock-server/, - ignoreInitial: true - }).on('all', (event, path) => { - if (event === 'change' || event === 'add') { - try { - // remove mock routes stack - app._router.stack.splice(mockStartIndex, mockRoutesLength) - - // clear routes cache - unregisterRoutes() - - const mockRoutes = registerRoutes(app) - mockRoutesLength = mockRoutes.mockRoutesLength - mockStartIndex = mockRoutes.mockStartIndex - - console.log(chalk.magentaBright(`\n > Mock Server hot reload success! changed ${path}`)) - } catch (error) { - console.log(chalk.redBright(error)) - } - } - }) -} diff --git a/admin/mock/remote-search.js b/admin/mock/remote-search.js deleted file mode 100644 index 8fc49267..00000000 --- a/admin/mock/remote-search.js +++ /dev/null @@ -1,51 +0,0 @@ -const Mock = require('mockjs') - -const NameList = [] -const count = 100 - -for (let i = 0; i < count; i++) { - NameList.push(Mock.mock({ - name: '@first' - })) -} -NameList.push({ name: 'mock-Pan' }) - -module.exports = [ - // username search - { - url: '/vue-element-admin/search/user', - type: 'get', - response: config => { - const { name } = config.query - const mockNameList = NameList.filter(item => { - const lowerCaseName = item.name.toLowerCase() - return !(name && lowerCaseName.indexOf(name.toLowerCase()) < 0) - }) - return { - code: 20000, - data: { items: mockNameList } - } - } - }, - - // transaction list - { - url: '/vue-element-admin/transaction/list', - type: 'get', - response: _ => { - return { - code: 20000, - data: { - total: 20, - 'items|20': [{ - order_no: '@guid()', - timestamp: +Mock.Random.date('T'), - username: '@name()', - price: '@float(1000, 15000, 0, 2)', - 'status|1': ['success', 'pending'] - }] - } - } - } - } -] diff --git a/admin/mock/role/index.js b/admin/mock/role/index.js deleted file mode 100644 index 4643f006..00000000 --- a/admin/mock/role/index.js +++ /dev/null @@ -1,98 +0,0 @@ -const Mock = require('mockjs') -const { deepClone } = require('../utils') -const { asyncRoutes, constantRoutes } = require('./routes.js') - -const routes = deepClone([...constantRoutes, ...asyncRoutes]) - -const roles = [ - { - key: 'admin', - name: 'admin', - description: 'Super Administrator. Have access to view all pages.', - routes: routes - }, - { - key: 'editor', - name: 'editor', - description: 'Normal Editor. Can see all pages except permission page', - routes: routes.filter(i => i.path !== '/permission')// just a mock - }, - { - key: 'visitor', - name: 'visitor', - description: 'Just a visitor. Can only see the home page and the document page', - routes: [{ - path: '', - redirect: 'dashboard', - children: [ - { - path: 'dashboard', - name: 'Dashboard', - meta: { title: 'dashboard', icon: 'dashboard' } - } - ] - }] - } -] - -module.exports = [ - // mock get all routes form server - { - url: '/vue-element-admin/routes', - type: 'get', - response: _ => { - return { - code: 20000, - data: routes - } - } - }, - - // mock get all roles form server - { - url: '/vue-element-admin/roles', - type: 'get', - response: _ => { - return { - code: 20000, - data: roles - } - } - }, - - // add role - { - url: '/vue-element-admin/role', - type: 'post', - response: { - code: 20000, - data: { - key: Mock.mock('@integer(300, 5000)') - } - } - }, - - // update role - { - url: '/vue-element-admin/role/[A-Za-z0-9]', - type: 'put', - response: { - code: 20000, - data: { - status: 'success' - } - } - }, - - // delete role - { - url: '/vue-element-admin/role/[A-Za-z0-9]', - type: 'delete', - response: { - code: 20000, - data: { - status: 'success' - } - } - } -] diff --git a/admin/mock/role/routes.js b/admin/mock/role/routes.js deleted file mode 100644 index d33f1624..00000000 --- a/admin/mock/role/routes.js +++ /dev/null @@ -1,530 +0,0 @@ -// Just a mock data - -const constantRoutes = [ - { - path: '/redirect', - component: 'layout/Layout', - hidden: true, - children: [ - { - path: '/redirect/:path*', - component: 'views/redirect/index' - } - ] - }, - { - path: '/login', - component: 'views/login/index', - hidden: true - }, - { - path: '/auth-redirect', - component: 'views/login/auth-redirect', - hidden: true - }, - { - path: '/404', - component: 'views/error-page/404', - hidden: true - }, - { - path: '/401', - component: 'views/error-page/401', - hidden: true - }, - { - path: '', - component: 'layout/Layout', - redirect: 'dashboard', - children: [ - { - path: 'dashboard', - component: 'views/dashboard/index', - name: 'Dashboard', - meta: { title: 'Dashboard', icon: 'dashboard', affix: true } - } - ] - }, - { - path: '/documentation', - component: 'layout/Layout', - children: [ - { - path: 'index', - component: 'views/documentation/index', - name: 'Documentation', - meta: { title: 'Documentation', icon: 'documentation', affix: true } - } - ] - }, - { - path: '/guide', - component: 'layout/Layout', - redirect: '/guide/index', - children: [ - { - path: 'index', - component: 'views/guide/index', - name: 'Guide', - meta: { title: 'Guide', icon: 'guide', noCache: true } - } - ] - } -] - -const asyncRoutes = [ - { - path: '/permission', - component: 'layout/Layout', - redirect: '/permission/index', - alwaysShow: true, - meta: { - title: 'Permission', - icon: 'lock', - roles: ['admin', 'editor'] - }, - children: [ - { - path: 'page', - component: 'views/permission/page', - name: 'PagePermission', - meta: { - title: 'Page Permission', - roles: ['admin'] - } - }, - { - path: 'directive', - component: 'views/permission/directive', - name: 'DirectivePermission', - meta: { - title: 'Directive Permission' - } - }, - { - path: 'role', - component: 'views/permission/role', - name: 'RolePermission', - meta: { - title: 'Role Permission', - roles: ['admin'] - } - } - ] - }, - - { - path: '/icon', - component: 'layout/Layout', - children: [ - { - path: 'index', - component: 'views/icons/index', - name: 'Icons', - meta: { title: 'Icons', icon: 'icon', noCache: true } - } - ] - }, - - { - path: '/components', - component: 'layout/Layout', - redirect: 'noRedirect', - name: 'ComponentDemo', - meta: { - title: 'Components', - icon: 'component' - }, - children: [ - { - path: 'tinymce', - component: 'views/components-demo/tinymce', - name: 'TinymceDemo', - meta: { title: 'Tinymce' } - }, - { - path: 'markdown', - component: 'views/components-demo/markdown', - name: 'MarkdownDemo', - meta: { title: 'Markdown' } - }, - { - path: 'json-editor', - component: 'views/components-demo/json-editor', - name: 'JsonEditorDemo', - meta: { title: 'Json Editor' } - }, - { - path: 'split-pane', - component: 'views/components-demo/split-pane', - name: 'SplitpaneDemo', - meta: { title: 'SplitPane' } - }, - { - path: 'avatar-upload', - component: 'views/components-demo/avatar-upload', - name: 'AvatarUploadDemo', - meta: { title: 'Avatar Upload' } - }, - { - path: 'dropzone', - component: 'views/components-demo/dropzone', - name: 'DropzoneDemo', - meta: { title: 'Dropzone' } - }, - { - path: 'sticky', - component: 'views/components-demo/sticky', - name: 'StickyDemo', - meta: { title: 'Sticky' } - }, - { - path: 'count-to', - component: 'views/components-demo/count-to', - name: 'CountToDemo', - meta: { title: 'Count To' } - }, - { - path: 'mixin', - component: 'views/components-demo/mixin', - name: 'ComponentMixinDemo', - meta: { title: 'componentMixin' } - }, - { - path: 'back-to-top', - component: 'views/components-demo/back-to-top', - name: 'BackToTopDemo', - meta: { title: 'Back To Top' } - }, - { - path: 'drag-dialog', - component: 'views/components-demo/drag-dialog', - name: 'DragDialogDemo', - meta: { title: 'Drag Dialog' } - }, - { - path: 'drag-select', - component: 'views/components-demo/drag-select', - name: 'DragSelectDemo', - meta: { title: 'Drag Select' } - }, - { - path: 'dnd-list', - component: 'views/components-demo/dnd-list', - name: 'DndListDemo', - meta: { title: 'Dnd List' } - }, - { - path: 'drag-kanban', - component: 'views/components-demo/drag-kanban', - name: 'DragKanbanDemo', - meta: { title: 'Drag Kanban' } - } - ] - }, - { - path: '/charts', - component: 'layout/Layout', - redirect: 'noRedirect', - name: 'Charts', - meta: { - title: 'Charts', - icon: 'chart' - }, - children: [ - { - path: 'keyboard', - component: 'views/charts/keyboard', - name: 'KeyboardChart', - meta: { title: 'Keyboard Chart', noCache: true } - }, - { - path: 'line', - component: 'views/charts/line', - name: 'LineChart', - meta: { title: 'Line Chart', noCache: true } - }, - { - path: 'mixchart', - component: 'views/charts/mixChart', - name: 'MixChart', - meta: { title: 'Mix Chart', noCache: true } - } - ] - }, - { - path: '/nested', - component: 'layout/Layout', - redirect: '/nested/menu1/menu1-1', - name: 'Nested', - meta: { - title: 'Nested', - icon: 'nested' - }, - children: [ - { - path: 'menu1', - component: 'views/nested/menu1/index', - name: 'Menu1', - meta: { title: 'Menu1' }, - redirect: '/nested/menu1/menu1-1', - children: [ - { - path: 'menu1-1', - component: 'views/nested/menu1/menu1-1', - name: 'Menu1-1', - meta: { title: 'Menu1-1' } - }, - { - path: 'menu1-2', - component: 'views/nested/menu1/menu1-2', - name: 'Menu1-2', - redirect: '/nested/menu1/menu1-2/menu1-2-1', - meta: { title: 'Menu1-2' }, - children: [ - { - path: 'menu1-2-1', - component: 'views/nested/menu1/menu1-2/menu1-2-1', - name: 'Menu1-2-1', - meta: { title: 'Menu1-2-1' } - }, - { - path: 'menu1-2-2', - component: 'views/nested/menu1/menu1-2/menu1-2-2', - name: 'Menu1-2-2', - meta: { title: 'Menu1-2-2' } - } - ] - }, - { - path: 'menu1-3', - component: 'views/nested/menu1/menu1-3', - name: 'Menu1-3', - meta: { title: 'Menu1-3' } - } - ] - }, - { - path: 'menu2', - name: 'Menu2', - component: 'views/nested/menu2/index', - meta: { title: 'Menu2' } - } - ] - }, - - { - path: '/example', - component: 'layout/Layout', - redirect: '/example/list', - name: 'Example', - meta: { - title: 'Example', - icon: 'example' - }, - children: [ - { - path: 'create', - component: 'views/example/create', - name: 'CreateArticle', - meta: { title: 'Create Article', icon: 'edit' } - }, - { - path: 'edit/:id(\\d+)', - component: 'views/example/edit', - name: 'EditArticle', - meta: { title: 'Edit Article', noCache: true }, - hidden: true - }, - { - path: 'list', - component: 'views/example/list', - name: 'ArticleList', - meta: { title: 'Article List', icon: 'list' } - } - ] - }, - - { - path: '/tab', - component: 'layout/Layout', - children: [ - { - path: 'index', - component: 'views/tab/index', - name: 'Tab', - meta: { title: 'Tab', icon: 'tab' } - } - ] - }, - - { - path: '/error', - component: 'layout/Layout', - redirect: 'noRedirect', - name: 'ErrorPages', - meta: { - title: 'Error Pages', - icon: '404' - }, - children: [ - { - path: '401', - component: 'views/error-page/401', - name: 'Page401', - meta: { title: 'Page 401', noCache: true } - }, - { - path: '404', - component: 'views/error-page/404', - name: 'Page404', - meta: { title: 'Page 404', noCache: true } - } - ] - }, - - { - path: '/error-log', - component: 'layout/Layout', - redirect: 'noRedirect', - children: [ - { - path: 'log', - component: 'views/error-log/index', - name: 'ErrorLog', - meta: { title: 'Error Log', icon: 'bug' } - } - ] - }, - - { - path: '/excel', - component: 'layout/Layout', - redirect: '/excel/export-excel', - name: 'Excel', - meta: { - title: 'Excel', - icon: 'excel' - }, - children: [ - { - path: 'export-excel', - component: 'views/excel/export-excel', - name: 'ExportExcel', - meta: { title: 'Export Excel' } - }, - { - path: 'export-selected-excel', - component: 'views/excel/select-excel', - name: 'SelectExcel', - meta: { title: 'Select Excel' } - }, - { - path: 'export-merge-header', - component: 'views/excel/merge-header', - name: 'MergeHeader', - meta: { title: 'Merge Header' } - }, - { - path: 'upload-excel', - component: 'views/excel/upload-excel', - name: 'UploadExcel', - meta: { title: 'Upload Excel' } - } - ] - }, - - { - path: '/zip', - component: 'layout/Layout', - redirect: '/zip/download', - alwaysShow: true, - meta: { title: 'Zip', icon: 'zip' }, - children: [ - { - path: 'download', - component: 'views/zip/index', - name: 'ExportZip', - meta: { title: 'Export Zip' } - } - ] - }, - - { - path: '/pdf', - component: 'layout/Layout', - redirect: '/pdf/index', - children: [ - { - path: 'index', - component: 'views/pdf/index', - name: 'PDF', - meta: { title: 'PDF', icon: 'pdf' } - } - ] - }, - { - path: '/pdf/download', - component: 'views/pdf/download', - hidden: true - }, - - { - path: '/theme', - component: 'layout/Layout', - redirect: 'noRedirect', - children: [ - { - path: 'index', - component: 'views/theme/index', - name: 'Theme', - meta: { title: 'Theme', icon: 'theme' } - } - ] - }, - - { - path: '/clipboard', - component: 'layout/Layout', - redirect: 'noRedirect', - children: [ - { - path: 'index', - component: 'views/clipboard/index', - name: 'ClipboardDemo', - meta: { title: 'Clipboard Demo', icon: 'clipboard' } - } - ] - }, - - { - path: '/i18n', - component: 'layout/Layout', - children: [ - { - path: 'index', - component: 'views/i18n-demo/index', - name: 'I18n', - meta: { title: 'I18n', icon: 'international' } - } - ] - }, - - { - path: 'external-link', - component: 'layout/Layout', - children: [ - { - path: 'https://github.com/PanJiaChen/vue-element-admin', - meta: { title: 'External Link', icon: 'link' } - } - ] - }, - - { path: '*', redirect: '/404', hidden: true } -] - -module.exports = { - constantRoutes, - asyncRoutes -} diff --git a/admin/mock/user.js b/admin/mock/user.js deleted file mode 100644 index d82e079d..00000000 --- a/admin/mock/user.js +++ /dev/null @@ -1,84 +0,0 @@ - -const tokens = { - admin: { - token: 'admin-token' - }, - editor: { - token: 'editor-token' - } -} - -const users = { - 'admin-token': { - roles: ['admin'], - introduction: 'I am a super administrator', - avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif', - name: 'Super Admin' - }, - 'editor-token': { - roles: ['editor'], - introduction: 'I am an editor', - avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif', - name: 'Normal Editor' - } -} - -module.exports = [ - // user login - { - url: '/vue-element-admin/user/login', - type: 'post', - response: config => { - const { username } = config.body - const token = tokens[username] - - // mock error - if (!token) { - return { - code: 60204, - message: 'Account and password are incorrect.' - } - } - - return { - code: 20000, - data: token - } - } - }, - - // get user info - { - url: '/vue-element-admin/user/info\.*', - type: 'get', - response: config => { - const { token } = config.query - const info = users[token] - - // mock error - if (!info) { - return { - code: 50008, - message: 'Login failed, unable to get user details.' - } - } - - return { - code: 20000, - data: info - } - } - }, - - // user logout - { - url: '/vue-element-admin/user/logout', - type: 'post', - response: _ => { - return { - code: 20000, - data: 'success' - } - } - } -] diff --git a/admin/mock/utils.js b/admin/mock/utils.js deleted file mode 100644 index f909a293..00000000 --- a/admin/mock/utils.js +++ /dev/null @@ -1,48 +0,0 @@ -/** - * @param {string} url - * @returns {Object} - */ -function param2Obj(url) { - const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ') - if (!search) { - return {} - } - const obj = {} - const searchArr = search.split('&') - searchArr.forEach(v => { - const index = v.indexOf('=') - if (index !== -1) { - const name = v.substring(0, index) - const val = v.substring(index + 1, v.length) - obj[name] = val - } - }) - return obj -} - -/** - * This is just a simple version of deep copy - * Has a lot of edge cases bug - * If you want to use a perfect deep copy, use lodash's _.cloneDeep - * @param {Object} source - * @returns {Object} - */ -function deepClone(source) { - if (!source && typeof source !== 'object') { - throw new Error('error arguments', 'deepClone') - } - const targetObj = source.constructor === Array ? [] : {} - Object.keys(source).forEach(keys => { - if (source[keys] && typeof source[keys] === 'object') { - targetObj[keys] = deepClone(source[keys]) - } else { - targetObj[keys] = source[keys] - } - }) - return targetObj -} - -module.exports = { - param2Obj, - deepClone -} diff --git a/admin/package.json b/admin/package.json deleted file mode 100644 index 39c7bad3..00000000 --- a/admin/package.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "name": "vue-element-admin", - "version": "4.4.0", - "description": "A magical vue admin. An out-of-box UI solution for enterprise applications. Newest development stack of vue. Lots of awesome features", - "author": "Pan ", - "scripts": { - "dev": "vue-cli-service serve", - "lint": "eslint --ext .js,.vue src", - "build:prod": "vue-cli-service build", - "build:stage": "vue-cli-service build --mode staging", - "preview": "node build/index.js --preview", - "new": "plop", - "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml", - "test:unit": "jest --clearCache && vue-cli-service test:unit", - "test:ci": "npm run lint && npm run test:unit" - }, - "dependencies": { - "axios": "0.18.1", - "clipboard": "2.0.4", - "codemirror": "5.45.0", - "core-js": "3.6.5", - "driver.js": "0.9.5", - "dropzone": "5.5.1", - "echarts": "4.2.1", - "element-ui": "2.13.2", - "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", - "screenfull": "4.2.0", - "script-loader": "0.7.2", - "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", - "yarn": "^1.22.22" - }, - "devDependencies": { - "@vue/cli-plugin-babel": "4.4.4", - "@vue/cli-plugin-eslint": "4.4.4", - "@vue/cli-plugin-unit-jest": "4.4.4", - "@vue/cli-service": "4.4.4", - "@vue/test-utils": "1.0.0-beta.29", - "autoprefixer": "9.5.1", - "babel-eslint": "10.1.0", - "babel-jest": "23.6.0", - "babel-plugin-dynamic-import-node": "2.3.3", - "chalk": "2.4.2", - "chokidar": "2.1.5", - "connect": "3.6.6", - "eslint": "6.7.2", - "eslint-plugin-vue": "6.2.2", - "html-webpack-plugin": "3.2.0", - "husky": "1.3.1", - "lint-staged": "8.1.5", - "mockjs": "1.0.1-beta3", - "plop": "2.3.0", - "runjs": "4.3.2", - "sass": "1.26.2", - "sass-loader": "8.0.2", - "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" - }, - "browserslist": [ - "> 1%", - "last 2 versions" - ], - "bugs": { - "url": "https://github.com/PanJiaChen/vue-element-admin/issues" - }, - "engines": { - "node": ">=8.9", - "npm": ">= 3.0.0" - }, - "keywords": [ - "vue", - "admin", - "dashboard", - "element-ui", - "boilerplate", - "admin-template", - "management-system" - ], - "license": "MIT", - "lint-staged": { - "src/**/*.{js,vue}": [ - "eslint --fix", - "git add" - ] - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "repository": { - "type": "git", - "url": "git+https://github.com/PanJiaChen/vue-element-admin.git" - } -} diff --git a/admin/plop-templates/component/index.hbs b/admin/plop-templates/component/index.hbs deleted file mode 100644 index 76610552..00000000 --- a/admin/plop-templates/component/index.hbs +++ /dev/null @@ -1,26 +0,0 @@ -{{#if template}} - -{{/if}} - -{{#if script}} - -{{/if}} - -{{#if style}} - -{{/if}} diff --git a/admin/plop-templates/component/prompt.js b/admin/plop-templates/component/prompt.js deleted file mode 100644 index 3723e8e1..00000000 --- a/admin/plop-templates/component/prompt.js +++ /dev/null @@ -1,55 +0,0 @@ -const { notEmpty } = require('../utils.js') - -module.exports = { - description: 'generate vue component', - prompts: [{ - type: 'input', - name: 'name', - message: 'component name please', - validate: notEmpty('name') - }, - { - type: 'checkbox', - name: 'blocks', - message: 'Blocks:', - choices: [{ - name: '