├── .babelrc ├── .editorconfig ├── .gitignore ├── .vscode └── temp.sql ├── Makefile ├── README.md ├── debug.log ├── package-lock.json ├── package.json ├── postcss.config.js ├── src ├── App.vue ├── components │ ├── Schedule.vue │ ├── Searchcourse.vue │ ├── TopNav.vue │ └── Waitcourse.vue ├── index.html ├── main.js └── vendor.js ├── webpack.config.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["es2015", { "modules": false }] 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log 5 | .idea 6 | data.sqlite -------------------------------------------------------------------------------- /.vscode/temp.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cosformula/CourseSchedulingHelper/c99e6f8e957d2f9efecbaabd205516753b6e2d24/.vscode/temp.sql -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: dist build 2 | install: 3 | @npm install 4 | 5 | dev: install 6 | @npm run dev 7 | 8 | build: 9 | @npm run build 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CourseSchedulingHelper 2 | 3 | [instance](http://xk.shuhelper.cn) 4 | 5 | 6 | ## Environment 7 | 8 | `Node >= 6` 9 | 10 | ## Start 11 | 12 | - Clone or download this repository 13 | - Enter your local directory, and install dependencies: 14 | 15 | ``` bash 16 | npm install 17 | ``` 18 | 19 | ## Develop 20 | 21 | ``` bash 22 | # serve with hot reload at localhost:8010 23 | npm run dev 24 | 25 | # backend at localhost:8080 26 | python app.py 27 | 28 | ``` 29 | 30 | ## Build 31 | 32 | ``` bash 33 | # build for production with minification 34 | npm run build 35 | ``` 36 | -------------------------------------------------------------------------------- /debug.log: -------------------------------------------------------------------------------- 1 | [0131/212349:ERROR:tcp_listen_socket.cc(76)] Could not bind socket to 127.0.0.1:6004 2 | [0131/212350:ERROR:node_debugger.cc(86)] Cannot start debugger server 3 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "element-starter", 3 | "description": "A Vue.js project", 4 | "author": "yi.shyang@ele.me", 5 | "private": true, 6 | "scripts": { 7 | "dev": "webpack-dev-server -d --inline --hot --env.dev", 8 | "build": "rimraf dist && webpack -p --progress --hide-modules" 9 | }, 10 | "dependencies": { 11 | "element-ui": "^2.3.9", 12 | "vue": "^2.5.16", 13 | "vue-resource": "^1.1.1" 14 | }, 15 | "engines": { 16 | "node": ">=6" 17 | }, 18 | "devDependencies": { 19 | "autoprefixer": "^6.6.0", 20 | "babel-core": "^6.21.0", 21 | "babel-eslint": "^7.1.1", 22 | "babel-loader": "^6.2.10", 23 | "babel-preset-es2015": "^6.13.2", 24 | "css-loader": "^0.26.1", 25 | "eslint": "^3.12.2", 26 | "eslint-config-enough": "^0.2.2", 27 | "eslint-loader": "^1.6.1", 28 | "file-loader": "^0.9.0", 29 | "html-loader": "^0.4.4", 30 | "html-webpack-plugin": "^2.24.1", 31 | "postcss-loader": "^1.2.1", 32 | "rimraf": "^2.5.4", 33 | "style-loader": "^0.13.1", 34 | "url-loader": "^0.5.7", 35 | "vue-loader": "^10.0.0", 36 | "vue-template-compiler": "^2.5.16", 37 | "webpack": "^2.2.0-rc.4", 38 | "webpack-dev-server": "2.5.1" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [ 3 | require('autoprefixer')() 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 119 | 120 | 490 | 491 | 497 | -------------------------------------------------------------------------------- /src/components/Schedule.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 96 | 97 | 138 | -------------------------------------------------------------------------------- /src/components/Searchcourse.vue: -------------------------------------------------------------------------------- 1 | 74 | 152 | -------------------------------------------------------------------------------- /src/components/TopNav.vue: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /src/components/Waitcourse.vue: -------------------------------------------------------------------------------- 1 | 71 | 72 | 96 | 101 | -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 18 | 19 | 20 | 排课助手|SHUhelper 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import ElementUI from 'element-ui' 3 | import 'element-ui/lib/theme-chalk/index.css' 4 | import App from './App.vue' 5 | import VueResource from 'vue-resource' 6 | Vue.use(ElementUI) 7 | Vue.use(VueResource) 8 | new Vue({ 9 | el: '#app', 10 | render: h => h(App) 11 | }) 12 | -------------------------------------------------------------------------------- /src/vendor.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import ElementUI from 'element-ui' -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const { 2 | resolve 3 | } = require('path') 4 | const webpack = require('webpack') 5 | const HtmlWebpackPlugin = require('html-webpack-plugin') 6 | const url = require('url') 7 | const publicPath = '' 8 | 9 | module.exports = (options = {}) => ({ 10 | entry: { 11 | vendor: './src/vendor', 12 | index: './src/main.js' 13 | }, 14 | output: { 15 | path: resolve(__dirname, 'dist'), 16 | filename: options.dev ? '[name].js' : '[name].js?[chunkhash]', 17 | chunkFilename: '[id].js?[chunkhash]', 18 | publicPath: options.dev ? '/assets/' : publicPath 19 | }, 20 | module: { 21 | rules: [{ 22 | test: /\.vue$/, 23 | use: ['vue-loader'] 24 | }, 25 | { 26 | test: /\.js$/, 27 | use: ['babel-loader'], 28 | exclude: /node_modules/ 29 | }, 30 | { 31 | test: /\.html$/, 32 | use: [{ 33 | loader: 'html-loader', 34 | options: { 35 | root: resolve(__dirname, 'src'), 36 | attrs: ['img:src', 'link:href'] 37 | } 38 | }] 39 | }, 40 | { 41 | test: /\.css$/, 42 | use: ['style-loader', 'css-loader', 'postcss-loader'] 43 | }, 44 | { 45 | test: /favicon\.png$/, 46 | use: [{ 47 | loader: 'file-loader', 48 | options: { 49 | name: '[name].[ext]?[hash]' 50 | } 51 | }] 52 | }, 53 | { 54 | test: /\.(png|jpg|jpeg|gif|eot|ttf|woff|woff2|svg|svgz)(\?.+)?$/, 55 | exclude: /favicon\.png$/, 56 | use: [{ 57 | loader: 'url-loader', 58 | options: { 59 | limit: 10000 60 | } 61 | }] 62 | } 63 | ] 64 | }, 65 | plugins: [ 66 | new webpack.optimize.CommonsChunkPlugin({ 67 | names: ['vendor', 'manifest'] 68 | }), 69 | new HtmlWebpackPlugin({ 70 | template: 'src/index.html' 71 | }) 72 | ], 73 | resolve: { 74 | alias: { 75 | '~': resolve(__dirname, 'src') 76 | } 77 | }, 78 | devServer: { 79 | host: '127.0.0.1', 80 | port: 8010, 81 | proxy: { 82 | '/api/': { 83 | target: 'https://www.shuhelper.cn/', 84 | changeOrigin: true, 85 | pathRewrite: { 86 | '^/api': '/api' 87 | } 88 | } 89 | }, 90 | historyApiFallback: { 91 | index: url.parse(options.dev ? '/assets/' : publicPath).pathname 92 | } 93 | }, 94 | devtool: options.dev ? '#eval-source-map' : '#source-map' 95 | }) --------------------------------------------------------------------------------