├── static
├── .gitkeep
└── .idea
│ ├── modules.xml
│ ├── static.iml
│ ├── misc.xml
│ └── workspace.xml
├── .eslintignore
├── config
├── prod.env.js
├── test.env.js
├── dev.env.js
└── index.js
├── src
├── vuex
│ ├── modules
│ │ ├── home.js
│ │ ├── app.js
│ │ ├── userAchievement.js
│ │ ├── userCard.js
│ │ └── errorNote.js
│ ├── getters.js
│ ├── types.js
│ ├── store.js
│ └── actions.js
├── assets
│ ├── img
│ │ ├── pk.png
│ │ ├── up.png
│ │ ├── down.png
│ │ ├── fav.png
│ │ ├── home.png
│ │ ├── lock.png
│ │ ├── logo.png
│ │ ├── math.png
│ │ ├── mine.png
│ │ ├── vip.png
│ │ ├── account.png
│ │ ├── action.png
│ │ ├── avtar.png
│ │ ├── bind-bg.png
│ │ ├── biology.png
│ │ ├── chinese.png
│ │ ├── clock.png
│ │ ├── english.png
│ │ ├── history.png
│ │ ├── money.png
│ │ ├── paper.png
│ │ ├── physics.png
│ │ ├── profile.png
│ │ ├── analysis.png
│ │ ├── avtar-bg.png
│ │ ├── chemistry.png
│ │ ├── error-fix.png
│ │ ├── exercise.png
│ │ ├── geography.png
│ │ ├── politics.png
│ │ ├── relation.png
│ │ ├── analysis-nav.png
│ │ ├── arrow_down.png
│ │ ├── compensate.png
│ │ ├── dialog-logo.png
│ │ ├── error-book.png
│ │ ├── error-fix-bg.png
│ │ ├── exercise-nav.png
│ │ ├── home-active.png
│ │ ├── logo-white.png
│ │ ├── mine-active.png
│ │ ├── penceil-logo.png
│ │ ├── profile-bg.png
│ │ ├── action-active.png
│ │ ├── compensate-bg.png
│ │ ├── dialog-logo-ok.png
│ │ ├── error-book-bg.png
│ │ ├── analysis-active.png
│ │ └── exercise-active.png
│ ├── logo.png
│ ├── scss
│ │ ├── wy-mint.scss
│ │ └── base.scss
│ └── css
│ │ └── app.css
├── service
│ ├── constant.js
│ ├── feCache.js
│ ├── util.js
│ ├── httpInterceptor.js
│ ├── authenticateService.js
│ └── httpService.js
├── components
│ ├── Klass.vue
│ ├── Analysis.vue
│ ├── errorNote
│ │ ├── ErrorQuestions.vue
│ │ ├── QuestionCard.vue
│ │ ├── ErrorNote.vue
│ │ ├── ErrorQuestionDetail.vue
│ │ └── SubjectCarousel.vue
│ ├── Action.vue
│ ├── mine
│ │ ├── UseInfo.vue
│ │ ├── AchievementDetail.vue
│ │ └── Achievement.vue
│ ├── common
│ │ ├── wyInput.vue
│ │ ├── wySelect.vue
│ │ └── wyDialog.vue
│ ├── Mine.vue
│ ├── home
│ │ ├── Schedule.vue
│ │ ├── noticeCard.vue
│ │ └── UserCard.vue
│ ├── Exercise.vue
│ ├── Home.vue
│ ├── exercise
│ │ ├── SameQuestionTest.vue
│ │ ├── PaperSelectCard.vue
│ │ └── ErrorFix.vue
│ └── bind
│ │ └── Bind.vue
├── api
│ └── index.js
├── MainEntry.vue
├── filter
│ └── wyFilter.js
├── config.js
├── main.js
├── routerConfig.js
└── App.vue
├── .babelrc
├── .gitignore
├── .idea
├── dictionaries
│ └── Administrator.xml
├── watcherTasks.xml
├── vcs.xml
├── modules.xml
├── jsLibraryMappings.xml
├── wechat.iml
├── webResources.xml
├── libraries
│ └── wechat_node_modules.xml
├── file.template.settings.xml
└── misc.xml
├── test
└── e2e
│ ├── specs
│ └── test.js
│ ├── custom-assertions
│ └── elementCount.js
│ ├── nightwatch.conf.js
│ └── runner.js
├── README.md
├── package.json
└── index.html
/static/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | build/*.js
2 | config/*.js
3 |
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"production"'
3 | }
4 |
--------------------------------------------------------------------------------
/src/vuex/modules/home.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/5.
3 | */
4 |
--------------------------------------------------------------------------------
/src/assets/img/pk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/pk.png
--------------------------------------------------------------------------------
/src/assets/img/up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/up.png
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/logo.png
--------------------------------------------------------------------------------
/src/assets/img/down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/down.png
--------------------------------------------------------------------------------
/src/assets/img/fav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/fav.png
--------------------------------------------------------------------------------
/src/assets/img/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/home.png
--------------------------------------------------------------------------------
/src/assets/img/lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/lock.png
--------------------------------------------------------------------------------
/src/assets/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/logo.png
--------------------------------------------------------------------------------
/src/assets/img/math.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/math.png
--------------------------------------------------------------------------------
/src/assets/img/mine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/mine.png
--------------------------------------------------------------------------------
/src/assets/img/vip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/vip.png
--------------------------------------------------------------------------------
/src/assets/img/account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/account.png
--------------------------------------------------------------------------------
/src/assets/img/action.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/action.png
--------------------------------------------------------------------------------
/src/assets/img/avtar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/avtar.png
--------------------------------------------------------------------------------
/src/assets/img/bind-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/bind-bg.png
--------------------------------------------------------------------------------
/src/assets/img/biology.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/biology.png
--------------------------------------------------------------------------------
/src/assets/img/chinese.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/chinese.png
--------------------------------------------------------------------------------
/src/assets/img/clock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/clock.png
--------------------------------------------------------------------------------
/src/assets/img/english.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/english.png
--------------------------------------------------------------------------------
/src/assets/img/history.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/history.png
--------------------------------------------------------------------------------
/src/assets/img/money.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/money.png
--------------------------------------------------------------------------------
/src/assets/img/paper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/paper.png
--------------------------------------------------------------------------------
/src/assets/img/physics.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/physics.png
--------------------------------------------------------------------------------
/src/assets/img/profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/profile.png
--------------------------------------------------------------------------------
/src/assets/img/analysis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/analysis.png
--------------------------------------------------------------------------------
/src/assets/img/avtar-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/avtar-bg.png
--------------------------------------------------------------------------------
/src/assets/img/chemistry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/chemistry.png
--------------------------------------------------------------------------------
/src/assets/img/error-fix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/error-fix.png
--------------------------------------------------------------------------------
/src/assets/img/exercise.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/exercise.png
--------------------------------------------------------------------------------
/src/assets/img/geography.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/geography.png
--------------------------------------------------------------------------------
/src/assets/img/politics.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/politics.png
--------------------------------------------------------------------------------
/src/assets/img/relation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/relation.png
--------------------------------------------------------------------------------
/src/assets/img/analysis-nav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/analysis-nav.png
--------------------------------------------------------------------------------
/src/assets/img/arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/arrow_down.png
--------------------------------------------------------------------------------
/src/assets/img/compensate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/compensate.png
--------------------------------------------------------------------------------
/src/assets/img/dialog-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/dialog-logo.png
--------------------------------------------------------------------------------
/src/assets/img/error-book.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/error-book.png
--------------------------------------------------------------------------------
/src/assets/img/error-fix-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/error-fix-bg.png
--------------------------------------------------------------------------------
/src/assets/img/exercise-nav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/exercise-nav.png
--------------------------------------------------------------------------------
/src/assets/img/home-active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/home-active.png
--------------------------------------------------------------------------------
/src/assets/img/logo-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/logo-white.png
--------------------------------------------------------------------------------
/src/assets/img/mine-active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/mine-active.png
--------------------------------------------------------------------------------
/src/assets/img/penceil-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/penceil-logo.png
--------------------------------------------------------------------------------
/src/assets/img/profile-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/profile-bg.png
--------------------------------------------------------------------------------
/src/assets/img/action-active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/action-active.png
--------------------------------------------------------------------------------
/src/assets/img/compensate-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/compensate-bg.png
--------------------------------------------------------------------------------
/src/assets/img/dialog-logo-ok.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/dialog-logo-ok.png
--------------------------------------------------------------------------------
/src/assets/img/error-book-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/error-book-bg.png
--------------------------------------------------------------------------------
/src/service/constant.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/4.
3 | */
4 | export default {
5 |
6 | }
--------------------------------------------------------------------------------
/src/service/feCache.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/11.
3 | */
4 | export const cache = {
5 |
6 | };
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["es2015", "stage-2"],
3 | "plugins": ["transform-runtime"],
4 | "comments": false
5 | }
6 |
--------------------------------------------------------------------------------
/src/assets/img/analysis-active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/analysis-active.png
--------------------------------------------------------------------------------
/src/assets/img/exercise-active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hquestion/wechat-vue/HEAD/src/assets/img/exercise-active.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log
5 | selenium-debug.log
6 | test/unit/coverage
7 | test/e2e/reports
8 |
--------------------------------------------------------------------------------
/.idea/dictionaries/Administrator.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.idea/watcherTasks.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/config/test.env.js:
--------------------------------------------------------------------------------
1 | var merge = require('webpack-merge')
2 | var devEnv = require('./dev.env')
3 |
4 | module.exports = merge(devEnv, {
5 | NODE_ENV: '"testing"'
6 | })
7 |
--------------------------------------------------------------------------------
/config/dev.env.js:
--------------------------------------------------------------------------------
1 | var merge = require('webpack-merge')
2 | var prodEnv = require('./prod.env')
3 |
4 | module.exports = merge(prodEnv, {
5 | NODE_ENV: '"production"'
6 | })
7 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/vuex/getters.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/6.
3 | */
4 | export const getAppTitle = function({state}){
5 | return state.app.title;
6 | };
7 |
8 | export const getUserCardInfo = ({state}) => state.userCard.user;
--------------------------------------------------------------------------------
/src/assets/scss/wy-mint.scss:
--------------------------------------------------------------------------------
1 | @import './base';
2 | .mint-header {
3 | background-color: $green;
4 | font-size: 18px;
5 | height: 50px;
6 | line-height: 50px;
7 | }
8 | .mint-tabbar>.mint-tab-item.is-selected {
9 | background: inherit;
10 | color: $green;
11 | }
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/static/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/static/.idea/static.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/service/util.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/5.
3 | */
4 | export default {
5 | deepCopy: function(arr){
6 | return JSON.parse(JSON.stringify(arr));
7 | },
8 | pluck: function(arr, key){
9 | return arr.map(function(item){
10 | return item[key];
11 | });
12 | }
13 | }
--------------------------------------------------------------------------------
/.idea/jsLibraryMappings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/wechat.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/components/Klass.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | 班级
4 |
5 |
6 |
18 |
--------------------------------------------------------------------------------
/src/vuex/modules/app.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/5.
3 | */
4 | import { INIT_TITLE } from '../types'
5 |
6 | // 该模块的初始状态
7 | const state = {
8 | title: '云智教育服务'
9 | };
10 |
11 | // 相关的 mutations
12 | const mutations = {
13 | [INIT_TITLE] (state, title) {
14 | state.title = title;
15 | }
16 | };
17 |
18 | export default {
19 | state,
20 | mutations
21 | }
--------------------------------------------------------------------------------
/.idea/webResources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/components/Analysis.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | 分析页面
4 |
5 |
6 |
11 |
--------------------------------------------------------------------------------
/test/e2e/specs/test.js:
--------------------------------------------------------------------------------
1 | // For authoring Nightwatch tests, see
2 | // http://nightwatchjs.org/guide#usage
3 |
4 | module.exports = {
5 | 'default e2e tests': function (browser) {
6 | browser
7 | .url('http://localhost:8080')
8 | .waitForElementVisible('#app', 5000)
9 | .assert.elementPresent('.logo')
10 | .assert.containsText('h1', 'Hello World!')
11 | .assert.elementCount('p', 3)
12 | .end()
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/assets/scss/base.scss:
--------------------------------------------------------------------------------
1 | $baseFontSize: 18;
2 | $baseFontFamily: '微软雅黑','microsoft yahei','Arial';
3 | $baseWidth: 525;
4 | $white: #FFF;
5 | $green: #3B9A82;
6 | $black: #000;
7 | $grey: #CCC;
8 | $golden: #E9D445;
9 | $red: #F26D6E;
10 | $bgGrey: #EFEEEA;
11 | $orange: #F69200;
12 | $textGrey: #6b6b6b;
13 | $textDrak: #404040;
14 |
15 | $font18: 1rem;
16 | $font24: 24 / $baseFontSize +rem;
17 |
18 | @function toPercent($n){
19 | @return $n * 100%;
20 | }
--------------------------------------------------------------------------------
/src/vuex/modules/userAchievement.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/12.
3 | */
4 | import { GET_USER_ACHIEVEMENT } from '../types';
5 | import api from '../../api';
6 |
7 | // 该模块的初始状态
8 | const state = {
9 | achievement: {}
10 | };
11 |
12 | // 相关的 mutations
13 | const mutations = {
14 | [GET_USER_ACHIEVEMENT] (state, achievement) {
15 | state.achievement = achievement;
16 | }
17 | };
18 |
19 | export default {
20 | state,
21 | mutations
22 | }
--------------------------------------------------------------------------------
/.idea/libraries/wechat_node_modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/service/httpInterceptor.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/1.
3 | */
4 | import { Indicator } from 'mint-ui';
5 | var loadingTimer = null;
6 |
7 | export const request = function(req, next){
8 | Indicator.open({
9 | text: '拼命加载中...',
10 | spinnerType: 'fading-circle'
11 | });
12 | next();
13 | };
14 |
15 | export const response = function(res, next){
16 | clearTimeout(loadingTimer);
17 | loadingTimer = setTimeout(()=>{
18 | Indicator.close();
19 | }, 300);
20 | next();
21 | };
--------------------------------------------------------------------------------
/.idea/file.template.settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/vuex/modules/userCard.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/7.
3 | */
4 | import { SET_USER_CARD, USER_SIGN_FAIL, USER_SIGN_SUCCESS } from '../types';
5 |
6 | // 该模块的初始状态
7 | const state = {
8 | user: {}
9 | };
10 |
11 | // 相关的 mutations
12 | const mutations = {
13 | [SET_USER_CARD] (state, user) {
14 | state.user = Object.assign({}, state.user, user);
15 | },
16 | [USER_SIGN_SUCCESS](state, user) {
17 | state.user = {...state.user, signDays: (state.user.signDays || 0) + 1, isSign: true};
18 | }
19 | };
20 |
21 | export default {
22 | state,
23 | mutations
24 | }
--------------------------------------------------------------------------------
/src/vuex/types.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/5.
3 | */
4 | export const INIT_TITLE = 'INIT_TITLE';
5 | export const SET_USER_CARD = 'SET_USER_CARD';
6 | export const USER_SIGN_SUCCESS = 'USER_SIGN_SUCCESS';
7 | export const USER_SIGN_FAIL = 'USER_SIGN_FAIL';
8 | export const GET_USER_ACHIEVEMENT = 'GET_USER_ACHIEVEMENT';
9 | export const GET_SUBJECTS = 'GET_SUBJECTS';
10 | export const GET_ERROR_QUESTIONS_SUCCESS = 'GET_ERROR_QUESTIONS_SUCCESS';
11 | export const GET_ERROR_QUESTIONS_FAIL = 'GET_ERROR_QUESTIONS_FAIL';
12 | export const REMOVE_QST_FAIL = 'REMOVE_QST_FAIL';
13 | export const REMOVE_QST_SUCCESS = 'REMOVE_QST_SUCCESS';
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 51jyfw-wechat
2 |
3 | > 51教育服务微信项目
4 |
5 | ## Develope with
6 |
7 | > Vue.js
8 |
9 | > Vue-router
10 |
11 | > Vue-resource
12 |
13 | > Vue-touch
14 |
15 | > Mint-UI
16 |
17 | > Babel
18 |
19 | > Webpack
20 |
21 | > Npm
22 |
23 | > Vuex
24 |
25 | ## Build Setup
26 |
27 | ``` bash
28 | # install dependencies
29 | npm install
30 |
31 | # serve with hot reload at localhost:8080
32 | npm run dev
33 |
34 | # build for production with minification
35 | npm run build
36 | ```
37 |
38 | ##Router Config解读
39 | ###name
40 | 路由名称,可以通过name跳转路由
41 | ###title
42 | 设置页面标题
43 | ###belong
44 | 设置页面导航焦点,匹配导航菜单id:home,action,klass,analysis,exercise
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/static/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | C:\Users\Administrator\AppData\Roaming\Subversion
15 |
16 |
--------------------------------------------------------------------------------
/src/vuex/store.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/5.
3 | */
4 | import Vue from 'vue'
5 | import Vuex from 'vuex'
6 | import * as actions from './actions'
7 | // 导入各个模块的初始状态和 mutations
8 | // import cart from './modules/cart'
9 | // import products from './modules/products'
10 | import app from './modules/app';
11 | import userCard from './modules/userCard';
12 | import userAchievement from './modules/userAchievement';
13 | import errorNote from './modules/errorNote';
14 |
15 | Vue.use(Vuex);
16 |
17 | export default new Vuex.Store({
18 | // 组合各个模块
19 | modules: {
20 | // cart,
21 | // products
22 | app,
23 | userCard,
24 | userAchievement,
25 | errorNote
26 | },
27 | strict: true,
28 | plugins: []
29 | })
--------------------------------------------------------------------------------
/src/components/errorNote/ErrorQuestions.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
20 |
--------------------------------------------------------------------------------
/config/index.js:
--------------------------------------------------------------------------------
1 | // see http://vuejs-templates.github.io/webpack for documentation.
2 | var path = require('path')
3 |
4 | module.exports = {
5 | build: {
6 | env: require('./prod.env'),
7 | index: path.resolve(__dirname, '../dist/index.html'),
8 | assetsRoot: path.resolve(__dirname, '../dist'),
9 | assetsSubDirectory: 'static',
10 | assetsPublicPath: '',
11 | productionSourceMap: true,
12 | // Gzip off by default as many popular static hosts such as
13 | // Surge or Netlify already gzip all static assets for you.
14 | // Before setting to `true`, make sure to:
15 | // npm install --save-dev compression-webpack-plugin
16 | productionGzip: false,
17 | productionGzipExtensions: ['js', 'css'],
18 | devtool: 'source-map'
19 | },
20 | dev: {
21 | env: require('./dev.env'),
22 | port: 8080,
23 | proxyTable: {}
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/api/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/7.
3 | */
4 | import httpService from '../service/httpService';
5 | export default {
6 | userSign: function(user){
7 | return new Promise(function(resolve, reject){
8 | resolve(user);
9 | });
10 | },
11 | getUserUseInfo: function(){
12 | return httpService.post('/WXInterface037.ashx');
13 | },
14 | getSubjects: function(){
15 | return httpService.post('/WXInterface031.ashx');
16 | },
17 | getErrorQuestionsBySubject: function(subjectId, page){
18 | return httpService.post('/WXInterface002.ashx', {
19 | CurPage: page || 1,
20 | SubjectId: subjectId
21 | });
22 | },
23 | removeQstFromErrorQustions: function(id){
24 | return new Promise(function(resolve, reject){
25 | resolve(id);
26 | });
27 | }
28 | }
--------------------------------------------------------------------------------
/test/e2e/custom-assertions/elementCount.js:
--------------------------------------------------------------------------------
1 | // A custom Nightwatch assertion.
2 | // the name of the method is the filename.
3 | // can be used in tests like this:
4 | //
5 | // browser.assert.elementCount(selector, count)
6 | //
7 | // for how to write custom assertions see
8 | // http://nightwatchjs.org/guide#writing-custom-assertions
9 | exports.assertion = function (selector, count) {
10 | this.message = 'Testing if element <' + selector + '> has count: ' + count
11 | this.expected = count
12 | this.pass = function (val) {
13 | return val === this.expected
14 | }
15 | this.value = function (res) {
16 | return res.value
17 | }
18 | this.command = function (cb) {
19 | var self = this
20 | return this.api.execute(function (selector) {
21 | return document.querySelectorAll(selector).length
22 | }, [selector], function (res) {
23 | cb.call(self, res)
24 | })
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/MainEntry.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
--------------------------------------------------------------------------------
/src/filter/wyFilter.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/5.
3 | */
4 | ;(function(){
5 | "use strict";
6 | var wyFilter = {};
7 | wyFilter.install= function(vue){
8 | vue.filter('arrayToStr', function(input, key, splitor){
9 | if(Array.isArray(input)) {
10 | var pluck = input.map(function(item){
11 | return typeof key === 'undefined' ? item : item[key];
12 | });
13 | return pluck.join(splitor);
14 | }else {
15 | return input;
16 | }
17 | });
18 | };
19 | if (typeof exports == "object") {
20 | module.exports = wyFilter;
21 | } else if (typeof define == "function" && define.amd) {
22 | define([], function(){
23 | return wyFilter
24 | });
25 | } else if (window.Vue) {
26 | window.VueTouch = wyFilter;
27 | Vue.use(wyFilter)
28 | }
29 | })();
--------------------------------------------------------------------------------
/src/vuex/modules/errorNote.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by 贺小雷 on 2016/7/16.
3 | */
4 | import { GET_SUBJECTS, GET_ERROR_QUESTIONS_SUCCESS,GET_ERROR_QUESTIONS_FAIL, REMOVE_QST_SUCCESS, REMOVE_QST_FAIL } from '../types';
5 |
6 | // 该模块的初始状态
7 | const state = {
8 | subjects: [],
9 | questions: []
10 | };
11 |
12 | // 相关的 mutations
13 | const mutations = {
14 | [GET_SUBJECTS] (state, subject) {
15 | state.subjects = subject;
16 | },
17 | [GET_ERROR_QUESTIONS_SUCCESS] (state, questions){
18 | state.questions = questions.msg;
19 | },
20 | [GET_ERROR_QUESTIONS_FAIL] (state, res){
21 | state.questions = [];
22 | },
23 | [REMOVE_QST_SUCCESS] (state, id) {
24 | var index = -1;
25 | index = state.questions.findIndex(function(item){
26 | return item.questionId === id;
27 | });
28 | if(index >= 0) {
29 | state.questions.splice(index, 1);
30 | }
31 | }
32 | };
33 |
34 | export default {
35 | state,
36 | mutations
37 | }
--------------------------------------------------------------------------------
/test/e2e/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | // http://nightwatchjs.org/guide#settings-file
2 | module.exports = {
3 | "src_folders": ["test/e2e/specs"],
4 | "output_folder": "test/e2e/reports",
5 | "custom_assertions_path": ["test/e2e/custom-assertions"],
6 |
7 | "selenium": {
8 | "start_process": true,
9 | "server_path": "node_modules/selenium-server/lib/runner/selenium-server-standalone-2.53.0.jar",
10 | "host": "127.0.0.1",
11 | "port": 4444,
12 | "cli_args": {
13 | "webdriver.chrome.driver": require('chromedriver').path
14 | }
15 | },
16 |
17 | "test_settings": {
18 | "default": {
19 | "selenium_port": 4444,
20 | "selenium_host": "localhost",
21 | "silent": true
22 | },
23 |
24 | "chrome": {
25 | "desiredCapabilities": {
26 | "browserName": "chrome",
27 | "javascriptEnabled": true,
28 | "acceptSslCerts": true
29 | }
30 | },
31 |
32 | "firefox": {
33 | "desiredCapabilities": {
34 | "browserName": "firefox",
35 | "javascriptEnabled": true,
36 | "acceptSslCerts": true
37 | }
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/test/e2e/runner.js:
--------------------------------------------------------------------------------
1 | // 1. start the dev server using production config
2 | process.env.NODE_ENV = 'testing'
3 | var server = require('../../build/dev-server.js')
4 |
5 | // 2. run the nightwatch test suite against it
6 | // to run in additional browsers:
7 | // 1. add an entry in test/e2e/nightwatch.conf.json under "test_settings"
8 | // 2. add it to the --env flag below
9 | // or override the environment flag, for example: `npm run e2e -- --env chrome,firefox`
10 | // For more information on Nightwatch's config file, see
11 | // http://nightwatchjs.org/guide#settings-file
12 | var opts = process.argv.slice(2)
13 | if (opts.indexOf('--config') === -1) {
14 | opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js'])
15 | }
16 | if (opts.indexOf('--env') === -1) {
17 | opts = opts.concat(['--env', 'chrome'])
18 | }
19 |
20 | var spawn = require('cross-spawn')
21 | var runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' })
22 |
23 | runner.on('exit', function (code) {
24 | server.close()
25 | process.exit(code)
26 | })
27 |
28 | runner.on('error', function (err) {
29 | server.close()
30 | throw err
31 | })
32 |
--------------------------------------------------------------------------------
/src/components/Action.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
--------------------------------------------------------------------------------
/src/config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/4.
3 | */
4 | var chineseImg = require('./assets/img/chinese.png'),
5 | mathImg = require('./assets/img/math.png'),
6 | englishImg = require('./assets/img/english.png'),
7 | physicsImg = require('./assets/img/physics.png'),
8 | chemistryImg = require('./assets/img/chemistry.png'),
9 | geographyImg = require('./assets/img/geography.png'),
10 | biologyImg = require('./assets/img/biology.png'),
11 | historyImg = require('./assets/img/history.png'),
12 | politicsImg = require('./assets/img/politics.png');
13 | export default {
14 | DOMAIN: 'http://www.51jyfw.com',
15 | ROUTER: '/BootStrap/WX',
16 | subjectIconMap: {
17 | '语文': chineseImg,
18 | '数学': mathImg,
19 | '英语': englishImg,
20 | '历史': historyImg,
21 | '地理': geographyImg,
22 | '政治': politicsImg,
23 | '生物': biologyImg,
24 | '物理': physicsImg,
25 | '化学': chemistryImg
26 | },
27 | subjectColorMap: {
28 | '语文': '#44B9EE',
29 | '数学': '#2FA08B',
30 | '英语': '#F49E2F',
31 | '历史': '#F26D6E',
32 | '地理': '#44B9EE',
33 | '政治': '#44B9EE',
34 | '生物': '#2FA08B',
35 | '物理': '#F26D6E',
36 | '化学': '#2FA08B'
37 | }
38 |
39 | }
--------------------------------------------------------------------------------
/src/service/authenticateService.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/1.
3 | */
4 | // import VueResource from 'vue-resource'
5 | import httpService from './httpService';
6 | import { cache } from './feCache';
7 | var isAuth;
8 | export default {
9 | isAuth : function(id){
10 | var that = this;
11 | return new Promise(function(resolve, reject){
12 | if(typeof isAuth !== 'undefined') {
13 | isAuth ? resolve(true) : reject(false);
14 | }else {
15 | httpService.post('/WX_Login.ashx', {
16 | key: id
17 | }).then(function(res){
18 | isAuth = true;
19 | that.cacheUserInfo(res.msg).then(function(){
20 | resolve(true);
21 | });
22 | }, function(res){
23 | isAuth = false;
24 | reject(false);
25 | });
26 | }
27 | });
28 | },
29 | updateAuth: function(boo){
30 | isAuth = boo;
31 | },
32 | cacheUserInfo: function(id){
33 | return httpService.post('/WXInterface011.ashx', {
34 | userid: id
35 | }).then(function(res){
36 | cache.userInfo = res;
37 | });
38 | }
39 | }
--------------------------------------------------------------------------------
/src/service/httpService.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by hexiaolei on 2016/7/4.
3 | */
4 | import config from '../config';
5 | import Vue from 'vue';
6 | import VueResource from 'vue-resource';
7 | import {request, response} from '../service/httpInterceptor';
8 |
9 | Vue.use(VueResource);
10 |
11 | Vue.http.options.emulateJSON = true;
12 | Vue.http.options.crossOrigin = true;
13 | Vue.http.options.emulateHTTP = true;
14 | Vue.http.interceptors.push(request, response);
15 |
16 | export default {
17 | post: function(url, data){
18 | url = config.DOMAIN + config.ROUTER + url;
19 | return new Promise(function(resolve, reject){
20 | Vue.http({
21 | url: url,
22 | method: 'POST',
23 | body: JSON.stringify(data)
24 | }).then(function(res){
25 | res.data = JSON.parse(res.data);
26 | if(+res.data.code === 0) {
27 | resolve(res.data);
28 | }else if(!res.data.code) {
29 | resolve(res.data);
30 | }else {
31 | reject(res.data);
32 | }
33 | }, function(res){
34 | reject(res.data);
35 | });
36 | });
37 | },
38 | get: function(url, data){
39 |
40 | }
41 | }
--------------------------------------------------------------------------------
/src/components/errorNote/QuestionCard.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
来源:
4 |
5 |
易考指数:
6 |
易错指数:
7 |
难度系数:
8 |
9 |
10 |
11 |
12 |
26 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Main from './MainEntry';
3 | import MintUI from 'mint-ui';
4 | import 'animate.css/animate.min.css';
5 | import 'mint-ui/lib/style.css';
6 | import './assets/css/app.css';
7 | import VueRouter from 'vue-router';
8 | import VueResource from 'vue-resource';
9 | import VueTouch from 'vue-touch';
10 | import {request, response} from './service/httpInterceptor';
11 | import { configRouter } from './routerConfig';
12 | import WyFilter from './filter/wyFilter';
13 |
14 | require('es6-promise').polyfill();
15 |
16 | Vue.config.debug = true;
17 |
18 | Vue.use(MintUI);
19 | Vue.use(VueRouter);
20 | Vue.use(VueResource);
21 | Vue.use(VueTouch);
22 | Vue.use(WyFilter);
23 | /* eslint-disable no-new */
24 | Vue.config.devtools = true;
25 | Vue.http.options.emulateJSON = true;
26 | Vue.http.options.crossOrigin = true;
27 | // Vue.http.options.xhr = {withCredentials: true};
28 | Vue.http.options.emulateHTTP = true;
29 | Vue.http.interceptors.push(request, response);
30 |
31 | Vue.transition('bounce', {
32 | enterClass: 'fadeIn',
33 | leaveClass: 'fadeOut'
34 | });
35 |
36 | var myApp = Vue.extend(Main);
37 | var router = new VueRouter({
38 | hashbang: true,
39 | history: false,
40 | saveScrollPosition: false,
41 | transitionOnLoad: true
42 | });
43 |
44 | configRouter(router);
45 | router.start(myApp, '#App');
--------------------------------------------------------------------------------
/src/components/mine/UseInfo.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
您已经使用51教育服务天,总成绩提升分,
10 | 击败了%的同学,再接再励!
11 |
12 |
13 |
22 |
--------------------------------------------------------------------------------
/src/components/common/wyInput.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
18 |
--------------------------------------------------------------------------------
/src/vuex/actions.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/7/5.
3 | */
4 | import { INIT_TITLE, SET_USER_CARD , USER_SIGN_FAIL, USER_SIGN_SUCCESS, GET_USER_ACHIEVEMENT,
5 | GET_SUBJECTS, GET_ERROR_QUESTIONS_SUCCESS,GET_ERROR_QUESTIONS_FAIL,REMOVE_QST_SUCCESS, REMOVE_QST_FAIL} from './types';
6 | import api from '../api';
7 |
8 | export const initTitle = ({dispatch}, title) => {
9 | dispatch(INIT_TITLE, title);
10 | };
11 |
12 | export const setUserCard = ({dispatch}, user) => {
13 | dispatch(SET_USER_CARD, user);
14 | };
15 |
16 | export const userSign = ({dispatch}, user) =>{
17 | return api.userSign(user).then((res)=>{
18 | dispatch(USER_SIGN_SUCCESS, res);
19 | },(res)=>{
20 | dispatch(USER_SIGN_FAIL, res);
21 | });
22 | };
23 |
24 | export const getUserAchievement = ({dispatch}) => {
25 | api.getUserUseInfo().then(function(res){
26 | dispatch(GET_USER_ACHIEVEMENT, res);
27 | });
28 | };
29 |
30 | export const getSubjectList = ({dispatch}) => {
31 | return api.getSubjects().then(function(res){
32 | dispatch(GET_SUBJECTS, res.msg);
33 | });
34 | };
35 |
36 | export const getErrorQuestions = ({dispatch}, subjectId) => {
37 | return api.getErrorQuestionsBySubject(subjectId).then(function(res){
38 | dispatch(GET_ERROR_QUESTIONS_SUCCESS, res);
39 | }, function(res){
40 | dispatch(GET_ERROR_QUESTIONS_FAIL, res);
41 | });
42 | };
43 |
44 | export const removeQstFromErrorNote = ({dispatch}, questionId) => {
45 | return api.removeQstFromErrorQustions(questionId).then(function(res){
46 | dispatch(REMOVE_QST_SUCCESS, res);
47 | }, function(res){
48 | dispatch(REMOVE_QST_FAIL, res);
49 | });
50 | };
--------------------------------------------------------------------------------
/src/components/Mine.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
我的错题本
6 |
我的积分
7 |
缴费充值
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
48 |
--------------------------------------------------------------------------------
/src/components/errorNote/ErrorNote.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
50 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "wechat-51jyfw",
3 | "version": "1.0.0",
4 | "description": "51教育服务微信新版",
5 | "author": "Hquestion <1035271660@qq.com>",
6 | "private": true,
7 | "scripts": {
8 | "dev": "node build/dev-server.js",
9 | "build": "node build/build.js",
10 | "e2e": "node test/e2e/runner.js",
11 | "test": "npm run e2e"
12 | },
13 | "dependencies": {
14 | "vue": "^1.0.25",
15 | "babel-runtime": "^6.0.0"
16 | },
17 | "devDependencies": {
18 | "animate.css": "^3.5.1",
19 | "babel-core": "^6.0.0",
20 | "babel-loader": "^6.0.0",
21 | "babel-plugin-transform-runtime": "^6.0.0",
22 | "babel-preset-es2015": "^6.0.0",
23 | "babel-preset-stage-2": "^6.0.0",
24 | "chromedriver": "^2.21.2",
25 | "connect-history-api-fallback": "^1.1.0",
26 | "cross-spawn": "^2.1.5",
27 | "css-loader": "^0.23.0",
28 | "es6-promise": "^3.2.1",
29 | "eventsource-polyfill": "^0.9.6",
30 | "express": "^4.13.3",
31 | "extract-text-webpack-plugin": "^1.0.1",
32 | "file-loader": "^0.8.4",
33 | "function-bind": "^1.0.2",
34 | "html-webpack-plugin": "^2.8.1",
35 | "http-proxy-middleware": "^0.12.0",
36 | "json-loader": "^0.5.4",
37 | "mint-ui": "^0.1.17",
38 | "nightwatch": "^0.8.18",
39 | "node-sass": "^3.8.0",
40 | "ora": "^0.2.0",
41 | "sass-loader": "^4.0.0",
42 | "selenium-server": "2.53.0",
43 | "shelljs": "^0.6.0",
44 | "url-loader": "^0.5.7",
45 | "vue-hot-reload-api": "^1.2.0",
46 | "vue-html-loader": "^1.0.0",
47 | "vue-loader": "^8.3.0",
48 | "vue-resource": "^0.9.1",
49 | "vue-router": "^0.7.13",
50 | "vue-style-loader": "^1.0.0",
51 | "vue-touch": "^1.1.0",
52 | "vuex": "^0.8.0",
53 | "vuex-router-sync": "^1.0.0",
54 | "webpack": "^1.12.2",
55 | "webpack-dev-middleware": "^1.4.0",
56 | "webpack-hot-middleware": "^2.6.0",
57 | "webpack-merge": "^0.8.3"
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
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 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/src/components/home/Schedule.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
18 |
22 |
23 |
24 |
42 |
--------------------------------------------------------------------------------
/src/components/mine/AchievementDetail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 我的分析情况
6 |
7 |
8 |
19 |
20 |
21 |
22 |
45 |
--------------------------------------------------------------------------------
/src/components/Exercise.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |

7 |
补偿作业
8 |
9 | 今天的补偿作业已经更新,预计能帮助你下周周测提高10分,点击开始测试。
10 | (周一至周五每天17:00系统自动推送)
11 |
12 |
13 |
14 |

15 |
错哪补哪
16 |
17 | 已进行29次练习
18 |
19 |
20 |
21 |

22 |
我的错题本
23 |
24 | 目前总共收集29道错题
25 |
26 |
27 |
28 |
43 |
--------------------------------------------------------------------------------
/src/components/mine/Achievement.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 成绩情况
6 |
7 |
8 |
9 | -
10 |
11 |
12 | 高于全班%
13 |
14 |
15 | 高于全班%
16 |
17 |
18 | 名次稍微
19 |
上升
20 |
下降
21 |
22 |
23 |
24 |
25 |
26 |
27 |
44 |
--------------------------------------------------------------------------------
/src/components/home/noticeCard.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
27 |
--------------------------------------------------------------------------------
/src/components/Home.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |

个人中心
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
69 |
70 |
92 |
--------------------------------------------------------------------------------
/src/components/exercise/SameQuestionTest.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
30 |
31 |
返回
32 |
查看解答
33 |
更换题目
34 |
35 |
36 |
37 |
58 |
--------------------------------------------------------------------------------
/src/components/common/wySelect.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 请选择
6 |
7 |
8 |
11 |
12 |
13 |
43 |
--------------------------------------------------------------------------------
/src/assets/css/app.css:
--------------------------------------------------------------------------------
1 | *{
2 | margin: 0;
3 | padding: 0;
4 | box-sizing: border-box;
5 | font-family: '微软雅黑','microsoft yahei';
6 | -webkit-user-select: none;
7 | user-select:none;
8 | }
9 | html {
10 | width: 100%;
11 | height: 100%;
12 | font-size: 18px;
13 | }
14 | @media screen and (min-width: 500px) {
15 | html{
16 | font-size: 20px;
17 | }
18 | }
19 | @media screen and (max-width: 375px) and (min-width: 320px) {
20 | html {
21 | font-size: 16px;
22 | }
23 | }
24 | @media screen and (max-width: 320px) {
25 | html {
26 | font-size: 14px;
27 | }
28 | }
29 | body{
30 | width: 100%;
31 | height: 100%;
32 | -webkit-user-select: none;
33 | user-select:none;
34 | background: #fff;
35 | color: #404040;
36 | font-size: 0.875rem;
37 | }
38 | body .main {
39 | height: 100%;
40 | }
41 | a, a:hover, a:active, a:visited{
42 | cursor: default;
43 | color: #ccc;
44 | text-decoration: none;
45 | }
46 | ul {
47 | list-style: none;
48 | }
49 | .clearfix:after, .clearfix:before{
50 | content: '\20';
51 | display: block;
52 | clear: both;
53 | }
54 | .text-white{
55 | color: #fff;
56 | }
57 | .text-black{
58 | color: #000;
59 | }
60 | .text-green {
61 | color: #3B9A82;
62 | }
63 | .text-red{
64 | color: #F26D6E;
65 | }
66 | .text-orange{
67 | color: #F69200;
68 | }
69 | .bg-white{
70 | background-color: #fff;
71 | }
72 | .bg-black{
73 | background-color: #000;
74 | }
75 | .bg-green{
76 | background-color: #3B9A82;
77 | }
78 | .pull-left {
79 | float: left;
80 | }
81 | .pull-right{
82 | float: right;
83 | }
84 | .t-center{
85 | text-align: center;
86 | }
87 | .t_overflow {
88 | display: block;
89 | max-width: 100%;
90 | white-space: nowrap;
91 | overflow: hidden;
92 | text-overflow: ellipsis;
93 | }
94 | .row{
95 | display: block;
96 | }
97 | .row:after{
98 | content: '\20';
99 | clear: both;
100 | display: block;
101 | }
102 | .row .col{
103 | float: left;
104 | display: block;
105 | padding: 5px;
106 | }
107 | .row .col-1 {
108 | width: 8.33333%;
109 | }
110 | .row .col-2 {
111 | width: 16.66666%;
112 | }
113 | .row .col-2-4 {
114 | width: 20%;
115 | }
116 | .row .col-3 {
117 | width: 25%;
118 | }
119 | .row .col-4 {
120 | width: 33.33333%;
121 | }
122 | .row .col-5 {
123 | width: 41.66666%;
124 | }
125 | .row .col-6 {
126 | width: 50%;
127 | }
128 | .row .col-7 {
129 | width: 58.33333%;
130 | }
131 | .row .col-8 {
132 | width: 66.66666%;
133 | }
134 | .row .col-9 {
135 | width: 75%;
136 | }
137 | .row .col-10 {
138 | width: 83.33333%;
139 | }
140 | .row .col-11 {
141 | width: 91.66666%;
142 | }
143 | .row .col-12 {
144 | width: 100%;
145 | }
146 | .wy-btn-group {
147 | display: flex;
148 | justify-content: center;
149 | }
150 | .wy-btn {
151 | outline: none;
152 | cursor: pointer;
153 | text-align: center;
154 | min-width: 5.5556rem;
155 | height: 2.222rem;
156 | line-height: 2.222rem;
157 | border-radius: 2.222rem;
158 | padding: 0 10px;
159 | border: 1px solid #ccc;
160 | }
161 | .wy-btn-radius {
162 | border-radius: 100%;
163 | }
164 | .wy-btn-green {
165 | background: #3B9A82;
166 | color: #fff;
167 | }
168 | .wy-btn-orange {
169 | background: #F69200;
170 | color: #fff;
171 | }
172 | .wy-btn-default {
173 | background: #ccc;
174 | color: #fff;
175 | }
176 | .wy-btn-white{
177 | background: #fff;
178 | color: #6b6b6b;
179 | }
--------------------------------------------------------------------------------
/src/components/common/wyDialog.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
13 |
14 |
15 |
16 |
22 |
23 |
24 |
25 |
58 |
--------------------------------------------------------------------------------
/src/routerConfig.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Administrator on 2016/6/27.
3 | */
4 | import Vue from 'vue';
5 | import AuthenticateService from './service/authenticateService';
6 | export function configRouter(router) {
7 | router.map({
8 | '/bind': {
9 | name: 'bind',
10 | component: function(resolve){
11 | require(['./components/bind/Bind.vue'], resolve)
12 | }
13 | },
14 | '/': {
15 | component: function(resolve){
16 | require(['./App.vue'], resolve);
17 | },
18 | subRoutes: {
19 | '/': {
20 | name: 'home',
21 | title: '云智教育服务',
22 | hideBack: true,
23 | belong: 'home',
24 | component: require('./components/Home')
25 | },
26 | '/action': {
27 | name: 'action',
28 | title: '我的动态',
29 | belong: 'action',
30 | component: require('./components/Action.vue')
31 | },
32 | '/klass': {
33 | name: 'klass',
34 | title: '我的班级',
35 | belong: 'klass',
36 | component: require('./components/Klass.vue')
37 | },
38 | '/analysis': {
39 | name: 'analysis',
40 | title: '分析',
41 | belong: 'analysis',
42 | component: require('./components/Analysis.vue')
43 | },
44 | '/exercise': {
45 | name: 'exercise',
46 | title: '练习',
47 | belong: 'exercise',
48 | component: require('./components/Exercise')
49 | },
50 | '/mine': {
51 | name: 'mine',
52 | title: '我的个人中心',
53 | belong: 'home',
54 | component: require('./components/Mine.vue')
55 | },
56 | '/error-note': {
57 | name: 'errorNote',
58 | title: '我的错题本',
59 | belong: 'exercise',
60 | component: require('./components/errorNote/ErrorNote.vue')
61 | },
62 | '/same-qst-test/:questionId': {
63 | name: 'sameQuestionTest',
64 | title: '同题检测',
65 | belong: 'exercise',
66 | component: require('./components/exercise/SameQuestionTest.vue')
67 | },
68 | '/error-fix': {
69 | name: 'errorFix',
70 | title: '错哪补哪',
71 | belong: 'exercise',
72 | component: require('./components/exercise/ErrorFix.vue')
73 | }
74 | }
75 | }
76 | });
77 |
78 | //没找到匹配路径,进入首页
79 | router.redirect({
80 | '*': '/'
81 | });
82 |
83 | router.beforeEach(function(transition){
84 | if(transition.to.query.id) {
85 | window.openId = transition.to.query.id;
86 | }
87 | if(window.openId) {
88 | transition.to.query.id = window.openId;
89 | AuthenticateService.isAuth(openId).then(function(){
90 | transition.next();
91 | }, function(){
92 | router.go({
93 | name: 'bind',
94 | query: {
95 | id: window.openId
96 | }
97 | });
98 | transition.next();
99 | });
100 | }else {
101 | router.go({
102 | name: 'bind',
103 | query: {
104 | id: window.openId
105 | }
106 | });
107 | transition.next();
108 | }
109 | });
110 | }
--------------------------------------------------------------------------------
/src/components/exercise/PaperSelectCard.vue:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
30 |
--------------------------------------------------------------------------------
/src/components/bind/Bind.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
使用云智教育大数据服务之前请先绑定账号
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
22 |
23 |
24 |
60 |
--------------------------------------------------------------------------------
/src/components/errorNote/ErrorQuestionDetail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
30 |
31 |
32 | 我的解答:
33 |
34 |
35 |
39 |
40 |
41 |
移除题目
42 |
悬赏解答
43 |
同题检测
44 |
45 |
46 |
47 |
84 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 返回
5 |
6 |
7 |
8 |
9 |
10 |
11 | 主页
12 |
13 |
14 |
15 | 动态
16 |
17 |
18 |
19 | 班级
20 |
21 |
22 |
23 | 分析
24 |
25 |
26 |
27 | 练习
28 |
29 |
30 |
31 |
32 |
33 |
67 |
68 |
139 |
--------------------------------------------------------------------------------
/src/components/errorNote/SubjectCarousel.vue:
--------------------------------------------------------------------------------
1 |
2 |
15 |
16 |
92 |
--------------------------------------------------------------------------------
/src/components/home/UserCard.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |

7 |
8 |
9 |
10 |
11 |

12 |
13 |
14 |
15 |
16 |
17 | 积分:
18 |
19 |
20 |
21 |
22 |
23 | 已签到
24 | 未签到
25 | (已连续签到天)
26 |
27 |
28 |
29 |
30 |
31 |
恭喜您,连续签到天,积分奖励分
32 |
累计签到:338天
33 |
签到排名:今日本班第14名签到
34 |
35 | 小提示:连续签到每多一天,积分额外多加1分
36 |
37 |
38 |
39 |
80 |
--------------------------------------------------------------------------------
/src/components/exercise/ErrorFix.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
学科:
5 |
6 |
9 |
10 |
11 |
17 |
18 |
出题范围:
19 |
20 |
23 |
24 |
25 |
29 |
40 |
41 |
42 |
113 |
--------------------------------------------------------------------------------
/static/.idea/workspace.xml:
--------------------------------------------------------------------------------
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 | true
26 | DEFINITION_ORDER
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 | 1467291624181
94 |
95 |
96 | 1467291624181
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
--------------------------------------------------------------------------------