├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .postcssrc.js ├── .vscode ├── extensions.json └── settings.json ├── README.md ├── babel.config.js ├── docs ├── print.png └── print2.png ├── jsconfig.json ├── package.json ├── quasar.conf.js ├── src ├── App.vue ├── assets │ ├── quasar-logo-full.svg │ └── sad.svg ├── boot │ ├── .gitkeep │ ├── antvf2.js │ ├── axios.js │ └── i18n.js ├── components │ ├── CardBase.vue │ ├── EssentialLink.vue │ ├── F2AppleWatch.vue │ ├── F2Area.vue │ ├── F2Basic.vue │ ├── F2Heatmap.vue │ ├── F2Line.vue │ └── F2Pie.vue ├── css │ └── app.css ├── i18n │ ├── en-us │ │ └── index.js │ └── index.js ├── index.template.html ├── layouts │ └── MainLayout.vue ├── pages │ ├── Dashboard.vue │ ├── Error404.vue │ └── Index.vue ├── router │ ├── index.js │ └── routes.js └── statics │ ├── analysis.svg │ ├── fundo-menu.jpg │ ├── icons │ ├── favicon-128x128.png │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── favicon-96x96.png │ └── favicon.ico │ └── patrick_perfil.png └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | /dist 2 | /src-bex/www 3 | /src-capacitor 4 | /src-cordova 5 | /.quasar 6 | /node_modules 7 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | // https://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy 3 | // This option interrupts the configuration hierarchy at this file 4 | // Remove this if you have an higher level ESLint config file (it usually happens into a monorepos) 5 | root: true, 6 | 7 | parserOptions: { 8 | parser: 'babel-eslint', 9 | ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features 10 | sourceType: 'module' // Allows for the use of imports 11 | }, 12 | 13 | env: { 14 | browser: true 15 | }, 16 | 17 | // Rules order is important, please avoid shuffling them 18 | extends: [ 19 | // Base ESLint recommended rules 20 | // 'eslint:recommended', 21 | 22 | 23 | // Uncomment any of the lines below to choose desired strictness, 24 | // but leave only one uncommented! 25 | // See https://eslint.vuejs.org/rules/#available-rules 26 | 'plugin:vue/essential', // Priority A: Essential (Error Prevention) 27 | // 'plugin:vue/strongly-recommended', // Priority B: Strongly Recommended (Improving Readability) 28 | // 'plugin:vue/recommended', // Priority C: Recommended (Minimizing Arbitrary Choices and Cognitive Overhead) 29 | 30 | 'standard' 31 | 32 | ], 33 | 34 | plugins: [ 35 | // https://eslint.vuejs.org/user-guide/#why-doesn-t-it-work-on-vue-file 36 | // required to lint *.vue files 37 | 'vue', 38 | 39 | ], 40 | 41 | globals: { 42 | ga: true, // Google Analytics 43 | cordova: true, 44 | __statics: true, 45 | process: true, 46 | Capacitor: true, 47 | chrome: true 48 | }, 49 | 50 | // add your custom rules here 51 | rules: { 52 | // allow async-await 53 | 'generator-star-spacing': 'off', 54 | // allow paren-less arrow functions 55 | 'arrow-parens': 'off', 56 | 'one-var': 'off', 57 | 58 | 'import/first': 'off', 59 | 'import/named': 'error', 60 | 'import/namespace': 'error', 61 | 'import/default': 'error', 62 | 'import/export': 'error', 63 | 'import/extensions': 'off', 64 | 'import/no-unresolved': 'off', 65 | 'import/no-extraneous-dependencies': 'off', 66 | 'prefer-promise-reject-errors': 'off', 67 | 68 | 69 | // allow debugger during development only 70 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .thumbs.db 3 | node_modules 4 | 5 | # Quasar core related directories 6 | .quasar 7 | /dist 8 | /docs 9 | 10 | # Cordova related directories and files 11 | /src-cordova/node_modules 12 | /src-cordova/platforms 13 | /src-cordova/plugins 14 | /src-cordova/www 15 | 16 | # Capacitor related directories and files 17 | /src-capacitor/www 18 | /src-capacitor/node_modules 19 | 20 | # BEX related directories and files 21 | /src-bex/www 22 | /src-bex/js/core 23 | 24 | # Log files 25 | npm-debug.log* 26 | yarn-debug.log* 27 | yarn-error.log* 28 | 29 | # Editor directories and files 30 | .idea 31 | *.suo 32 | *.ntvs* 33 | *.njsproj 34 | *.sln 35 | -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | plugins: [ 5 | // to edit target browsers: use "browserslist" field in package.json 6 | require('autoprefixer') 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "dbaeumer.vscode-eslint", 4 | 5 | "octref.vetur" 6 | ], 7 | "unwantedRecommendations": [ 8 | "hookyqr.beautify", 9 | "dbaeumer.jshint", 10 | "ms-vscode.vscode-typescript-tslint-plugin" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "vetur.validation.template": false, 3 | 4 | "eslint.validate": ["javascript", "javascriptreact", "typescript", "vue"], 5 | 6 | "vetur.experimental.templateInterpolationService": true 7 | } 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | [![Quasar Badge](https://img.shields.io/badge/Framework-Quasar-blue)](https://quasar.dev) 3 | [![Quasar Badge](https://img.shields.io/github/forks/patrickmonteiro/quasar-f2-charts?style=social)](https://quasar.dev) 4 | [![Quasar Badge](https://img.shields.io/github/stars/patrickmonteiro/quasar-f2-charts?style=social)](https://quasar.dev) 5 | 6 | 7 | # Quasar Antv F2 Charts (quasar-f2-charts) 8 | 9 | Dashboard project using Quasar and Antv F2 10 | 11 | > F2 is born for mobile, developed for developers as well as designers. It is Html5 Canvas-based, and is also compatible with Node.js, Weex and React Native. Based on the grammar of graphics, F2 provides all the chart types you'll need. Our mobile design guidelines enable better user experience in mobile visualzation projects 12 | 13 | ## Dependencies used 14 | 15 | - [@antv/f2](https://f2.antv.vision/en) 16 | 17 | ## Print 18 | 19 | [![N|Solid](https://github.com/patrickmonteiro/quasar-f2-charts/blob/master/docs/print2.png?raw=true)](http://quasar-f2-charts.surge.sh/) 20 | 21 | [![N|Solid](https://github.com/patrickmonteiro/quasar-f2-charts/blob/master/docs/print.png?raw=true)](http://quasar-f2-charts.surge.sh/) 22 | 23 | ## Demo 24 | 25 | http://quasar-f2-charts.surge.sh/ 26 | 27 | ## Install the dependencies 28 | ```bash 29 | npm install 30 | ``` 31 | 32 | ### Start the app in development mode (hot-code reloading, error reporting, etc.) 33 | ```bash 34 | quasar dev 35 | ``` 36 | 37 | ### Build the app for production 38 | ```bash 39 | quasar build 40 | ``` 41 | 42 | 43 | ## Donations 44 | 45 | I've been contributing to the Vue.js and Quasar community for a few years with lots of content like articles, example projects, videos on my youtube channel. But I do all this for free to try to help those who are starting in this new world of modern front-end. 46 | 47 | If my content has helped you in any way and you want to buy me a coffee, you can use my PICPAY QRCode below. Any value is welcome and encourages me to continue creating content for the community. 48 | 49 | 50 | ### 🇧🇷 **BR** 51 | 52 | Estou há alguns anos contribuindo para a comunidade Vue.js e Quasar com muitos conteúdos como artigos, projetos de exemplos, vídeos no meu canal do youtube. Porém faço tudo isso de forma gratuita para tentar ajudar aqueles que estão iniciando nesse novo mundo de front-end moderno. 53 | 54 | Caso meu algum de meus conteúdos tenha lhe ajudado de alguma forma e você queira me pagar um café, pode utilizar meu QRCode do PICPAY abaixo. Qualquer valor é bem vindo e me estimula a continuar criando conteúdos para a comunidade. 55 | 56 | https://picpay.me/patrickmonteiroo 57 | 58 |
59 | 60 |
61 | 62 | ### Pantreon 63 | 64 | - [Pantreon Patrick Monteiro](https://www.patreon.com/patrickmonteiroo) 65 | 66 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = { 3 | presets: [ 4 | '@quasar/babel-preset-app' 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /docs/print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-f2-charts/40cb91df908428ca2f2f533f6ce22a7bcea3352d/docs/print.png -------------------------------------------------------------------------------- /docs/print2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-f2-charts/40cb91df908428ca2f2f533f6ce22a7bcea3352d/docs/print2.png -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "src/*": [ 6 | "src/*" 7 | ], 8 | "app/*": [ 9 | "*" 10 | ], 11 | "components/*": [ 12 | "src/components/*" 13 | ], 14 | "layouts/*": [ 15 | "src/layouts/*" 16 | ], 17 | "pages/*": [ 18 | "src/pages/*" 19 | ], 20 | "assets/*": [ 21 | "src/assets/*" 22 | ], 23 | "boot/*": [ 24 | "src/boot/*" 25 | ], 26 | "vue$": [ 27 | "node_modules/vue/dist/vue.esm.js" 28 | ] 29 | } 30 | }, 31 | "exclude": [ 32 | "dist", 33 | ".quasar", 34 | "node_modules" 35 | ] 36 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "quasar-f2-charts", 3 | "version": "0.0.1", 4 | "description": "A Quasar Framework app", 5 | "productName": "Quasar F2 Charts", 6 | "cordovaId": "org.cordova.quasar.app", 7 | "capacitorId": "", 8 | "author": "Patrick Monteiro ", 9 | "private": true, 10 | "scripts": { 11 | "lint": "eslint --ext .js,.vue ./", 12 | "test": "echo \"No test specified\" && exit 0" 13 | }, 14 | "dependencies": { 15 | "@antv/f2": "^3.6.4-beta.7", 16 | "@quasar/extras": "^1.9.12", 17 | "axios": "^0.18.1", 18 | "quasar": "^1.14.7", 19 | "vue-i18n": "^8.0.0" 20 | }, 21 | "devDependencies": { 22 | "@quasar/app": "^1.0.0", 23 | "babel-eslint": "^10.0.1", 24 | "eslint": "^6.8.0", 25 | "eslint-config-standard": "^14.1.0", 26 | "eslint-loader": "^3.0.3", 27 | "eslint-plugin-import": "^2.14.0", 28 | "eslint-plugin-node": "^11.0.0", 29 | "eslint-plugin-promise": "^4.0.1", 30 | "eslint-plugin-standard": "^4.0.0", 31 | "eslint-plugin-vue": "^6.1.2" 32 | }, 33 | "engines": { 34 | "node": ">= 10.18.1", 35 | "npm": ">= 6.13.4", 36 | "yarn": ">= 1.21.1" 37 | }, 38 | "browserslist": [ 39 | "last 1 version, not dead, ie >= 11" 40 | ], 41 | "resolutions": { 42 | "@babel/parser": "7.7.5" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /quasar.conf.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file runs in a Node context (it's NOT transpiled by Babel), so use only 3 | * the ES6 features that are supported by your Node version. https://node.green/ 4 | */ 5 | 6 | // Configuration for your app 7 | // https://quasar.dev/quasar-cli/quasar-conf-js 8 | /* eslint-env node */ 9 | 10 | module.exports = function (/* ctx */) { 11 | return { 12 | // https://quasar.dev/quasar-cli/cli-documentation/supporting-ie 13 | supportIE: false, 14 | 15 | // https://quasar.dev/quasar-cli/cli-documentation/supporting-ts 16 | supportTS: false, 17 | 18 | // https://quasar.dev/quasar-cli/cli-documentation/prefetch-feature 19 | // preFetch: true, 20 | 21 | // app boot file (/src/boot) 22 | // --> boot files are part of "main.js" 23 | // https://quasar.dev/quasar-cli/cli-documentation/boot-files 24 | boot: [ 25 | 26 | 'i18n', 27 | 'axios', 28 | 'antvf2' 29 | ], 30 | 31 | // https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css 32 | css: [ 33 | 'app.css' 34 | ], 35 | 36 | // https://github.com/quasarframework/quasar/tree/dev/extras 37 | extras: [ 38 | // 'ionicons-v4', 39 | // 'mdi-v5', 40 | // 'fontawesome-v5', 41 | // 'eva-icons', 42 | // 'themify', 43 | // 'line-awesome', 44 | // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both! 45 | 'fontawesome-v5', 46 | 'roboto-font', // optional, you are not bound to it 47 | 'material-icons' // optional, you are not bound to it 48 | ], 49 | 50 | // Full list of options: https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build 51 | build: { 52 | vueRouterMode: 'hash', // available values: 'hash', 'history' 53 | 54 | // Add dependencies for transpiling with Babel (Array of regexes) 55 | // (from node_modules, which are by default not transpiled). 56 | // Does not applies to modern builds. 57 | // transpileDependencies: [], 58 | 59 | // modern: true, // https://quasar.dev/quasar-cli/modern-build 60 | // rtl: false, // https://quasar.dev/options/rtl-support 61 | // preloadChunks: true, 62 | // showProgress: false, 63 | // gzip: true, 64 | // analyze: true, 65 | 66 | // Options below are automatically set depending on the env, set them if you want to override 67 | // extractCSS: false, 68 | 69 | // https://quasar.dev/quasar-cli/cli-documentation/handling-webpack 70 | extendWebpack (cfg) { 71 | cfg.module.rules.push({ 72 | enforce: 'pre', 73 | test: /\.(js|vue)$/, 74 | loader: 'eslint-loader', 75 | exclude: /node_modules/ 76 | }) 77 | } 78 | }, 79 | 80 | // Full list of options: https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-devServer 81 | devServer: { 82 | https: false, 83 | port: 8080, 84 | open: true // opens browser window automatically 85 | }, 86 | 87 | // https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework 88 | framework: { 89 | iconSet: 'material-icons', // Quasar icon set 90 | lang: 'en-us', // Quasar language pack 91 | 92 | // Possible values for "all": 93 | // * 'auto' - Auto-import needed Quasar components & directives 94 | // (slightly higher compile time; next to minimum bundle size; most convenient) 95 | // * false - Manually specify what to import 96 | // (fastest compile time; minimum bundle size; most tedious) 97 | // * true - Import everything from Quasar 98 | // (not treeshaking Quasar; biggest bundle size; convenient) 99 | all: 'auto', 100 | 101 | components: [], 102 | directives: [], 103 | 104 | // Quasar plugins 105 | plugins: [ 106 | 'AppFullscreen' 107 | ] 108 | }, 109 | 110 | // animations: 'all', // --- includes all animations 111 | // https://quasar.dev/options/animations 112 | animations: [], 113 | 114 | // https://quasar.dev/quasar-cli/developing-ssr/configuring-ssr 115 | ssr: { 116 | pwa: false 117 | }, 118 | 119 | // https://quasar.dev/quasar-cli/developing-pwa/configuring-pwa 120 | pwa: { 121 | workboxPluginMode: 'GenerateSW', // 'GenerateSW' or 'InjectManifest' 122 | workboxOptions: {}, // only for GenerateSW 123 | manifest: { 124 | name: 'Quasar F2 Charts', 125 | short_name: 'Quasar F2 Charts', 126 | description: 'A Quasar Framework app', 127 | display: 'standalone', 128 | orientation: 'portrait', 129 | background_color: '#ffffff', 130 | theme_color: '#027be3', 131 | icons: [ 132 | { 133 | src: 'statics/icons/icon-128x128.png', 134 | sizes: '128x128', 135 | type: 'image/png' 136 | }, 137 | { 138 | src: 'statics/icons/icon-192x192.png', 139 | sizes: '192x192', 140 | type: 'image/png' 141 | }, 142 | { 143 | src: 'statics/icons/icon-256x256.png', 144 | sizes: '256x256', 145 | type: 'image/png' 146 | }, 147 | { 148 | src: 'statics/icons/icon-384x384.png', 149 | sizes: '384x384', 150 | type: 'image/png' 151 | }, 152 | { 153 | src: 'statics/icons/icon-512x512.png', 154 | sizes: '512x512', 155 | type: 'image/png' 156 | } 157 | ] 158 | } 159 | }, 160 | 161 | // Full list of options: https://quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova 162 | cordova: { 163 | // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing 164 | id: 'org.cordova.quasar.app' 165 | }, 166 | 167 | // Full list of options: https://quasar.dev/quasar-cli/developing-capacitor-apps/configuring-capacitor 168 | capacitor: { 169 | hideSplashscreen: true 170 | }, 171 | 172 | // Full list of options: https://quasar.dev/quasar-cli/developing-electron-apps/configuring-electron 173 | electron: { 174 | bundler: 'packager', // 'packager' or 'builder' 175 | 176 | packager: { 177 | // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options 178 | 179 | // OS X / Mac App Store 180 | // appBundleId: '', 181 | // appCategoryType: '', 182 | // osxSign: '', 183 | // protocol: 'myapp://path', 184 | 185 | // Windows only 186 | // win32metadata: { ... } 187 | }, 188 | 189 | builder: { 190 | // https://www.electron.build/configuration/configuration 191 | 192 | appId: 'quasar-f2-charts' 193 | }, 194 | 195 | // More info: https://quasar.dev/quasar-cli/developing-electron-apps/node-integration 196 | nodeIntegration: true, 197 | 198 | extendWebpack (/* cfg */) { 199 | // do something with Electron main process Webpack cfg 200 | // chainWebpack also available besides this extendWebpack 201 | } 202 | } 203 | } 204 | } 205 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /src/assets/quasar-logo-full.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 63 | 66 | 69 | 75 | 79 | 83 | 87 | 91 | 95 | 99 | 103 | 104 | 105 | 106 | 107 | 113 | 118 | 126 | 133 | 142 | 151 | 160 | 169 | 178 | 187 | 188 | 189 | 190 | 191 | 192 | -------------------------------------------------------------------------------- /src/assets/sad.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/boot/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-f2-charts/40cb91df908428ca2f2f533f6ce22a7bcea3352d/src/boot/.gitkeep -------------------------------------------------------------------------------- /src/boot/antvf2.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import F2 from '@antv/f2' 3 | 4 | // const F2 = require('@antv/f2'); 5 | 6 | Vue.prototype.$f2 = F2 7 | -------------------------------------------------------------------------------- /src/boot/axios.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import axios from 'axios' 3 | 4 | Vue.prototype.$axios = axios 5 | -------------------------------------------------------------------------------- /src/boot/i18n.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueI18n from 'vue-i18n' 3 | import messages from 'src/i18n' 4 | 5 | Vue.use(VueI18n) 6 | 7 | const i18n = new VueI18n({ 8 | locale: 'en-us', 9 | fallbackLocale: 'en-us', 10 | messages 11 | }) 12 | 13 | export default ({ app }) => { 14 | // Set i18n instance on app 15 | app.i18n = i18n 16 | } 17 | 18 | export { i18n } 19 | -------------------------------------------------------------------------------- /src/components/CardBase.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | -------------------------------------------------------------------------------- /src/components/EssentialLink.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 50 | -------------------------------------------------------------------------------- /src/components/F2AppleWatch.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 102 | 103 | 110 | -------------------------------------------------------------------------------- /src/components/F2Area.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 96 | -------------------------------------------------------------------------------- /src/components/F2Basic.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 48 | -------------------------------------------------------------------------------- /src/components/F2Heatmap.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 119 | -------------------------------------------------------------------------------- /src/components/F2Line.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 102 | -------------------------------------------------------------------------------- /src/components/F2Pie.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 102 | -------------------------------------------------------------------------------- /src/css/app.css: -------------------------------------------------------------------------------- 1 | /* app global css */ 2 | -------------------------------------------------------------------------------- /src/i18n/en-us/index.js: -------------------------------------------------------------------------------- 1 | // This is just an example, 2 | // so you can safely delete all default props below 3 | 4 | export default { 5 | failed: 'Action failed', 6 | success: 'Action was successful' 7 | } 8 | -------------------------------------------------------------------------------- /src/i18n/index.js: -------------------------------------------------------------------------------- 1 | import enUS from './en-us' 2 | 3 | export default { 4 | 'en-us': enUS 5 | } 6 | -------------------------------------------------------------------------------- /src/index.template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <%= htmlWebpackPlugin.options.productName %> 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /src/layouts/MainLayout.vue: -------------------------------------------------------------------------------- 1 | 89 | 90 | 105 | 106 | 111 | -------------------------------------------------------------------------------- /src/pages/Dashboard.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 27 | -------------------------------------------------------------------------------- /src/pages/Error404.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 26 | -------------------------------------------------------------------------------- /src/pages/Index.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 25 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | import routes from './routes' 5 | 6 | Vue.use(VueRouter) 7 | 8 | /* 9 | * If not building with SSR mode, you can 10 | * directly export the Router instantiation; 11 | * 12 | * The function below can be async too; either use 13 | * async/await or return a Promise which resolves 14 | * with the Router instance. 15 | */ 16 | 17 | export default function (/* { store, ssrContext } */) { 18 | const Router = new VueRouter({ 19 | scrollBehavior: () => ({ x: 0, y: 0 }), 20 | routes, 21 | 22 | // Leave these as they are and change in quasar.conf.js instead! 23 | // quasar.conf.js -> build -> vueRouterMode 24 | // quasar.conf.js -> build -> publicPath 25 | mode: process.env.VUE_ROUTER_MODE, 26 | base: process.env.VUE_ROUTER_BASE 27 | }) 28 | 29 | return Router 30 | } 31 | -------------------------------------------------------------------------------- /src/router/routes.js: -------------------------------------------------------------------------------- 1 | 2 | const routes = [ 3 | { 4 | path: '/', 5 | component: () => import('layouts/MainLayout.vue'), 6 | children: [ 7 | { path: '', component: () => import('pages/Index.vue') }, 8 | { path: 'dashboard', component: () => import('pages/Dashboard.vue') } 9 | ] 10 | } 11 | ] 12 | 13 | // Always leave this as last one 14 | if (process.env.MODE !== 'ssr') { 15 | routes.push({ 16 | path: '*', 17 | component: () => import('pages/Error404.vue') 18 | }) 19 | } 20 | 21 | export default routes 22 | -------------------------------------------------------------------------------- /src/statics/analysis.svg: -------------------------------------------------------------------------------- 1 | Analyza Data and chart -------------------------------------------------------------------------------- /src/statics/fundo-menu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-f2-charts/40cb91df908428ca2f2f533f6ce22a7bcea3352d/src/statics/fundo-menu.jpg -------------------------------------------------------------------------------- /src/statics/icons/favicon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-f2-charts/40cb91df908428ca2f2f533f6ce22a7bcea3352d/src/statics/icons/favicon-128x128.png -------------------------------------------------------------------------------- /src/statics/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-f2-charts/40cb91df908428ca2f2f533f6ce22a7bcea3352d/src/statics/icons/favicon-16x16.png -------------------------------------------------------------------------------- /src/statics/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-f2-charts/40cb91df908428ca2f2f533f6ce22a7bcea3352d/src/statics/icons/favicon-32x32.png -------------------------------------------------------------------------------- /src/statics/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-f2-charts/40cb91df908428ca2f2f533f6ce22a7bcea3352d/src/statics/icons/favicon-96x96.png -------------------------------------------------------------------------------- /src/statics/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-f2-charts/40cb91df908428ca2f2f533f6ce22a7bcea3352d/src/statics/icons/favicon.ico -------------------------------------------------------------------------------- /src/statics/patrick_perfil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-f2-charts/40cb91df908428ca2f2f533f6ce22a7bcea3352d/src/statics/patrick_perfil.png --------------------------------------------------------------------------------