├── .babelrc
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .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
├── dist
├── index.html
└── static
│ ├── css
│ ├── _mixin.scss
│ ├── _reset.scss
│ ├── app.ddcfccc854ac502e6366b0338b032abc.css
│ ├── app.ddcfccc854ac502e6366b0338b032abc.css.map
│ ├── common.scss
│ └── swiper4.css
│ ├── dbs
│ └── index.json
│ ├── img
│ ├── accept.png
│ ├── banner.png
│ ├── detail_introduce.png
│ ├── detail_remark.png
│ ├── detail_reward.png
│ ├── detail_star_midd.png
│ ├── detail_star_white.png
│ ├── detail_star_yellow.png
│ ├── detail_teacher.png
│ ├── logo.png
│ ├── logo_share.5bc4648.png
│ ├── logo_share.png
│ ├── me_about_us.png
│ ├── me_arrow.png
│ ├── me_collect.png
│ ├── me_course.png
│ ├── me_kfphone.png
│ ├── me_student_default.png
│ ├── me_try.png
│ ├── my.png
│ ├── userlogo.png
│ └── wechat_logo.png
│ └── js
│ ├── 0.420017ccdac762284c3c.js
│ ├── 0.420017ccdac762284c3c.js.map
│ ├── 1.df56f01bd788e66a0c31.js
│ ├── 1.df56f01bd788e66a0c31.js.map
│ ├── 10.126e4652d393eb775d27.js
│ ├── 10.126e4652d393eb775d27.js.map
│ ├── 11.b1f11b8e1356a8d65722.js
│ ├── 11.b1f11b8e1356a8d65722.js.map
│ ├── 12.883ef26a8d77485065a8.js
│ ├── 12.883ef26a8d77485065a8.js.map
│ ├── 13.3c98118b60abc5785348.js
│ ├── 13.3c98118b60abc5785348.js.map
│ ├── 2.1d976831f5dac9c33733.js
│ ├── 2.1d976831f5dac9c33733.js.map
│ ├── 3.9194f3fee78d9525e66b.js
│ ├── 3.9194f3fee78d9525e66b.js.map
│ ├── 4.bdbef21ce78dec5b88be.js
│ ├── 4.bdbef21ce78dec5b88be.js.map
│ ├── 5.d101d6c2797372594bb2.js
│ ├── 5.d101d6c2797372594bb2.js.map
│ ├── 6.93ab7c3785bfb31f6a5c.js
│ ├── 6.93ab7c3785bfb31f6a5c.js.map
│ ├── 7.c6777a0dd1b7c59cece5.js
│ ├── 7.c6777a0dd1b7c59cece5.js.map
│ ├── 8.7f0560bd7d2100b42835.js
│ ├── 8.7f0560bd7d2100b42835.js.map
│ ├── 9.2c38cedbecc024d68dac.js
│ ├── 9.2c38cedbecc024d68dac.js.map
│ ├── app.36713eb5799930f25e89.js
│ ├── app.36713eb5799930f25e89.js.map
│ ├── axiosHeaders.js
│ ├── manifest.7bf53608bd99f03ef1ef.js
│ ├── manifest.7bf53608bd99f03ef1ef.js.map
│ ├── public.js
│ ├── swiper4.js
│ ├── vendor.6904213a0dda04918470.js
│ └── vendor.6904213a0dda04918470.js.map
├── index.html
├── package-lock.json
├── package.json
├── product
├── api_doc
│ ├── CommonApi_File.md
│ ├── app.md
│ ├── collection.md
│ ├── course.md
│ ├── coursetrial.md
│ ├── index.md
│ ├── sms.md
│ ├── struct
│ │ ├── simple.md
│ │ └── tableStatus.md
│ ├── teacher.md
│ └── user.md
├── prd
│ ├── admin
│ │ ├── 教师管理.png
│ │ ├── 用户管理.png
│ │ ├── 评价管理.png
│ │ └── 课程订单管理.png
│ ├── 前端资料录入.png
│ ├── 教师招募H5.png
│ ├── 教师管理.png
│ ├── 用户管理.png
│ ├── 知途家教前端原型.png
│ ├── 知途家教前端原型V1.1.png
│ ├── 评价管理.png
│ └── 课程管理.png
├── ui
│ ├── 家长端png
│ │ ├── 家长端-个人中心.png
│ │ ├── 家长端-个人资料.png
│ │ ├── 家长端-我的收藏.png
│ │ ├── 家长端-我的试讲-已完成.png
│ │ ├── 家长端-我的试讲-未完成.png
│ │ ├── 家长端-我的课程-已结束.png
│ │ └── 家长端-我的课程-进行中.png
│ ├── 教师家长相同页面
│ │ ├── 教师列表--教师类型.png
│ │ ├── 教师列表-主页.png
│ │ ├── 教师列表-学科-选择状态.png
│ │ ├── 教师列表-学科.png
│ │ ├── 教师列表-年级.png
│ │ ├── 教师详情.png
│ │ └── 首页.png
│ ├── 教师端png
│ │ ├── 教师端-个人中心.png
│ │ ├── 教师端-我的试讲-已结束.png
│ │ ├── 教师端-我的试讲-未完成.png
│ │ ├── 教师端-我的课程-已结束.png
│ │ ├── 教师端-我的课程-进行中.png
│ │ └── 教师端-编辑个人资料.png
│ ├── 登录注册修改密码
│ │ ├── 1-登录-注册.png
│ │ ├── 1-设置密码.png
│ │ └── 1-账号登录.png
│ └── 知途家教1.0 界面修改建议 180120---LB.docx
└── 项目截图
│ ├── 0.png
│ ├── 1.png
│ ├── 2.png
│ ├── 3.png
│ ├── 5.png
│ ├── 分类.png
│ ├── 家长.png
│ ├── 收藏.png
│ ├── 教师.png
│ ├── 教师编辑.png
│ ├── 注册.png
│ ├── 登录.png
│ ├── 编辑.png
│ └── 详情.png
├── src
├── App.vue
├── assets
│ └── logo.png
├── components
│ ├── home.vue
│ ├── public
│ │ ├── about.vue
│ │ ├── classification.vue
│ │ ├── fastLogin.vue
│ │ ├── login.vue
│ │ └── register.vue
│ ├── teacher
│ │ ├── teacher.vue
│ │ ├── teacherInfo.vue
│ │ ├── teacherList.vue
│ │ └── teacherXiangQing.vue
│ └── user
│ │ ├── user.vue
│ │ ├── userCollect.vue
│ │ ├── userCourse.vue
│ │ └── userInfo.vue
├── main.js
└── router
│ └── index.js
└── static
├── css
├── _mixin.scss
├── _reset.scss
├── common.scss
└── swiper4.css
├── dbs
└── index.json
├── img
├── accept.png
├── banner.png
├── detail_introduce.png
├── detail_remark.png
├── detail_reward.png
├── detail_star_midd.png
├── detail_star_white.png
├── detail_star_yellow.png
├── detail_teacher.png
├── logo.png
├── logo_share.png
├── me_about_us.png
├── me_arrow.png
├── me_collect.png
├── me_course.png
├── me_kfphone.png
├── me_student_default.png
├── me_try.png
├── my.png
├── userlogo.png
└── wechat_logo.png
└── js
├── axiosHeaders.js
├── public.js
└── swiper4.js
/.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 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | /build/
2 | /config/
3 | /dist/
4 | /*.js
5 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | // https://eslint.org/docs/user-guide/configuring
2 |
3 | module.exports = {
4 | root: true,
5 | parserOptions: {
6 | parser: 'babel-eslint'
7 | },
8 | env: {
9 | browser: true,
10 | },
11 | extends: [
12 | // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
13 | // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
14 | 'plugin:vue/essential',
15 | // https://github.com/standard/standard/blob/master/docs/RULES-en.md
16 | 'standard'
17 | ],
18 | // required to lint *.vue files
19 | plugins: [
20 | 'vue'
21 | ],
22 | // add your custom rules here
23 | rules: {
24 | 'no-new': 'off',
25 | //'quotes': [1, 'single'],//引号类型 `` "" ''
26 | "semi": [0, "always"], //强制语句分号结尾
27 | // allow async-await
28 | 'generator-star-spacing': 'off',
29 | // allow debugger during development
30 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
31 | "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": true }]
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | npm-debug.log*
4 | yarn-debug.log*
5 | yarn-error.log*
6 |
7 | # Editor directories and files
8 | .idea
9 | .vscode
10 | *.suo
11 | *.ntvs*
12 | *.njsproj
13 | *.sln
14 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
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 | - 移动端
28 |
29 | - **前端:** vue-cli,vue-router,mint.ui,axios,es6,
30 |
31 | - **后端:** PHP
32 |
33 | ## 功能实现
34 |
35 | 1. **首页:** 轮播,分类,个人信息,教师列表
36 | 2. **详情页:** 教师简介,预约,收藏
37 | 3. **分类页:** 年级,学科,教师类型分类
38 | 4. **登录注册页:** 个人登录,快捷登录
39 | 5. **个人信息页:** 教师,家长两种
40 | 6. **个人信息编辑页:** 教师,家长两种
41 | 7. **收藏页:** 查看家长收藏教师列表
42 | 8. **其他页面:** 我的课程(教师),我的试讲(教师),我的预约(家长),网站介绍,客服电话
43 |
44 | ## Build Setup
45 |
46 | ``` bash
47 | # 下载依赖
48 | npm install
49 |
50 | # 打开端口 localhost:8001
51 | npm run dev
52 |
53 | # build for production with minification
54 | npm run build
55 | ```
56 |
57 |
58 |
59 | 作者 [[王文健]](http://www.wwenj.com/)
60 | 2018 年 4月 19日
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/build/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/build/logo.png
--------------------------------------------------------------------------------
/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 | publicPath:'../../'
52 | })
53 | } else {
54 | return ['vue-style-loader'].concat(loaders)
55 | }
56 | }
57 |
58 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html
59 | return {
60 | css: generateLoaders(),
61 | postcss: generateLoaders(),
62 | less: generateLoaders('less'),
63 | sass: generateLoaders('sass', { indentedSyntax: true }),
64 | scss: generateLoaders('sass'),
65 | stylus: generateLoaders('stylus'),
66 | styl: generateLoaders('stylus')
67 | }
68 | }
69 |
70 | // Generate loaders for standalone style files (outside of .vue)
71 | exports.styleLoaders = function (options) {
72 | const output = []
73 | const loaders = exports.cssLoaders(options)
74 |
75 | for (const extension in loaders) {
76 | const loader = loaders[extension]
77 | output.push({
78 | test: new RegExp('\\.' + extension + '$'),
79 | use: loader
80 | })
81 | }
82 |
83 | return output
84 | }
85 |
86 | exports.createNotifierCallback = () => {
87 | const notifier = require('node-notifier')
88 |
89 | return (severity, errors) => {
90 | if (severity !== 'error') return
91 |
92 | const error = errors[0]
93 | const filename = error.file && error.file.split('!').pop()
94 |
95 | notifier.notify({
96 | title: packageConfig.name,
97 | message: severity + ': ' + error.name,
98 | subtitle: filename || '',
99 | icon: path.join(__dirname, 'logo.png')
100 | })
101 | }
102 | }
103 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 | const createLintingRule = () => ({
12 | test: /\.(js|vue)$/,
13 | loader: 'eslint-loader',
14 | enforce: 'pre',
15 | include: [resolve('src'), resolve('test')],
16 | options: {
17 | formatter: require('eslint-friendly-formatter'),
18 | emitWarning: !config.dev.showEslintErrorsInOverlay
19 | }
20 | })
21 |
22 | module.exports = {
23 | context: path.resolve(__dirname, '../'),
24 | entry: {
25 | app: './src/main.js'
26 | },
27 | output: {
28 | path: config.build.assetsRoot,
29 | filename: '[name].js',
30 | publicPath: process.env.NODE_ENV === 'production'
31 | ? config.build.assetsPublicPath
32 | : config.dev.assetsPublicPath
33 | },
34 | resolve: {
35 | extensions: ['.js', '.vue', '.json'],
36 | alias: {
37 | 'vue$': 'vue/dist/vue.esm.js',
38 | '@': resolve('src'),
39 | }
40 | },
41 | module: {
42 | rules: [
43 | ...(config.dev.useEslint ? [createLintingRule()] : []),
44 | {
45 | test: /\.vue$/,
46 | loader: 'vue-loader',
47 | options: vueLoaderConfig
48 | },
49 | {
50 | test: /\.js$/,
51 | loader: 'babel-loader',
52 | include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
53 | },
54 | {
55 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
56 | loader: 'url-loader',
57 | options: {
58 | limit: 10000,
59 | name: utils.assetsPath('img/[name].[hash:7].[ext]')
60 | }
61 | },
62 | {
63 | test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
64 | loader: 'url-loader',
65 | options: {
66 | limit: 10000,
67 | name: utils.assetsPath('media/[name].[hash:7].[ext]')
68 | }
69 | },
70 | {
71 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
72 | loader: 'url-loader',
73 | options: {
74 | limit: 10000,
75 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
76 | }
77 | }
78 | ]
79 | },
80 | node: {
81 | // prevent webpack from injecting useless setImmediate polyfill because Vue
82 | // source contains it (although only uses it if it's native).
83 | setImmediate: false,
84 | // prevent webpack from injecting mocks to Node native modules
85 | // that does not make sense for the client
86 | dgram: 'empty',
87 | fs: 'empty',
88 | net: 'empty',
89 | tls: 'empty',
90 | child_process: 'empty'
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 | // publicPath: './',
27 | path: config.build.assetsRoot,
28 | filename: utils.assetsPath('js/[name].[chunkhash].js'),
29 | chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
30 | },
31 | plugins: [
32 | // http://vuejs.github.io/vue-loader/en/workflow/production.html
33 | new webpack.DefinePlugin({
34 | 'process.env': env
35 | }),
36 | new UglifyJsPlugin({
37 | uglifyOptions: {
38 | compress: {
39 | warnings: false
40 | }
41 | },
42 | sourceMap: config.build.productionSourceMap,
43 | parallel: true
44 | }),
45 | // extract css into its own file
46 | new ExtractTextPlugin({
47 | filename: utils.assetsPath('css/[name].[contenthash].css'),
48 | // Setting the following option to `false` will not extract CSS from codesplit chunks.
49 | // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
50 | // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`,
51 | // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
52 | allChunks: true,
53 | }),
54 | // Compress extracted CSS. We are using this plugin so that possible
55 | // duplicated CSS from different components can be deduped.
56 | new OptimizeCSSPlugin({
57 | cssProcessorOptions: config.build.productionSourceMap
58 | ? { safe: true, map: { inline: false } }
59 | : { safe: true }
60 | }),
61 | // generate dist index.html with correct asset hash for caching.
62 | // you can customize output by editing /index.html
63 | // see https://github.com/ampedandwired/html-webpack-plugin
64 | new HtmlWebpackPlugin({
65 | filename: config.build.index,
66 | template: 'index.html',
67 | inject: true,
68 | minify: {
69 | removeComments: true,
70 | collapseWhitespace: true,
71 | removeAttributeQuotes: true
72 | // more options:
73 | // https://github.com/kangax/html-minifier#options-quick-reference
74 | },
75 | // necessary to consistently work with multiple chunks via CommonsChunkPlugin
76 | chunksSortMode: 'dependency'
77 | }),
78 | // keep module.id stable when vendor modules does not change
79 | new webpack.HashedModuleIdsPlugin(),
80 | // enable scope hoisting
81 | new webpack.optimize.ModuleConcatenationPlugin(),
82 | // split vendor js into its own file
83 | new webpack.optimize.CommonsChunkPlugin({
84 | name: 'vendor',
85 | minChunks (module) {
86 | // any required modules inside node_modules are extracted to vendor
87 | return (
88 | module.resource &&
89 | /\.js$/.test(module.resource) &&
90 | module.resource.indexOf(
91 | path.join(__dirname, '../node_modules')
92 | ) === 0
93 | )
94 | }
95 | }),
96 | // extract webpack runtime and module manifest to its own file in order to
97 | // prevent vendor hash from being updated whenever app bundle is updated
98 | new webpack.optimize.CommonsChunkPlugin({
99 | name: 'manifest',
100 | minChunks: Infinity
101 | }),
102 | // This instance extracts shared chunks from code splitted chunks and bundles them
103 | // in a separate chunk, similar to the vendor chunk
104 | // see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
105 | new webpack.optimize.CommonsChunkPlugin({
106 | name: 'app',
107 | async: 'vendor-async',
108 | children: true,
109 | minChunks: 3
110 | }),
111 |
112 | // copy custom static assets
113 | new CopyWebpackPlugin([
114 | {
115 | from: path.resolve(__dirname, '../static'),
116 | to: config.build.assetsSubDirectory,
117 | ignore: ['.*']
118 | }
119 | ])
120 | ]
121 | })
122 |
123 | if (config.build.productionGzip) {
124 | const CompressionWebpackPlugin = require('compression-webpack-plugin')
125 |
126 | webpackConfig.plugins.push(
127 | new CompressionWebpackPlugin({
128 | asset: '[path].gz[query]',
129 | algorithm: 'gzip',
130 | test: new RegExp(
131 | '\\.(' +
132 | config.build.productionGzipExtensions.join('|') +
133 | ')$'
134 | ),
135 | threshold: 10240,
136 | minRatio: 0.8
137 | })
138 | )
139 | }
140 |
141 | if (config.build.bundleAnalyzerReport) {
142 | const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
143 | webpackConfig.plugins.push(new BundleAnalyzerPlugin())
144 | }
145 |
146 | module.exports = webpackConfig
147 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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: 8001, // 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 | // Use Eslint Loader?
24 | // If true, your code will be linted during bundling and
25 | // linting errors and warnings will be shown in the console.
26 | useEslint: true,
27 | // If true, eslint errors and warnings will also be shown in the error overlay
28 | // in the browser.
29 | showEslintErrorsInOverlay: false,
30 |
31 | /**
32 | * Source Maps
33 | */
34 |
35 | // https://webpack.js.org/configuration/devtool/#development
36 | devtool: 'cheap-module-eval-source-map',
37 |
38 | // If you have problems debugging vue-files in devtools,
39 | // set this to false - it *may* help
40 | // https://vue-loader.vuejs.org/en/options.html#cachebusting
41 | cacheBusting: true,
42 |
43 | cssSourceMap: true
44 | },
45 |
46 | build: {
47 | // Template for index.html
48 | index: path.resolve(__dirname, '../dist/index.html'),
49 |
50 | // Paths
51 | assetsRoot: path.resolve(__dirname, '../dist'),
52 | assetsSubDirectory: 'static',
53 | assetsPublicPath: './',
54 |
55 | /**
56 | * Source Maps
57 | */
58 |
59 | productionSourceMap: true,
60 | // https://webpack.js.org/configuration/devtool/#production
61 | devtool: '#source-map',
62 |
63 | // Gzip off by default as many popular static hosts such as
64 | // Surge or Netlify already gzip all static assets for you.
65 | // Before setting to `true`, make sure to:
66 | // npm install --save-dev compression-webpack-plugin
67 | productionGzip: false,
68 | productionGzipExtensions: ['js', 'css'],
69 |
70 | // Run the build command with an extra argument to
71 | // View the bundle analyzer report after build finishes:
72 | // `npm run build --report`
73 | // Set to `true` or `false` to always turn it on or off
74 | bundleAnalyzerReport: process.env.npm_config_report
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | module.exports = {
3 | NODE_ENV: '"production"'
4 | }
5 |
--------------------------------------------------------------------------------
/dist/index.html:
--------------------------------------------------------------------------------
1 |
知途家教
--------------------------------------------------------------------------------
/dist/static/css/_mixin.scss:
--------------------------------------------------------------------------------
1 | // rem 基准
2 | $screen-width: 37.5;
3 |
4 | @function rem($px) {
5 | @return $px / $screen-width * 1rem;
6 | }
7 |
--------------------------------------------------------------------------------
/dist/static/css/common.scss:
--------------------------------------------------------------------------------
1 | @import './mixin';
2 |
3 | .mint-cell {
4 | .mint-cell-wrapper {
5 | .mint-cell-value {
6 | span {
7 | font-size: 12px;
8 | }
9 | img {
10 | border-radius: Rem(25);
11 | width: Rem(50);
12 | margin: Rem(5);
13 | }
14 | }
15 | }
16 | }
17 |
18 | .btn-default {
19 | width: 90% !important;
20 | margin: 5% !important;
21 | }
22 |
23 | .nav-header {
24 | background: #fff !important;
25 | color: #000 !important;
26 | }
27 |
28 | .nav-body {
29 | position: absolute;
30 | left: 0;
31 | right: 0;
32 | top: 40px;
33 | }
34 |
--------------------------------------------------------------------------------
/dist/static/img/accept.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/accept.png
--------------------------------------------------------------------------------
/dist/static/img/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/banner.png
--------------------------------------------------------------------------------
/dist/static/img/detail_introduce.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/detail_introduce.png
--------------------------------------------------------------------------------
/dist/static/img/detail_remark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/detail_remark.png
--------------------------------------------------------------------------------
/dist/static/img/detail_reward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/detail_reward.png
--------------------------------------------------------------------------------
/dist/static/img/detail_star_midd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/detail_star_midd.png
--------------------------------------------------------------------------------
/dist/static/img/detail_star_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/detail_star_white.png
--------------------------------------------------------------------------------
/dist/static/img/detail_star_yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/detail_star_yellow.png
--------------------------------------------------------------------------------
/dist/static/img/detail_teacher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/detail_teacher.png
--------------------------------------------------------------------------------
/dist/static/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/logo.png
--------------------------------------------------------------------------------
/dist/static/img/logo_share.5bc4648.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/logo_share.5bc4648.png
--------------------------------------------------------------------------------
/dist/static/img/logo_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/logo_share.png
--------------------------------------------------------------------------------
/dist/static/img/me_about_us.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/me_about_us.png
--------------------------------------------------------------------------------
/dist/static/img/me_arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/me_arrow.png
--------------------------------------------------------------------------------
/dist/static/img/me_collect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/me_collect.png
--------------------------------------------------------------------------------
/dist/static/img/me_course.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/me_course.png
--------------------------------------------------------------------------------
/dist/static/img/me_kfphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/me_kfphone.png
--------------------------------------------------------------------------------
/dist/static/img/me_student_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/me_student_default.png
--------------------------------------------------------------------------------
/dist/static/img/me_try.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/me_try.png
--------------------------------------------------------------------------------
/dist/static/img/my.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/my.png
--------------------------------------------------------------------------------
/dist/static/img/userlogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/userlogo.png
--------------------------------------------------------------------------------
/dist/static/img/wechat_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/dist/static/img/wechat_logo.png
--------------------------------------------------------------------------------
/dist/static/js/0.420017ccdac762284c3c.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([0],{iYWc:function(t,e){},zXZL:function(t,e,a){"use strict";var s={props:{teacherLists:{type:Array}},data:function(){return{}},mounted:function(){},methods:{toDetail:function(t){sessionStorage.setItem("teacher_id",t),location.href="#/teacher_detail"}}},n={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{attrs:{id:"app"}},t._l(t.teacherLists,function(e,s){return a("div",{key:s,staticClass:"teacher",on:{click:function(a){t.toDetail(e.id)}}},[a("img",{attrs:{src:e.image,alt:"教师头像"}}),t._v(" "),a("div",{staticClass:"teacher-con"},[a("p",{staticClass:"one"},[a("span",{staticClass:"name"},[t._v(t._s(e.name))]),t._v(" "),t._l(e.subject,function(e,s){return a("span",{key:s,staticClass:"sub"},[t._v(t._s(e.label))])}),t._v(" "),t._l(e.grade,function(e,s){return a("span",{key:s+1,staticClass:"grade"},[t._v(t._s(e.label))])}),t._v(" "),a("span",{staticClass:"tech-time"},[t._v("授课"+t._s(e.teach_time)+"小时")])],2),t._v(" "),a("p",{staticClass:"two"},[t._v("\n "+t._s(e.teach_year)+"年教龄\n ")]),t._v(" "),t._l(e.extend_tag,function(e,s){return a("p",{key:s,staticClass:"three"},[t._v("\n "+t._s(e.label)+"\n ")])})],2)])}))},staticRenderFns:[]};var i=a("VU/8")(s,n,!1,function(t){a("iYWc")},"data-v-e3e16212",null);e.a=i.exports}});
2 | //# sourceMappingURL=0.420017ccdac762284c3c.js.map
--------------------------------------------------------------------------------
/dist/static/js/0.420017ccdac762284c3c.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///src/components/teacher/teacherList.vue","webpack:///./src/components/teacher/teacherList.vue?7a58","webpack:///./src/components/teacher/teacherList.vue"],"names":["teacherList","Array","id","teacher_teacherList","render","_vm","this","_h","$createElement","_c","_self","attrs","_l","item","index","key","staticClass","on","click","$event","toDetail","src","image","alt","_v","_s","name","item1","label","item2","teach_time","teach_year","item3","staticRenderFns","Component","__webpack_require__","normalizeComponent","ssrContext","__webpack_exports__"],"mappings":"yEAwBA,IAAAA,6BAMAC,yHAgCAC,iBACA,sBC5DAC,GADiBC,OAFjB,WAA0B,IAAAC,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,OAAOT,GAAA,QAAYG,EAAAO,GAAAP,EAAA,sBAAAQ,EAAAC,GAAgD,OAAAL,EAAA,OAAiBM,IAAAD,EAAAE,YAAA,UAAAC,IAAoCC,MAAA,SAAAC,GAAyBd,EAAAe,SAAAP,EAAAX,QAAwBO,EAAA,OAAYE,OAAOU,IAAAR,EAAAS,MAAAC,IAAA,UAA+BlB,EAAAmB,GAAA,KAAAf,EAAA,OAAwBO,YAAA,gBAA0BP,EAAA,KAAUO,YAAA,QAAkBP,EAAA,QAAaO,YAAA,SAAmBX,EAAAmB,GAAAnB,EAAAoB,GAAAZ,EAAAa,SAAArB,EAAAmB,GAAA,KAAAnB,EAAAO,GAAAC,EAAA,iBAAAc,EAAAb,GAAsF,OAAAL,EAAA,QAAkBM,IAAAD,EAAAE,YAAA,QAA4BX,EAAAmB,GAAAnB,EAAAoB,GAAAE,EAAAC,YAAgCvB,EAAAmB,GAAA,KAAAnB,EAAAO,GAAAC,EAAA,eAAAgB,EAAAf,GAAwD,OAAAL,EAAA,QAAkBM,IAAAD,EAAA,EAAAE,YAAA,UAAgCX,EAAAmB,GAAAnB,EAAAoB,GAAAI,EAAAD,YAAgCvB,EAAAmB,GAAA,KAAAf,EAAA,QAAyBO,YAAA,cAAwBX,EAAAmB,GAAA,KAAAnB,EAAAoB,GAAAZ,EAAAiB,YAAA,YAAAzB,EAAAmB,GAAA,KAAAf,EAAA,KAAsEO,YAAA,QAAkBX,EAAAmB,GAAA,aAAAnB,EAAAoB,GAAAZ,EAAAkB,YAAA,iBAAA1B,EAAAmB,GAAA,KAAAnB,EAAAO,GAAAC,EAAA,oBAAAmB,EAAAlB,GAA0H,OAAAL,EAAA,KAAeM,IAAAD,EAAAE,YAAA,UAA8BX,EAAAmB,GAAA,aAAAnB,EAAAoB,GAAAO,EAAAJ,OAAA,iBAAwD,SAExjCK,oBCCjB,IAcAC,EAdAC,EAAA,OAcAC,CACApC,EACAG,GATA,EAVA,SAAAkC,GACAF,EAAA,SAaA,kBAEA,MAUAG,EAAA,EAAAJ,EAAA","file":"static/js/0.420017ccdac762284c3c.js","sourcesContent":["\n \n\n
\n
![\"教师头像\"]()
\n
\n
\n {{item.name}}\n {{item1.label}}\n {{item2.label}}\n 授课{{item.teach_time}}小时\n
\n
\n {{item.teach_year}}年教龄\n
\n
\n {{item3.label}}\n
\n
\n
\n
\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/teacher/teacherList.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},_vm._l((_vm.teacherLists),function(item,index){return _c('div',{key:index,staticClass:\"teacher\",on:{\"click\":function($event){_vm.toDetail(item.id)}}},[_c('img',{attrs:{\"src\":item.image,\"alt\":\"教师头像\"}}),_vm._v(\" \"),_c('div',{staticClass:\"teacher-con\"},[_c('p',{staticClass:\"one\"},[_c('span',{staticClass:\"name\"},[_vm._v(_vm._s(item.name))]),_vm._v(\" \"),_vm._l((item.subject),function(item1,index){return _c('span',{key:index,staticClass:\"sub\"},[_vm._v(_vm._s(item1.label))])}),_vm._v(\" \"),_vm._l((item.grade),function(item2,index){return _c('span',{key:index+1,staticClass:\"grade\"},[_vm._v(_vm._s(item2.label))])}),_vm._v(\" \"),_c('span',{staticClass:\"tech-time\"},[_vm._v(\"授课\"+_vm._s(item.teach_time)+\"小时\")])],2),_vm._v(\" \"),_c('p',{staticClass:\"two\"},[_vm._v(\"\\n \"+_vm._s(item.teach_year)+\"年教龄\\n \")]),_vm._v(\" \"),_vm._l((item.extend_tag),function(item3,index){return _c('p',{key:index,staticClass:\"three\"},[_vm._v(\"\\n \"+_vm._s(item3.label)+\"\\n \")])})],2)])}))}\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-e3e16212\",\"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/components/teacher/teacherList.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,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-e3e16212\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./teacherList.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!./teacherList.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./teacherList.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e3e16212\\\",\\\"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!./teacherList.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-e3e16212\"\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/components/teacher/teacherList.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}
--------------------------------------------------------------------------------
/dist/static/js/10.126e4652d393eb775d27.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([10],{UWEt:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={props:{},data:function(){return{newpass:""}},mounted:function(){},methods:{newPass:function(){this.axios({url:"http://api.zhituteam.com/api/user/firstSetPassword",method:"post",params:{newPass:this.newpass},withCredentials:!1,responseType:"json"}).then(function(e){if(400===e.data.error_code){var t=localStorage.getItem("zt_data"),a=JSON.parse(t);1===Number(a.role_type)?location.href="#/user":2===Number(a.role_type)&&(location.href="#/teacher")}else alert(e.data.message)}).catch(function(e){alert("ajax请求出错,错误信息:"+e)})}}},n={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{id:"app"}},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.newpass,expression:"newpass"}],attrs:{type:"text",placeholder:"请设置密码"},domProps:{value:e.newpass},on:{input:function(t){t.target.composing||(e.newpass=t.target.value)}}}),e._v(" "),a("div",{staticClass:"button",on:{click:e.newPass}},[e._v("确认密码")]),e._v(" "),a("p",{staticClass:"info"},[e._v("登录即代表同意《知途家教》相关规定")])])},staticRenderFns:[]};var r=a("VU/8")(s,n,!1,function(e){a("uNRJ")},"data-v-b9b21eec",null);t.default=r.exports},uNRJ:function(e,t){}});
2 | //# sourceMappingURL=10.126e4652d393eb775d27.js.map
--------------------------------------------------------------------------------
/dist/static/js/10.126e4652d393eb775d27.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///src/components/public/fastLogin.vue","webpack:///./src/components/public/fastLogin.vue?c491","webpack:///./src/components/public/fastLogin.vue"],"names":["fastLogin","then","res","localData","message","catch","err","public_fastLogin","render","_vm","this","_h","$createElement","_c","_self","attrs","id","directives","name","rawName","value","expression","type","placeholder","domProps","on","input","$event","target","composing","newpass","_v","staticClass","click","newPass","staticRenderFns","Component","__webpack_require__","normalizeComponent","ssrContext","__webpack_exports__"],"mappings":"sGASA,IAAAA,2CAMA,sEAQA,4DACA,8EAFAC,KAAA,SAAAC,8BAUA,4BACA,wBACAC,yCAEA,iDAEA,+BAGAC,WAEAC,MAAA,SAAAC,0BAEAA,QC1CAC,GADiBC,OAFjB,WAA0B,IAAAC,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,OAAOC,GAAA,SAAYH,EAAA,SAAcI,aAAaC,KAAA,QAAAC,QAAA,UAAAC,MAAAX,EAAA,QAAAY,WAAA,YAAwEN,OAASO,KAAA,OAAAC,YAAA,SAAoCC,UAAWJ,MAAAX,EAAA,SAAsBgB,IAAKC,MAAA,SAAAC,GAAyBA,EAAAC,OAAAC,YAAsCpB,EAAAqB,QAAAH,EAAAC,OAAAR,WAAkCX,EAAAsB,GAAA,KAAAlB,EAAA,OAAwBmB,YAAA,SAAAP,IAAyBQ,MAAAxB,EAAAyB,WAAqBzB,EAAAsB,GAAA,UAAAtB,EAAAsB,GAAA,KAAAlB,EAAA,KAAuCmB,YAAA,SAAmBvB,EAAAsB,GAAA,0BAEngBI,oBCCjB,IAcAC,EAdAC,EAAA,OAcAC,CACAtC,EACAO,GATA,EAVA,SAAAgC,GACAF,EAAA,SAaA,kBAEA,MAUAG,EAAA,QAAAJ,EAAA","file":"static/js/10.126e4652d393eb775d27.js","sourcesContent":["\n \n
\n
确认密码
\n
登录即代表同意《知途家教》相关规定
\n
\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/public/fastLogin.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newpass),expression:\"newpass\"}],attrs:{\"type\":\"text\",\"placeholder\":\"请设置密码\"},domProps:{\"value\":(_vm.newpass)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.newpass=$event.target.value}}}),_vm._v(\" \"),_c('div',{staticClass:\"button\",on:{\"click\":_vm.newPass}},[_vm._v(\"确认密码\")]),_vm._v(\" \"),_c('p',{staticClass:\"info\"},[_vm._v(\"登录即代表同意《知途家教》相关规定\")])])}\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-b9b21eec\",\"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/components/public/fastLogin.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,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-b9b21eec\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./fastLogin.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!./fastLogin.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./fastLogin.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-b9b21eec\\\",\\\"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!./fastLogin.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-b9b21eec\"\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/components/public/fastLogin.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}
--------------------------------------------------------------------------------
/dist/static/js/11.b1f11b8e1356a8d65722.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([11],{"59il":function(t,s,n){"use strict";Object.defineProperty(s,"__esModule",{value:!0});var a={data:function(){return{spanAuto:1}},mounted:function(){},methods:{start:function(){this.spanAuto=1,this.courseAjax(1)},end:function(){this.spanAuto=0,this.courseAjax(2)},courseAjax:function(t){this.axios({url:"http://api.zhituteam.com/api/course/studentlists",method:"get",params:{status:t},withCredentials:!1,responseType:"json"}).then(function(t){alert(t.data.message)}).catch(function(t){alert("ajax请求出错,错误信息:"+t)})}}},e={render:function(){var t=this.$createElement,s=this._self._c||t;return s("div",{attrs:{id:"app"}},[s("div",{staticClass:"head"},[s("span",{class:{spanAuto:this.spanAuto},on:{click:this.start}},[this._v("未开始")]),this._v(" "),s("span",{class:{spanAuto:!this.spanAuto},on:{click:this.end}},[this._v("已结束")])])])},staticRenderFns:[]};var i=n("VU/8")(a,e,!1,function(t){n("GcVd")},"data-v-6e10b583",null);s.default=i.exports},GcVd:function(t,s){}});
2 | //# sourceMappingURL=11.b1f11b8e1356a8d65722.js.map
--------------------------------------------------------------------------------
/dist/static/js/11.b1f11b8e1356a8d65722.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///src/components/user/userCourse.vue","webpack:///./src/components/user/userCourse.vue?80e0","webpack:///./src/components/user/userCourse.vue"],"names":["userCourse","status","then","res","message","catch","err","user_userCourse","render","_h","this","$createElement","_c","_self","attrs","id","staticClass","class","spanAuto","on","click","start","_v","end","staticRenderFns","Component","__webpack_require__","normalizeComponent","ssrContext","__webpack_exports__"],"mappings":"wGAUA,IAAAA,mCAKA,iEAOA,kBACA,iCAGA,kBACA,2CAKA,0DACA,qBAGAC,4CALAC,KAAA,SAAAC,gBAUAC,WACAC,MAAA,SAAAC,0BAEAA,QCzCAC,GADiBC,OAFjB,WAA0B,IAAaC,EAAbC,KAAaC,eAA0BC,EAAvCF,KAAuCG,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,OAAiBE,OAAOC,GAAA,SAAYH,EAAA,OAAYI,YAAA,SAAmBJ,EAAA,QAAaK,OAAOC,SAAtJR,KAAsJQ,UAAsBC,IAAKC,MAAjLV,KAAiLW,SAAjLX,KAAoMY,GAAA,SAApMZ,KAAoMY,GAAA,KAAAV,EAAA,QAAyCK,OAAOC,UAApPR,KAAoPQ,UAAuBC,IAAKC,MAAhRV,KAAgRa,OAAhRb,KAAiSY,GAAA,cAE1SE,oBCCjB,IAcAC,EAdAC,EAAA,OAcAC,CACA3B,EACAO,GATA,EAVA,SAAAqB,GACAF,EAAA,SAaA,kBAEA,MAUAG,EAAA,QAAAJ,EAAA","file":"static/js/11.b1f11b8e1356a8d65722.js","sourcesContent":["\n \n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/user/userCourse.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('div',{staticClass:\"head\"},[_c('span',{class:{spanAuto:_vm.spanAuto},on:{\"click\":_vm.start}},[_vm._v(\"未开始\")]),_vm._v(\" \"),_c('span',{class:{spanAuto:!_vm.spanAuto},on:{\"click\":_vm.end}},[_vm._v(\"已结束\")])])])}\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-6e10b583\",\"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/components/user/userCourse.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,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-6e10b583\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./userCourse.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!./userCourse.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./userCourse.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6e10b583\\\",\\\"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!./userCourse.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-6e10b583\"\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/components/user/userCourse.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}
--------------------------------------------------------------------------------
/dist/static/js/12.883ef26a8d77485065a8.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([12],{M3LS:function(t,e){},qPUa:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var c={components:{TeacherList:a("zXZL").a},data:function(){return{collectList:""}},mounted:function(){this.collectAjax()},methods:{collectAjax:function(){var t=this;this.axios({url:"http://api.zhituteam.com/api/collect/lists",method:"get",params:{offset:0,limit:6},withCredentials:!1,responseType:"json"}).then(function(e){t.collectList=e.data.data}).catch(function(t){alert("ajax请求出错,错误信息:"+t)})}}},i={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{attrs:{id:"app"}},[e("TeacherList",{attrs:{teacherLists:this.collectList.teacher}})],1)},staticRenderFns:[]};var n=a("VU/8")(c,i,!1,function(t){a("M3LS")},"data-v-5719613e",null);e.default=n.exports}});
2 | //# sourceMappingURL=12.883ef26a8d77485065a8.js.map
--------------------------------------------------------------------------------
/dist/static/js/12.883ef26a8d77485065a8.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///src/components/user/userCollect.vue","webpack:///./src/components/user/userCollect.vue?a849","webpack:///./src/components/user/userCollect.vue"],"names":["userCollect","TeacherList","collectAjax","this","then","res","data","catch","err","user_userCollect","render","_h","$createElement","_c","_self","attrs","id","teacherLists","collectList","teacher","staticRenderFns","Component","__webpack_require__","normalizeComponent","ssrContext","__webpack_exports__"],"mappings":"+HAQAA,eAIAC,sBAAA,sCAIA,6BAGAC,qDAIAC,qBAEA,oDACA,qBAEA,QAEA,4CANAC,KAAA,SAAAC,wBAWAC,OACAC,MAAA,SAAAC,0BAEAA,QCnCAC,GADiBC,OAFjB,WAA0B,IAAaC,EAAbR,KAAaS,eAA0BC,EAAvCV,KAAuCW,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,OAAOC,GAAA,SAAYH,EAAA,eAAoBE,OAAOE,aAA9Hd,KAA8He,YAAAC,YAAwC,IAE/KC,oBCCjB,IAcAC,EAdAC,EAAA,OAcAC,CACAvB,EACAS,GATA,EAVA,SAAAe,GACAF,EAAA,SAaA,kBAEA,MAUAG,EAAA,QAAAJ,EAAA","file":"static/js/12.883ef26a8d77485065a8.js","sourcesContent":["\n \n \n
\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/user/userCollect.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('TeacherList',{attrs:{\"teacherLists\":_vm.collectList.teacher}})],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-5719613e\",\"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/components/user/userCollect.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,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-5719613e\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./userCollect.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!./userCollect.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./userCollect.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5719613e\\\",\\\"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!./userCollect.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-5719613e\"\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/components/user/userCollect.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}
--------------------------------------------------------------------------------
/dist/static/js/13.3c98118b60abc5785348.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([13],{IRHn:function(t,s,a){"use strict";Object.defineProperty(s,"__esModule",{value:!0});var e={components:{TeacherList:a("zXZL").a},data:function(){return{classType:"",classData:"",headAuto:1,gradeNum:0,typeNum:0,subjectNum:0,mark:0,gradeName:"年级",subjectName:"科目",typeName:"教师类型"}},mounted:function(){this.subjectNum=sessionStorage.getItem("subjectNum"),this.classAjax()},methods:{grade:function(){this.headAuto=1,this.mark=1,this.classType=["全部","一年级","二年级","三年级","四年级","五年级","六年级","初一","初二","初三","高一","高二","高三"]},subject:function(){this.headAuto=2,this.mark=1,this.classType=["全部","语文","数学","英语","物理","化学","生物","政治","历史","地理","音乐","美术"]},type:function(){this.headAuto=3,this.mark=1,this.classType=["全部","专职老师","在校大学生"," "]},markClick:function(){this.classType="",this.mark=0},classAjax:function(){var t=this;this.axios({url:"http://api.zhituteam.com/api/teacher/lists",method:"get",params:{grade:t.gradeNum,type:t.typeNum,subject:t.subjectNum,offset:0,limit:20},withCredentials:!1,responseType:"json"}).then(function(s){t.classData=s.data.data}).catch(function(t){alert("ajax请求出错,错误信息:"+t)})},classClick:function(t,s){switch(this.headAuto){case 1:this.gradeName=s,this.gradeNum=t;break;case 2:this.subjectName=s,this.subjectNum=t>0?t+12:0;break;case 3:this.typeName=s,this.typeNum=t>0?t+23:0}this.markClick(),this.classAjax()}}},c={render:function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{attrs:{id:"app"}},[a("div",{staticClass:"head"},[a("span",{staticClass:"btm",class:1==t.headAuto?"headColor":"",on:{click:t.grade}},[t._v(t._s(t.gradeName))]),t._v("|\n "),a("span",{staticClass:"btm",class:2==t.headAuto?"headColor":"",on:{click:t.subject}},[t._v(t._s(t.subjectName))]),t._v("|\n "),a("span",{staticClass:"btm",class:3==t.headAuto?"headColor":"",on:{click:t.type}},[t._v(t._s(t.typeName))])]),t._v(" "),t.classType?a("div",{staticClass:"headOut"},t._l(t.classType,function(s,e){return a("span",{key:e,on:{click:function(a){t.classClick(e,s)}}},[t._v(t._s(s))])})):t._e(),t._v(" "),t.classData?a("TeacherList",{staticClass:"list",attrs:{teacherLists:t.classData.teacher}}):t._e(),t._v(" "),t.mark?a("div",{staticClass:"mark",on:{click:t.markClick}}):t._e()],1)},staticRenderFns:[]};var i=a("VU/8")(e,c,!1,function(t){a("Zw/0")},"data-v-1270cf69",null);s.default=i.exports},"Zw/0":function(t,s){}});
2 | //# sourceMappingURL=13.3c98118b60abc5785348.js.map
--------------------------------------------------------------------------------
/dist/static/js/7.c6777a0dd1b7c59cece5.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([7],{"5POv":function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=a("mvHQ"),o=a.n(n),s={props:{},data:function(){return{yan:1,yanTime:60,flag:!0,chan:1,phone:"",code:"",data:""}},methods:{send:function(){var e=this;this.yan=0,this.flag=!1;var t=setInterval(function(){e.yanTime=e.yanTime-1,e.yanTime<0&&(e.yan=1,e.yanTime=60,e.flag=!0,clearInterval(t))},1e3);this.axios({url:"http://api.zhituteam.com/api/cmn/sms/send",method:"post",params:{code_type:1,phone:this.phone},responseType:"json"}).then(function(t){0===t.data.error_code?e.data=t.data.data:(alert(t.data.message),e.yanTime=0)}).catch(function(e){alert("ajax请求出错,错误信息:"+e)})},login:function(){var e=this,t=1;t=1===this.chan?1:2,this.axios({url:"http://api.zhituteam.com/api/user/fastLogin",method:"post",params:{code:this.code,phone:this.phone,code_no:this.data,role_type:t},responseType:"json"}).then(function(t){0===t.data.error_code?(localStorage.setItem("zt_data",o()(t.data.data)),e.axios.defaults.headers.common["access-token"]=t.data.data.token,0===t.data.data.setpass?1===t.data.data.role_type?location.href="#/user":location.href="#/teacher":location.href="#/fastLogin"):alert(t.data.message)}).catch(function(e){alert("ajax请求出错,错误信息:"+e)})},studentChoice:function(){this.chan=1},teacherChoice:function(){this.chan=0}}},i={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{id:"app"}},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.phone,expression:"phone"}],attrs:{type:"text",placeholder:"请输入手机号"},domProps:{value:e.phone},on:{input:function(t){t.target.composing||(e.phone=t.target.value)}}}),e._v(" "),a("input",{directives:[{name:"model",rawName:"v-model",value:e.code,expression:"code"}],attrs:{type:"text",placeholder:"请输入验证码"},domProps:{value:e.code},on:{input:function(t){t.target.composing||(e.code=t.target.value)}}}),e._v(" "),a("span",{staticClass:"conmeCode",on:{click:function(t){e.flag&&e.send()}}},[1===e.yan?a("span",[e._v("获取验证码")]):e._e(),e._v(" "),0===e.yan?a("span",{staticClass:"conmeCode-two"},[e._v(e._s(e.yanTime)+"秒内有效")]):e._e()]),e._v(" "),a("div",{staticClass:"p-box"},[a("p",{class:{change:e.chan},on:{click:e.studentChoice}},[e._v("我是家长/学生")]),e._v(" "),a("p",{class:{change:!e.chan},on:{click:e.teacherChoice}},[e._v("我是教师")])]),e._v(" "),a("div",{staticClass:"button",on:{click:e.login}},[e._v("登 录")]),e._v(" "),a("p",{staticClass:"info"},[e._v("登录即代表同意《知途家教》相关规定")])])},staticRenderFns:[]};var c=a("VU/8")(s,i,!1,function(e){a("6oA+")},"data-v-78321930",null);t.default=c.exports},"6oA+":function(e,t){},FeBl:function(e,t){var a=e.exports={version:"2.5.3"};"number"==typeof __e&&(__e=a)},mvHQ:function(e,t,a){e.exports={default:a("qkKv"),__esModule:!0}},qkKv:function(e,t,a){var n=a("FeBl"),o=n.JSON||(n.JSON={stringify:JSON.stringify});e.exports=function(e){return o.stringify.apply(o,arguments)}}});
2 | //# sourceMappingURL=7.c6777a0dd1b7c59cece5.js.map
--------------------------------------------------------------------------------
/dist/static/js/8.7f0560bd7d2100b42835.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([8],{"6rku":function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=a("mvHQ"),s=a.n(o),n={props:{},data:function(){return{tell:"",password:""}},mounted:function(){},methods:{loginFunc:function(){var t=this;t.axios({url:"http://api.zhituteam.com/api/user/passwordLogin",method:"post",data:{phone:t.tell,password:t.password}}).then(function(e){0===e.data.error_code?(localStorage.setItem("zt_data",s()(e.data.data)),t.axios.defaults.headers.common["access-token"]=e.data.data.token,1===e.data.data.role_type?location.href="#/user":location.href="#/teacher"):alert(e.data.message)})},register:function(){location.href="#/register"}}},r={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{attrs:{id:"app"}},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.tell,expression:"tell"}],attrs:{type:"text",placeholder:"请输入手机号"},domProps:{value:t.tell},on:{input:function(e){e.target.composing||(t.tell=e.target.value)}}}),t._v(" "),a("input",{directives:[{name:"model",rawName:"v-model",value:t.password,expression:"password"}],attrs:{type:"password",placeholder:"请输入密码"},domProps:{value:t.password},on:{input:function(e){e.target.composing||(t.password=e.target.value)}}}),t._v(" "),a("div",{staticClass:"button",on:{click:t.loginFunc}},[t._v("登 录")]),t._v(" "),a("p",{staticClass:"info"},[t._v("登录即代表同意《知途家教》相关规定")]),t._v(" "),a("p",{staticClass:"login-bottom"},[a("span",{staticClass:"no",on:{click:t.register}},[t._v("没有账号?快捷登录")]),t._v(" "),a("span",{staticClass:"forget"},[t._v("忘记密码")])])])},staticRenderFns:[]};var i=a("VU/8")(n,r,!1,function(t){a("9JnE")},"data-v-152b80a6",null);e.default=i.exports},"9JnE":function(t,e){},FeBl:function(t,e){var a=t.exports={version:"2.5.3"};"number"==typeof __e&&(__e=a)},mvHQ:function(t,e,a){t.exports={default:a("qkKv"),__esModule:!0}},qkKv:function(t,e,a){var o=a("FeBl"),s=o.JSON||(o.JSON={stringify:JSON.stringify});t.exports=function(t){return s.stringify.apply(s,arguments)}}});
2 | //# sourceMappingURL=8.7f0560bd7d2100b42835.js.map
--------------------------------------------------------------------------------
/dist/static/js/8.7f0560bd7d2100b42835.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///src/components/public/login.vue","webpack:///./src/components/public/login.vue?1370","webpack:///./src/components/public/login.vue","webpack:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/babel-runtime/core-js/json/stringify.js","webpack:///./node_modules/core-js/library/fn/json/stringify.js"],"names":["login","this","tell","password","then","res","data","token","message","public_login","render","_vm","_h","$createElement","_c","_self","attrs","id","directives","name","rawName","value","expression","type","placeholder","domProps","on","input","$event","target","composing","_v","staticClass","click","loginFunc","register","staticRenderFns","Component","__webpack_require__","normalizeComponent","ssrContext","__webpack_exports__","core","module","exports","version","__e","default","__esModule","$JSON","JSON","stringify","it","apply","arguments"],"mappings":"gIAcAA,wCAKA,YAEA,8DAOAC,kBAEA,yDACA,qBAEAC,gBAGAC,YAPAC,KAAA,SAAAC,oEAUAC,mEAEAC,8CAEA,uBAEA,0BAQAC,8CAKA,gBCvDAC,GADiBC,OAFjB,WAA0B,IAAAC,EAAAV,KAAaW,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,OAAOC,GAAA,SAAYH,EAAA,SAAcI,aAAaC,KAAA,QAAAC,QAAA,UAAAC,MAAAV,EAAA,KAAAW,WAAA,SAAkEN,OAASO,KAAA,OAAAC,YAAA,UAAqCC,UAAWJ,MAAAV,EAAA,MAAmBe,IAAKC,MAAA,SAAAC,GAAyBA,EAAAC,OAAAC,YAAsCnB,EAAAT,KAAA0B,EAAAC,OAAAR,WAA+BV,EAAAoB,GAAA,KAAAjB,EAAA,SAA0BI,aAAaC,KAAA,QAAAC,QAAA,UAAAC,MAAAV,EAAA,SAAAW,WAAA,aAA0EN,OAASO,KAAA,WAAAC,YAAA,SAAwCC,UAAWJ,MAAAV,EAAA,UAAuBe,IAAKC,MAAA,SAAAC,GAAyBA,EAAAC,OAAAC,YAAsCnB,EAAAR,SAAAyB,EAAAC,OAAAR,WAAmCV,EAAAoB,GAAA,KAAAjB,EAAA,OAAwBkB,YAAA,SAAAN,IAAyBO,MAAAtB,EAAAuB,aAAuBvB,EAAAoB,GAAA,UAAApB,EAAAoB,GAAA,KAAAjB,EAAA,KAAuCkB,YAAA,SAAmBrB,EAAAoB,GAAA,uBAAApB,EAAAoB,GAAA,KAAAjB,EAAA,KAAoDkB,YAAA,iBAA2BlB,EAAA,QAAakB,YAAA,KAAAN,IAAqBO,MAAAtB,EAAAwB,YAAsBxB,EAAAoB,GAAA,eAAApB,EAAAoB,GAAA,KAAAjB,EAAA,QAA+CkB,YAAA,WAAqBrB,EAAAoB,GAAA,eAEh/BK,oBCCjB,IAcAC,EAdAC,EAAA,OAcAC,CACAvC,EACAS,GATA,EAVA,SAAA+B,GACAF,EAAA,SAaA,kBAEA,MAUAG,EAAA,QAAAJ,EAAA,mDC1BA,IAAAK,EAAAC,EAAAC,SAA6BC,QAAA,SAC7B,iBAAAC,UAAAJ,yBCDAC,EAAAC,SAAkBG,QAAAT,EAAA,QAAAU,YAAA,yBCAlB,IAAAN,EAAAJ,EAAA,QACAW,EAAAP,EAAAQ,OAAAR,EAAAQ,MAAuCC,UAAAD,KAAAC,YACvCR,EAAAC,QAAA,SAAAQ,GACA,OAAAH,EAAAE,UAAAE,MAAAJ,EAAAK","file":"static/js/8.7f0560bd7d2100b42835.js","sourcesContent":["\n \n
\n
\n
登 录
\n
登录即代表同意《知途家教》相关规定
\n
\n 没有账号?快捷登录\n 忘记密码\n
\n
\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/public/login.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.tell),expression:\"tell\"}],attrs:{\"type\":\"text\",\"placeholder\":\"请输入手机号\"},domProps:{\"value\":(_vm.tell)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.tell=$event.target.value}}}),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.password),expression:\"password\"}],attrs:{\"type\":\"password\",\"placeholder\":\"请输入密码\"},domProps:{\"value\":(_vm.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.password=$event.target.value}}}),_vm._v(\" \"),_c('div',{staticClass:\"button\",on:{\"click\":_vm.loginFunc}},[_vm._v(\"登 录\")]),_vm._v(\" \"),_c('p',{staticClass:\"info\"},[_vm._v(\"登录即代表同意《知途家教》相关规定\")]),_vm._v(\" \"),_c('p',{staticClass:\"login-bottom\"},[_c('span',{staticClass:\"no\",on:{\"click\":_vm.register}},[_vm._v(\"没有账号?快捷登录\")]),_vm._v(\" \"),_c('span',{staticClass:\"forget\"},[_vm._v(\"忘记密码\")])])])}\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-152b80a6\",\"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/components/public/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,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-152b80a6\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!sass-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-152b80a6\\\",\\\"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-152b80a6\"\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/components/public/login.vue\n// module id = null\n// module chunks = ","var core = module.exports = { version: '2.5.3' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_core.js\n// module id = FeBl\n// module chunks = 7 8","module.exports = { \"default\": require(\"core-js/library/fn/json/stringify\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/json/stringify.js\n// module id = mvHQ\n// module chunks = 7 8","var core = require('../../modules/_core');\nvar $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });\nmodule.exports = function stringify(it) { // eslint-disable-line no-unused-vars\n return $JSON.stringify.apply($JSON, arguments);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/json/stringify.js\n// module id = qkKv\n// module chunks = 7 8"],"sourceRoot":""}
--------------------------------------------------------------------------------
/dist/static/js/9.2c38cedbecc024d68dac.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([9],{H5KB:function(t,e,n){t.exports=n.p+"static/img/logo_share.5bc4648.png"},Tiku:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{attrs:{id:"app"}},[i("div",{staticClass:"head"},[i("img",{attrs:{src:n("H5KB"),alt:""}})]),t._v(" "),i("p",[t._v("\n 知途家教,汇集了众多有丰富教学经验和教学特色的精英教师,\n 致力于搭建一个让家长放心、省心的家教平台。我们具有丰富的教师资源,\n 让您找好老师,找对老师!提分的捷径, 就是更有针对性的学习,\n 告别大班课,知途家教一对一,成绩提高不是梦。\n ")]),t._v(" "),i("ul",[i("li",[t._v("网站:www.zhituteam.com")]),t._v(" "),i("li",[t._v("客服电话:15611004123")]),t._v(" "),i("li",{staticStyle:{border:"none"}},[t._v("微信公众号:知途家教")])])])}]};var a=n("VU/8")(null,i,!1,function(t){n("nm7m")},"data-v-6ed95a51",null);e.default=a.exports},nm7m:function(t,e){}});
2 | //# sourceMappingURL=9.2c38cedbecc024d68dac.js.map
--------------------------------------------------------------------------------
/dist/static/js/9.2c38cedbecc024d68dac.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///./static/img/logo_share.png","webpack:///./src/components/public/about.vue?1394","webpack:///./src/components/public/about.vue"],"names":["module","exports","__webpack_require__","p","about","render","this","$createElement","_self","_c","_m","staticRenderFns","_vm","_h","attrs","id","staticClass","src","alt","_v","staticStyle","border","Component","normalizeComponent","ssrContext","__webpack_exports__"],"mappings":"uCAAAA,EAAAC,QAAAC,EAAAC,EAAA,wHCAA,IAGAC,GADiBC,OAFjB,WAA0BC,KAAaC,eAAbD,KAAuCE,MAAAC,GAAwB,OAA/DH,KAA+DI,GAAA,IAExEC,iBADjB,WAAoC,IAAAC,EAAAN,KAAaO,EAAAD,EAAAL,eAA0BE,EAAAG,EAAAJ,MAAAC,IAAAI,EAAwB,OAAAJ,EAAA,OAAiBK,OAAOC,GAAA,SAAYN,EAAA,OAAYO,YAAA,SAAmBP,EAAA,OAAYK,OAAOG,IAAAf,EAAA,QAAAgB,IAAA,QAA8DN,EAAAO,GAAA,KAAAV,EAAA,KAAAG,EAAAO,GAAA,wJAAAP,EAAAO,GAAA,KAAAV,EAAA,MAAAA,EAAA,MAAAG,EAAAO,GAAA,0BAAAP,EAAAO,GAAA,KAAAV,EAAA,MAAAG,EAAAO,GAAA,sBAAAP,EAAAO,GAAA,KAAAV,EAAA,MAA6TW,aAAaC,OAAA,UAAiBT,EAAAO,GAAA,uBCEllB,IAaAG,EAbApB,EAAA,OAaAqB,CAXA,KAaAnB,GATA,EATA,SAAAoB,GACAtB,EAAA,SAYA,kBAEA,MAUAuB,EAAA,QAAAH,EAAA","file":"static/js/9.2c38cedbecc024d68dac.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/img/logo_share.5bc4648.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./static/img/logo_share.png\n// module id = H5KB\n// module chunks = 9","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\":\"app\"}},[_c('div',{staticClass:\"head\"},[_c('img',{attrs:{\"src\":require(\"../../../static/img/logo_share.png\"),\"alt\":\"\"}})]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n 知途家教,汇集了众多有丰富教学经验和教学特色的精英教师,\\n 致力于搭建一个让家长放心、省心的家教平台。我们具有丰富的教师资源,\\n 让您找好老师,找对老师!提分的捷径, 就是更有针对性的学习,\\n 告别大班课,知途家教一对一,成绩提高不是梦。\\n \")]),_vm._v(\" \"),_c('ul',[_c('li',[_vm._v(\"网站:www.zhituteam.com\")]),_vm._v(\" \"),_c('li',[_vm._v(\"客服电话:15611004123\")]),_vm._v(\" \"),_c('li',{staticStyle:{\"border\":\"none\"}},[_vm._v(\"微信公众号:知途家教\")])])])}]\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-6ed95a51\",\"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/components/public/about.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,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-6ed95a51\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./about.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nvar __vue_script__ = null\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6ed95a51\\\",\\\"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!./about.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-6ed95a51\"\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/components/public/about.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}
--------------------------------------------------------------------------------
/dist/static/js/app.36713eb5799930f25e89.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([15],{"5OHe":function(n,e){},NHnr:function(n,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=t("7+uW"),o={render:function(){var n=this.$createElement,e=this._self._c||n;return e("div",{attrs:{id:"app"}},[e("router-view")],1)},staticRenderFns:[]};var c=t("VU/8")({},o,!1,function(n){t("f7ih")},null,null).exports,r=t("/ocq");a.a.use(r.a);var i=new r.a({routes:[{path:"/",name:"Home",component:function(n){return Promise.all([t.e(0),t.e(6)]).then(function(){var e=[t("wUZA")];n.apply(null,e)}.bind(this)).catch(t.oe)}},{path:"/teacher_class",name:"TeacherClass",component:function(n){return Promise.all([t.e(0),t.e(13)]).then(function(){var e=[t("IRHn")];n.apply(null,e)}.bind(this)).catch(t.oe)}},{path:"/login",name:"Login",component:function(n){return t.e(8).then(function(){var e=[t("6rku")];n.apply(null,e)}.bind(this)).catch(t.oe)}},{path:"/user",name:"User",component:function(n){return t.e(1).then(function(){var e=[t("BWhR")];n.apply(null,e)}.bind(this)).catch(t.oe)}},{path:"/register",name:"Register",component:function(n){return t.e(7).then(function(){var e=[t("5POv")];n.apply(null,e)}.bind(this)).catch(t.oe)}},{path:"/teacher_detail",name:"teacherXiangQing",component:function(n){return t.e(2).then(function(){var e=[t("LrNV")];n.apply(null,e)}.bind(this)).catch(t.oe)}},{path:"/fastlogin",name:"fastLogin",component:function(n){return t.e(10).then(function(){var e=[t("UWEt")];n.apply(null,e)}.bind(this)).catch(t.oe)}},{path:"/teacher",name:"Teacher",component:function(n){return t.e(3).then(function(){var e=[t("SWap")];n.apply(null,e)}.bind(this)).catch(t.oe)}},{path:"/user_info",name:"UserInfo",component:function(n){return t.e(4).then(function(){var e=[t("peQI")];n.apply(null,e)}.bind(this)).catch(t.oe)}},{path:"/teacher_info",name:"TeacherInfo",component:function(n){return t.e(5).then(function(){var e=[t("uEYZ")];n.apply(null,e)}.bind(this)).catch(t.oe)}},{path:"/user_collect",name:"UserCollect",component:function(n){return Promise.all([t.e(0),t.e(12)]).then(function(){var e=[t("qPUa")];n.apply(null,e)}.bind(this)).catch(t.oe)}},{path:"/about",name:"About",component:function(n){return t.e(9).then(function(){var e=[t("Tiku")];n.apply(null,e)}.bind(this)).catch(t.oe)}},{path:"/user_course",name:"UserCourse",component:function(n){return t.e(11).then(function(){var e=[t("59il")];n.apply(null,e)}.bind(this)).catch(t.oe)}}]}),u=t("mtWM"),p=t.n(u);t("5OHe");a.a.config.productionTip=!1,a.a.prototype.axios=p.a;var l=localStorage.getItem("zt_data");if(""!==l&&l){var h=JSON.parse(l);p.a.defaults.headers.common["access-token"]=h.token}new a.a({el:"#app",router:i,components:{App:c},template:""})},f7ih:function(n,e){}},["NHnr"]);
2 | //# sourceMappingURL=app.36713eb5799930f25e89.js.map
--------------------------------------------------------------------------------
/dist/static/js/app.36713eb5799930f25e89.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///./src/App.vue?0366","webpack:///./src/App.vue","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["selectortype_template_index_0_src_App","render","_h","this","$createElement","_c","_self","attrs","id","staticRenderFns","src_App","__webpack_require__","normalizeComponent","ssrContext","vue_esm","use","vue_router_esm","router","routes","path","name","component","resolve","Promise","all","e","then","__WEBPACK_AMD_REQUIRE_ARRAY__","bind","catch","oe","config","productionTip","prototype","axios","axios_default","a","localData","localStorage","getItem","ztData","JSON","parse","defaults","headers","common","token","el","components","App","template"],"mappings":"6IAGAA,GADiBC,OAFjB,WAA0B,IAAaC,EAAbC,KAAaC,eAA0BC,EAAvCF,KAAuCG,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,OAAiBE,OAAOC,GAAA,SAAYH,EAAA,oBAE5GI,oBCCjB,IAuBAC,EAvBAC,EAAA,OAcAC,IAEAZ,GATA,EAVA,SAAAa,GACAF,EAAA,SAaA,KAEA,MAUA,oBCnBAG,EAAA,EAAIC,IAAIC,EAAA,GAER,IAAAC,EAAA,IAAmBD,EAAA,GAEjBE,SAEIC,KAAM,IACNC,KAAM,OACNC,UAAW,SAACC,GAAD,OAAaC,QAAAC,KAAAb,EAAAc,EAAA,GAAAd,EAAAc,EAAA,KAAAC,KAAA,WAAQ,IAAAC,GAAChB,EAAA,SAAT,iBAAAiB,KAAAzB,OAAA0B,MAAAlB,EAAAmB,OAIxBX,KAAM,iBACNC,KAAM,eACNC,UAAW,SAACC,GAAD,OAAaC,QAAAC,KAAAb,EAAAc,EAAA,GAAAd,EAAAc,EAAA,MAAAC,KAAA,WAAQ,IAAAC,GAAChB,EAAA,SAAT,iBAAAiB,KAAAzB,OAAA0B,MAAAlB,EAAAmB,OAIxBX,KAAM,SACNC,KAAM,QACNC,UAAW,SAACC,GAAD,OAAaX,EAAAc,EAAA,GAAAC,KAAA,WAAQ,IAAAC,GAAChB,EAAA,SAAT,iBAAAiB,KAAAzB,OAAA0B,MAAAlB,EAAAmB,OAIxBX,KAAM,QACNC,KAAM,OACNC,UAAW,SAACC,GAAD,OAAaX,EAAAc,EAAA,GAAAC,KAAA,WAAQ,IAAAC,GAAChB,EAAA,SAAT,iBAAAiB,KAAAzB,OAAA0B,MAAAlB,EAAAmB,OAIxBX,KAAM,YACNC,KAAM,WACNC,UAAW,SAACC,GAAD,OAAaX,EAAAc,EAAA,GAAAC,KAAA,WAAQ,IAAAC,GAAChB,EAAA,SAAT,iBAAAiB,KAAAzB,OAAA0B,MAAAlB,EAAAmB,OAGxBX,KAAM,kBACNC,KAAM,mBACNC,UAAW,SAACC,GAAD,OAAaX,EAAAc,EAAA,GAAAC,KAAA,WAAQ,IAAAC,GAAChB,EAAA,SAAT,iBAAAiB,KAAAzB,OAAA0B,MAAAlB,EAAAmB,OAGxBX,KAAM,aACNC,KAAM,YACNC,UAAW,SAACC,GAAD,OAAaX,EAAAc,EAAA,IAAAC,KAAA,WAAQ,IAAAC,GAAChB,EAAA,SAAT,iBAAAiB,KAAAzB,OAAA0B,MAAAlB,EAAAmB,OAGxBX,KAAM,WACNC,KAAM,UACNC,UAAW,SAACC,GAAD,OAAaX,EAAAc,EAAA,GAAAC,KAAA,WAAQ,IAAAC,GAAChB,EAAA,SAAT,iBAAAiB,KAAAzB,OAAA0B,MAAAlB,EAAAmB,OAGxBX,KAAM,aACNC,KAAM,WACNC,UAAW,SAACC,GAAD,OAAaX,EAAAc,EAAA,GAAAC,KAAA,WAAQ,IAAAC,GAAChB,EAAA,SAAT,iBAAAiB,KAAAzB,OAAA0B,MAAAlB,EAAAmB,OAGxBX,KAAM,gBACNC,KAAM,cACNC,UAAW,SAACC,GAAD,OAAaX,EAAAc,EAAA,GAAAC,KAAA,WAAQ,IAAAC,GAAChB,EAAA,SAAT,iBAAAiB,KAAAzB,OAAA0B,MAAAlB,EAAAmB,OAGxBX,KAAM,gBACNC,KAAM,cACNC,UAAW,SAACC,GAAD,OAAaC,QAAAC,KAAAb,EAAAc,EAAA,GAAAd,EAAAc,EAAA,MAAAC,KAAA,WAAQ,IAAAC,GAAChB,EAAA,SAAT,iBAAAiB,KAAAzB,OAAA0B,MAAAlB,EAAAmB,OAGxBX,KAAM,SACNC,KAAM,QACNC,UAAW,SAACC,GAAD,OAAaX,EAAAc,EAAA,GAAAC,KAAA,WAAQ,IAAAC,GAAChB,EAAA,SAAT,iBAAAiB,KAAAzB,OAAA0B,MAAAlB,EAAAmB,OAGxBX,KAAM,eACNC,KAAM,aACNC,UAAW,SAACC,GAAD,OAAaX,EAAAc,EAAA,IAAAC,KAAA,WAAQ,IAAAC,GAAChB,EAAA,SAAT,iBAAAiB,KAAAzB,OAAA0B,MAAAlB,EAAAmB,wCCtE9BhB,EAAA,EAAIiB,OAAOC,eAAgB,EAE3BlB,EAAA,EAAImB,UAAUC,MAAQC,EAAAC,EAEtB,IAAMC,EAAYC,aAAaC,QAAQ,WACvC,GAAkB,KAAdF,GAAoBA,EAAW,CACjC,IAAMG,EAASC,KAAKC,MAAML,GAC1BF,EAAAC,EAAMO,SAASC,QAAQC,OAAO,gBAAkBL,EAAOM,MAIzD,IAAIhC,EAAA,GACFiC,GAAI,OACJ9B,SACA+B,YAAcC,IAAAvC,GACdwC,SAAU","file":"static/js/app.36713eb5799930f25e89.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],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-65d0936e\",\"hasScoped\":false,\"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/App.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,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-65d0936e\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.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!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-65d0936e\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\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/App.vue\n// module id = null\n// module chunks = ","import Vue from 'vue'\nimport Router from 'vue-router'\n// import Home from '@/components/home'\n// import TeacherClass from '@/components/classification'\n// import Login from '@/components/public/login'\n// import User from '@/components/user/user'\n\nVue.use(Router)\n\nexport default new Router({\n // mode: 'history',\n routes: [\n {\n path: '/',\n name: 'Home',\n component: (resolve) => require(['@/components/home'], resolve)\n // component: Home\n },\n {\n path: '/teacher_class',\n name: 'TeacherClass',\n component: (resolve) => require(['@/components/public/classification'], resolve)\n // component: TeacherClass\n },\n {\n path: '/login',\n name: 'Login',\n component: (resolve) => require(['@/components/public/login'], resolve)\n // component: Login\n },\n {\n path: '/user',\n name: 'User',\n component: (resolve) => require(['@/components/user/user'], resolve)\n // component: User\n },\n {\n path: '/register',\n name: 'Register',\n component: (resolve) => require(['@/components/public/register'], resolve)\n },\n {\n path: '/teacher_detail',\n name: 'teacherXiangQing',\n component: (resolve) => require(['@/components/teacher/teacherXiangQing'], resolve)\n },\n {\n path: '/fastlogin',\n name: 'fastLogin',\n component: (resolve) => require(['@/components/public/fastLogin'], resolve)\n },\n {\n path: '/teacher',\n name: 'Teacher',\n component: (resolve) => require(['@/components/teacher/teacher'], resolve)\n },\n {\n path: '/user_info',\n name: 'UserInfo',\n component: (resolve) => require(['@/components/user/userInfo'], resolve)\n },\n {\n path: '/teacher_info',\n name: 'TeacherInfo',\n component: (resolve) => require(['@/components/teacher/teacherInfo'], resolve)\n },\n {\n path: '/user_collect',\n name: 'UserCollect',\n component: (resolve) => require(['@/components/user/userCollect'], resolve)\n },\n {\n path: '/about',\n name: 'About',\n component: (resolve) => require(['@/components/public/about'], resolve)\n },\n {\n path: '/user_course',\n name: 'UserCourse',\n component: (resolve) => require(['@/components/user/userCourse'], resolve)\n }\n ]\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport Vue from 'vue'\nimport App from './App'\nimport router from './router'\nimport axios from 'axios'\nimport 'mint-ui/lib/style.css'\n// import {Indicator, Toast, InfiniteScroll} from 'mint-ui'\n\nVue.config.productionTip = false;\n\nVue.prototype.axios = axios;\n\nconst localData = localStorage.getItem('zt_data');\nif (localData !== '' && localData) {\n const ztData = JSON.parse(localData);\n axios.defaults.headers.common['access-token'] = ztData.token;\n}\n\n/* eslint-disable no-new */\nnew Vue({\n el: '#app',\n router,\n components: { App },\n template: ''\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js"],"sourceRoot":""}
--------------------------------------------------------------------------------
/dist/static/js/axiosHeaders.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import axios from 'axios'
3 |
4 | Vue.prototype.axios = axios;
5 | function setHeaders () {
6 | const localData = localStorage.getItem('zt_data');
7 | if (localData !== '' && localData) {
8 | const ztData = JSON.parse(localData);
9 | axios.defaults.headers.common['access-token'] = ztData.token;
10 | }
11 | }
12 |
13 | export default {
14 | setHeaders: setHeaders
15 | }
16 |
--------------------------------------------------------------------------------
/dist/static/js/manifest.7bf53608bd99f03ef1ef.js:
--------------------------------------------------------------------------------
1 | !function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,o,a){for(var d,f,i,u=0,b=[];u 1 && queryString[1]) || "";
5 | return decodeURIComponent(val);
6 | }
7 |
8 | module.exports = {
9 | getQueryStr: getQueryStr
10 | };
11 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 知途家教
8 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "zhitu-tutor",
3 | "version": "1.0.0",
4 | "description": "知途家教移动版",
5 | "author": "wwenj ",
6 | "private": true,
7 | "scripts": {
8 | "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
9 | "start": "npm run dev",
10 | "lint": "eslint --ext .js,.vue src",
11 | "lint-fix": "eslint --fix --ext .js,.vue src",
12 | "build": "node build/build.js"
13 | },
14 | "dependencies": {
15 | "mint-ui": "^2.2.13",
16 | "vue": "^2.5.2",
17 | "vue-router": "^3.0.1"
18 | },
19 | "devDependencies": {
20 | "autoprefixer": "^7.1.2",
21 | "axios": "^0.18.0",
22 | "babel-core": "^6.22.1",
23 | "babel-eslint": "^8.2.1",
24 | "babel-helper-vue-jsx-merge-props": "^2.0.3",
25 | "babel-loader": "^7.1.1",
26 | "babel-plugin-syntax-jsx": "^6.18.0",
27 | "babel-plugin-transform-runtime": "^6.22.0",
28 | "babel-plugin-transform-vue-jsx": "^3.5.0",
29 | "babel-preset-env": "^1.3.2",
30 | "babel-preset-stage-2": "^6.22.0",
31 | "chalk": "^2.0.1",
32 | "copy-webpack-plugin": "^4.0.1",
33 | "css-loader": "^0.28.0",
34 | "eslint": "^4.15.0",
35 | "eslint-config-standard": "^10.2.1",
36 | "eslint-friendly-formatter": "^3.0.0",
37 | "eslint-loader": "^1.7.1",
38 | "eslint-plugin-import": "^2.7.0",
39 | "eslint-plugin-node": "^5.2.0",
40 | "eslint-plugin-promise": "^3.4.0",
41 | "eslint-plugin-standard": "^3.0.1",
42 | "eslint-plugin-vue": "^4.0.0",
43 | "extract-text-webpack-plugin": "^3.0.0",
44 | "file-loader": "^1.1.4",
45 | "friendly-errors-webpack-plugin": "^1.6.1",
46 | "html-webpack-plugin": "^2.30.1",
47 | "node-notifier": "^5.1.2",
48 | "node-sass": "^4.7.2",
49 | "optimize-css-assets-webpack-plugin": "^3.2.0",
50 | "ora": "^1.2.0",
51 | "portfinder": "^1.0.13",
52 | "postcss-import": "^11.0.0",
53 | "postcss-loader": "^2.0.8",
54 | "postcss-url": "^7.2.1",
55 | "rimraf": "^2.6.0",
56 | "sass-loader": "^6.0.7",
57 | "semver": "^5.3.0",
58 | "shelljs": "^0.7.6",
59 | "uglifyjs-webpack-plugin": "^1.1.1",
60 | "url-loader": "^0.5.8",
61 | "vue-loader": "^13.3.0",
62 | "vue-style-loader": "^3.0.1",
63 | "vue-template-compiler": "^2.5.2",
64 | "webpack": "^3.6.0",
65 | "webpack-bundle-analyzer": "^2.9.0",
66 | "webpack-dev-server": "^2.9.1",
67 | "webpack-merge": "^4.1.0"
68 | },
69 | "engines": {
70 | "node": ">= 6.0.0",
71 | "npm": ">= 3.0.0"
72 | },
73 | "browserslist": [
74 | "> 1%",
75 | "last 2 versions",
76 | "not ie <= 8"
77 | ]
78 | }
79 |
--------------------------------------------------------------------------------
/product/api_doc/CommonApi_File.md:
--------------------------------------------------------------------------------
1 | ## 公共接口-文件
2 | **简要描述:**
3 |
4 | - 上传文件接口
5 |
6 | **请求URL:**
7 | - ` http://xx.com/cmn/file/upload `
8 |
9 | **请求方式:**
10 | - POST
11 |
12 | **参数:**
13 |
14 | |参数名|必选|类型|说明|
15 | |:---- |:---|:----- |----- |
16 | |app_key |否 |string |app标识 |
17 | |access_token |否 |string | 用户秘钥 |
18 | |file |是 |formData| 需要上传的文件 |
19 |
20 |
21 | **返回示例**
22 |
23 | ```
24 | {
25 | "error_code": 0,
26 | "message": "success",
27 | "data": {
28 | "filename": 'string',
29 | "fileSignUrl": 'string'
30 | }
31 | }
32 | ```
33 |
34 | **返回参数说明**
35 |
36 | |参数名|类型|说明|
37 | |:-----|:-----|-----|
38 | |filename| string | oss存储的文件名|
39 | |fileSignUrl| string | oss临时签名路径(有过期时间)|
40 |
41 | ***
42 | **简要描述:**
43 |
44 | - 获取文件临时路径接口
45 |
46 | **请求URL:**
47 | - ` http://xx.com/cmn/file/url `
48 |
49 | **请求方式:**
50 | - GET
51 |
52 | **参数:**
53 |
54 | |参数名|必选|类型|说明|
55 | |:---- |:---|:----- |----- |
56 | |app_key |否 |string |app标识 |
57 | |access_token |否 |string | 用户秘钥 |
58 | |filename |是 |string| 文件名 |
59 |
60 |
61 | **返回示例**
62 |
63 | ```
64 | {
65 | "error_code": 0,
66 | "message": "success",
67 | "data": "string"
68 | }
69 | ```
70 |
71 | **返回参数说明**
72 | 直接返回文件地址
73 |
74 | |参数名|类型|说明|
75 | |:-----|:-----|-----|
76 |
--------------------------------------------------------------------------------
/product/api_doc/app.md:
--------------------------------------------------------------------------------
1 | ## APP启动接口
2 | **简要描述:**
3 |
4 | - app启动时访问
5 |
6 | **请求URL:**
7 | - ` http://xx.com/api/app/c `
8 |
9 | **请求方式:**
10 | - GET
11 |
12 | **参数:**
13 |
14 | |参数名|必选|类型|说明|
15 | |:---- |:---|:----- |----- |
16 | |app_key |否 |string |app标识 |
17 | |access_token |否 |string | 用户秘钥 |
18 |
19 |
20 | **返回示例**
21 |
22 | ```
23 | {
24 | "error_code": 0,
25 | "message": "success",
26 | "data": {
27 | "version" : "",
28 | "tags" : {
29 | "subject": [
30 | {
31 | "id" : 1,
32 | "name" : "",
33 | "icon" : ""
34 | }
35 | ],
36 | "grade": [
37 | {
38 | "id" : 1,
39 | "name" : "",
40 | "icon" : ""
41 | }
42 | ],
43 | "type": [
44 | {
45 | "id" : 1,
46 | "name" : "",
47 | "icon" : ""
48 | }
49 | ],
50 | "sex" : [
51 | {
52 | "id" : 1,
53 | "name" : "男",
54 | "icon" : ""
55 | }
56 | ],
57 | "qualification" : [
58 | {
59 | "id" : 1,
60 | "name" : "硕士",
61 | "icon" : ""
62 | }
63 | ],
64 | "city" : [
65 | {
66 | "id" : 1,
67 | "name" : "吉林市",
68 | "icon" : ""
69 | }
70 | ]
71 | }
72 | }
73 | }
74 | ```
75 |
76 | **返回参数说明**
77 |
78 | |参数名|类型|说明|
79 | |:-----|:-----|-----|
80 | |version| string | 静态资源version,用于清除本地缓存|
81 | |tags| string | 公共标签|
82 |
83 | ***
--------------------------------------------------------------------------------
/product/api_doc/collection.md:
--------------------------------------------------------------------------------
1 |
2 | ## 收藏
3 | **简要描述:**
4 |
5 | - 收藏接口
6 |
7 | **请求URL:**
8 | - ` http://xx.com/api/collect/add `
9 |
10 | **请求方式:**
11 | - GET
12 |
13 | **参数:**
14 |
15 | |参数名|必选|类型|说明|
16 | |:---- |:---|:----- |----- |
17 | |app_key |是 |string |app标识 |
18 | |access_token |是 |string | 用户秘钥 |
19 | |tid |是 |string | 教师id |
20 |
21 | **返回示例**
22 |
23 | ```
24 | {
25 | "error_code": 0,
26 | "message": "success",
27 | "data": {
28 | "teacher" : {
29 | "id" : 1,
30 | "name" : "",
31 | "image" : "",
32 | "subject" : [
33 | {
34 | "id" :1,
35 | "lebel" : "数学",
36 | "sort" : 0
37 | }
38 | ],
39 | "grade" : [
40 | {
41 | "id" :1,
42 | "lebel" : "数学",
43 | "sort" : 0
44 | ],
45 | "extend_tag" : [
46 | {
47 | "id" :1,
48 | "lebel" : "已认证",
49 | "sort" : 0
50 | },
51 | {
52 | "id" :1,
53 | "lebel" : "大学生",
54 | "sort" : 0
55 | }
56 | ],
57 | "school" : "",
58 | "source" : 1,
59 | "is_confirm" : 0,
60 | "is_star" : 0,
61 | "teach_time" : 10,
62 | "teach_time" : 10,
63 | }
64 | }
65 | }
66 | ```
67 |
68 | **返回参数说明**
69 |
70 | data
71 |
72 | |参数名|类型|说明|
73 | |:----- |:-----|----- |
74 | |teacher |object |教师详细 |
75 |
76 |
77 | ## 取消收藏
78 | **简要描述:**
79 |
80 | - 取消收藏
81 |
82 | **请求URL:**
83 | - ` http://xx.com/api/collect/del `
84 |
85 | **请求方式:**
86 | - GET
87 |
88 | **参数:**
89 |
90 | |参数名|必选|类型|说明|
91 | |:---- |:---|:----- |----- |
92 | |app_key |是 |string |app标识 |
93 | |access_token |是 |string | 用户秘钥 |
94 | |tid |是 |string | 教师id |
95 |
96 | **返回示例**
97 |
98 | ```
99 | {
100 | "error_code": 0,
101 | "message": "success",
102 | "data": {
103 | }
104 | }
105 | ```
106 |
107 |
108 |
109 |
110 |
111 | ## 收藏列表
112 | **简要描述:**
113 |
114 | - 收藏列表
115 |
116 | **请求URL:**
117 | - ` http://xx.com/api/collect/lists `
118 |
119 | **请求方式:**
120 | - GET
121 |
122 | **参数:**
123 |
124 | |参数名|必选|类型|说明|
125 | |:---- |:---|:----- |----- |
126 | |app_key |是 |string |app标识 |
127 | |access_token |是 |string | 用户秘钥 |
128 | |offset |是 |string | 偏移量 |
129 | |limit |是 |string | 每页数量 |
130 |
131 | **返回示例**
132 |
133 | ```
134 | {
135 | "error_code": 0,
136 | "message": "success",
137 | "data": {
138 | "teacher" : [
139 | {
140 | "id" : 1,
141 | "name" : "",
142 | "image" : "",
143 | "subject" : [
144 | {
145 | "id" :1,
146 | "lebel" : "数学",
147 | "sort" : 0
148 | }
149 | ],
150 | "grade" : [
151 | {
152 | "id" :1,
153 | "lebel" : "数学",
154 | "sort
155 | ],
156 | "extend_tag" : [
157 | {
158 | "id" :1,
159 | "lebel" : "已认证",
160 | "sort" : 0
161 | },
162 | {
163 | "id" :1,
164 | "lebel" : "大学生",
165 | "sort" : 0
166 | }
167 | ],
168 | "school" : "",
169 | "source" : 1,
170 | "is_confirm" : 0,
171 | "is_star" : 0,
172 | "teach_time" : 10,
173 | "teach_time" : 10,
174 | }
175 | ],
176 | }
177 | }
178 | ```
179 |
180 | **返回参数说明**
181 |
182 | data
183 |
184 | |参数名|类型|说明|
185 | |:----- |:-----|----- |
186 | |teacher |array |教师列表 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
--------------------------------------------------------------------------------
/product/api_doc/course.md:
--------------------------------------------------------------------------------
1 | ## 学生端我的课程
2 | **简要描述:**
3 |
4 | - 学生端我的课程
5 |
6 | **请求URL:**
7 | - ` http://xx.com/api/course/studentlists `
8 |
9 | **请求方式:**
10 | - GET
11 |
12 | **参数:**
13 |
14 | |参数名|必选|类型|说明|
15 | |:---- |:---|:----- |----- |
16 | |app_key |是 |string |app标识 |
17 | |access_token |是 |string | 用户秘钥 |
18 | |status |是 |string | 状态 1: 未开始 2:已结束 |
19 |
20 | **返回示例**
21 |
22 | ```
23 | {
24 | "error_code": 0,
25 | "message": "success",
26 | "data": {
27 | "course" : {
28 | "id" : 1,
29 | "teacher_id" : 1,
30 | "teacher_name" : "",
31 | "next_teach_time" : "",
32 | "course_info" : "",
33 | "status" : 1,
34 | "finish_num" : "5",
35 | "all_num" : "10"
36 | "child" : [
37 | {
38 | "id" : "",
39 | "start_time" : "",
40 | "status" : "",
41 | "plan" : "",
42 | "summary" : "",
43 | "question" : "",
44 | "stu_answer" :"",
45 | }
46 | ]
47 | }
48 | }
49 | }
50 | ```
51 |
52 | **返回参数说明**
53 |
54 | |参数名|类型|说明|
55 | |:-----|:-----|-----|
56 | |child->status| string | 状态 1未开始 2已完成|
57 | |plan| string | 课前计划|
58 | |summary| string | 课后总结|
59 | |question| string | 课后作业|
60 | |stu_answer| string | 学生答案|
61 |
62 | ***
63 |
64 | ## 教师端我的课程
65 | **简要描述:**
66 |
67 | - 教师端我的课程
68 |
69 | **请求URL:**
70 | - ` http://xx.com/api/course/teacherlists `
71 |
72 | **请求方式:**
73 | - GET
74 |
75 | **参数:**
76 |
77 | |参数名|必选|类型|说明|
78 | |:---- |:---|:----- |----- |
79 | |app_key |是 |string |app标识 |
80 | |access_token |是 |string | 用户秘钥 |
81 | |status |是 |string | 状态 1: 未开始 2:已结束 |
82 |
83 | **返回示例**
84 |
85 | ```
86 | {
87 | "error_code": 0,
88 | "message": "success",
89 | "data": {
90 | "course" : {
91 | "id" : 1,
92 | "student_id" : 1,
93 | "student_name" : "",
94 | "next_teach_time" : "",
95 | "course_info" : "",
96 | "status" : 1,
97 | "finish_num" : "5",
98 | "all_num" : "10"
99 | "child" : [
100 | {
101 | "id" : "",
102 | "start_time" : "",
103 | "status" : "",
104 | "plan" : "",
105 | "summary" : "",
106 | "question" : "",
107 | "stu_answer" :"",
108 | }
109 | ]
110 | }
111 | }
112 | }
113 | ```
114 |
115 | **返回参数说明**
116 |
117 | |参数名|类型|说明|
118 | |:-----|:-----|-----|
119 | |child->status| string | 状态 1未开始 2已完成|
120 | |plan| string | 课前计划|
121 | |summary| string | 课后总结|
122 | |question| string | 课后作业|
123 | |stu_answer| string | 学生答案|
124 |
125 | ***
126 |
127 | ## 修改课程
128 | **简要描述:**
129 |
130 | - 教师端我的课程
131 |
132 | **请求URL:**
133 | - ` http://xx.com/api/coursechild/save`
134 |
135 | **请求方式:**
136 | - POST
137 |
138 | **参数:**
139 |
140 | |参数名|必选|类型|说明|
141 | |:---- |:---|:----- |----- |
142 | |app_key |是 |string |app标识 |
143 | |access_token |是 |string | 用户秘钥 |
144 | |child_course_id |是 |string | 子课程id |
145 | |plan |否 |string | 预习 |
146 | |summary |否 |string | 总结 |
147 | |question |否 |string | 作业 |
148 | |stu_answer |否 |string | 答案 |
149 |
150 | **返回示例**
151 |
152 | ```
153 | {
154 | "error_code": 0,
155 | "message": "success",
156 | "data": []
157 | }
158 | ```
159 |
160 | ***
--------------------------------------------------------------------------------
/product/api_doc/coursetrial.md:
--------------------------------------------------------------------------------
1 |
2 | ## 预约
3 | **简要描述:**
4 |
5 | - 预约接口
6 |
7 | **请求URL:**
8 | - ` http://xx.com/api/coursetrial/add `
9 |
10 | **请求方式:**
11 | - GET
12 |
13 | **参数:**
14 |
15 | |参数名|必选|类型|说明|
16 | |:---- |:---|:----- |----- |
17 | |app_key |是 |string |app标识 |
18 | |access_token |是 |string | 用户秘钥 |
19 | |tid |是 |string | 教师id |
20 |
21 | **返回示例**
22 |
23 | ```
24 | {
25 | "error_code": 0,
26 | "message": "success",
27 | "data": {
28 | }
29 | }
30 | ```
31 |
32 | ***
33 |
34 |
35 | ## 学生端我的试听
36 | **简要描述:**
37 |
38 | - 学生端我的试听
39 |
40 | **请求URL:**
41 | - ` http://xx.com/api/coursetrial/studentlists `
42 |
43 | **请求方式:**
44 | - GET
45 |
46 | **参数:**
47 |
48 | |参数名|必选|类型|说明|
49 | |:---- |:---|:----- |----- |
50 | |app_key |是 |string |app标识 |
51 | |access_token |是 |string | 用户秘钥 |
52 | |status |是 |string | 状态 1: 未开始 2:已结束 |
53 |
54 | **返回示例**
55 |
56 | ```
57 | {
58 | "error_code": 0,
59 | "message": "success",
60 | "data": {
61 | "course" : {
62 | "id" : 1,
63 | "teacher_id" : 1,
64 | "teacher_name" : "",
65 | "start_time" : "",
66 | "course_info" : "",
67 | "status" : 1,
68 | }
69 | }
70 | }
71 | ```
72 |
73 | **返回参数说明**
74 |
75 | |参数名|类型|说明|
76 | |:-----|:-----|-----|
77 | |status| string | 状态 4待处理 5 通过 6 未通过|
78 |
79 | ***
80 |
81 | ## 教师端我的试听
82 | **简要描述:**
83 |
84 | - 教师端我的试听
85 |
86 | **请求URL:**
87 | - ` http://xx.com/api/coursetrial/teacherlists `
88 |
89 | **请求方式:**
90 | - GET
91 |
92 | **参数:**
93 |
94 | |参数名|必选|类型|说明|
95 | |:---- |:---|:----- |----- |
96 | |app_key |是 |string |app标识 |
97 | |access_token |是 |string | 用户秘钥 |
98 | |status |是 |string | 状态 1: 未开始 2:已结束 |
99 |
100 | **返回示例**
101 |
102 | ```
103 | {
104 | "error_code": 0,
105 | "message": "success",
106 | "data": {
107 | "course" : {
108 | "id" : 1,
109 | "student_id" : 1,
110 | "student_name" : "",
111 | "phone" : "15662176002",
112 | "address" : "",
113 | "start_time" : "",
114 | "course_info" : "",
115 | "status" : 1,
116 | }
117 | }
118 | }
119 | ```
120 |
121 | **返回参数说明**
122 |
123 | |参数名|类型|说明|
124 | |:-----|:-----|-----|
125 | |status| string | 状态 4待确认 5 通过 6 未通过|
126 |
127 | ***
128 |
129 | ## 教师端 教师结束试讲
130 | **简要描述:**
131 |
132 | - 教师试讲结束
133 |
134 | **请求URL:**
135 | - ` http://xx.com/api/coursetrial/finishteach `
136 |
137 | **请求方式:**
138 | - GET
139 |
140 | **参数:**
141 |
142 | |参数名|必选|类型|说明|
143 | |:---- |:---|:----- |----- |
144 | |app_key |是 |string |app标识 |
145 | |access_token |是 |string | 用户秘钥 |
146 | |id |是 |string | 试讲课程id |
147 |
148 | **返回示例**
149 |
150 | ```
151 | {
152 | "error_code": 0,
153 | "message": "success",
154 | "data": []
155 | }
156 | ```
157 |
158 | ***
159 |
160 | ## 学生端 通过试讲
161 | **简要描述:**
162 |
163 | - 试讲通过
164 |
165 | **请求URL:**
166 | - ` http://xx.com/api/coursetrial/agree `
167 |
168 | **请求方式:**
169 | - GET
170 |
171 | **参数:**
172 |
173 | |参数名|必选|类型|说明|
174 | |:---- |:---|:----- |----- |
175 | |app_key |是 |string |app标识 |
176 | |access_token |是 |string | 用户秘钥 |
177 | |id |是 |string | 试讲课程id |
178 |
179 | **返回示例**
180 |
181 | ```
182 | {
183 | "error_code": 0,
184 | "message": "success",
185 | "data": []
186 | }
187 | ```
188 |
189 | ***
190 |
191 | ## 学生端 不通过试讲
192 | **简要描述:**
193 |
194 | - 试讲不通过
195 |
196 | **请求URL:**
197 | - ` http://xx.com/api/coursetrial/disagree `
198 |
199 | **请求方式:**
200 | - GET
201 |
202 | **参数:**
203 |
204 | |参数名|必选|类型|说明|
205 | |:---- |:---|:----- |----- |
206 | |app_key |是 |string |app标识 |
207 | |access_token |是 |string | 用户秘钥 |
208 | |id |是 |string | 试讲课程id |
209 | |reason |是 |string | 不通过原因 |
210 |
211 | **返回示例**
212 |
213 | ```
214 | {
215 | "error_code": 0,
216 | "message": "success",
217 | "data": []
218 | }
219 | ```
220 |
221 |
222 |
--------------------------------------------------------------------------------
/product/api_doc/index.md:
--------------------------------------------------------------------------------
1 |
2 | ### 注意: 所有接口都要传两个参数 app_key,access_token
3 |
4 |
5 | ## 首页
6 | **简要描述:**
7 |
8 | - 首页接口
9 |
10 | **请求URL:**
11 | - ` http://xx.com/api/index `
12 |
13 | **请求方式:**
14 | - GET
15 |
16 | **参数:**
17 |
18 | |参数名|必选|类型|说明|
19 | |:---- |:---|:----- |----- |
20 | |app_key |是 |string |app标识 |
21 | |access_token |是 |string | 用户秘钥 |
22 |
23 | **返回示例**
24 |
25 | ```
26 | {
27 | "error_code": 0,
28 | "message": "success",
29 | "data": {
30 | "banner":[
31 | {
32 | "url": "",
33 | "img" :"",
34 | }
35 | ],
36 | "teacher" : [
37 | {
38 | "id" : 1,
39 | "name" : "",
40 | "image" : "",
41 | "subject" : [
42 | {
43 | "id" :1,
44 | "lebel" : "数学",
45 | "sort" : 0
46 | }
47 | ],
48 | "grade" : [
49 | {
50 | "id" :1,
51 | "lebel" : "数学",
52 | "sort
53 | ],
54 | "extend_tag" : [
55 | {
56 | "id" :1,
57 | "lebel" : "已认证",
58 | "sort" : 0
59 | },
60 | {
61 | "id" :1,
62 | "lebel" : "大学生",
63 | "sort" : 0
64 | }
65 | ],
66 | "school" : "",
67 | "source" : 1,
68 | "is_confirm" : 0,
69 | "is_star" : 0,
70 | "teach_time" : 10,
71 | "teach_time" : 10,
72 | }
73 | ],
74 | "subjects":[
75 | {
76 | "id" : 1,
77 | "name" : "",
78 | "icon" : "",
79 | }
80 | ]
81 | }
82 | }
83 | ```
84 |
85 | **返回参数说明**
86 |
87 | data
88 |
89 | |参数名|类型|说明|
90 | |:----- |:-----|----- |
91 | |banner |array |首焦轮播 |
92 | |teacher |array |热推教师 |
93 | |subjects |array |学科 |
94 |
95 |
96 | teacher
97 |
98 | |参数名|类型|说明|
99 | |:----- |:-----|----- |
100 | |source |int |来源类型 1:大学生 2:编制内教师 3:职业教师 |
101 | |is_confirm |int |是否认证 1:已认证 0:未认证 |
102 | |is_star |int |明星教师 1:明星教师 0:普通教师 |
103 | |teach_year |int |教龄|
104 | |teach_time |int |授课时长 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
--------------------------------------------------------------------------------
/product/api_doc/sms.md:
--------------------------------------------------------------------------------
1 |
2 | ## 验证码相关
3 | **简要描述:**
4 |
5 | - 发送验证码
6 |
7 | **请求URL:**
8 | - ` http://xx.com/api/cmn/sms/send `
9 |
10 | **请求方式:**
11 | - POST
12 |
13 | **参数:**
14 |
15 | |参数名|必选|类型|说明|
16 | |:---- |:---|:----- |----- |
17 | |app_key |是 |string |app标识 |
18 | |access_token |否 |string | 用户秘钥 |
19 | |phone |是 |string | 手机号 |
20 | |code_type |是 |int | 验证码类型 1=注册;2=修改密码 |
21 |
22 | **返回示例**
23 |
24 | ```
25 | {
26 | "error_code": 0,
27 | "message": "success",
28 | "data": 'ZC1552688403887217'
29 | }
30 | ```
31 |
32 | **返回参数说明**
33 |
34 | |参数名|类型|说明|
35 | |:----- |:-----|----- |
36 | |data |string |验证码编号,用于验证验证码 |
37 |
38 | ***
39 |
--------------------------------------------------------------------------------
/product/api_doc/struct/simple.md:
--------------------------------------------------------------------------------
1 |
2 | ## 教师精简结构
3 |
4 | **简要描述:**
5 | - 教师精简结构,列表使用
6 |
7 | **返回示例**
8 |
9 | ```
10 | {
11 | "id" : 1,
12 | "name" : "",
13 | "image" : "",
14 | "subject" : [
15 | {
16 | "id" :1,
17 | "lebel" : "数学",
18 | "sort" : 0
19 | }
20 | ],
21 | "grade" : [
22 | {
23 | "id" :1,
24 | "lebel" : "数学",
25 | "sort
26 | }
27 | ],
28 | "extend_tag" : [
29 | {
30 | "id" :1,
31 | "lebel" : "已认证",
32 | "sort" : 0
33 | },
34 | {
35 | "id" :1,
36 | "lebel" : "大学生",
37 | "sort" : 0
38 | }
39 | ],
40 | "school" : "",
41 | "source" : 1,
42 | "is_confirm" : 0,
43 | "is_star" : 0,
44 | "teach_time" : 10,
45 | "teach_time" : 10,
46 | }
47 | ```
48 |
49 | **返回参数说明**
50 |
51 | |参数名|类型|说明|
52 | |:----- |:-----|----- |
53 | |source |int |来源类型 1:大学生 2:编制内教师 3:职业教师 |
54 | |extend_tag |arr |拓展tag |
55 |
56 | ***
57 |
58 |
59 | ## 用户精简结构
60 |
61 | **简要描述:**
62 | - 用户精简结构,列表使用
63 |
64 | **返回示例**
65 |
66 | ```
67 | {
68 | "id" : "",
69 | "phone" : "",
70 | "name" : "",
71 | "image" : "",
72 | "home_address" : "",
73 | "school" : "",
74 | }
75 | ```
76 |
77 | **返回参数说明**
78 |
79 | |参数名|类型|说明|
80 | |:----- |:-----|----- |
81 | |source |int |来源类型 1:大学生 2:编制内教师 3:职业教师 |
82 | |extend_tag |arr |拓展tag |
83 |
84 | ***
85 |
86 |
87 | ## 预约课精简结构
88 |
89 | ***
90 |
91 |
92 | ## 课程精简结构
93 |
94 | ***
--------------------------------------------------------------------------------
/product/api_doc/struct/tableStatus.md:
--------------------------------------------------------------------------------
1 |
2 | ### 试讲表状态
3 |
4 | **数据表:** `course_trial`
5 |
6 |
7 |
8 | *status 字段*
9 |
10 | - 1 新建
11 | - 2 平台审核通过
12 | - 3 平台审核不通过
13 | - 4 教师试讲结束
14 | - 5 用户通过
15 | - 6 用户不通过
16 | - 7 平台排课完成
17 |
18 | ***
19 |
20 | ### 课程表状态
21 |
22 | **数据表:** `course`
23 |
24 |
25 |
26 | *status 字段*
27 |
28 | - 1 新建
29 | - 2 平台审核通过
30 | - 3 平台审核不通过
31 | - 4 已结束
32 |
33 | ***
34 |
35 | ### 课程子表状态
36 |
37 | **数据表:** `course_child`
38 |
39 |
40 |
41 | *status 字段*
42 |
43 | - 1 新建
44 | - 2 已完成
45 | - 3 已取消
46 |
47 | ***
48 |
49 | ### 教师表状态
50 |
51 | **数据表:** `teacher`
52 |
53 |
54 |
55 | *status 字段*
56 |
57 | - 1 未审核
58 | - 2 审核通过
59 | - 3 审核不通过
60 | - 4 注销
61 |
62 | ***
63 |
64 | ### 用户表状态
65 |
66 | **数据表:** `user`
67 |
68 |
69 |
70 | *status 字段*
71 |
72 | - 1 未审核
73 | - 2 审核通过
74 | - 3 审核不通过
75 | - 4 注销
76 |
77 | ***
--------------------------------------------------------------------------------
/product/api_doc/teacher.md:
--------------------------------------------------------------------------------
1 |
2 | ## 教师列表
3 | **简要描述:**
4 |
5 | - 教师筛选列表
6 |
7 | **请求URL:**
8 | - ` http://xx.com/api/teacher/lists `
9 |
10 | **请求方式:**
11 | - GET
12 |
13 | **参数:**
14 |
15 | |参数名|必选|类型|说明|
16 | |:---- |:---|:----- |----- |
17 | |app_key |是 |string |app标识 |
18 | |access_token |是 |string | 用户秘钥 |
19 | |subject |否 |string | 科目 |
20 | |grade |否 |string | 年纪 |
21 | |type |否 |string | 类型 |
22 | |offset |是 |string | 偏移量 |
23 | |limit |是 |string | 每页数量 |
24 |
25 | **返回示例**
26 |
27 | ```
28 | {
29 | "error_code": 0,
30 | "message": "success",
31 | "data": {
32 | "teacher" : [
33 | {
34 | "id" : 1,
35 | "name" : "",
36 | "image" : "",
37 | "subject" : [
38 | {
39 | "id" :1,
40 | "lebel" : "数学",
41 | "sort" : 0
42 | }
43 | ],
44 | "grade" : [
45 | {
46 | "id" :1,
47 | "lebel" : "数学",
48 | "sort
49 | }
50 | ],
51 | "extend_tag" : [
52 | {
53 | "id" :1,
54 | "lebel" : "已认证",
55 | "sort" : 0
56 | },
57 | {
58 | "id" :1,
59 | "lebel" : "大学生",
60 | "sort" : 0
61 | }
62 | ],
63 | "school" : "",
64 | "source" : 1,
65 | "is_confirm" : 0,
66 | "is_star" : 0,
67 | "teach_time" : 10,
68 | "teach_time" : 10,
69 | }
70 | ],
71 | "condition": {
72 | "subject": [
73 | {
74 | "id" : 1,
75 | "name" : "",
76 | "icon" : ""
77 | }
78 | ],
79 | "grade": [
80 | {
81 | "id" : 1,
82 | "name" : "",
83 | "icon" : ""
84 | }
85 | ]
86 | "type": [
87 | {
88 | "id" : 1,
89 | "name" : "",
90 | "icon" : ""
91 | }
92 | ]
93 | }
94 | }
95 | }
96 | ```
97 |
98 | **返回参数说明**
99 |
100 | |参数名|类型|说明|
101 | |:----- |:-----|----- |
102 | |source |int |来源类型 1:大学生 2:编制内教师 3:职业教师 |
103 | |condition |obj |所有筛选项 |
104 |
105 | ***
106 |
107 |
108 | ## 教师详情
109 | **简要描述:**
110 |
111 | - 教师详情页
112 |
113 | **请求URL:**
114 | - ` http://xx.com/api/teacher/info `
115 |
116 | **请求方式:**
117 | - GET
118 |
119 | **参数:**
120 |
121 | |参数名|必选|类型|说明|
122 | |:---- |:---|:----- |----- |
123 | |app_key |是 |string |app标识 |
124 | |access_token |是 |string | 用户秘钥 |
125 | |id |是 |string | 教师id |
126 |
127 | **返回示例**
128 |
129 | ```
130 | {
131 | "error_code": 0,
132 | "message": "success",
133 | "data": {
134 | "teacher" : [
135 | {
136 | "id" : 1,
137 | "name" : "",
138 | "image" : "",
139 | "subject" : ["数学"],
140 | "grade" : ["初一","初二"],
141 | "school" : "",
142 | "source" : 1,
143 | "is_confirm" : ,
144 | "teach_time" : 10,
145 | "price" : "100",
146 | "intro" : "",
147 | "teacher_case" : [
148 | {
149 | "title" : "",
150 | "content" : "",
151 | "start_time" : "",
152 | "end_time" : "",
153 | }
154 | ],
155 | "teacher_experience" : [
156 | {
157 | "title" : "",
158 | "content" : "",
159 | "start_time" : "",
160 | "end_time" : "",
161 | }
162 | ],
163 | "comments" : [
164 | {
165 | "id" : "",
166 | "title" : "",
167 | "content" : "",
168 | "user_id" : "",
169 | "user" : {
170 | "id" : "",
171 | "name" : "",
172 | "phone" : "",
173 | "image" : "",
174 | },
175 | "create_time" : "2017-11-26 11:12:24",
176 | "course_id" : "",
177 | }
178 | ],
179 | "is_collect" : 1,
180 | "is_select" : 1,
181 | }
182 | ],
183 | }
184 | }
185 | ```
186 |
187 | **返回参数说明**
188 |
189 | |参数名|类型|说明|
190 | |:----- |:-----|----- |
191 | |source |int |来源类型 1:大学生 2:编制内教师 3:职业教师 |
192 | |condition |obj |所有筛选项 |
193 | |teacher_case |array |成功案例 |
194 | |teacher_experience |array |教学经验 |
195 | |comments |array |评论 |
196 | |is_collect |int |是否收藏 1:已收藏 0:未收藏 |
197 | |is_select |int |是否预约 1:已预约 0:未预约 |
198 |
199 |
200 |
201 |
202 |
--------------------------------------------------------------------------------
/product/api_doc/user.md:
--------------------------------------------------------------------------------
1 | ##登录
2 | **简要描述:**
3 | - 密码登录接口
4 |
5 | **请求URL:**
6 | - ` http://xx.com/api/user/passwordLogin `
7 |
8 | **请求方式:**
9 | - POST
10 |
11 | **参数:**
12 |
13 | |参数名|必选|类型|说明|
14 | |:---- |:---|:----- |----- |
15 | |app_key |是 |string |app标识 |
16 | |access_token |否 |string | 用户秘钥 |
17 | |phone |是 |string | 手机号 |
18 | |password |密码登录必须 |string | 密码|
19 |
20 | **返回示例**
21 |
22 | ```
23 | {
24 | "error_code": 0,
25 | "message": "success",
26 | "data": {
27 | "token": 'string',
28 | "obj" : {
29 | "id" : 1,
30 | "phone" : "",
31 | "name" : "",
32 | "image" : "",
33 | },
34 | "role_type" :1,
35 | "setpass" : 0
36 | }
37 | }
38 | ```
39 |
40 | **返回参数说明**
41 |
42 | |参数名|类型|说明|
43 | |:-----|:-----|-----|
44 | |token| string | 用户登录token|
45 | |obj| obj | 登录用户精简结构|
46 | |role_type| int | 用户类型 1学生 2教师|
47 | |setpass| int | 首次登录设置密码 0不设置 1设置|
48 |
49 | ***
50 |
51 | **简要描述:**
52 | - 密码登录接口
53 |
54 | **请求URL:**
55 | - ` http://xx.com/api/user/fastLogin `
56 |
57 | **请求方式:**
58 | - POST
59 |
60 | **参数:**
61 |
62 | |参数名|必选|类型|说明|
63 | |:---- |:---|:----- |----- |
64 | |app_key |是 |string |app标识 |
65 | |access_token |否 |string | 用户秘钥 |
66 | |phone |是 |string | 手机号 |
67 | |role_type| int | 用户类型 1学生 2教师|
68 | |code_no |短信登录必须 |string | 验证码编号|
69 | |code |短信登录必须 |string | 手机验证码|
70 |
71 | **返回示例**
72 |
73 | ```
74 | {
75 | "error_code": 0,
76 | "message": "success",
77 | "data": {
78 | "token": 'string',
79 | "obj" : {
80 | "id" : 1,
81 | "phone" : "",
82 | "name" : "",
83 | "image" : "",
84 | },
85 | "role_type" :1,
86 | "setpass" : 0
87 | }
88 | }
89 | ```
90 |
91 | **返回参数说明**
92 |
93 | |参数名|类型|说明|
94 | |:-----|:-----|-----|
95 | |token| string | 用户登录token|
96 | |obj| obj | 登录用户精简结构|
97 | |role_type| int | 用户类型 1学生 2教师|
98 | |setpass| int | 首次登录设置密码 0不设置 1设置|
99 |
100 | ***
101 |
102 |
103 | ##忘记密码
104 | **简要描述:**
105 | - 忘记密码
106 |
107 | **请求URL:**
108 | - ` http://xx.com/api/user/forgetPassword `
109 |
110 | **请求方式:**
111 | - POST
112 |
113 | **参数:**
114 |
115 | |参数名|必选|类型|说明|
116 | |:---- |:---|:----- |----- |
117 | |app_key |是 |string |app标识 |
118 | |access_token |是 |string | 用户秘钥 |
119 | |phone |忘记密码必须 |string | 手机号 |
120 | |code_no |忘记密码必须 |string | 验证码编号|
121 | |code |忘记密码必须 |string | 手机验证码|
122 | |newPass |是 |string ||
123 |
124 | **返回示例**
125 |
126 | ```
127 | {
128 | "error_code": 0,
129 | "message": "success",
130 | "data": []
131 | }
132 | ```
133 |
134 | **返回参数说明**
135 |
136 | |参数名|类型|说明|
137 | |:-----|:-----|-----|
138 |
139 | ***
140 |
141 |
142 | ##修改密码
143 | **简要描述:**
144 | - 修改密码
145 |
146 | **请求URL:**
147 | - ` http://xx.com/api/user/modifyPassword `
148 |
149 | **请求方式:**
150 | - POST
151 |
152 | **参数:**
153 |
154 | |参数名|必选|类型|说明|
155 | |:---- |:---|:----- |----- |
156 | |app_key |是 |string |app标识 |
157 | |access_token |是 |string | 用户秘钥 |
158 | |oldPass |修改密码必须 |string | 旧密码|
159 | |newPass |是 |string |新密码|
160 |
161 | **返回示例**
162 |
163 | ```
164 | {
165 | "error_code": 0,
166 | "message": "success",
167 | "data": []
168 | }
169 | ```
170 |
171 | **返回参数说明**
172 |
173 | |参数名|类型|说明|
174 | |:-----|:-----|-----|
175 |
176 | ***
177 |
178 |
179 | ##第一次忘记密码
180 | **简要描述:**
181 | - 第一次设置密码
182 |
183 | **请求URL:**
184 | - ` http://xx.com/api/user/firstSetPassword `
185 |
186 | **请求方式:**
187 | - POST
188 |
189 | **参数:**
190 |
191 | |参数名|必选|类型|说明|
192 | |:---- |:---|:----- |----- |
193 | |app_key |是 |string |app标识 |
194 | |access_token |是 |string | 用户秘钥 |
195 | |newPass |是 |string |密码|
196 |
197 | **返回示例**
198 |
199 | ```
200 | {
201 | "error_code": 0,
202 | "message": "success",
203 | "data": []
204 | }
205 | ```
206 |
207 | **返回参数说明**
208 |
209 | |参数名|类型|说明|
210 | |:-----|:-----|-----|
211 |
212 | ***
213 |
214 |
215 | ##用户中心
216 | **简要描述:**
217 | - 第一次设置密码
218 |
219 | **请求URL:**
220 | - ` http://xx.com/api/user/info `
221 |
222 | **请求方式:**
223 | - GET
224 |
225 | **参数:**
226 |
227 | |参数名|必选|类型|说明|
228 | |:---- |:---|:----- |----- |
229 | |app_key |是 |string |app标识 |
230 | |access_token |是 |string | 用户秘钥 |
231 |
232 | **返回示例**
233 |
234 | ```
235 | {
236 | "error_code": 0,
237 | "message": "success",
238 | "data": {
239 | "teacher" : {
240 | },
241 | "user" : {
242 | }
243 | }
244 | }
245 | ```
246 |
247 | **返回参数说明**
248 |
249 | |参数名|类型|说明|
250 | |:-----|:-----|-----|
251 | |teacher|obj|当前登录用户是教师时返回|
252 | |user|obj|当前登录用户是家长/学生时返回|
253 |
254 | ***
255 |
256 | ##家长编辑资料
257 | **简要描述:**
258 | - 家长编辑资料
259 |
260 | **请求URL:**
261 | - ` http://xx.com/api/user/setuserinfo `
262 |
263 | **请求方式:**
264 | - POST
265 |
266 | **参数:**
267 |
268 | |参数名|必选|类型|说明|
269 | |:---- |:---|:----- |----- |
270 | |app_key |是 |string |app标识 |
271 | |access_token |是 |string | 用户秘钥 |
272 | |image |否 |string | 用户头像 |
273 | |name |否 |string | 用户昵称 |
274 | |grade |否 |string | 年级 |
275 | |sex |否 |string | 性别 |
276 | |home_address |否 |string | 家庭地址 |
277 | |city |否 |string | 城市 |
278 |
279 | **返回示例**
280 |
281 | ```
282 | {
283 | "error_code": 0,
284 | "message": "success",
285 | "data": {
286 | }
287 | }
288 | ```
289 |
290 | ***
291 |
292 | ##教师编辑资料
293 | **简要描述:**
294 | - 教师编辑资料
295 |
296 | **请求URL:**
297 | - ` http://xx.com/api/user/setuserinfo `
298 |
299 | **请求方式:**
300 | - POST
301 |
302 | **参数:**
303 |
304 | |参数名|必选|类型|说明|
305 | |:---- |:---|:----- |----- |
306 | |app_key |是 |string |app标识 |
307 | |access_token |是 |string | 用户秘钥 |
308 | |image |否 |string | 用户头像 |
309 | |name |否 |string | 用户昵称 |
310 | |grade |否 |string | 年级 |
311 | |sex |否 |string | 性别 |
312 | |home_address |否 |string | 家庭地址 |
313 | |city |否 |string | 城市 |
314 | |school |否 |string | 学校 |
315 | |major |否 |string | 专业 |
316 | |qualification |否 |string | 学历 |
317 | |subject |否 |string | 学科 |
318 | |grade |否 |string | 年级 多选逗号分隔 |
319 | |type |否 |string | 类型 |
320 | |teach_year |否 |string | 教龄 单位 年 |
321 | |price |否 |string | 价格 单位 元/两小时(一节课是两小时) |
322 | |intro |否 |string | 个人简介 |
323 |
324 |
325 | **返回示例**
326 |
327 | ```
328 | {
329 | "error_code": 0,
330 | "message": "success",
331 | "data": {
332 | }
333 | }
334 | ```
335 |
336 | ***
337 |
338 | ##修改教师拓展信息
339 | **简要描述:**
340 | - 修改教师拓展信息
341 |
342 | **请求URL:**
343 | - ` http://xx.com/api/user/setteacherextend `
344 |
345 | **请求方式:**
346 | - POST
347 |
348 | **参数:**
349 |
350 | |参数名|必选|类型|说明|
351 | |:---- |:---|:----- |----- |
352 | |app_key |是 |string |app标识 |
353 | |access_token |是 |string | 用户秘钥 |
354 | |title |否 |string | 标题 |
355 | |content |否 |string | 内容 |
356 | |start_time |否 |string | 开始时间 |
357 | |end_time |否 |string | 结束时间 |
358 | |id |否 |string | id 修改时必填 为空是新增 |
359 | |type |否 |string | 类型 1:成功案例 2:教学经历 |
360 |
361 |
362 |
363 |
364 | **返回示例**
365 |
366 | ```
367 | {
368 | "error_code": 0,
369 | "message": "success",
370 | "data": {
371 | }
372 | }
373 | ```
374 |
375 | ***
376 |
377 | ***
378 |
379 | ##删除教师拓展信息
380 | **简要描述:**
381 | - 删除教师拓展信息
382 |
383 | **请求URL:**
384 | - ` http://xx.com/api/user/delteacherextend `
385 |
386 | **请求方式:**
387 | - POST
388 |
389 | **参数:**
390 |
391 | |参数名|必选|类型|说明|
392 | |:---- |:---|:----- |----- |
393 | |app_key |是 |string |app标识 |
394 | |access_token |是 |string | 用户秘钥 |
395 | |id |否 |string | id 修改时必填 为空是新增 |
396 | |type |否 |string | 类型 1:成功案例 2:教学经历 |
397 |
398 |
399 |
400 |
401 | **返回示例**
402 |
403 | ```
404 | {
405 | "error_code": 0,
406 | "message": "success",
407 | "data": {
408 | }
409 | }
410 | ```
411 |
412 | ***
413 |
414 |
--------------------------------------------------------------------------------
/product/prd/admin/教师管理.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/prd/admin/教师管理.png
--------------------------------------------------------------------------------
/product/prd/admin/用户管理.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/prd/admin/用户管理.png
--------------------------------------------------------------------------------
/product/prd/admin/评价管理.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/prd/admin/评价管理.png
--------------------------------------------------------------------------------
/product/prd/admin/课程订单管理.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/prd/admin/课程订单管理.png
--------------------------------------------------------------------------------
/product/prd/前端资料录入.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/prd/前端资料录入.png
--------------------------------------------------------------------------------
/product/prd/教师招募H5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/prd/教师招募H5.png
--------------------------------------------------------------------------------
/product/prd/教师管理.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/prd/教师管理.png
--------------------------------------------------------------------------------
/product/prd/用户管理.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/prd/用户管理.png
--------------------------------------------------------------------------------
/product/prd/知途家教前端原型.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/prd/知途家教前端原型.png
--------------------------------------------------------------------------------
/product/prd/知途家教前端原型V1.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/prd/知途家教前端原型V1.1.png
--------------------------------------------------------------------------------
/product/prd/评价管理.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/prd/评价管理.png
--------------------------------------------------------------------------------
/product/prd/课程管理.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/prd/课程管理.png
--------------------------------------------------------------------------------
/product/ui/家长端png/家长端-个人中心.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/家长端png/家长端-个人中心.png
--------------------------------------------------------------------------------
/product/ui/家长端png/家长端-个人资料.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/家长端png/家长端-个人资料.png
--------------------------------------------------------------------------------
/product/ui/家长端png/家长端-我的收藏.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/家长端png/家长端-我的收藏.png
--------------------------------------------------------------------------------
/product/ui/家长端png/家长端-我的试讲-已完成.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/家长端png/家长端-我的试讲-已完成.png
--------------------------------------------------------------------------------
/product/ui/家长端png/家长端-我的试讲-未完成.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/家长端png/家长端-我的试讲-未完成.png
--------------------------------------------------------------------------------
/product/ui/家长端png/家长端-我的课程-已结束.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/家长端png/家长端-我的课程-已结束.png
--------------------------------------------------------------------------------
/product/ui/家长端png/家长端-我的课程-进行中.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/家长端png/家长端-我的课程-进行中.png
--------------------------------------------------------------------------------
/product/ui/教师家长相同页面/教师列表--教师类型.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/教师家长相同页面/教师列表--教师类型.png
--------------------------------------------------------------------------------
/product/ui/教师家长相同页面/教师列表-主页.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/教师家长相同页面/教师列表-主页.png
--------------------------------------------------------------------------------
/product/ui/教师家长相同页面/教师列表-学科-选择状态.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/教师家长相同页面/教师列表-学科-选择状态.png
--------------------------------------------------------------------------------
/product/ui/教师家长相同页面/教师列表-学科.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/教师家长相同页面/教师列表-学科.png
--------------------------------------------------------------------------------
/product/ui/教师家长相同页面/教师列表-年级.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/教师家长相同页面/教师列表-年级.png
--------------------------------------------------------------------------------
/product/ui/教师家长相同页面/教师详情.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/教师家长相同页面/教师详情.png
--------------------------------------------------------------------------------
/product/ui/教师家长相同页面/首页.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/教师家长相同页面/首页.png
--------------------------------------------------------------------------------
/product/ui/教师端png/教师端-个人中心.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/教师端png/教师端-个人中心.png
--------------------------------------------------------------------------------
/product/ui/教师端png/教师端-我的试讲-已结束.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/教师端png/教师端-我的试讲-已结束.png
--------------------------------------------------------------------------------
/product/ui/教师端png/教师端-我的试讲-未完成.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/教师端png/教师端-我的试讲-未完成.png
--------------------------------------------------------------------------------
/product/ui/教师端png/教师端-我的课程-已结束.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/教师端png/教师端-我的课程-已结束.png
--------------------------------------------------------------------------------
/product/ui/教师端png/教师端-我的课程-进行中.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/教师端png/教师端-我的课程-进行中.png
--------------------------------------------------------------------------------
/product/ui/教师端png/教师端-编辑个人资料.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/教师端png/教师端-编辑个人资料.png
--------------------------------------------------------------------------------
/product/ui/登录注册修改密码/1-登录-注册.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/登录注册修改密码/1-登录-注册.png
--------------------------------------------------------------------------------
/product/ui/登录注册修改密码/1-设置密码.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/登录注册修改密码/1-设置密码.png
--------------------------------------------------------------------------------
/product/ui/登录注册修改密码/1-账号登录.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/登录注册修改密码/1-账号登录.png
--------------------------------------------------------------------------------
/product/ui/知途家教1.0 界面修改建议 180120---LB.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/ui/知途家教1.0 界面修改建议 180120---LB.docx
--------------------------------------------------------------------------------
/product/项目截图/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/项目截图/0.png
--------------------------------------------------------------------------------
/product/项目截图/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/项目截图/1.png
--------------------------------------------------------------------------------
/product/项目截图/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/项目截图/2.png
--------------------------------------------------------------------------------
/product/项目截图/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/项目截图/3.png
--------------------------------------------------------------------------------
/product/项目截图/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/项目截图/5.png
--------------------------------------------------------------------------------
/product/项目截图/分类.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/项目截图/分类.png
--------------------------------------------------------------------------------
/product/项目截图/家长.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/项目截图/家长.png
--------------------------------------------------------------------------------
/product/项目截图/收藏.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/项目截图/收藏.png
--------------------------------------------------------------------------------
/product/项目截图/教师.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/项目截图/教师.png
--------------------------------------------------------------------------------
/product/项目截图/教师编辑.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/项目截图/教师编辑.png
--------------------------------------------------------------------------------
/product/项目截图/注册.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/项目截图/注册.png
--------------------------------------------------------------------------------
/product/项目截图/登录.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/项目截图/登录.png
--------------------------------------------------------------------------------
/product/项目截图/编辑.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/项目截图/编辑.png
--------------------------------------------------------------------------------
/product/项目截图/详情.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/product/项目截图/详情.png
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
20 |
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/src/assets/logo.png
--------------------------------------------------------------------------------
/src/components/home.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
20 |
21 |
22 | -
23 |
24 |
25 |
26 | {{item.name}}
27 |
28 |
29 |
30 |
31 | 热门教师
32 |
33 |
34 |
35 |
36 |
37 |
105 |
106 |
180 |
--------------------------------------------------------------------------------
/src/components/public/about.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |

5 |
6 |
7 | 知途家教,汇集了众多有丰富教学经验和教学特色的精英教师,
8 | 致力于搭建一个让家长放心、省心的家教平台。我们具有丰富的教师资源,
9 | 让您找好老师,找对老师!提分的捷径, 就是更有针对性的学习,
10 | 告别大班课,知途家教一对一,成绩提高不是梦。
11 |
12 |
13 | - 网站:www.zhituteam.com
14 | - 客服电话:15611004123
15 | - 微信公众号:知途家教
16 |
17 |
18 |
19 |
20 |
60 |
--------------------------------------------------------------------------------
/src/components/public/classification.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ gradeName }}|
5 | {{ subjectName }}|
6 | {{ typeName }}
7 |
8 |
9 | {{item}}
10 |
11 |
12 |
13 |
14 |
15 |
16 |
111 |
112 |
195 |
--------------------------------------------------------------------------------
/src/components/public/fastLogin.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
确认密码
5 |
登录即代表同意《知途家教》相关规定
6 |
7 |
8 |
9 |
51 |
52 |
90 |
--------------------------------------------------------------------------------
/src/components/public/login.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
登 录
6 |
登录即代表同意《知途家教》相关规定
7 |
8 | 没有账号?快捷登录
9 | 忘记密码
10 |
11 |
12 |
13 |
14 |
63 |
64 |
123 |
--------------------------------------------------------------------------------
/src/components/public/register.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 获取验证码
7 | {{yanTime}}秒内有效
8 |
9 |
10 |
我是家长/学生
11 |
我是教师
12 |
13 |
登 录
14 |
登录即代表同意《知途家教》相关规定
15 |
16 |
17 |
18 |
123 |
124 |
192 |
--------------------------------------------------------------------------------
/src/components/teacher/teacher.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
![教师头像]()
5 |
6 |
7 | {{teacher.teacher.name}}
8 | 数
9 | 小
10 | 初
11 | 高
12 | 编辑资料
13 |
14 |
15 | 专职教师
16 | 已认证
17 | 明星教师
18 |
19 |
20 |
21 |
22 | -
23 |
24 | 我的课程
25 |
26 |
27 | -
28 |
29 | 我的试讲
30 |
31 |
32 | -
33 |
34 | 客服电话
35 |
36 |
37 | -
38 |
39 | 关于知途家教
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
90 |
91 |
239 |
--------------------------------------------------------------------------------
/src/components/teacher/teacherInfo.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
21 |
--------------------------------------------------------------------------------
/src/components/teacher/teacherList.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
![教师头像]()
6 |
7 |
8 | {{item.name}}
9 | {{item1.label}}
10 | {{item2.label}}
11 | 授课{{item.teach_time}}小时
12 |
13 |
14 | {{item.teach_year}}年教龄
15 |
16 |
17 | {{item3.label}}
18 |
19 |
20 |
21 |
22 |
23 |
24 |
68 |
69 |
146 |
--------------------------------------------------------------------------------
/src/components/teacher/teacherXiangQing.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
![教师头像]()
5 |
6 |
7 | {{datailData.name}}
8 | {{datailData.subject[0].label}}
9 | {{datailData.grade[0].label}}
10 | {{datailData.price}}
11 |
12 |
13 | {{datailData.teach_year}}年教龄
14 |
15 |
16 | {{datailData.extend_tag[0].label}}
17 | 授课{{datailData.teach_time}}小时
18 |
19 |
20 |
21 |
22 |
23 |
24 | 个人简介
25 |
26 |
{{datailData.intro}}
27 |
28 |
29 |
30 | 教学经历
31 |
32 |
{{datailData.teacher_experience[0].title}}
33 |
34 |
35 |
36 | 成功案例
37 |
38 |
39 |
{{item.title}}
40 |
{{item.content}}
41 |
42 |
43 |
47 |
48 |
49 |
50 |
51 | 收藏
52 | 已收藏
53 |
54 |
55 | 预约试讲
56 | 已预约
57 |
58 |
59 |
60 |
61 |
62 |
154 |
155 |
345 |
--------------------------------------------------------------------------------
/src/components/user/user.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
![]()
6 |
7 |
{{user.user.phone}}
8 |
编辑
9 |
10 |
11 | -
12 |
13 | 我的收藏
14 |
15 |
16 | -
17 |
18 | 查看试讲
19 |
20 |
21 | -
22 |
23 | 我的课堂
24 |
25 |
26 | -
27 |
28 | 客服电话
29 |
30 |
31 | -
32 |
33 | 关于知途家教
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
92 |
93 |
175 |
--------------------------------------------------------------------------------
/src/components/user/userCollect.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
44 |
45 |
53 |
--------------------------------------------------------------------------------
/src/components/user/userCourse.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 未开始
5 | 已结束
6 |
7 |
8 |
9 |
10 |
50 |
51 |
79 |
--------------------------------------------------------------------------------
/src/components/user/userInfo.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
21 |
--------------------------------------------------------------------------------
/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 | import axios from 'axios'
7 | import 'mint-ui/lib/style.css'
8 | // import {Indicator, Toast, InfiniteScroll} from 'mint-ui'
9 |
10 | Vue.config.productionTip = false;
11 |
12 | Vue.prototype.axios = axios;
13 |
14 | const localData = localStorage.getItem('zt_data');
15 | if (localData !== '' && localData) {
16 | const ztData = JSON.parse(localData);
17 | axios.defaults.headers.common['access-token'] = ztData.token;
18 | }
19 |
20 | /* eslint-disable no-new */
21 | new Vue({
22 | el: '#app',
23 | router,
24 | components: { App },
25 | template: ''
26 | })
27 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Router from 'vue-router'
3 | // import Home from '@/components/home'
4 | // import TeacherClass from '@/components/classification'
5 | // import Login from '@/components/public/login'
6 | // import User from '@/components/user/user'
7 |
8 | Vue.use(Router)
9 |
10 | export default new Router({
11 | // mode: 'history',
12 | routes: [
13 | {
14 | path: '/',
15 | name: 'Home',
16 | component: (resolve) => require(['@/components/home'], resolve)
17 | // component: Home
18 | },
19 | {
20 | path: '/teacher_class',
21 | name: 'TeacherClass',
22 | component: (resolve) => require(['@/components/public/classification'], resolve)
23 | // component: TeacherClass
24 | },
25 | {
26 | path: '/login',
27 | name: 'Login',
28 | component: (resolve) => require(['@/components/public/login'], resolve)
29 | // component: Login
30 | },
31 | {
32 | path: '/user',
33 | name: 'User',
34 | component: (resolve) => require(['@/components/user/user'], resolve)
35 | // component: User
36 | },
37 | {
38 | path: '/register',
39 | name: 'Register',
40 | component: (resolve) => require(['@/components/public/register'], resolve)
41 | },
42 | {
43 | path: '/teacher_detail',
44 | name: 'teacherXiangQing',
45 | component: (resolve) => require(['@/components/teacher/teacherXiangQing'], resolve)
46 | },
47 | {
48 | path: '/fastlogin',
49 | name: 'fastLogin',
50 | component: (resolve) => require(['@/components/public/fastLogin'], resolve)
51 | },
52 | {
53 | path: '/teacher',
54 | name: 'Teacher',
55 | component: (resolve) => require(['@/components/teacher/teacher'], resolve)
56 | },
57 | {
58 | path: '/user_info',
59 | name: 'UserInfo',
60 | component: (resolve) => require(['@/components/user/userInfo'], resolve)
61 | },
62 | {
63 | path: '/teacher_info',
64 | name: 'TeacherInfo',
65 | component: (resolve) => require(['@/components/teacher/teacherInfo'], resolve)
66 | },
67 | {
68 | path: '/user_collect',
69 | name: 'UserCollect',
70 | component: (resolve) => require(['@/components/user/userCollect'], resolve)
71 | },
72 | {
73 | path: '/about',
74 | name: 'About',
75 | component: (resolve) => require(['@/components/public/about'], resolve)
76 | },
77 | {
78 | path: '/user_course',
79 | name: 'UserCourse',
80 | component: (resolve) => require(['@/components/user/userCourse'], resolve)
81 | }
82 | ]
83 | })
84 |
--------------------------------------------------------------------------------
/static/css/_mixin.scss:
--------------------------------------------------------------------------------
1 | // rem 基准
2 | $screen-width: 37.5;
3 |
4 | @function rem($px) {
5 | @return $px / $screen-width * 1rem;
6 | }
7 |
--------------------------------------------------------------------------------
/static/css/common.scss:
--------------------------------------------------------------------------------
1 | @import './mixin';
2 |
3 | .mint-cell {
4 | .mint-cell-wrapper {
5 | .mint-cell-value {
6 | span {
7 | font-size: 12px;
8 | }
9 | img {
10 | border-radius: Rem(25);
11 | width: Rem(50);
12 | margin: Rem(5);
13 | }
14 | }
15 | }
16 | }
17 |
18 | .btn-default {
19 | width: 90% !important;
20 | margin: 5% !important;
21 | }
22 |
23 | .nav-header {
24 | background: #fff !important;
25 | color: #000 !important;
26 | }
27 |
28 | .nav-body {
29 | position: absolute;
30 | left: 0;
31 | right: 0;
32 | top: 40px;
33 | }
34 |
--------------------------------------------------------------------------------
/static/img/accept.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/accept.png
--------------------------------------------------------------------------------
/static/img/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/banner.png
--------------------------------------------------------------------------------
/static/img/detail_introduce.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/detail_introduce.png
--------------------------------------------------------------------------------
/static/img/detail_remark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/detail_remark.png
--------------------------------------------------------------------------------
/static/img/detail_reward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/detail_reward.png
--------------------------------------------------------------------------------
/static/img/detail_star_midd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/detail_star_midd.png
--------------------------------------------------------------------------------
/static/img/detail_star_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/detail_star_white.png
--------------------------------------------------------------------------------
/static/img/detail_star_yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/detail_star_yellow.png
--------------------------------------------------------------------------------
/static/img/detail_teacher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/detail_teacher.png
--------------------------------------------------------------------------------
/static/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/logo.png
--------------------------------------------------------------------------------
/static/img/logo_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/logo_share.png
--------------------------------------------------------------------------------
/static/img/me_about_us.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/me_about_us.png
--------------------------------------------------------------------------------
/static/img/me_arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/me_arrow.png
--------------------------------------------------------------------------------
/static/img/me_collect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/me_collect.png
--------------------------------------------------------------------------------
/static/img/me_course.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/me_course.png
--------------------------------------------------------------------------------
/static/img/me_kfphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/me_kfphone.png
--------------------------------------------------------------------------------
/static/img/me_student_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/me_student_default.png
--------------------------------------------------------------------------------
/static/img/me_try.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/me_try.png
--------------------------------------------------------------------------------
/static/img/my.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/my.png
--------------------------------------------------------------------------------
/static/img/userlogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/userlogo.png
--------------------------------------------------------------------------------
/static/img/wechat_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wwenj/zhitu-Tutor/874daf1eb66f5d7ce00537670798c53b3dcf27a0/static/img/wechat_logo.png
--------------------------------------------------------------------------------
/static/js/axiosHeaders.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import axios from 'axios'
3 |
4 | Vue.prototype.axios = axios;
5 | function setHeaders () {
6 | const localData = localStorage.getItem('zt_data');
7 | if (localData !== '' && localData) {
8 | const ztData = JSON.parse(localData);
9 | axios.defaults.headers.common['access-token'] = ztData.token;
10 | }
11 | }
12 |
13 | export default {
14 | setHeaders: setHeaders
15 | }
16 |
--------------------------------------------------------------------------------
/static/js/public.js:
--------------------------------------------------------------------------------
1 | // 获取url中参数
2 | function getQueryStr(key) {
3 | var queryString = location.href.match(new RegExp("[\?\&]" + key + "=([^\&]*)(\&?)", "i")),
4 | val = (queryString && queryString.length > 1 && queryString[1]) || "";
5 | return decodeURIComponent(val);
6 | }
7 |
8 | module.exports = {
9 | getQueryStr: getQueryStr
10 | };
11 |
--------------------------------------------------------------------------------