├── .gitignore
├── LICENSE
├── README.md
├── _config.yml
├── core
├── .babelrc
├── .editorconfig
├── .gitignore
├── .postcssrc.js
├── README.md
├── build
│ ├── build.js
│ ├── check-versions.js
│ ├── logo.png
│ ├── utils.js
│ ├── vue-loader.conf.js
│ ├── webpack.base.conf.js
│ ├── webpack.dev.conf.js
│ └── webpack.prod.conf.js
├── config
│ ├── dev.env.js
│ ├── index.js
│ └── prod.env.js
├── demo.json
├── index.html
├── package-lock.json
├── package.json
├── src
│ ├── App.vue
│ ├── assets
│ │ └── logo.png
│ ├── components
│ │ └── demo
│ │ │ ├── Area.vue
│ │ │ ├── Histogram.vue
│ │ │ ├── LineChart.vue
│ │ │ ├── Pie.vue
│ │ │ ├── Scatterplot.vue
│ │ │ └── Zoom.vue
│ ├── main.js
│ ├── router
│ │ └── index.js
│ ├── service
│ │ ├── apiPath.js
│ │ └── requestApi.js
│ ├── store
│ │ ├── actions.js
│ │ ├── getters.js
│ │ ├── index.js
│ │ ├── mutation-types.js
│ │ ├── mutations.js
│ │ └── state.js
│ ├── styles
│ │ ├── public.css
│ │ ├── public.less
│ │ ├── reset.css
│ │ ├── reset.less
│ │ └── variable.less
│ ├── utils
│ │ └── filters.js
│ └── views
│ │ ├── 404.vue
│ │ ├── Home.vue
│ │ ├── Login.vue
│ │ ├── Welcome.vue
│ │ ├── d3
│ │ ├── Histogram.vue
│ │ ├── LineChart.vue
│ │ └── Scatterplot.vue
│ │ ├── demo
│ │ └── index.vue
│ │ ├── profile.vue
│ │ └── timeline
│ │ └── index.vue
└── static
│ ├── .gitkeep
│ └── favicon.ico
├── imgs
└── login.png
├── index.html
└── static
├── css
├── app.01bbcf50acf1f3388b7d48d9880501d3.css
└── app.01bbcf50acf1f3388b7d48d9880501d3.css.map
├── favicon.ico
├── fonts
└── element-icons.6f0a763.ttf
└── js
├── 0.9a76e1f97c2ecb322cd8.js
├── 0.9a76e1f97c2ecb322cd8.js.map
├── 1.4f400257e3a93fb6451f.js
├── 1.4f400257e3a93fb6451f.js.map
├── 2.4769d06de95b3bc3cf73.js
├── 2.4769d06de95b3bc3cf73.js.map
├── 3.b255c706e0c19aec8eb3.js
├── 3.b255c706e0c19aec8eb3.js.map
├── 4.03cc52c837e28e5cdfb0.js
├── 4.03cc52c837e28e5cdfb0.js.map
├── 5.5b3fec3eccc67912f784.js
├── 5.5b3fec3eccc67912f784.js.map
├── 6.1b5c2033188e851284d2.js
├── 6.1b5c2033188e851284d2.js.map
├── 7.ca591ec6b40acd79cb65.js
├── 7.ca591ec6b40acd79cb65.js.map
├── 8.25721239a2d2ac2ec55a.js
├── 8.25721239a2d2ac2ec55a.js.map
├── app.3f8aa5843cdd42f7f18d.js
├── app.3f8aa5843cdd42f7f18d.js.map
├── manifest.daa15d67c2255c477ab0.js
├── manifest.daa15d67c2255c477ab0.js.map
├── vendor.45dad939f3d5f8a29e84.js
└── vendor.45dad939f3d5f8a29e84.js.map
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | core/node_modules/
3 | /dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 嘉明
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## github-admin
2 |
3 | 
4 |
5 | ### 介绍
6 |
7 | 本仓库是使用vue和element-ui搭建的一个后台管理系统。目的是通过github提供的api展示个人(拥有github账号的人)的github活动等状况。线上效果请查看[http://reng99.cc/github-admin/](http://reng99.cc/github-admin/)。
8 |
9 | ### 怎么运行
10 |
11 | ```bash
12 |
13 | # 进入目录
14 | cd github-admin/core
15 |
16 | # 安装依赖
17 | npm install
18 |
19 | # 开发环境 localhost:8082
20 | npm run dev
21 |
22 | # 生产环境
23 | npm run build
24 |
25 | # 注意:代码的提交请回到根目录提交更改后的代码,不然只是提交core目录下的代码而已
26 | cd ..
27 |
28 | ```
29 |
30 | > 需要进行适配
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-cayman
--------------------------------------------------------------------------------
/core/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", {
4 | "modules": false,
5 | "targets": {
6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
7 | }
8 | }],
9 | "stage-2"
10 | ],
11 | "plugins": ["transform-vue-jsx", "transform-runtime"]
12 | }
13 |
--------------------------------------------------------------------------------
/core/.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 |
--------------------------------------------------------------------------------
/core/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | /dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/core/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | "postcss-import": {},
6 | "postcss-url": {},
7 | // to edit target browsers: use "browserslist" field in package.json
8 | "autoprefixer": {}
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/core/README.md:
--------------------------------------------------------------------------------
1 |
2 | ## main packages
3 |
4 | - [moment](http://momentjs.com/)
5 |
6 | Parse,validate,manipulate,and display dates and times in JavaScript.
7 |
8 | - [lodash](https://lodash.com/)
9 |
10 | A modern JavaScript utility library delivering modularity, performance & extras.
11 |
12 | - [less](http://lesscss.org/)
13 |
14 | Less (which stands for Leaner Style Sheets) is a backwards-compatible language extension for CSS.
15 |
16 | - [babel-polyfill](https://babeljs.io/docs/usage/polyfill/)
17 |
18 | This will emulate a full ES2015+ environment and is intended to be used in an application rather than a library/tool.
19 |
20 | - [element-ui](http://element.eleme.io/#/en-US/component/installation)
21 |
22 | A desktop UI library.
23 |
24 | - [fontawesome](https://fontawesome.com/?from=io)
25 |
26 | Awesome Font.
27 |
28 | - [axios](https://www.npmjs.com/package/axios)
29 |
30 | Promise based HTTP client for the browser and nodeJs.[how to use it](https://www.cnblogs.com/ldlx-mars/p/7908950.html)
31 |
32 | - [d3](https://d3js.org/)
33 |
34 | D3.js is a JavaScript library for manipulating documents based on data
35 |
36 |
--------------------------------------------------------------------------------
/core/build/build.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | require('./check-versions')()
3 |
4 | process.env.NODE_ENV = 'production'
5 |
6 | const ora = require('ora')
7 | const rm = require('rimraf')
8 | const path = require('path')
9 | const chalk = require('chalk')
10 | const webpack = require('webpack')
11 | const config = require('../config')
12 | const webpackConfig = require('./webpack.prod.conf')
13 |
14 | const spinner = ora('building for production...')
15 | spinner.start()
16 |
17 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
18 | if (err) throw err
19 | webpack(webpackConfig, (err, stats) => {
20 | spinner.stop()
21 | if (err) throw err
22 | process.stdout.write(stats.toString({
23 | colors: true,
24 | modules: false,
25 | children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
26 | chunks: false,
27 | chunkModules: false
28 | }) + '\n\n')
29 |
30 | if (stats.hasErrors()) {
31 | console.log(chalk.red(' Build failed with errors.\n'))
32 | process.exit(1)
33 | }
34 |
35 | console.log(chalk.cyan(' Build complete.\n'))
36 | console.log(chalk.yellow(
37 | ' Tip: built files are meant to be served over an HTTP server.\n' +
38 | ' Opening index.html over file:// won\'t work.\n'
39 | ))
40 | })
41 | })
42 |
--------------------------------------------------------------------------------
/core/build/check-versions.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const chalk = require('chalk')
3 | const semver = require('semver')
4 | const packageConfig = require('../package.json')
5 | const shell = require('shelljs')
6 |
7 | function exec (cmd) {
8 | return require('child_process').execSync(cmd).toString().trim()
9 | }
10 |
11 | const versionRequirements = [
12 | {
13 | name: 'node',
14 | currentVersion: semver.clean(process.version),
15 | versionRequirement: packageConfig.engines.node
16 | }
17 | ]
18 |
19 | if (shell.which('npm')) {
20 | versionRequirements.push({
21 | name: 'npm',
22 | currentVersion: exec('npm --version'),
23 | versionRequirement: packageConfig.engines.npm
24 | })
25 | }
26 |
27 | module.exports = function () {
28 | const warnings = []
29 |
30 | for (let i = 0; i < versionRequirements.length; i++) {
31 | const mod = versionRequirements[i]
32 |
33 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
34 | warnings.push(mod.name + ': ' +
35 | chalk.red(mod.currentVersion) + ' should be ' +
36 | chalk.green(mod.versionRequirement)
37 | )
38 | }
39 | }
40 |
41 | if (warnings.length) {
42 | console.log('')
43 | console.log(chalk.yellow('To use this template, you must update following to modules:'))
44 | console.log()
45 |
46 | for (let i = 0; i < warnings.length; i++) {
47 | const warning = warnings[i]
48 | console.log(' ' + warning)
49 | }
50 |
51 | console.log()
52 | process.exit(1)
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/core/build/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reng99/github-admin/237fa30cd0e1201f89cc44fd0808bcc4d0987718/core/build/logo.png
--------------------------------------------------------------------------------
/core/build/utils.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const path = require('path')
3 | const config = require('../config')
4 | const ExtractTextPlugin = require('extract-text-webpack-plugin')
5 | const packageConfig = require('../package.json')
6 |
7 | exports.assetsPath = function (_path) {
8 | const assetsSubDirectory = process.env.NODE_ENV === 'production'
9 | ? config.build.assetsSubDirectory
10 | : config.dev.assetsSubDirectory
11 |
12 | return path.posix.join(assetsSubDirectory, _path)
13 | }
14 |
15 | exports.cssLoaders = function (options) {
16 | options = options || {}
17 |
18 | const cssLoader = {
19 | loader: 'css-loader',
20 | options: {
21 | sourceMap: options.sourceMap
22 | }
23 | }
24 |
25 | const postcssLoader = {
26 | loader: 'postcss-loader',
27 | options: {
28 | sourceMap: options.sourceMap
29 | }
30 | }
31 |
32 | // generate loader string to be used with extract text plugin
33 | function generateLoaders (loader, loaderOptions) {
34 | const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
35 |
36 | if (loader) {
37 | loaders.push({
38 | loader: loader + '-loader',
39 | options: Object.assign({}, loaderOptions, {
40 | sourceMap: options.sourceMap
41 | })
42 | })
43 | }
44 |
45 | // Extract CSS when that option is specified
46 | // (which is the case during production build)
47 | if (options.extract) {
48 | return ExtractTextPlugin.extract({
49 | use: loaders,
50 | fallback: 'vue-style-loader'
51 | })
52 | } else {
53 | return ['vue-style-loader'].concat(loaders)
54 | }
55 | }
56 |
57 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html
58 | return {
59 | css: generateLoaders(),
60 | postcss: generateLoaders(),
61 | less: generateLoaders('less'),
62 | sass: generateLoaders('sass', { indentedSyntax: true }),
63 | scss: generateLoaders('sass'),
64 | stylus: generateLoaders('stylus'),
65 | styl: generateLoaders('stylus')
66 | }
67 | }
68 |
69 | // Generate loaders for standalone style files (outside of .vue)
70 | exports.styleLoaders = function (options) {
71 | const output = []
72 | const loaders = exports.cssLoaders(options)
73 |
74 | for (const extension in loaders) {
75 | const loader = loaders[extension]
76 | output.push({
77 | test: new RegExp('\\.' + extension + '$'),
78 | use: loader
79 | })
80 | }
81 |
82 | return output
83 | }
84 |
85 | exports.createNotifierCallback = () => {
86 | const notifier = require('node-notifier')
87 |
88 | return (severity, errors) => {
89 | if (severity !== 'error') return
90 |
91 | const error = errors[0]
92 | const filename = error.file && error.file.split('!').pop()
93 |
94 | notifier.notify({
95 | title: packageConfig.name,
96 | message: severity + ': ' + error.name,
97 | subtitle: filename || '',
98 | icon: path.join(__dirname, 'logo.png')
99 | })
100 | }
101 | }
102 |
--------------------------------------------------------------------------------
/core/build/vue-loader.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const utils = require('./utils')
3 | const config = require('../config')
4 | const isProduction = process.env.NODE_ENV === 'production'
5 | const sourceMapEnabled = isProduction
6 | ? config.build.productionSourceMap
7 | : config.dev.cssSourceMap
8 |
9 | module.exports = {
10 | loaders: utils.cssLoaders({
11 | sourceMap: sourceMapEnabled,
12 | extract: isProduction
13 | }),
14 | cssSourceMap: sourceMapEnabled,
15 | cacheBusting: config.dev.cacheBusting,
16 | transformToRequire: {
17 | video: ['src', 'poster'],
18 | source: 'src',
19 | img: 'src',
20 | image: 'xlink:href'
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/core/build/webpack.base.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const path = require('path')
3 | const utils = require('./utils')
4 | const config = require('../config')
5 | const vueLoaderConfig = require('./vue-loader.conf')
6 |
7 | function resolve (dir) {
8 | return path.join(__dirname, '..', dir)
9 | }
10 |
11 |
12 |
13 | module.exports = {
14 | context: path.resolve(__dirname, '../'),
15 | entry: {
16 | app: './src/main.js'
17 | },
18 | output: {
19 | path: config.build.assetsRoot,
20 | filename: '[name].js',
21 | publicPath: process.env.NODE_ENV === 'production'
22 | ? config.build.assetsPublicPath
23 | : config.dev.assetsPublicPath
24 | },
25 | resolve: {
26 | extensions: ['.js', '.vue', '.json'],
27 | alias: {
28 | 'vue$': 'vue/dist/vue.esm.js',
29 | '@': resolve('src'),
30 | }
31 | },
32 | module: {
33 | rules: [
34 | {
35 | test: /\.vue$/,
36 | loader: 'vue-loader',
37 | options: vueLoaderConfig
38 | },
39 | {
40 | test: /\.js$/,
41 | loader: 'babel-loader',
42 | include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
43 | },
44 | {
45 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
46 | loader: 'url-loader',
47 | options: {
48 | limit: 10000,
49 | name: utils.assetsPath('img/[name].[hash:7].[ext]')
50 | }
51 | },
52 | {
53 | test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
54 | loader: 'url-loader',
55 | options: {
56 | limit: 10000,
57 | name: utils.assetsPath('media/[name].[hash:7].[ext]')
58 | }
59 | },
60 | {
61 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
62 | loader: 'url-loader',
63 | options: {
64 | limit: 10000,
65 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
66 | }
67 | }
68 | ]
69 | },
70 | node: {
71 | // prevent webpack from injecting useless setImmediate polyfill because Vue
72 | // source contains it (although only uses it if it's native).
73 | setImmediate: false,
74 | // prevent webpack from injecting mocks to Node native modules
75 | // that does not make sense for the client
76 | dgram: 'empty',
77 | fs: 'empty',
78 | net: 'empty',
79 | tls: 'empty',
80 | child_process: 'empty'
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/core/build/webpack.dev.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const utils = require('./utils')
3 | const webpack = require('webpack')
4 | const config = require('../config')
5 | const merge = require('webpack-merge')
6 | const path = require('path')
7 | const baseWebpackConfig = require('./webpack.base.conf')
8 | const CopyWebpackPlugin = require('copy-webpack-plugin')
9 | const HtmlWebpackPlugin = require('html-webpack-plugin')
10 | const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
11 | const portfinder = require('portfinder')
12 |
13 | const HOST = process.env.HOST
14 | const PORT = process.env.PORT && Number(process.env.PORT)
15 |
16 | const devWebpackConfig = merge(baseWebpackConfig, {
17 | module: {
18 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
19 | },
20 | // cheap-module-eval-source-map is faster for development
21 | devtool: config.dev.devtool,
22 |
23 | // these devServer options should be customized in /config/index.js
24 | devServer: {
25 | clientLogLevel: 'warning',
26 | historyApiFallback: {
27 | rewrites: [
28 | { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
29 | ],
30 | },
31 | hot: true,
32 | contentBase: false, // since we use CopyWebpackPlugin.
33 | compress: true,
34 | host: HOST || config.dev.host,
35 | port: PORT || config.dev.port,
36 | open: config.dev.autoOpenBrowser,
37 | overlay: config.dev.errorOverlay
38 | ? { warnings: false, errors: true }
39 | : false,
40 | publicPath: config.dev.assetsPublicPath,
41 | proxy: config.dev.proxyTable,
42 | quiet: true, // necessary for FriendlyErrorsPlugin
43 | watchOptions: {
44 | poll: config.dev.poll,
45 | }
46 | },
47 | plugins: [
48 | new webpack.DefinePlugin({
49 | 'process.env': require('../config/dev.env')
50 | }),
51 | new webpack.HotModuleReplacementPlugin(),
52 | new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
53 | new webpack.NoEmitOnErrorsPlugin(),
54 | // https://github.com/ampedandwired/html-webpack-plugin
55 | new HtmlWebpackPlugin({
56 | filename: 'index.html',
57 | template: 'index.html',
58 | inject: true
59 | }),
60 | // copy custom static assets
61 | new CopyWebpackPlugin([
62 | {
63 | from: path.resolve(__dirname, '../static'),
64 | to: config.dev.assetsSubDirectory,
65 | ignore: ['.*']
66 | }
67 | ])
68 | ]
69 | })
70 |
71 | module.exports = new Promise((resolve, reject) => {
72 | portfinder.basePort = process.env.PORT || config.dev.port
73 | portfinder.getPort((err, port) => {
74 | if (err) {
75 | reject(err)
76 | } else {
77 | // publish the new Port, necessary for e2e tests
78 | process.env.PORT = port
79 | // add port to devServer config
80 | devWebpackConfig.devServer.port = port
81 |
82 | // Add FriendlyErrorsPlugin
83 | devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
84 | compilationSuccessInfo: {
85 | messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
86 | },
87 | onErrors: config.dev.notifyOnErrors
88 | ? utils.createNotifierCallback()
89 | : undefined
90 | }))
91 |
92 | resolve(devWebpackConfig)
93 | }
94 | })
95 | })
96 |
--------------------------------------------------------------------------------
/core/build/webpack.prod.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const path = require('path')
3 | const utils = require('./utils')
4 | const webpack = require('webpack')
5 | const config = require('../config')
6 | const merge = require('webpack-merge')
7 | const baseWebpackConfig = require('./webpack.base.conf')
8 | const CopyWebpackPlugin = require('copy-webpack-plugin')
9 | const HtmlWebpackPlugin = require('html-webpack-plugin')
10 | const ExtractTextPlugin = require('extract-text-webpack-plugin')
11 | const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
12 | const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
13 |
14 | const env = require('../config/prod.env')
15 |
16 | const webpackConfig = merge(baseWebpackConfig, {
17 | module: {
18 | rules: utils.styleLoaders({
19 | sourceMap: config.build.productionSourceMap,
20 | extract: true,
21 | usePostCSS: true
22 | })
23 | },
24 | devtool: config.build.productionSourceMap ? config.build.devtool : false,
25 | output: {
26 | path: config.build.assetsRoot,
27 | filename: utils.assetsPath('js/[name].[chunkhash].js'),
28 | chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
29 | },
30 | plugins: [
31 | // http://vuejs.github.io/vue-loader/en/workflow/production.html
32 | new webpack.DefinePlugin({
33 | 'process.env': env
34 | }),
35 | new UglifyJsPlugin({
36 | uglifyOptions: {
37 | compress: {
38 | warnings: false
39 | }
40 | },
41 | sourceMap: config.build.productionSourceMap,
42 | parallel: true
43 | }),
44 | // extract css into its own file
45 | new ExtractTextPlugin({
46 | filename: utils.assetsPath('css/[name].[contenthash].css'),
47 | // Setting the following option to `false` will not extract CSS from codesplit chunks.
48 | // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
49 | // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`,
50 | // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
51 | allChunks: true,
52 | }),
53 | // Compress extracted CSS. We are using this plugin so that possible
54 | // duplicated CSS from different components can be deduped.
55 | new OptimizeCSSPlugin({
56 | cssProcessorOptions: config.build.productionSourceMap
57 | ? { safe: true, map: { inline: false } }
58 | : { safe: true }
59 | }),
60 | // generate dist index.html with correct asset hash for caching.
61 | // you can customize output by editing /index.html
62 | // see https://github.com/ampedandwired/html-webpack-plugin
63 | new HtmlWebpackPlugin({
64 | filename: config.build.index,
65 | template: 'index.html',
66 | inject: true,
67 | minify: {
68 | removeComments: true,
69 | collapseWhitespace: true,
70 | removeAttributeQuotes: true
71 | // more options:
72 | // https://github.com/kangax/html-minifier#options-quick-reference
73 | },
74 | // necessary to consistently work with multiple chunks via CommonsChunkPlugin
75 | chunksSortMode: 'dependency'
76 | }),
77 | // keep module.id stable when vendor modules does not change
78 | new webpack.HashedModuleIdsPlugin(),
79 | // enable scope hoisting
80 | new webpack.optimize.ModuleConcatenationPlugin(),
81 | // split vendor js into its own file
82 | new webpack.optimize.CommonsChunkPlugin({
83 | name: 'vendor',
84 | minChunks (module) {
85 | // any required modules inside node_modules are extracted to vendor
86 | return (
87 | module.resource &&
88 | /\.js$/.test(module.resource) &&
89 | module.resource.indexOf(
90 | path.join(__dirname, '../node_modules')
91 | ) === 0
92 | )
93 | }
94 | }),
95 | // extract webpack runtime and module manifest to its own file in order to
96 | // prevent vendor hash from being updated whenever app bundle is updated
97 | new webpack.optimize.CommonsChunkPlugin({
98 | name: 'manifest',
99 | minChunks: Infinity
100 | }),
101 | // This instance extracts shared chunks from code splitted chunks and bundles them
102 | // in a separate chunk, similar to the vendor chunk
103 | // see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
104 | new webpack.optimize.CommonsChunkPlugin({
105 | name: 'app',
106 | async: 'vendor-async',
107 | children: true,
108 | minChunks: 3
109 | }),
110 |
111 | // copy custom static assets
112 | new CopyWebpackPlugin([
113 | {
114 | from: path.resolve(__dirname, '../static'),
115 | to: config.build.assetsSubDirectory,
116 | ignore: ['.*']
117 | }
118 | ])
119 | ]
120 | })
121 |
122 | if (config.build.productionGzip) {
123 | const CompressionWebpackPlugin = require('compression-webpack-plugin')
124 |
125 | webpackConfig.plugins.push(
126 | new CompressionWebpackPlugin({
127 | asset: '[path].gz[query]',
128 | algorithm: 'gzip',
129 | test: new RegExp(
130 | '\\.(' +
131 | config.build.productionGzipExtensions.join('|') +
132 | ')$'
133 | ),
134 | threshold: 10240,
135 | minRatio: 0.8
136 | })
137 | )
138 | }
139 |
140 | if (config.build.bundleAnalyzerReport) {
141 | const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
142 | webpackConfig.plugins.push(new BundleAnalyzerPlugin())
143 | }
144 |
145 | module.exports = webpackConfig
146 |
--------------------------------------------------------------------------------
/core/config/dev.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const merge = require('webpack-merge')
3 | const prodEnv = require('./prod.env')
4 |
5 | module.exports = merge(prodEnv, {
6 | NODE_ENV: '"development"'
7 | })
8 |
--------------------------------------------------------------------------------
/core/config/index.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | // Template version: 1.3.1
3 | // see http://vuejs-templates.github.io/webpack for documentation.
4 |
5 | const path = require('path')
6 |
7 | module.exports = {
8 | dev: {
9 |
10 | // Paths
11 | assetsSubDirectory: 'static',
12 | assetsPublicPath: '/',
13 | proxyTable: {},
14 |
15 | // Various Dev Server settings
16 | host: 'localhost', // can be overwritten by process.env.HOST
17 | port: 8082, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
18 | autoOpenBrowser: false,
19 | errorOverlay: true,
20 | notifyOnErrors: true,
21 | poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
22 |
23 |
24 | /**
25 | * Source Maps
26 | */
27 |
28 | // https://webpack.js.org/configuration/devtool/#development
29 | devtool: 'cheap-module-eval-source-map',
30 |
31 | // If you have problems debugging vue-files in devtools,
32 | // set this to false - it *may* help
33 | // https://vue-loader.vuejs.org/en/options.html#cachebusting
34 | cacheBusting: true,
35 |
36 | cssSourceMap: true
37 | },
38 |
39 | build: {
40 | // Template for index.html
41 | index: path.resolve(__dirname, '../../index.html'),
42 |
43 | // Paths
44 | assetsRoot: path.resolve(__dirname, '../../'),
45 | assetsSubDirectory: 'static',
46 | assetsPublicPath: './',
47 |
48 | /**
49 | * Source Maps
50 | */
51 |
52 | productionSourceMap: true,
53 | // https://webpack.js.org/configuration/devtool/#production
54 | devtool: '#source-map',
55 |
56 | // Gzip off by default as many popular static hosts such as
57 | // Surge or Netlify already gzip all static assets for you.
58 | // Before setting to `true`, make sure to:
59 | // npm install --save-dev compression-webpack-plugin
60 | productionGzip: false,
61 | productionGzipExtensions: ['js', 'css'],
62 |
63 | // Run the build command with an extra argument to
64 | // View the bundle analyzer report after build finishes:
65 | // `npm run build --report`
66 | // Set to `true` or `false` to always turn it on or off
67 | bundleAnalyzerReport: process.env.npm_config_report
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/core/config/prod.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | module.exports = {
3 | NODE_ENV: '"production"'
4 | }
5 |
--------------------------------------------------------------------------------
/core/demo.json:
--------------------------------------------------------------------------------
1 | {
2 | "name":"jiaming"
3 | }
--------------------------------------------------------------------------------
/core/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | github api demo
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/core/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "togithub",
3 | "version": "1.0.0",
4 | "description": "use github api to build a project",
5 | "author": "reng99 <1837895991@qq.com>",
6 | "private": true,
7 | "scripts": {
8 | "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
9 | "start": "npm run dev",
10 | "build": "node build/build.js"
11 | },
12 | "dependencies": {
13 | "axios": "^0.18.0",
14 | "babel-polyfill": "^6.26.0",
15 | "d3": "^5.1.0",
16 | "element-ui": "^2.3.6",
17 | "font-awesome": "^4.7.0",
18 | "lodash": "^4.17.10",
19 | "moment": "^2.22.1",
20 | "vue": "^2.5.2",
21 | "vue-router": "^3.0.1",
22 | "vuex": "^3.0.1"
23 | },
24 | "devDependencies": {
25 | "autoprefixer": "^7.1.2",
26 | "babel-core": "^6.22.1",
27 | "babel-helper-vue-jsx-merge-props": "^2.0.3",
28 | "babel-loader": "^7.1.1",
29 | "babel-plugin-syntax-jsx": "^6.18.0",
30 | "babel-plugin-transform-runtime": "^6.22.0",
31 | "babel-plugin-transform-vue-jsx": "^3.5.0",
32 | "babel-preset-env": "^1.3.2",
33 | "babel-preset-stage-2": "^6.22.0",
34 | "chalk": "^2.0.1",
35 | "copy-webpack-plugin": "^4.0.1",
36 | "css-loader": "^0.28.0",
37 | "extract-text-webpack-plugin": "^3.0.0",
38 | "file-loader": "^1.1.4",
39 | "friendly-errors-webpack-plugin": "^1.6.1",
40 | "html-webpack-plugin": "^2.30.1",
41 | "less": "^3.0.2",
42 | "less-loader": "^4.1.0",
43 | "node-notifier": "^5.1.2",
44 | "optimize-css-assets-webpack-plugin": "^3.2.0",
45 | "ora": "^1.2.0",
46 | "portfinder": "^1.0.13",
47 | "postcss-import": "^11.0.0",
48 | "postcss-loader": "^2.0.8",
49 | "postcss-url": "^7.2.1",
50 | "rimraf": "^2.6.0",
51 | "semver": "^5.3.0",
52 | "shelljs": "^0.7.6",
53 | "uglifyjs-webpack-plugin": "^1.1.1",
54 | "url-loader": "^0.5.8",
55 | "vue-loader": "^13.3.0",
56 | "vue-style-loader": "^3.0.1",
57 | "vue-template-compiler": "^2.5.2",
58 | "webpack": "^3.6.0",
59 | "webpack-bundle-analyzer": "^2.9.0",
60 | "webpack-dev-server": "^2.9.1",
61 | "webpack-merge": "^4.1.0"
62 | },
63 | "engines": {
64 | "node": ">= 6.0.0",
65 | "npm": ">= 3.0.0"
66 | },
67 | "browserslist": [
68 | "> 1%",
69 | "last 2 versions",
70 | "not ie <= 8"
71 | ]
72 | }
73 |
--------------------------------------------------------------------------------
/core/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
14 |
15 |
43 |
--------------------------------------------------------------------------------
/core/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reng99/github-admin/237fa30cd0e1201f89cc44fd0808bcc4d0987718/core/src/assets/logo.png
--------------------------------------------------------------------------------
/core/src/components/demo/Area.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
84 |
--------------------------------------------------------------------------------
/core/src/components/demo/Histogram.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
88 |
--------------------------------------------------------------------------------
/core/src/components/demo/LineChart.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
折线图
4 |
9 |
10 |
11 |
48 |
--------------------------------------------------------------------------------
/core/src/components/demo/Pie.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
饼状图
4 |
5 |
6 |
7 |
80 |
--------------------------------------------------------------------------------
/core/src/components/demo/Scatterplot.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
96 |
--------------------------------------------------------------------------------
/core/src/components/demo/Zoom.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
裁剪图
4 |
5 |
6 |
7 |
70 |
--------------------------------------------------------------------------------
/core/src/main.js:
--------------------------------------------------------------------------------
1 | // The Vue build version to load with the `import` command
2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
3 | import Vue from 'vue'
4 | import App from './App'
5 | import router from './router'
6 |
7 | // use es6 syntax and api
8 | import 'babel-polyfill'
9 |
10 | // use element-ui
11 | import ElementUI from 'element-ui'
12 | import 'element-ui/lib/theme-chalk/index.css'
13 |
14 | // use vue-router
15 | import VueRouter from 'vue-router'
16 |
17 | // use lodash
18 | import _ from 'lodash'
19 |
20 | // use moment
21 | import moment from 'moment'
22 |
23 | // use font-awesome, when podutive happen error,so link it by cdn
24 | // import 'font-awesome/css/font-awesome.min.css'
25 |
26 | // register global filter
27 | import '@/utils/filters'
28 |
29 | // use vuex
30 | import store from './store/index'
31 |
32 | // use public.less to enable index.html
33 | import './styles/public.less'
34 |
35 |
36 | // use axios
37 | import {post,fetch,patch,put} from './service/requestApi.js'
38 | Vue.prototype.$post=post;
39 | Vue.prototype.$fetch=fetch;
40 | Vue.prototype.$patch=patch;
41 | Vue.prototype.$put=put;
42 |
43 | // Vue.config.productionTip = false
44 |
45 | Vue.use(ElementUI)
46 | Vue.use(VueRouter)
47 |
48 |
49 | // handle admin, should release
50 | router.beforeEach((to,from,next) => {
51 | if(to.path == '/login'){
52 | sessionStorage.removeItem('user');
53 | }
54 | let user = JSON.parse(sessionStorage.getItem('user'));
55 | if(!user && to.path != '/login'){
56 | next({path: '/login'})
57 | } else{
58 | next()
59 | }
60 | })
61 |
62 | /* eslint-disable no-new */
63 | new Vue({
64 | // el: '#app',
65 | // template: '',
66 | router,
67 | store,
68 | // components: { App }
69 | render: h => h(App)
70 | }).$mount('#app');
71 |
--------------------------------------------------------------------------------
/core/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Router from 'vue-router'
3 | // import HelloWorld from '@/components/HelloWorld'
4 | import Home from '@/views/Home'
5 | import NotFound from '@/views/404'
6 |
7 | Vue.use(Router)
8 |
9 | export default new Router({
10 | routes: [
11 | // {
12 | // path: '/helloworld',
13 | // name: 'HelloWorld',
14 | // component: HelloWorld
15 | // },
16 | {
17 | path: '/',
18 | name: '',
19 | component: Home,
20 | hidden: true, // nav中隐藏,不希望被看到
21 | children: [
22 | {
23 | path: '/',
24 | redirect: '/welcome',
25 | },
26 | {
27 | path: '/welcome',
28 | name: 'Welcome',
29 | component: () => import('@/views/Welcome')
30 | }
31 | ]
32 | },
33 | {
34 | path: '/',
35 | name: 'D3',
36 | component: Home,
37 | iconCls: 'el-icon-menu',//图标样式class // element-ui 自带图标查看 http://element.eleme.io/#/zh-CN/component/icon#tu-biao-ji-he
38 | children: [
39 | {
40 | path: '/histogram',
41 | name: 'Histogram/直方图',
42 | meta: '',
43 | component: () => import('@/views/d3/Histogram')
44 | },
45 | {
46 | path: '/line-chart',
47 | name: 'LineChart/折线图',
48 | meta: '',
49 | component: () => import('@/views/d3/LineChart')
50 | },
51 | {
52 | path: '/scatterplot',
53 | name: 'scatterplot/散点图',
54 | meta: '',
55 | component: () => import('@/views/d3/Scatterplot')
56 | }
57 | ]
58 | },
59 | {
60 | path: '/',
61 | name: 'Demo',
62 | component: Home,
63 | iconCls: 'el-icon-edit',
64 | children: [
65 | {
66 | path: '/demo',
67 | name: 'demo',
68 | meta: '',
69 | component: () => import('@/views/demo/index')
70 | }
71 | ]
72 | },
73 | {
74 | path: '/',
75 | name: '',
76 | component: Home,
77 | iconCls: 'el-icon-time',
78 | leaf: true, // 已经是叶子结点(只有一个节点)
79 | children: [
80 | {
81 | path: '/timeline', // 活动时间图
82 | name: 'Timeline',
83 | component: () => import('@/views/timeline/index')
84 | }
85 | ]
86 | },
87 | {
88 | path: '/login',
89 | name: 'Login',
90 | hidden: true, // 左侧导航栏中隐藏
91 | component: () => import('@/views/Login'),
92 | iconCls: 'el-icon-message',//图标样式class
93 | },
94 | { // 个人主页
95 | path: '/',
96 | name: '',
97 | component: Home,
98 | hidden: true,
99 | children: [
100 | {
101 | path: '/profile',
102 | name: '个人主页',
103 | component: () => import('@/views/Profile')
104 | }
105 | ]
106 | },
107 | {
108 | path: '/404',
109 | name: '404',
110 | component: NotFound,
111 | hidden: true
112 | },
113 | { // 路由不在范围内跳转到404
114 | path: '*',
115 | hidden: true,
116 | redirect: {path: '/404'}
117 | }
118 | ]
119 | })
120 |
--------------------------------------------------------------------------------
/core/src/service/apiPath.js:
--------------------------------------------------------------------------------
1 | // 使用线上地址
2 | let apiUrl = 'https://api.github.com'
3 |
4 | export default {
5 | // 用户基本资料获取
6 | 'USER_INFO': apiUrl + '/users'
7 | }
--------------------------------------------------------------------------------
/core/src/service/requestApi.js:
--------------------------------------------------------------------------------
1 | import axios from 'axios'
2 | import {Message} from 'element-ui'
3 |
4 | axios.default.timeout = 5000
5 | axios.default.baseURL = ''
6 |
7 | // http request 拦截器
8 | axios.interceptors.request.use(
9 | config => {
10 | // const token = getCookie('名称');注意使用的时候需要引入cookie方法,推荐js-cookie
11 | config.data = JSON.stringify(config.data);
12 | config.headers = {
13 | 'Content-Type':'application/x-www-form-urlencoded'
14 | }
15 | // if(token){
16 | // config.params = {'token':token}
17 | // }
18 | return config;
19 | },
20 | error => {
21 | return Promise.reject(err);
22 | }
23 | );
24 |
25 | // http response 拦截器
26 | axios.interceptors.response.use(
27 | response => {
28 | if(response.data.errCode ==2){
29 | router.push({
30 | path:"/login",
31 | querry:{redirect:router.currentRoute.fullPath}//从哪个页面跳转
32 | })
33 | }
34 | return response;
35 | },
36 | error => {
37 | Message({
38 | type: 'warning',
39 | message: '抱歉,请求处理异常',
40 | duration: 1500
41 | });
42 | return Promise.reject(error)
43 | }
44 | )
45 |
46 |
47 | /**
48 | * 封装get方法
49 | * @param url
50 | * @param data
51 | * @return {Promise}
52 | */
53 | export function fetch(url,params={}){
54 | return new Promise((resolve,reject) => {
55 | axios.get(url,{
56 | params: params
57 | })
58 | .then(response => {
59 | resolve(response.data);
60 | })
61 | .catch(error => {
62 | reject(error);
63 | })
64 | })
65 | }
66 |
67 |
68 | /**
69 | * 封装post请求
70 | * @param url
71 | * @param data
72 | * @return {Promise}
73 | */
74 | export function post(url,data={}){
75 | return new Promise((resolve,reject) => {
76 | axios.post(url,data)
77 | .then(response => {
78 | resolve(response.data);
79 | },error => {
80 | reject(error)
81 | })
82 | })
83 | }
84 |
85 |
86 | /**
87 | * 封装patch请求
88 | * @param url
89 | * @param data
90 | * @return {Promise}
91 | */
92 | export function patch(url,data={}){
93 | return new Promise((resolve,reject) => {
94 | axios.patch(url,data)
95 | .then(response => {
96 | resolve(response.data);
97 | },error => {
98 | reject(error)
99 | })
100 | })
101 | }
102 |
103 |
104 | /**
105 | * 封装put请求
106 | * @param url
107 | * @param data
108 | * @return {Promise}
109 | */
110 | export function put(url,data={}){
111 | return new Promise((resolve,reject) => {
112 | axios.put(url,data)
113 | .then(response => {
114 | resolve(response.data);
115 | },error => {
116 | reject(error)
117 | })
118 | })
119 | }
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
--------------------------------------------------------------------------------
/core/src/store/actions.js:
--------------------------------------------------------------------------------
1 | import * as types from './mutation-types'
2 |
3 | export const testIncreaseNumber = ({commit,state,rootState},query) => {
4 | // demo, some codes here
5 | commit(types.TEST,query);
6 | }
--------------------------------------------------------------------------------
/core/src/store/getters.js:
--------------------------------------------------------------------------------
1 | import _ from 'lodash'
2 |
3 | export default {
4 | test: (state,getters,rootState) => {
5 | // demo,some codes here
6 | return state.test.data;
7 | },
8 | username: (state,getters,rootState) => {
9 | return state.username;
10 | }
11 | }
--------------------------------------------------------------------------------
/core/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 | import state from './state'
4 | import * as actions from './actions'
5 | import mutations from './mutations'
6 | import getters from './getters'
7 |
8 | Vue.use(Vuex)
9 |
10 | // init store
11 | export default new Vuex.Store({
12 | state,
13 | actions,
14 | mutations,
15 | getters
16 | })
--------------------------------------------------------------------------------
/core/src/store/mutation-types.js:
--------------------------------------------------------------------------------
1 | export const TEST = 'TEST' // demo test
--------------------------------------------------------------------------------
/core/src/store/mutations.js:
--------------------------------------------------------------------------------
1 | import * as types from './mutation-types'
2 |
3 | export default {
4 | [types.TEST](state,data){
5 | // demo, some codes here
6 | // console.log(state);
7 | }
8 | }
--------------------------------------------------------------------------------
/core/src/store/state.js:
--------------------------------------------------------------------------------
1 | export default {
2 | test: {
3 | data: "demo test data"
4 | },
5 | list: {
6 |
7 | },
8 | profile:{
9 | id: '',
10 | username: '',
11 | avatar_url: '',
12 | created_at: ''
13 | }
14 | }
--------------------------------------------------------------------------------
/core/src/styles/public.css:
--------------------------------------------------------------------------------
1 | html,
2 | body {
3 | width: 100%;
4 | }
5 | body {
6 | font-size: 12px;
7 | color: #000;
8 | font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
9 | }
10 | select,
11 | input,
12 | textarea,
13 | button {
14 | outline: none;
15 | }
16 | ul {
17 | display: block;
18 | list-style-type: none;
19 | }
20 | a {
21 | text-decoration: none;
22 | cursor: pointer;
23 | }
24 | a:link {
25 | color: #999;
26 | }
27 | a:visited {
28 | color: #303133;
29 | }
30 | a:hover {
31 | color: #409EFF;
32 | }
33 | a:active {
34 | color: #409EFF;
35 | }
36 | .cleanfix:before,
37 | .cleanfix:after {
38 | content: '' !important;
39 | display: table !important;
40 | clear: both !important;
41 | }
42 | .breadcrumb-container {
43 | height: 30px;
44 | line-height: 30px;
45 | margin-bottom: 10px;
46 | }
47 | .breadcrumb-container .el-breadcrumb__inner {
48 | line-height: 30px;
49 | }
50 | .content-wrapper {
51 | width: 100%;
52 | height: auto;
53 | }
54 |
--------------------------------------------------------------------------------
/core/src/styles/public.less:
--------------------------------------------------------------------------------
1 | @import url('./reset.less');
2 | @import url('./variable.less');
3 | // #container{
4 | // width: 100%;
5 | // min-width: 1200px;
6 | // overflow: hidden;
7 | // }
8 | // some comon code here
9 | // 清除浮动 cleanfix
10 | .clean(){
11 | &:before,
12 | &:after{
13 | content: '';
14 | display: table;
15 | clear: both;
16 | }
17 | }
18 | .cleanfix {
19 | .clean() !important;
20 | }
21 | .breadcrumb-container{
22 | // background: red;
23 | height: 30px;
24 | line-height: 30px;
25 | margin-bottom: 10px;
26 | .el-breadcrumb__inner{
27 | line-height: 30px;
28 | }
29 | }
30 | .content-wrapper{
31 | width: 100%;
32 | height: auto;
33 | // background: blue;
34 | // line-height: 20px;
35 | }
--------------------------------------------------------------------------------
/core/src/styles/reset.css:
--------------------------------------------------------------------------------
1 | html,
2 | body {
3 | width: 100%;
4 | }
5 | body {
6 | font-size: 12px;
7 | color: #000;
8 | font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
9 | }
10 | select,
11 | input,
12 | textarea,
13 | button {
14 | outline: none;
15 | }
16 | ul {
17 | display: block;
18 | list-style-type: none;
19 | }
20 | a {
21 | text-decoration: none;
22 | cursor: pointer;
23 | }
24 | a:link {
25 | color: #999;
26 | }
27 | a:visited {
28 | color: #303133;
29 | }
30 | a:hover {
31 | color: #409EFF;
32 | }
33 | a:active {
34 | color: #409EFF;
35 | }
36 | /* element-ui框架的样式重写 */
37 | .el-step__description {
38 | font-size: 14px !important;
39 | color: #666 !important;
40 | }
41 |
--------------------------------------------------------------------------------
/core/src/styles/reset.less:
--------------------------------------------------------------------------------
1 | @import url('./variable.less');
2 | html,
3 | body{
4 | width: 100%;
5 | }
6 | body{
7 | // -webkit-user-select: none; // 禁止选中文本(如无文本选中需求,此为必选项)
8 | // user-select: none;
9 | font-size: 12px;
10 | color: #000;
11 | font-family: Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif;
12 | }
13 | // 使用element-ui可以不用考虑这个了
14 | // * {
15 | // margin: 0;
16 | // padding: 0;
17 | // -webkit-tap-highlight-color: rgba(0,0,0,0);
18 | // &:before,
19 | // &:after {
20 | // box-sizing: border-box;
21 | // }
22 | // }
23 | select,
24 | input,
25 | textarea,
26 | button {
27 | outline: none;
28 | }
29 | ul {
30 | display: block;
31 | list-style-type: none;
32 | }
33 | // a标签的处理
34 | a {
35 | text-decoration: none;
36 | cursor: pointer;
37 | &:link{
38 | color: #999;
39 | }
40 | &:visited{
41 | color: #303133;
42 | }
43 | &:hover{
44 | color: #409EFF;
45 | }
46 | &:active{
47 | color: #409EFF;
48 | }
49 | }
50 |
51 | /* element-ui框架的样式重写 */
52 | .el-step__description{
53 | font-size: 14px !important;
54 | color: #666 !important;
55 | }
--------------------------------------------------------------------------------
/core/src/styles/variable.less:
--------------------------------------------------------------------------------
1 | // 颜色定义
2 | @primary-color: #409EFF;
3 | @nice-blue: #5b83ad;
4 | @light-blue: @nice-blue + #111;
5 | @dark-blue: darken(@nice-blue,10%);
6 |
7 | // 弹性布局
8 | .flexbox() {
9 | display: -webkit-box;
10 | display: -ms-flexbox;
11 | display: -webkit-flex;
12 | display: flex;
13 | }
14 | .flex-wrap(@fw) when (@fw = wrap) {
15 | -webkit-box-lines: multiple;
16 | -moz-box-lines: multiple;
17 | -webkit-flex-wrap: wrap;
18 | -ms-flex-wrap: wrap;
19 | flex-wrap: wrap;
20 | }
21 | .flex-wrap(@fw) when not (@fw = wrap) and not (@fw = nowrap) {
22 | -webkit-flex-wrap: @fw;
23 | -ms-flex-wrap: @fw;
24 | flex-wrap: @fw;
25 | }
26 | .justify-content(@jc) when (@jc = flex-start) {
27 | -webkit-box-pack: start;
28 | -ms-flex-pack: start;
29 | -webkit-justify-content: flex-start;
30 | justify-content: flex-start;
31 | }
32 | .justify-content(@jc) when (@jc = flex-end) {
33 | -webkit-box-pack: end;
34 | -ms-flex-pack: end;
35 | -webkit-justify-content: flex-end;
36 | justify-content: flex-end;
37 | }
38 | .justify-content(@jc) when (@jc = space-between) {
39 | -webkit-box-pack: justify;
40 | -ms-flex-pack: justify;
41 | -webkit-justify-content: space-between;
42 | justify-content: space-between;
43 | }
44 | .justify-content(@jc) when not (@jc = flex-start) and not (@jc = flex-end) and not (@jc = space-between) {
45 | -webkit-box-pack: @jc;
46 | -ms-flex-pack: @jc;
47 | -webkit-justify-content: @jc;
48 | justify-content: @jc;
49 | }
50 | .align-items(@ai) when (@ai = flex-start) {
51 | -webkit-box-align: start;
52 | -ms-flex-align: start;
53 | -webkit-align-items: flex-start;
54 | align-items: flex-start;
55 | }
56 | .align-items(@ai) when (@ai = flex-end) {
57 | -webkit-box-align: end;
58 | -ms-flex-align: end;
59 | -webkit-align-items: flex-end;
60 | align-items: flex-end;
61 | }
62 | .align-items(@ai) when not (@ai = flex-start) and not (@ai = flex-end) {
63 | -webkit-box-align: @ai;
64 | -ms-flex-align: @ai;
65 | -webkit-align-items: @ai;
66 | align-items: @ai;
67 | }
68 | .width-calc(@diff) {
69 | width: -webkit-calc(~'100% - @{diff}');
70 | width: -moz-calc(~'100% - @{diff}');
71 | width: calc(~'100% - @{diff}');
72 | }
--------------------------------------------------------------------------------
/core/src/utils/filters.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import moment from 'moment'
3 |
4 | // refister filter below
5 |
6 | // if the data is empty
7 | /**
8 | * {{value | filter-empty}}
9 | */
10 | Vue.filter('filter-empty',function(value){
11 | return (value || value === 0) ? value : '-';
12 | })
--------------------------------------------------------------------------------
/core/src/views/404.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 | 返回首页
12 |
13 |
14 |
15 |
24 |
25 |
--------------------------------------------------------------------------------
/core/src/views/Home.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
24 |
25 |
59 |
60 |
61 |
62 | {{$route.name}}
63 |
64 |
65 | {{ item.name }}
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
137 |
--------------------------------------------------------------------------------
/core/src/views/Login.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | GITHUB登录
4 |
5 |
6 |
7 |
8 |
9 |
10 | 记住密码
11 |
12 | 登录
13 |
14 |
15 |
16 |
17 |
18 |
77 |
78 |
--------------------------------------------------------------------------------
/core/src/views/Welcome.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{username}}
4 |
welcome to this platform
5 |
6 |
7 |
37 |
--------------------------------------------------------------------------------
/core/src/views/d3/Histogram.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
87 |
--------------------------------------------------------------------------------
/core/src/views/d3/LineChart.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
折线图
4 |
9 |
10 |
11 |
48 |
--------------------------------------------------------------------------------
/core/src/views/d3/Scatterplot.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
96 |
--------------------------------------------------------------------------------
/core/src/views/demo/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
30 |
31 |
32 |
33 |
34 |
82 |
83 |
84 |
--------------------------------------------------------------------------------
/core/src/views/profile.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
16 |
17 |
20 | {{scope.row.value | filter-empty}}
21 |
22 |
23 |
24 |
25 |
66 |
--------------------------------------------------------------------------------
/core/src/views/timeline/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{item.scope}}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
101 |
102 |
120 |
--------------------------------------------------------------------------------
/core/static/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reng99/github-admin/237fa30cd0e1201f89cc44fd0808bcc4d0987718/core/static/.gitkeep
--------------------------------------------------------------------------------
/core/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reng99/github-admin/237fa30cd0e1201f89cc44fd0808bcc4d0987718/core/static/favicon.ico
--------------------------------------------------------------------------------
/imgs/login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reng99/github-admin/237fa30cd0e1201f89cc44fd0808bcc4d0987718/imgs/login.png
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 | github api demo
--------------------------------------------------------------------------------
/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reng99/github-admin/237fa30cd0e1201f89cc44fd0808bcc4d0987718/static/favicon.ico
--------------------------------------------------------------------------------
/static/fonts/element-icons.6f0a763.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reng99/github-admin/237fa30cd0e1201f89cc44fd0808bcc4d0987718/static/fonts/element-icons.6f0a763.ttf
--------------------------------------------------------------------------------
/static/js/1.4f400257e3a93fb6451f.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([1],{"+RJ3":function(t,n,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a=e("vwbq"),r={name:"LineChart",data:function(){return{data:[99,71,78,25,36,92],line:""}},created:function(){},mounted:function(){this.calculatePath()},methods:{getScales:function(){var t=a.l().range([0,430]),n=a.k().range([210,0]);return a.d().scale(t),a.c().scale(n),t.domain(a.f(this.data,function(t,n){return n})),n.domain([0,a.h(this.data,function(t){return t})]),{x:t,y:n}},calculatePath:function(){var t=this.getScales(),n=a.g().x(function(n,e){return t.x(e)}).y(function(n){return t.y(n)});this.line=n(this.data)}}},i={render:function(){var t=this.$createElement,n=this._self._c||t;return n("div",{attrs:{id:"line-chart"}},[n("h3",{staticClass:"title"},[this._v("折线图")]),this._v(" "),n("svg",{attrs:{width:"500",height:"270"}},[n("g",{staticStyle:{transform:"translate(0, 10px)"}},[n("path",{attrs:{d:this.line}})])])])},staticRenderFns:[]};var s=e("VU/8")(r,i,!1,function(t){e("j4FD")},"data-v-6addb572",null).exports,c=e("ittK"),o={name:"Histogram",data:function(){return{respName:[],respStar:[]}},created:function(){var t=this,n=JSON.parse(sessionStorage.getItem("user"));t.$fetch(c.a.USER_INFO+"/"+n+"/repos").then(function(n){""!=n&&"undefined"!=n&&n.forEach(function(n,e){t.respName.push(n.name),t.respStar.push(n.stargazers_count),console.log(n.name+"--\x3e"+n.stargazers_count+"\n")})}).then(function(){t.$nextTick(function(){var n=600,e=t.respStar,r=a.m("#histogram .main").append("svg").attr("width",n).attr("height",300);r.selectAll("rect").data(e).enter().append("rect").attr("x",function(t,a){return a*(n/e.length)}).attr("y",function(t){return 300-4*t}).attr("width",n/e.length-3).attr("height",function(t,n){return 4*t}).attr("fill",function(t){return"rgb(0, 0, "+10*t+")"}),r.selectAll("text").data(e).enter().append("text").text(function(t){return t}).attr("x",function(t,a){return a*(n/e.length)+(n/e.length-3)/2}).attr("y",function(t){return 300-4*t+14}).attr("font-family","sans-serif").attr("font-size","11px").attr("fill","#fff").attr("text-anchor","middle")})})}},l={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var t=this.$createElement,n=this._self._c||t;return n("div",{attrs:{id:"histogram"}},[n("h3",{staticClass:"title"},[this._v("直方图")]),this._v(" "),n("div",{staticClass:"main"})])}]};var u={name:"Scatterplot",data:function(){return{}},created:function(){this.$nextTick(function(){var t=[[5,20],[480,90],[250,50],[100,33],[330,95],[410,12],[475,44],[25,67],[85,21],[220,88],[600,150]],n=a.k().domain([0,a.h(t,function(t){return t[0]})]).range([20,460]),e=a.k().domain([0,a.h(t,function(t){return t[1]})]).range([80,20]),r=a.k().domain([0,a.h(t,function(t){return t[1]})]).range([2,5]),i=a.m("#scatterplot .main").append("svg").attr("width",500).attr("height",100);i.selectAll("circle").data(t).enter().append("circle").attr("cx",function(t){return n(t[0])}).attr("cy",function(t){return e(t[1])}).attr("r",function(t){return r(t[1])}),i.selectAll("text").data(t).enter().append("text").text(function(t){return t[0]+","+t[1]}).attr("x",function(t){return n(t[0])}).attr("y",function(t){return e(t[1])}).attr("font-family","sans-serif").attr("font-size","11px").attr("fill","red")})}},f={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var t=this.$createElement,n=this._self._c||t;return n("div",{attrs:{id:"scatterplot"}},[n("h3",{staticClass:"title"},[this._v("散布图")]),this._v(" "),n("div",{staticClass:"main"})])}]};var h={name:"pie",data:function(){return{}},created:function(){this.$nextTick(function(){var t=document.querySelector("canvas"),n=t.getContext("2d"),e=t.width,r=t.height,i=Math.min(e,r)/2,s=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],c=a.a().outerRadius(i-10).innerRadius(0).context(n),o=a.n().context(n),l=a.i()([6,1,2,3,5,8,13]);n.translate(e/2,r/2),n.globalAlpha=.5,l.forEach(function(t,e){n.beginPath(),c(t),n.fillStyle=s[e],n.fill()}),n.globalAlpha=1,n.beginPath(),l.forEach(c),n.lineWidth=1.5,n.stroke(),n.beginPath(),l.forEach(function(t){var e=c.centroid(t);n.save(),n.translate(e[0],e[1]),o(),n.restore()}),n.fillStyle="#000",n.fill()})}},d={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var t=this.$createElement,n=this._self._c||t;return n("div",{attrs:{id:"pie"}},[n("h3",{staticClass:"title"},[this._v("饼状图")]),this._v(" "),n("canvas",{attrs:{width:"960",height:"400"}})])}]};var v={name:"area",data:function(){return{}},created:function(){this.$nextTick(function(){var t=a.j(40).map(function(t){return t%5?{x:t/39,y:(Math.sin(t/3)+2)/4}:null}),n=40,e=40,r=40,i=40,s=960-i-e,c=300-n-r,o=a.k().range([0,s]),l=a.k().range([c,0]),u=a.g().defined(function(t){return t}).x(function(t){return o(t.x)}).y(function(t){return l(t.y)}),f=a.b().defined(u.defined()).x(u.x()).y1(u.y()).y0(l(0)),h=a.m("#Area .main").append("svg").datum(t).attr("width",s+i+e).attr("height",c+n+r).append("g").attr("transform","translate("+i+","+n+")");h.append("path").attr("class","area").attr("d",f),h.append("g").attr("class","x axis").attr("transform","translate(0,"+c+")").call(a.c(o)),h.append("g").attr("class","y axis").call(a.d(l)),h.append("path").attr("class","line").attr("d",u),h.selectAll(".dot").data(t.filter(function(t){return t})).enter().append("circle").attr("class","dot").attr("cx",u.x()).attr("cy",u.y()).attr("r",3.5)})}},m={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var t=this.$createElement,n=this._self._c||t;return n("div",{attrs:{id:"Area"}},[n("h3",{staticClass:"title"},[this._v("范围图")]),this._v(" "),n("div",{staticClass:"main"})])}]};var p={name:"zoom",data:function(){return{}},created:function(){this.$nextTick(function(){var t=a.m("#zoom canvas"),n=t.node().getContext("2d"),e=t.property("width"),r=t.property("height"),i=2.5,s=a.j(2e3).map(function(t){var n=Math.PI*(3-Math.sqrt(5));return function(a){var i=t*Math.sqrt(a),s=n*a;return[e/2+i*Math.cos(s),r/2+i*Math.sin(s)]}}(10));function c(){n.beginPath(),s.forEach(o),n.fill()}function o(t){n.moveTo(t[0]+i,t[1]),n.arc(t[0],t[1],i,0,2*Math.PI)}t.call(a.o().scaleExtent([.5,4]).on("zoom",function(){n.save(),n.clearRect(0,0,e,r),n.translate(a.e.transform.x,a.e.transform.y),n.scale(a.e.transform.k,a.e.transform.k),c(),n.restore()})),c()})}},_={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var t=this.$createElement,n=this._self._c||t;return n("div",{attrs:{id:"zoom"}},[n("h3",{staticClass:"title"},[this._v("裁剪图")]),this._v(" "),n("canvas",{attrs:{width:"960",height:"400"}})])}]};var g={name:"d3",data:function(){return{}},created:function(){this.$nextTick(function(){})},mounted:function(){},methods:{},components:{LineChart:s,Histogram:e("VU/8")(o,l,!1,function(t){e("e6Vt")},"data-v-06a34770",null).exports,Scatterplot:e("VU/8")(u,f,!1,function(t){e("w6ZT")},"data-v-15b064bc",null).exports,Pie:e("VU/8")(h,d,!1,function(t){e("l0gv")},"data-v-0687fcb0",null).exports,Area:e("VU/8")(v,m,!1,function(t){e("ssLl")},"data-v-4d1af0c5",null).exports,Zoom:e("VU/8")(p,_,!1,function(t){e("9cw0")},"data-v-a00465e6",null).exports}},x={render:function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",{attrs:{id:"d3"}},[e("histogram"),t._v(" "),e("hr"),t._v(" "),e("scatterplot"),t._v(" "),e("hr"),t._v(" "),e("line-chart"),t._v(" "),e("hr"),t._v(" "),e("pie"),t._v(" "),e("hr"),t._v(" "),e("Area"),t._v(" "),e("hr"),t._v(" "),e("Zoom"),t._v(" "),e("hr"),t._v(" "),t._m(0)],1)},staticRenderFns:[function(){var t=this.$createElement,n=this._self._c||t;return n("div",{staticClass:"more"},[n("a",{attrs:{href:"https://bl.ocks.org/mbostock",target:"_blank"}},[this._v("更多内容请戳https://bl.ocks.org/mbostock")])])}]};var y=e("VU/8")(g,x,!1,function(t){e("yB5O")},"data-v-0b794242",null);n.default=y.exports},"9cw0":function(t,n){},e6Vt:function(t,n){},j4FD:function(t,n){},l0gv:function(t,n){},ssLl:function(t,n){},w6ZT:function(t,n){},yB5O:function(t,n){}});
2 | //# sourceMappingURL=1.4f400257e3a93fb6451f.js.map
--------------------------------------------------------------------------------
/static/js/2.4769d06de95b3bc3cf73.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([2],{"4Ran":function(t,e){},Cdx3:function(t,e,a){var n=a("sB3e"),r=a("lktj");a("uqUo")("keys",function(){return function(t){return r(n(t))}})},Twgf:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=a("fZjL"),r=a.n(n),l=a("ittK"),u={data:function(){return{tableData:[]}},created:function(){var t=this,e=JSON.parse(sessionStorage.getItem("user"));t.$fetch(l.a.USER_INFO+"/"+e).then(function(e){r()(e).forEach(function(a,n){t.tableData.push({serialNumber:n,key:a,value:e[a]})})})}},o={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"reng-container"},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.tableData,border:""}},[a("el-table-column",{attrs:{prop:"serialNumber",label:"#",width:"180"}}),t._v(" "),a("el-table-column",{attrs:{prop:"key",label:"字段",width:"180"}}),t._v(" "),a("el-table-column",{attrs:{prop:"value",label:"值(备注: 空值使用'-'表示)"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v(t._s(t._f("filter-empty")(e.row.value)))]}}])})],1)],1)},staticRenderFns:[]};var c=a("VU/8")(u,o,!1,function(t){a("4Ran")},"data-v-8590daca",null);e.default=c.exports},fZjL:function(t,e,a){t.exports={default:a("jFbC"),__esModule:!0}},jFbC:function(t,e,a){a("Cdx3"),t.exports=a("FeBl").Object.keys},uqUo:function(t,e,a){var n=a("kM2E"),r=a("FeBl"),l=a("S82l");t.exports=function(t,e){var a=(r.Object||{})[t]||Object[t],u={};u[t]=e(a),n(n.S+n.F*l(function(){a(1)}),"Object",u)}}});
2 | //# sourceMappingURL=2.4769d06de95b3bc3cf73.js.map
--------------------------------------------------------------------------------
/static/js/2.4769d06de95b3bc3cf73.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///./node_modules/core-js/library/modules/es6.object.keys.js","webpack:///src/views/Profile.vue","webpack:///./src/views/Profile.vue?3f1e","webpack:///./src/views/Profile.vue","webpack:///./node_modules/babel-runtime/core-js/object/keys.js","webpack:///./node_modules/core-js/library/fn/object/keys.js","webpack:///./node_modules/core-js/library/modules/_object-sap.js"],"names":["toObject","__webpack_require__","$keys","it","Profile","data","tableData","created","vm","this","username","JSON","parse","sessionStorage","getItem","$fetch","apiPath","USER_INFO","then","keys_default","forEach","key","index","push","serialNumber","value","views_Profile","render","_vm","_h","$createElement","_c","_self","staticClass","staticStyle","width","attrs","border","prop","label","_v","scopedSlots","_u","fn","scope","_s","_f","row","staticRenderFns","Component","normalizeComponent","ssrContext","__webpack_exports__","module","exports","default","__esModule","Object","keys","$export","core","fails","KEY","exec","exp","S","F"],"mappings":"8DACA,IAAAA,EAAAC,EAAA,QACAC,EAAAD,EAAA,QAEAA,EAAA,OAAAA,CAAA,kBACA,gBAAAE,GACA,OAAAD,EAAAF,EAAAG,gICoBAC,GACAC,KADA,WAEA,OACAC,eASAC,QAZA,WAaA,IAAAC,EAAAC,KACAC,EAAAC,KAAAC,MAAAC,eAAAC,QAAA,SACAN,EAAAO,OAAAC,EAAA,EAAAC,UAAA,IAAAP,GACAQ,KAAA,SAAAb,GACAc,IAAAd,GACAe,QAAA,SAAAC,EAAAC,GACAd,EAAAF,UAAAiB,MACAC,aAAAF,EACAD,MACAI,MAAApB,EAAAgB,WC7CAK,GADiBC,OAFjB,WAA0B,IAAAC,EAAAnB,KAAaoB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,mBAA6BF,EAAA,YAAiBG,aAAaC,MAAA,QAAeC,OAAQ/B,KAAAuB,EAAAtB,UAAA+B,OAAA,MAAkCN,EAAA,mBAAwBK,OAAOE,KAAA,eAAAC,MAAA,IAAAJ,MAAA,SAAiDP,EAAAY,GAAA,KAAAT,EAAA,mBAAoCK,OAAOE,KAAA,MAAAC,MAAA,KAAAJ,MAAA,SAAyCP,EAAAY,GAAA,KAAAT,EAAA,mBAAoCK,OAAOE,KAAA,QAAAC,MAAA,oBAA0CE,YAAAb,EAAAc,KAAsBrB,IAAA,UAAAsB,GAAA,SAAAC,GAAiC,OAAAhB,EAAAY,GAAAZ,EAAAiB,GAAAjB,EAAAkB,GAAA,eAAAlB,CAAAgB,EAAAG,IAAAtB,iBAAqE,QAElkBuB,oBCCjB,IAcAC,EAdAhD,EAAA,OAcAiD,CACA9C,EACAsB,GATA,EAVA,SAAAyB,GACAlD,EAAA,SAaA,kBAEA,MAUAmD,EAAA,QAAAH,EAAA,8BC1BAI,EAAAC,SAAkBC,QAAAtD,EAAA,QAAAuD,YAAA,yBCAlBvD,EAAA,QACAoD,EAAAC,QAAArD,EAAA,QAAAwD,OAAAC,2BCAA,IAAAC,EAAA1D,EAAA,QACA2D,EAAA3D,EAAA,QACA4D,EAAA5D,EAAA,QACAoD,EAAAC,QAAA,SAAAQ,EAAAC,GACA,IAAApB,GAAAiB,EAAAH,YAA6BK,IAAAL,OAAAK,GAC7BE,KACAA,EAAAF,GAAAC,EAAApB,GACAgB,IAAAM,EAAAN,EAAAO,EAAAL,EAAA,WAAqDlB,EAAA,KAAS,SAAAqB","file":"static/js/2.4769d06de95b3bc3cf73.js","sourcesContent":["// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.keys.js\n// module id = Cdx3\n// module chunks = 2","\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{{scope.row.value | filter-empty}}\n\t\t\t\n\t\t\n\t
\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/views/Profile.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"reng-container\"},[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.tableData,\"border\":\"\"}},[_c('el-table-column',{attrs:{\"prop\":\"serialNumber\",\"label\":\"#\",\"width\":\"180\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"key\",\"label\":\"字段\",\"width\":\"180\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"value\",\"label\":\"值(备注: 空值使用'-'表示)\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(_vm._s(_vm._f(\"filter-empty\")(scope.row.value)))]}}])})],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-8590daca\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/Profile.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-8590daca\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Profile.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Profile.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Profile.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-8590daca\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Profile.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-8590daca\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/Profile.vue\n// module id = null\n// module chunks = ","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/keys.js\n// module id = fZjL\n// module chunks = 2","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/keys.js\n// module id = jFbC\n// module chunks = 2","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-sap.js\n// module id = uqUo\n// module chunks = 2"],"sourceRoot":""}
--------------------------------------------------------------------------------
/static/js/3.b255c706e0c19aec8eb3.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([3],{BBDf:function(t,n,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=e("vwbq"),a={name:"Scatterplot",data:function(){return{}},created:function(){this.$nextTick(function(){var t=[[5,20],[480,90],[250,50],[100,33],[330,95],[410,12],[475,44],[25,67],[85,21],[220,88],[600,150]],n=r.k().domain([0,r.h(t,function(t){return t[0]})]).range([20,460]),e=r.k().domain([0,r.h(t,function(t){return t[1]})]).range([80,20]),a=r.k().domain([0,r.h(t,function(t){return t[1]})]).range([2,5]),i=r.m("#scatterplot .main").append("svg").attr("width",500).attr("height",100);i.selectAll("circle").data(t).enter().append("circle").attr("cx",function(t){return n(t[0])}).attr("cy",function(t){return e(t[1])}).attr("r",function(t){return a(t[1])}),i.selectAll("text").data(t).enter().append("text").text(function(t){return t[0]+","+t[1]}).attr("x",function(t){return n(t[0])}).attr("y",function(t){return e(t[1])}).attr("font-family","sans-serif").attr("font-size","11px").attr("fill","red")})}},i={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var t=this.$createElement,n=this._self._c||t;return n("div",{attrs:{id:"scatterplot"}},[n("h3",{staticClass:"title"},[this._v("散布图")]),this._v(" "),n("div",{staticClass:"main"})])}]};var c=e("VU/8")(a,i,!1,function(t){e("Y3Gp")},"data-v-ecb9a128",null);n.default=c.exports},Y3Gp:function(t,n){}});
2 | //# sourceMappingURL=3.b255c706e0c19aec8eb3.js.map
--------------------------------------------------------------------------------
/static/js/3.b255c706e0c19aec8eb3.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///src/views/d3/Scatterplot.vue","webpack:///./src/views/d3/Scatterplot.vue?6473","webpack:///./src/views/d3/Scatterplot.vue"],"names":["Scatterplot","name","data","created","this","$nextTick","dataset","xScale","d3","domain","d","range","w","yScale","h","rScale","svg","append","attr","selectAll","enter","text","d3_Scatterplot","render","$createElement","_self","_c","_m","staticRenderFns","_h","attrs","id","staticClass","_v","Component","__webpack_require__","normalizeComponent","ssrContext","__webpack_exports__"],"mappings":"qHAQAA,GACAC,KAAA,cACAC,KAFA,WAGA,UAIAC,QAPA,WAQAC,KACAC,UAAA,WACA,IAGAC,IACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,SACA,UAGAC,EAAAC,EAAA,IACAC,QAAA,EAAAD,EAAA,EAAAF,EAAA,SAAAI,GACA,OAAAA,EAAA,OAEAC,OAnBA,GAmBAC,MACAC,EAAAL,EAAA,IACAC,QAAA,EAAAD,EAAA,EAAAF,EAAA,SAAAI,GACA,OAAAA,EAAA,OAEAC,OAAAG,GAxBA,KA0BAC,EAAAP,EAAA,IACAC,QAAA,EAAAD,EAAA,EAAAF,EAAA,SAAAI,GACA,OAAAA,EAAA,OAEAC,OAAA,MAEAK,EAAAR,EAAA,wBACAS,OAAA,OACAC,KAAA,QApCA,KAqCAA,KAAA,SApCA,KAqCAF,EAAAG,UAAA,UACAjB,KAAAI,GACAc,QACAH,OAAA,UACAC,KAAA,cAAAR,GACA,OAAAH,EAAAG,EAAA,MAEAQ,KAAA,cAAAR,GACA,OAAAG,EAAAH,EAAA,MAEAQ,KAAA,aAAAR,GACA,OAAAK,EAAAL,EAAA,MAEAM,EAAAG,UAAA,QACAjB,KAAAI,GACAc,QACAH,OAAA,QACAI,KAAA,SAAAX,GACA,OAAAA,EAAA,OAAAA,EAAA,KAEAQ,KAAA,aAAAR,GACA,OAAAH,EAAAG,EAAA,MAEAQ,KAAA,aAAAR,GACA,OAAAG,EAAAH,EAAA,MAEAQ,KAAA,4BACAA,KAAA,oBACAA,KAAA,kBCjFAI,GADiBC,OAFjB,WAA0BnB,KAAaoB,eAAbpB,KAAuCqB,MAAAC,GAAwB,OAA/DtB,KAA+DuB,GAAA,IAExEC,iBADjB,WAAoC,IAAaC,EAAbzB,KAAaoB,eAA0BE,EAAvCtB,KAAuCqB,MAAAC,IAAAG,EAAwB,OAAAH,EAAA,OAAiBI,OAAOC,GAAA,iBAAoBL,EAAA,MAAWM,YAAA,UAAtH5B,KAA0I6B,GAAA,SAA1I7B,KAA0I6B,GAAA,KAAAP,EAAA,OAAwCM,YAAA,cCEtN,IAcAE,EAdAC,EAAA,OAcAC,CACApC,EACAsB,GATA,EAVA,SAAAe,GACAF,EAAA,SAaA,kBAEA,MAUAG,EAAA,QAAAJ,EAAA","file":"static/js/3.b255c706e0c19aec8eb3.js","sourcesContent":["\n \n\n\n\n\n\n// WEBPACK FOOTER //\n// src/views/d3/Scatterplot.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"scatterplot\"}},[_c('h3',{staticClass:\"title\"},[_vm._v(\"散布图\")]),_vm._v(\" \"),_c('div',{staticClass:\"main\"})])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-ecb9a128\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/d3/Scatterplot.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-ecb9a128\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Scatterplot.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Scatterplot.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Scatterplot.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-ecb9a128\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Scatterplot.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-ecb9a128\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/d3/Scatterplot.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}
--------------------------------------------------------------------------------
/static/js/4.03cc52c837e28e5cdfb0.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([4],{G1xe:function(e,t){},NjT6:function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={data:function(){return{username:""}},methods:{},created:function(){this.username=JSON.parse(sessionStorage.getItem("user"))}},r={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{attrs:{id:"welcome"}},[t("p",[this._v(this._s(this.username))]),this._v(" "),t("h3",[this._v("welcome to this platform")])])},staticRenderFns:[]};var a=s("VU/8")(n,r,!1,function(e){s("G1xe")},"data-v-ad6dbfd2",null);t.default=a.exports}});
2 | //# sourceMappingURL=4.03cc52c837e28e5cdfb0.js.map
--------------------------------------------------------------------------------
/static/js/4.03cc52c837e28e5cdfb0.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///src/views/Welcome.vue","webpack:///./src/views/Welcome.vue?8f35","webpack:///./src/views/Welcome.vue"],"names":["Welcome","data","username","methods","created","this","JSON","parse","sessionStorage","getItem","views_Welcome","render","_h","$createElement","_c","_self","attrs","id","_v","_s","staticRenderFns","Component","__webpack_require__","normalizeComponent","ssrContext","__webpack_exports__"],"mappings":"0HASA,IAAAA,GACAC,KADA,WAEA,OACAC,SAAA,KAGAC,WAGAC,QATA,WAUAC,KAAAH,SAAAI,KAAAC,MAAAC,eAAAC,QAAA,WChBAC,GADiBC,OAFjB,WAA0B,IAAaC,EAAbP,KAAaQ,eAA0BC,EAAvCT,KAAuCU,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,OAAOC,GAAA,aAAgBH,EAAA,KAAvGT,KAAuGa,GAAvGb,KAAuGc,GAAvGd,KAAuGH,aAAvGG,KAAuGa,GAAA,KAAAJ,EAAA,MAAvGT,KAAuGa,GAAA,iCAEhHE,oBCCjB,IAcAC,EAdAC,EAAA,OAcAC,CACAvB,EACAU,GATA,EAVA,SAAAc,GACAF,EAAA,SAaA,kBAEA,MAUAG,EAAA,QAAAJ,EAAA","file":"static/js/4.03cc52c837e28e5cdfb0.js","sourcesContent":["\n\t\n\t\t
{{username}}
\n\t\t
welcome to this platform
\n\t
\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/views/Welcome.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"welcome\"}},[_c('p',[_vm._v(_vm._s(_vm.username))]),_vm._v(\" \"),_c('h3',[_vm._v(\"welcome to this platform\")])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-ad6dbfd2\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/Welcome.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-ad6dbfd2\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Welcome.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Welcome.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Welcome.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-ad6dbfd2\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Welcome.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-ad6dbfd2\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/Welcome.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}
--------------------------------------------------------------------------------
/static/js/5.5b3fec3eccc67912f784.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([5],{fg81:function(e,t){},lmfZ:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=r("mvHQ"),o=r.n(s),n=(r("ittK"),r("zL8q")),a={data:function(){return{logining:!1,form:{username:"reng99",password:"123456"},hintMsg:{username:[{required:!0,message:"请输入账号",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}]},checked:!0}},created:function(){},methods:{login:function(){var e=this;""==e.form.username.trim()?Object(n.Message)({type:"warning",message:"输入的用户名不正确哦",duration:1500}):(e.logining=!0,sessionStorage.setItem("user",o()(e.form.username)),setTimeout(function(){e.$router.push({path:"/"})},1500))}}},i={render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("el-form",{ref:"hintMsg",staticClass:"demo-ruleForm login-container",attrs:{model:e.form,rules:e.hintMsg,"label-position":"left","label-width":"0px"}},[r("h3",{staticClass:"title"},[e._v("GITHUB登录")]),e._v(" "),r("el-form-item",{attrs:{prop:"account"}},[r("el-input",{attrs:{type:"text","auto-complete":"off",placeholder:"账号"},model:{value:e.form.username,callback:function(t){e.$set(e.form,"username",t)},expression:"form.username"}})],1),e._v(" "),r("el-form-item",{attrs:{prop:"checkPass"}},[r("el-input",{attrs:{type:"password","auto-complete":"off",placeholder:"密码"},model:{value:e.form.password,callback:function(t){e.$set(e.form,"password",t)},expression:"form.password"}})],1),e._v(" "),r("el-checkbox",{staticClass:"remember",attrs:{checked:""},model:{value:e.checked,callback:function(t){e.checked=t},expression:"checked"}},[e._v("记住密码")]),e._v(" "),r("el-form-item",{staticStyle:{width:"100%"}},[r("el-button",{staticStyle:{width:"100%"},attrs:{type:"primary",loading:e.logining},nativeOn:{click:function(t){return t.preventDefault(),e.login(t)}}},[e._v("登录")])],1)],1)},staticRenderFns:[]};var l=r("VU/8")(a,i,!1,function(e){r("fg81")},"data-v-7cc4909c",null);t.default=l.exports}});
2 | //# sourceMappingURL=5.5b3fec3eccc67912f784.js.map
--------------------------------------------------------------------------------
/static/js/5.5b3fec3eccc67912f784.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///src/views/Login.vue","webpack:///./src/views/Login.vue?da17","webpack:///./src/views/Login.vue"],"names":["Login","data","logining","form","username","password","hintMsg","required","message","trigger","checked","created","methods","login","vm","this","trim","Object","element_ui_common","type","duration","sessionStorage","setItem","stringify_default","setTimeout","$router","push","path","views_Login","render","_vm","_h","$createElement","_c","_self","ref","staticClass","attrs","model","rules","label-position","label-width","_v","prop","auto-complete","placeholder","value","callback","$$v","$set","expression","staticStyle","width","loading","nativeOn","click","$event","preventDefault","staticRenderFns","Component","__webpack_require__","normalizeComponent","ssrContext","__webpack_exports__"],"mappings":"2KAoBAA,GACAC,KADA,WAEA,OACAC,UAAA,EACAC,MACAC,SAAA,SACAC,SAAA,UAEAC,SACAF,WACAG,UAAA,EAAAC,QAAA,QAAAC,QAAA,SAGAJ,WACAE,UAAA,EAAAC,QAAA,QAAAC,QAAA,UAIAC,SAAA,IAGAC,QArBA,aA4BAC,SACAC,MADA,WAEA,IAAAC,EAAAC,KACA,IAAAD,EAAAX,KAAAC,SAAAY,OACAC,OAAAC,EAAA,QAAAD,EACAE,KAAA,UACAX,QAAA,aACAY,SAAA,QAGAN,EAAAZ,UAAA,EACAmB,eAAAC,QAAA,OAAAC,IAAAT,EAAAX,KAAAC,WACAoB,WAAA,WACAV,EAAAW,QAAAC,MAAAC,KAAA,OACA,UC3DAC,GADiBC,OAFjB,WAA0B,IAAAC,EAAAf,KAAagB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,WAAqBE,IAAA,UAAAC,YAAA,gCAAAC,OAAiEC,MAAAR,EAAA3B,KAAAoC,MAAAT,EAAAxB,QAAAkC,iBAAA,OAAAC,cAAA,SAAkFR,EAAA,MAAWG,YAAA,UAAoBN,EAAAY,GAAA,cAAAZ,EAAAY,GAAA,KAAAT,EAAA,gBAAsDI,OAAOM,KAAA,aAAkBV,EAAA,YAAiBI,OAAOlB,KAAA,OAAAyB,gBAAA,MAAAC,YAAA,MAAuDP,OAAQQ,MAAAhB,EAAA3B,KAAA,SAAA4C,SAAA,SAAAC,GAAmDlB,EAAAmB,KAAAnB,EAAA3B,KAAA,WAAA6C,IAAoCE,WAAA,oBAA6B,GAAApB,EAAAY,GAAA,KAAAT,EAAA,gBAAqCI,OAAOM,KAAA,eAAoBV,EAAA,YAAiBI,OAAOlB,KAAA,WAAAyB,gBAAA,MAAAC,YAAA,MAA2DP,OAAQQ,MAAAhB,EAAA3B,KAAA,SAAA4C,SAAA,SAAAC,GAAmDlB,EAAAmB,KAAAnB,EAAA3B,KAAA,WAAA6C,IAAoCE,WAAA,oBAA6B,GAAApB,EAAAY,GAAA,KAAAT,EAAA,eAAoCG,YAAA,WAAAC,OAA8B3B,QAAA,IAAa4B,OAAQQ,MAAAhB,EAAA,QAAAiB,SAAA,SAAAC,GAA6ClB,EAAApB,QAAAsC,GAAgBE,WAAA,aAAuBpB,EAAAY,GAAA,UAAAZ,EAAAY,GAAA,KAAAT,EAAA,gBAAkDkB,aAAaC,MAAA,UAAgBnB,EAAA,aAAkBkB,aAAaC,MAAA,QAAef,OAAQlB,KAAA,UAAAkC,QAAAvB,EAAA5B,UAAwCoD,UAAWC,MAAA,SAAAC,GAAiD,OAAxBA,EAAAC,iBAAwB3B,EAAAjB,MAAA2C,OAA2B1B,EAAAY,GAAA,iBAEvuCgB,oBCCjB,IAcAC,EAdAC,EAAA,OAcAC,CACA7D,EACA4B,GATA,EAVA,SAAAkC,GACAF,EAAA,SAaA,kBAEA,MAUAG,EAAA,QAAAJ,EAAA","file":"static/js/5.5b3fec3eccc67912f784.js","sourcesContent":["\n \n GITHUB登录
\n \n \n \n \n \n \n 记住密码\n \n 登录\n \n \n \n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/views/Login.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-form',{ref:\"hintMsg\",staticClass:\"demo-ruleForm login-container\",attrs:{\"model\":_vm.form,\"rules\":_vm.hintMsg,\"label-position\":\"left\",\"label-width\":\"0px\"}},[_c('h3',{staticClass:\"title\"},[_vm._v(\"GITHUB登录\")]),_vm._v(\" \"),_c('el-form-item',{attrs:{\"prop\":\"account\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"auto-complete\":\"off\",\"placeholder\":\"账号\"},model:{value:(_vm.form.username),callback:function ($$v) {_vm.$set(_vm.form, \"username\", $$v)},expression:\"form.username\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"prop\":\"checkPass\"}},[_c('el-input',{attrs:{\"type\":\"password\",\"auto-complete\":\"off\",\"placeholder\":\"密码\"},model:{value:(_vm.form.password),callback:function ($$v) {_vm.$set(_vm.form, \"password\", $$v)},expression:\"form.password\"}})],1),_vm._v(\" \"),_c('el-checkbox',{staticClass:\"remember\",attrs:{\"checked\":\"\"},model:{value:(_vm.checked),callback:function ($$v) {_vm.checked=$$v},expression:\"checked\"}},[_vm._v(\"记住密码\")]),_vm._v(\" \"),_c('el-form-item',{staticStyle:{\"width\":\"100%\"}},[_c('el-button',{staticStyle:{\"width\":\"100%\"},attrs:{\"type\":\"primary\",\"loading\":_vm.logining},nativeOn:{\"click\":function($event){$event.preventDefault();return _vm.login($event)}}},[_vm._v(\"登录\")])],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-7cc4909c\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/Login.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-7cc4909c\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Login.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Login.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Login.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7cc4909c\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Login.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-7cc4909c\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/Login.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}
--------------------------------------------------------------------------------
/static/js/6.1b5c2033188e851284d2.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([6],{U047:function(t,n,a){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var e=a("vwbq"),i={name:"LineChart",data:function(){return{data:[99,71,78,25,36,92],line:""}},created:function(){},mounted:function(){this.calculatePath()},methods:{getScales:function(){var t=e.l().range([0,430]),n=e.k().range([210,0]);return e.d().scale(t),e.c().scale(n),t.domain(e.f(this.data,function(t,n){return n})),n.domain([0,e.h(this.data,function(t){return t})]),{x:t,y:n}},calculatePath:function(){var t=this.getScales(),n=e.g().x(function(n,a){return t.x(a)}).y(function(n){return t.y(n)});this.line=n(this.data)}}},r={render:function(){var t=this.$createElement,n=this._self._c||t;return n("div",{attrs:{id:"line-chart"}},[n("h3",{staticClass:"title"},[this._v("折线图")]),this._v(" "),n("svg",{attrs:{width:"500",height:"270"}},[n("g",{staticStyle:{transform:"translate(0, 10px)"}},[n("path",{attrs:{d:this.line}})])])])},staticRenderFns:[]};var s=a("VU/8")(i,r,!1,function(t){a("qLUU")},"data-v-72e2aa88",null);n.default=s.exports},qLUU:function(t,n){}});
2 | //# sourceMappingURL=6.1b5c2033188e851284d2.js.map
--------------------------------------------------------------------------------
/static/js/6.1b5c2033188e851284d2.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///src/views/d3/LineChart.vue","webpack:///./src/views/d3/LineChart.vue?36ab","webpack:///./src/views/d3/LineChart.vue"],"names":["LineChart","name","data","line","created","mounted","this","calculatePath","methods","getScales","x","d3","range","y","scale","domain","d","i","path","d3_LineChart","render","_h","$createElement","_c","_self","attrs","id","staticClass","_v","width","height","staticStyle","transform","staticRenderFns","Component","__webpack_require__","normalizeComponent","ssrContext","__webpack_exports__"],"mappings":"qHAYAA,GACAC,KAAA,YACAC,KAFA,WAGA,OACAA,MAAA,mBACAC,KAAA,KAGAC,QARA,aAWAC,QAXA,WAYAC,KAAAC,iBAEAC,SACAC,UADA,WAEA,IAAAC,EAAAC,EAAA,IAAAC,OAAA,QACAC,EAAAF,EAAA,IAAAC,OAAA,QAKA,OAJAD,EAAA,IAAAG,MAAAJ,GACAC,EAAA,IAAAG,MAAAD,GACAH,EAAAK,OAAAJ,EAAA,EAAAL,KAAAJ,KAAA,SAAAc,EAAAC,GAAA,OAAAA,KACAJ,EAAAE,QAAA,EAAAJ,EAAA,EAAAL,KAAAJ,KAAA,SAAAc,GAAA,OAAAA,OACAN,IAAAG,MAEAN,cAVA,WAWA,IACAO,EADAR,KACAG,YACAS,EAAAP,EAAA,IACAD,EAAA,SAAAM,EAAAC,GAAA,OAAAH,EAAAJ,EAAAO,KACAJ,EAAA,SAAAG,GAAA,OAAAF,EAAAD,EAAAG,KAJAV,KAKAH,KAAAe,EALAZ,KAKAJ,SCvCAiB,GADiBC,OAFjB,WAA0B,IAAaC,EAAbf,KAAagB,eAA0BC,EAAvCjB,KAAuCkB,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,OAAOC,GAAA,gBAAmBH,EAAA,MAAWI,YAAA,UAArHrB,KAAyIsB,GAAA,SAAzItB,KAAyIsB,GAAA,KAAAL,EAAA,OAAwCE,OAAOI,MAAA,MAAAC,OAAA,SAA8BP,EAAA,KAAUQ,aAAaC,UAAA,wBAAkCT,EAAA,QAAaE,OAAOT,EAAnSV,KAAmSH,eAE5S8B,oBCCjB,IAcAC,EAdAC,EAAA,OAcAC,CACApC,EACAmB,GATA,EAVA,SAAAkB,GACAF,EAAA,SAaA,kBAEA,MAUAG,EAAA,QAAAJ,EAAA","file":"static/js/6.1b5c2033188e851284d2.js","sourcesContent":["\n \n\n\n\n\n\n// WEBPACK FOOTER //\n// src/views/d3/LineChart.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"line-chart\"}},[_c('h3',{staticClass:\"title\"},[_vm._v(\"折线图\")]),_vm._v(\" \"),_c('svg',{attrs:{\"width\":\"500\",\"height\":\"270\"}},[_c('g',{staticStyle:{\"transform\":\"translate(0, 10px)\"}},[_c('path',{attrs:{\"d\":_vm.line}})])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-72e2aa88\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/d3/LineChart.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-72e2aa88\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./LineChart.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./LineChart.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./LineChart.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-72e2aa88\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./LineChart.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-72e2aa88\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/d3/LineChart.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}
--------------------------------------------------------------------------------
/static/js/7.ca591ec6b40acd79cb65.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([7],{ifcW:function(t,e){},lrRO:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n("ittK"),a=n("vwbq"),i={name:"Histogram",data:function(){return{respName:[],respStar:[]}},created:function(){var t=this,e=JSON.parse(sessionStorage.getItem("user"));t.$fetch(r.a.USER_INFO+"/"+e+"/repos").then(function(e){""!=e&&"undefined"!=e&&e.forEach(function(e,n){t.respName.push(e.name),t.respStar.push(e.stargazers_count),console.log(e.name+"--\x3e"+e.stargazers_count+"\n")})}).then(function(){t.$nextTick(function(){var e=600,n=t.respStar,r=a.m("#histogram .main").append("svg").attr("width",e).attr("height",300);r.selectAll("rect").data(n).enter().append("rect").attr("x",function(t,r){return r*(e/n.length)}).attr("y",function(t){return 300-4*t}).attr("width",e/n.length-3).attr("height",function(t,e){return 4*t}).attr("fill",function(t){return"rgb(0, 0, "+10*t+")"}),r.selectAll("text").data(n).enter().append("text").text(function(t){return t}).attr("x",function(t,r){return r*(e/n.length)+(e/n.length-3)/2}).attr("y",function(t){return 300-4*t+14}).attr("font-family","sans-serif").attr("font-size","11px").attr("fill","#fff").attr("text-anchor","middle")})})}},s={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{attrs:{id:"histogram"}},[e("div",{staticClass:"main"})])}]};var c=n("VU/8")(i,s,!1,function(t){n("ifcW")},"data-v-5172f631",null);e.default=c.exports}});
2 | //# sourceMappingURL=7.ca591ec6b40acd79cb65.js.map
--------------------------------------------------------------------------------
/static/js/7.ca591ec6b40acd79cb65.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///src/views/d3/Histogram.vue","webpack:///./src/views/d3/Histogram.vue?dc8f","webpack:///./src/views/d3/Histogram.vue"],"names":["Histogram","name","data","respName","respStar","created","vm","this","username","JSON","parse","sessionStorage","getItem","$fetch","apiPath","USER_INFO","then","forEach","item","index","push","stargazers_count","console","log","$nextTick","w","dataset","svg","d3","append","attr","selectAll","enter","d","i","length","text","d3_Histogram","render","$createElement","_self","_c","_m","staticRenderFns","_h","attrs","id","staticClass","Component","__webpack_require__","normalizeComponent","ssrContext","__webpack_exports__"],"mappings":"sJAUAA,GACAC,KAAA,YACAC,KAFA,WAGA,OACAC,YACAC,cAGAC,QARA,WASA,IAAAC,EAAAC,KAGAC,EAAAC,KAAAC,MAAAC,eAAAC,QAAA,SAEAN,EAAAO,OAAAC,EAAA,EAAAC,UAAA,IAAAP,EAAA,UACAQ,KAAA,SAAAd,GACA,IAAAA,GAAA,aAAAA,GACAA,EAAAe,QAAA,SAAAC,EAAAC,GACAb,EAAAH,SAAAiB,KAAAF,EAAAjB,MACAK,EAAAF,SAAAgB,KAAAF,EAAAG,kBACAC,QAAAC,IAAAL,EAAAjB,KAAA,SAAAiB,EAAAG,iBAAA,UAGAL,KAAA,WACAV,EAAAkB,UAAA,WACA,IAAAC,EAAA,IAKAC,EAAApB,EAAAF,SACAuB,EAAAC,EAAA,sBACAC,OAAA,OACAC,KAAA,QAAAL,GACAK,KAAA,SARA,KASAH,EAAAI,UAAA,QACA7B,KAAAwB,GACAM,QACAH,OAAA,QACAC,KAAA,aAAAG,EAAAC,GACA,OAAAA,GAAAT,EAAAC,EAAAS,UAEAL,KAAA,aAAAG,GACA,OAjBA,IAiBA,EAAAA,IAEAH,KAAA,QAAAL,EAAAC,EAAAS,OAlBA,GAmBAL,KAAA,kBAAAG,EAAAC,GACA,SAAAD,IAEAH,KAAA,gBAAAG,GACA,sBAAAA,EAAA,MAEAN,EAAAI,UAAA,QACA7B,KAAAwB,GACAM,QACAH,OAAA,QACAO,KAAA,SAAAH,GACA,OAAAA,IAEAH,KAAA,aAAAG,EAAAC,GACA,OAAAA,GAAAT,EAAAC,EAAAS,SAAAV,EAAAC,EAAAS,OAjCA,GAiCA,IAEAL,KAAA,aAAAG,GACA,OArCA,IAqCA,EAAAA,EAAA,KAEAH,KAAA,4BACAA,KAAA,oBACAA,KAAA,eACAA,KAAA,8BC3EAO,GADiBC,OAFjB,WAA0B/B,KAAagC,eAAbhC,KAAuCiC,MAAAC,GAAwB,OAA/DlC,KAA+DmC,GAAA,IAExEC,iBADjB,WAAoC,IAAaC,EAAbrC,KAAagC,eAA0BE,EAAvClC,KAAuCiC,MAAAC,IAAAG,EAAwB,OAAAH,EAAA,OAAiBI,OAAOC,GAAA,eAAkBL,EAAA,OAAYM,YAAA,cCEzJ,IAcAC,EAdAC,EAAA,OAcAC,CACAlD,EACAqC,GATA,EAVA,SAAAc,GACAF,EAAA,SAaA,kBAEA,MAUAG,EAAA,QAAAJ,EAAA","file":"static/js/7.ca591ec6b40acd79cb65.js","sourcesContent":["\n \n\n\n\n\n\n// WEBPACK FOOTER //\n// src/views/d3/Histogram.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"histogram\"}},[_c('div',{staticClass:\"main\"})])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-5172f631\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/d3/Histogram.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-5172f631\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Histogram.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Histogram.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Histogram.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5172f631\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Histogram.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-5172f631\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/d3/Histogram.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}
--------------------------------------------------------------------------------
/static/js/8.25721239a2d2ac2ec55a.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([8],{"6YVP":function(e,t){},lZsw:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"timeline"}},[i("div",{ref:"autoHeight"},[i("el-steps",{attrs:{direction:"vertical",active:e.eventTotal}},[e._l(e.events,function(t,s){return[i("div",{staticClass:"scope"},[e._v(e._s(t.scope))]),e._v(" "),i("el-step",{attrs:{title:t.title,description:t.desc}})]})],2)],1)])},staticRenderFns:[]};var d=i("VU/8")({name:"timeline",data:function(){return{fixedHeight:80,eventTotal:0,events:[{id:1,title:"明确需求",scope:"2018.05.06 - 2018.05.12",desc:"使用element-ui并结合vue搭建一个后台的项目,然后调用github的接口获取数据,再使用d3js进行数据的图形展示。【注意⚠️】重点是d3,本仓库主要目的是学习使用d3js,为可视化界面打下基础。"},{id:2,title:"项目搭建",scope:"2018.05.13 - 2018.05.19",desc:"在vue-cli的脚手架上搭建项目,使用到vue-router和vuex,然后就是使用less预处理器编写样式,axios处理http,d3js的引入等。各个文件的存放请参考https://github.com/reng99/github-admin"},{id:3,title:"d3js的学习",scope:"2018.05.20 - 2018.05.26",desc:"工作之余学习D3JS"},{id:4,title:"d3js的实践",scope:"2018.05.27 - 2018.06.02",desc:"D3JS相关demo的制作"},{id:5,title:"渲染数据",scope:"2018.06.03 - 2018.06.09",desc:"调用github的接口,通过d3js进行相关数据的渲染到页面上"},{id:6,title:"有事暂停",scope:"2018.06.10 - 2018.06.16",desc:"-"},{id:7,title:"有事暂停",scope:"2018.06.17 - 2018.06.23",desc:"-"},{id:8,title:"有事暂停",scope:"2018.06.24 - 2018.06.30",desc:"-"},{id:9,title:"有事暂停",scope:"2018.07.01 - 2018.07.06",desc:"-"},{id:10,title:"添加demo",scope:"2018.07.07 - 2018.07.13",desc:"添加相关的demo,本仓库完结,后期有相关d3的demo再添加;特别是结合github-api的demo。总结:d3js的难点是要读懂相关的api要做什么事情,然后进行相关的调用..."}]}},created:function(){var e=this;e.eventTotal=e.events.length,e.$nextTick(function(){e.$refs.autoHeight.style.height=e.fixedHeight*e.eventTotal+"px"})},methods:{},components:{}},s,!1,function(e){i("6YVP")},"data-v-1eb7e757",null);t.default=d.exports}});
2 | //# sourceMappingURL=8.25721239a2d2ac2ec55a.js.map
--------------------------------------------------------------------------------
/static/js/8.25721239a2d2ac2ec55a.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///src/views/timeline/index.vue","webpack:///./src/views/timeline/index.vue?46fd","webpack:///./src/views/timeline/index.vue"],"names":["views_timeline","render","_vm","this","_h","$createElement","_c","_self","attrs","id","ref","direction","active","eventTotal","_l","item","index","staticClass","_v","_s","scope","title","description","desc","staticRenderFns","Component","__webpack_require__","normalizeComponent","name","data","fixedHeight","events","created","vm","length","$nextTick","$refs","autoHeight","style","height","methods","components","ssrContext","__webpack_exports__"],"mappings":"4HAcA,ICXAA,GADiBC,OAFjB,WAA0B,IAAAC,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,OAAOC,GAAA,cAAiBH,EAAA,OAAYI,IAAA,eAAiBJ,EAAA,YAAiBE,OAAOG,UAAA,WAAAC,OAAAV,EAAAW,cAAgDX,EAAAY,GAAAZ,EAAA,gBAAAa,EAAAC,GAA4C,OAAAV,EAAA,OAAkBW,YAAA,UAAoBf,EAAAgB,GAAAhB,EAAAiB,GAAAJ,EAAAK,UAAAlB,EAAAgB,GAAA,KAAAZ,EAAA,WAAyDE,OAAOa,MAAAN,EAAAM,MAAAC,YAAAP,EAAAQ,YAA+C,UAEvZC,oBCCjB,IAcAC,EAdAC,EAAA,OAcAC,EFFAC,KAAA,WACAC,KAFA,WAGA,OACAC,YAAA,GACAjB,WAAA,EACAkB,SAEAtB,GAAA,EACAY,MAAA,OACAD,MAAA,0BACAG,KAAA,4GAGAd,GAAA,EACAY,MAAA,OACAD,MAAA,0BACAG,KAAA,kIAGAd,GAAA,EACAY,MAAA,UACAD,MAAA,0BACAG,KAAA,eAGAd,GAAA,EACAY,MAAA,UACAD,MAAA,0BACAG,KAAA,kBAGAd,GAAA,EACAY,MAAA,OACAD,MAAA,0BACAG,KAAA,oCAGAd,GAAA,EACAY,MAAA,OACAD,MAAA,0BACAG,KAAA,MAGAd,GAAA,EACAY,MAAA,OACAD,MAAA,0BACAG,KAAA,MAGAd,GAAA,EACAY,MAAA,OACAD,MAAA,0BACAG,KAAA,MAGAd,GAAA,EACAY,MAAA,OACAD,MAAA,0BACAG,KAAA,MAGAd,GAAA,GACAY,MAAA,SACAD,MAAA,0BACAG,KAAA,mGAKAS,QAtEA,WAuEA,IAAAC,EAAA9B,KACA8B,EAAApB,WAAAoB,EAAAF,OAAAG,OAEAD,EAAAE,UAAA,WACAF,EAAAG,MAAAC,WAAAC,MAAAC,OAAAN,EAAAH,YAAAG,EAAApB,WAAA,QAGA2B,WAGAC,eE5EAzC,GATA,EAVA,SAAA0C,GACAhB,EAAA,SAaA,kBAEA,MAUAiB,EAAA,QAAAlB,EAAA","file":"static/js/8.25721239a2d2ac2ec55a.js","sourcesContent":["\n\t\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{item.scope}}
\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t
\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/views/timeline/index.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"timeline\"}},[_c('div',{ref:\"autoHeight\"},[_c('el-steps',{attrs:{\"direction\":\"vertical\",\"active\":_vm.eventTotal}},[_vm._l((_vm.events),function(item ,index){return [_c('div',{staticClass:\"scope\"},[_vm._v(_vm._s(item.scope))]),_vm._v(\" \"),_c('el-step',{attrs:{\"title\":item.title,\"description\":item.desc}})]})],2)],1)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-1eb7e757\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/timeline/index.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-1eb7e757\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./index.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./index.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./index.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1eb7e757\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./index.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-1eb7e757\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/timeline/index.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}
--------------------------------------------------------------------------------
/static/js/app.3f8aa5843cdd42f7f18d.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([10],{NHnr:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s={};n.d(s,"testIncreaseNumber",function(){return g});var a=n("7+uW"),o={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{attrs:{id:"app"}},[e("transition",{attrs:{name:"fade",mode:"out-in"}},[e("router-view")],1)],1)},staticRenderFns:[]};var r=n("VU/8")({},o,!1,function(t){n("uvUT")},null,null).exports,l=n("/ocq"),i=n("ittK"),c={data:function(){return{collapsed:!1,username:"",avatarUrl:"http://pic.58pic.com/58pic/14/64/56/25h58PIC3eG_1024.jpg"}},methods:{collapse:function(){this.collapsed=!this.collapsed},handleopen:function(){console.log("handleopen")},handleclose:function(){console.log("handleclose")},handleselect:function(){console.log("handleselect")},showMenu:function(t,e){console.log(t),this.$refs.menuCollapsed.getElementsByClassName("submenu-hook-"+t)[0].style.display=e?"block":"none"},logout:function(){var t=this;t.$confirm("确认退出吗?","提示",{type:"warning"}).then(function(){sessionStorage.removeItem("user"),t.$router.push({path:"/login"})}).catch(function(){console.log("error")})}},created:function(){var t=this,e=JSON.parse(sessionStorage.getItem("user"));t.$fetch(i.a.USER_INFO+"/"+e).then(function(e){t.username=e.login,t.avatarUrl=e.avatar_url})},computed:{}},u={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("el-row",{staticClass:"container"},[n("el-col",{staticClass:"header",attrs:{span:24}},[n("el-col",{staticClass:"logo",class:t.collapsed?"logo-collapse-width":"logo-width",attrs:{span:10},nativeOn:{click:function(e){t.$router.push("/")}}},[t._v("\n\t\t\t"+t._s(t.collapsed?"R":"RENG")+"\n\t\t")]),t._v(" "),n("el-col",{attrs:{span:10}},[n("div",{staticClass:"tools",on:{click:function(e){return e.preventDefault(),t.collapse(e)}}},[n("i",{staticClass:"fa fa-align-justify"})])]),t._v(" "),n("el-col",{staticClass:"userinfo",attrs:{span:4}},[n("el-dropdown",{attrs:{trigger:"hover"}},[n("span",{staticClass:"el-dropdown-link userinfo-inner"},[n("img",{attrs:{src:t.avatarUrl}}),t._v(" "+t._s(t.username)+"\n\t\t\t\t")]),t._v(" "),n("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[n("el-dropdown-item",{nativeOn:{click:function(e){t.$router.push("/profile")}}},[t._v("个人主页")]),t._v(" "),n("el-dropdown-item",{attrs:{divided:""},nativeOn:{click:function(e){return t.logout(e)}}},[t._v("退出登录")])],1)],1)],1)],1),t._v(" "),n("el-col",{staticClass:"main",attrs:{span:24}},[n("aside",{class:t.collapsed?"menu-collapsed":"menu-expanded"},[t.collapsed?n("ul",{ref:"menuCollapsed",staticClass:"el-menu"},t._l(t.$router.options.routes,function(e,s){return e.hidden?t._e():n("li",{staticClass:"reng-menu"},[e.leaf?[n("div",{staticClass:"el-menu-item",class:t.$route.path==e.children[0].path?"is-active":"",on:{click:function(n){t.$router.push(e.children[0].path)}}},[n("i",{class:e.iconCls})])]:[n("div",{staticClass:"el-menu-item",on:{mouseover:function(e){t.showMenu(s,!0)},mouseout:function(e){t.showMenu(s,!1)}}},[n("i",{class:e.iconCls})]),t._v(" "),n("ul",{staticClass:"reng-submenu",class:"submenu-hook-"+s,on:{mouseover:function(e){t.showMenu(s,!0)},mouseout:function(e){t.showMenu(s,!1)}}},t._l(e.children,function(e){return n("li",{key:e.path,staticClass:"el-menu-item",class:t.$route.path==e.path?"is-active":"",staticStyle:{padding:"0 20px"},on:{click:function(n){t.$router.push(e.path)}}},[t._v(t._s(e.name))])}))]],2)})):n("el-menu",{attrs:{router:"","unique-opened":""},on:{open:t.handleopen,close:t.handleclose,select:t.handleselect}},[t._l(t.$router.options.routes,function(e,s){return e.hidden?t._e():[e.leaf?t._e():n("el-submenu",{attrs:{index:s+""}},[n("template",{slot:"title"},[n("i",{class:e.iconCls}),t._v(t._s(e.name))]),t._v(" "),t._l(e.children,function(e){return n("el-menu-item",{key:e.path,attrs:{index:e.path}},[t._v(t._s(e.name))])})],2),t._v(" "),e.leaf&&e.children.length>0?n("el-menu-item",{attrs:{index:e.children[0].path}},[n("i",{class:e.iconCls}),t._v(t._s(e.children[0].name)+"\n\t\t\t\t\t")]):t._e()]})],2)],1),t._v(" "),n("section",{staticClass:"content-container"},[n("div",{staticClass:"grid-content bg-purple-light"},[n("el-col",{staticClass:"breadcrumb-container",attrs:{span:24}},[n("strong",{staticClass:"title"},[t._v(t._s(t.$route.name))]),t._v(" "),""!=t.$route.matched[0].name?n("el-breadcrumb",{staticClass:"breadcrumb-inner",attrs:{"separator-class":"el-icon-arrow-right"}},t._l(t.$route.matched,function(e){return n("el-breadcrumb-item",{key:e.path,attrs:{to:{path:""==e.path?"/":e.path}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(e.name)+"\n\t\t\t\t\t\t")])})):t._e()],1),t._v(" "),n("el-col",{staticClass:"content-wrapper",attrs:{span:24}},[n("transition",{attrs:{name:"fade",mode:"out-in"}},[n("router-view")],1)],1)],1)])])],1)},staticRenderFns:[]};var d=n("VU/8")(c,u,!1,function(t){n("xT5V")},"data-v-0ce9edc7",null).exports,m={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{attrs:{id:"not-found"}},[e("el-alert",{attrs:{type:"error",title:"404",description:"抱歉,页面走失了 @~@","show-icon":"",closable:!1}}),this._v(" "),e("router-link",{staticClass:"back",attrs:{to:{path:"/welcome"}}},[this._v("返回首页")])],1)},staticRenderFns:[]};var h=n("VU/8")({data:function(){return{}}},m,!1,function(t){n("U9D5")},"data-v-b46cf760",null).exports;a.default.use(l.a);var p=new l.a({routes:[{path:"/",name:"",component:d,hidden:!0,children:[{path:"/",redirect:"/welcome"},{path:"/welcome",name:"Welcome",component:function(){return n.e(4).then(n.bind(null,"NjT6"))}}]},{path:"/",name:"D3",component:d,iconCls:"el-icon-menu",children:[{path:"/histogram",name:"Histogram/直方图",meta:"",component:function(){return Promise.all([n.e(0),n.e(7)]).then(n.bind(null,"lrRO"))}},{path:"/line-chart",name:"LineChart/折线图",meta:"",component:function(){return Promise.all([n.e(0),n.e(6)]).then(n.bind(null,"U047"))}},{path:"/scatterplot",name:"scatterplot/散点图",meta:"",component:function(){return Promise.all([n.e(0),n.e(3)]).then(n.bind(null,"BBDf"))}}]},{path:"/",name:"Demo",component:d,iconCls:"el-icon-edit",children:[{path:"/demo",name:"demo",meta:"",component:function(){return Promise.all([n.e(0),n.e(1)]).then(n.bind(null,"+RJ3"))}}]},{path:"/",name:"",component:d,iconCls:"el-icon-time",leaf:!0,children:[{path:"/timeline",name:"Timeline",component:function(){return n.e(8).then(n.bind(null,"lZsw"))}}]},{path:"/login",name:"Login",hidden:!0,component:function(){return n.e(5).then(n.bind(null,"lmfZ"))},iconCls:"el-icon-message"},{path:"/",name:"",component:d,hidden:!0,children:[{path:"/profile",name:"个人主页",component:function(){return n.e(2).then(n.bind(null,"Twgf"))}}]},{path:"/404",name:"404",component:h,hidden:!0},{path:"*",hidden:!0,redirect:{path:"/404"}}]}),f=(n("j1ja"),n("zL8q")),j=n.n(f);n("tvR6"),n("M4fF"),n("PJh5");a.default.filter("filter-empty",function(t){return t||0===t?t:"-"});var v=n("NYxO"),g=function(t,e){var n=t.commit;t.state,t.rootState;n("TEST",e)},b=n("bOdI"),w=n.n(b)()({},"TEST",function(t,e){});a.default.use(v.a);var _=new v.a.Store({state:{test:{data:"demo test data"},list:{},profile:{id:"",username:"",avatar_url:"",created_at:""}},actions:s,mutations:w,getters:{test:function(t,e,n){return t.test.data},username:function(t,e,n){return t.username}}}),k=(n("fvOb"),n("//Fk")),y=n.n(k),C=n("mvHQ"),z=n.n(C),x=n("mtWM"),O=n.n(x);O.a.default.timeout=5e3,O.a.default.baseURL="",O.a.interceptors.request.use(function(t){return t.data=z()(t.data),t.headers={"Content-Type":"application/x-www-form-urlencoded"},t},function(t){return y.a.reject(err)}),O.a.interceptors.response.use(function(t){return 2==t.data.errCode&&router.push({path:"/login",querry:{redirect:router.currentRoute.fullPath}}),t},function(t){return Object(f.Message)({type:"warning",message:"抱歉,请求处理异常",duration:1500}),y.a.reject(t)}),a.default.prototype.$post=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new y.a(function(n,s){O.a.post(t,e).then(function(t){n(t.data)},function(t){s(t)})})},a.default.prototype.$fetch=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new y.a(function(n,s){O.a.get(t,{params:e}).then(function(t){n(t.data)}).catch(function(t){s(t)})})},a.default.prototype.$patch=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new y.a(function(n,s){O.a.patch(t,e).then(function(t){n(t.data)},function(t){s(t)})})},a.default.prototype.$put=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new y.a(function(n,s){O.a.put(t,e).then(function(t){n(t.data)},function(t){s(t)})})},a.default.use(j.a),a.default.use(l.a),p.beforeEach(function(t,e,n){"/login"==t.path&&sessionStorage.removeItem("user"),JSON.parse(sessionStorage.getItem("user"))||"/login"==t.path?n():n({path:"/login"})}),new a.default({router:p,store:_,render:function(t){return t(r)}}).$mount("#app")},U9D5:function(t,e){},fvOb:function(t,e){},ittK:function(t,e,n){"use strict";e.a={USER_INFO:"https://api.github.com/users"}},tvR6:function(t,e){},uslO:function(t,e,n){var s={"./af":"3CJN","./af.js":"3CJN","./ar":"3MVc","./ar-dz":"tkWw","./ar-dz.js":"tkWw","./ar-kw":"j8cJ","./ar-kw.js":"j8cJ","./ar-ly":"wPpW","./ar-ly.js":"wPpW","./ar-ma":"dURR","./ar-ma.js":"dURR","./ar-sa":"7OnE","./ar-sa.js":"7OnE","./ar-tn":"BEem","./ar-tn.js":"BEem","./ar.js":"3MVc","./az":"eHwN","./az.js":"eHwN","./be":"3hfc","./be.js":"3hfc","./bg":"lOED","./bg.js":"lOED","./bm":"hng5","./bm.js":"hng5","./bn":"aM0x","./bn.js":"aM0x","./bo":"w2Hs","./bo.js":"w2Hs","./br":"OSsP","./br.js":"OSsP","./bs":"aqvp","./bs.js":"aqvp","./ca":"wIgY","./ca.js":"wIgY","./cs":"ssxj","./cs.js":"ssxj","./cv":"N3vo","./cv.js":"N3vo","./cy":"ZFGz","./cy.js":"ZFGz","./da":"YBA/","./da.js":"YBA/","./de":"DOkx","./de-at":"8v14","./de-at.js":"8v14","./de-ch":"Frex","./de-ch.js":"Frex","./de.js":"DOkx","./dv":"rIuo","./dv.js":"rIuo","./el":"CFqe","./el.js":"CFqe","./en-au":"Sjoy","./en-au.js":"Sjoy","./en-ca":"Tqun","./en-ca.js":"Tqun","./en-gb":"hPuz","./en-gb.js":"hPuz","./en-ie":"ALEw","./en-ie.js":"ALEw","./en-il":"QZk1","./en-il.js":"QZk1","./en-nz":"dyB6","./en-nz.js":"dyB6","./eo":"Nd3h","./eo.js":"Nd3h","./es":"LT9G","./es-do":"7MHZ","./es-do.js":"7MHZ","./es-us":"INcR","./es-us.js":"INcR","./es.js":"LT9G","./et":"XlWM","./et.js":"XlWM","./eu":"sqLM","./eu.js":"sqLM","./fa":"2pmY","./fa.js":"2pmY","./fi":"nS2h","./fi.js":"nS2h","./fo":"OVPi","./fo.js":"OVPi","./fr":"tzHd","./fr-ca":"bXQP","./fr-ca.js":"bXQP","./fr-ch":"VK9h","./fr-ch.js":"VK9h","./fr.js":"tzHd","./fy":"g7KF","./fy.js":"g7KF","./gd":"nLOz","./gd.js":"nLOz","./gl":"FuaP","./gl.js":"FuaP","./gom-latn":"+27R","./gom-latn.js":"+27R","./gu":"rtsW","./gu.js":"rtsW","./he":"Nzt2","./he.js":"Nzt2","./hi":"ETHv","./hi.js":"ETHv","./hr":"V4qH","./hr.js":"V4qH","./hu":"xne+","./hu.js":"xne+","./hy-am":"GrS7","./hy-am.js":"GrS7","./id":"yRTJ","./id.js":"yRTJ","./is":"upln","./is.js":"upln","./it":"FKXc","./it.js":"FKXc","./ja":"ORgI","./ja.js":"ORgI","./jv":"JwiF","./jv.js":"JwiF","./ka":"RnJI","./ka.js":"RnJI","./kk":"j+vx","./kk.js":"j+vx","./km":"5j66","./km.js":"5j66","./kn":"gEQe","./kn.js":"gEQe","./ko":"eBB/","./ko.js":"eBB/","./ky":"6cf8","./ky.js":"6cf8","./lb":"z3hR","./lb.js":"z3hR","./lo":"nE8X","./lo.js":"nE8X","./lt":"/6P1","./lt.js":"/6P1","./lv":"jxEH","./lv.js":"jxEH","./me":"svD2","./me.js":"svD2","./mi":"gEU3","./mi.js":"gEU3","./mk":"Ab7C","./mk.js":"Ab7C","./ml":"oo1B","./ml.js":"oo1B","./mn":"CqHt","./mn.js":"CqHt","./mr":"5vPg","./mr.js":"5vPg","./ms":"ooba","./ms-my":"G++c","./ms-my.js":"G++c","./ms.js":"ooba","./mt":"oCzW","./mt.js":"oCzW","./my":"F+2e","./my.js":"F+2e","./nb":"FlzV","./nb.js":"FlzV","./ne":"/mhn","./ne.js":"/mhn","./nl":"3K28","./nl-be":"Bp2f","./nl-be.js":"Bp2f","./nl.js":"3K28","./nn":"C7av","./nn.js":"C7av","./pa-in":"pfs9","./pa-in.js":"pfs9","./pl":"7LV+","./pl.js":"7LV+","./pt":"ZoSI","./pt-br":"AoDM","./pt-br.js":"AoDM","./pt.js":"ZoSI","./ro":"wT5f","./ro.js":"wT5f","./ru":"ulq9","./ru.js":"ulq9","./sd":"fW1y","./sd.js":"fW1y","./se":"5Omq","./se.js":"5Omq","./si":"Lgqo","./si.js":"Lgqo","./sk":"OUMt","./sk.js":"OUMt","./sl":"2s1U","./sl.js":"2s1U","./sq":"V0td","./sq.js":"V0td","./sr":"f4W3","./sr-cyrl":"c1x4","./sr-cyrl.js":"c1x4","./sr.js":"f4W3","./ss":"7Q8x","./ss.js":"7Q8x","./sv":"Fpqq","./sv.js":"Fpqq","./sw":"DSXN","./sw.js":"DSXN","./ta":"+7/x","./ta.js":"+7/x","./te":"Nlnz","./te.js":"Nlnz","./tet":"gUgh","./tet.js":"gUgh","./tg":"5SNd","./tg.js":"5SNd","./th":"XzD+","./th.js":"XzD+","./tl-ph":"3LKG","./tl-ph.js":"3LKG","./tlh":"m7yE","./tlh.js":"m7yE","./tr":"k+5o","./tr.js":"k+5o","./tzl":"iNtv","./tzl.js":"iNtv","./tzm":"FRPF","./tzm-latn":"krPU","./tzm-latn.js":"krPU","./tzm.js":"FRPF","./ug-cn":"To0v","./ug-cn.js":"To0v","./uk":"ntHu","./uk.js":"ntHu","./ur":"uSe8","./ur.js":"uSe8","./uz":"XU1s","./uz-latn":"/bsm","./uz-latn.js":"/bsm","./uz.js":"XU1s","./vi":"0X8Q","./vi.js":"0X8Q","./x-pseudo":"e/KL","./x-pseudo.js":"e/KL","./yo":"YXlc","./yo.js":"YXlc","./zh-cn":"Vz2w","./zh-cn.js":"Vz2w","./zh-hk":"ZUyn","./zh-hk.js":"ZUyn","./zh-tw":"BbgG","./zh-tw.js":"BbgG"};function a(t){return n(o(t))}function o(t){var e=s[t];if(!(e+1))throw new Error("Cannot find module '"+t+"'.");return e}a.keys=function(){return Object.keys(s)},a.resolve=o,t.exports=a,a.id="uslO"},uvUT:function(t,e){},xT5V:function(t,e){}},["NHnr"]);
2 | //# sourceMappingURL=app.3f8aa5843cdd42f7f18d.js.map
--------------------------------------------------------------------------------
/static/js/manifest.daa15d67c2255c477ab0.js:
--------------------------------------------------------------------------------
1 | !function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,o,a){for(var i,u,f,s=0,l=[];s