├── .editorconfig ├── .env.development ├── .env.production ├── .env.staging ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .travis.yml ├── README.md ├── babel.config.js ├── build └── index.js ├── jest.config.js ├── jsconfig.json ├── mock ├── index.js ├── mock-server.js ├── table.js └── user.js ├── package.json ├── postcss.config.js ├── public ├── favicon.ico └── index.html ├── src ├── App.vue ├── api │ ├── business │ │ ├── auth │ │ │ ├── appoint.js │ │ │ ├── area.js │ │ │ ├── category.js │ │ │ ├── comment.js │ │ │ ├── message.js │ │ │ ├── need.js │ │ │ ├── realnameAuth.js │ │ │ ├── studentAuth.js │ │ │ ├── studentCollection.js │ │ │ ├── teacher.js │ │ │ └── teacherAuth.js │ │ └── front │ │ │ ├── area.js │ │ │ ├── category.js │ │ │ ├── dict.js │ │ │ ├── need.js │ │ │ └── teacher.js │ ├── pay │ │ └── auth │ │ │ ├── cashin.js │ │ │ ├── cashout.js │ │ │ └── payInfo.js │ ├── ssoLogin.js │ ├── system │ │ ├── auth │ │ │ ├── advice.js │ │ │ └── attachment.js │ │ └── front │ │ │ ├── advertisement.js │ │ │ ├── friendLink.js │ │ │ ├── navigation.js │ │ │ └── notice.js │ └── upms │ │ └── auth │ │ └── user.js ├── assets │ ├── 404_images │ │ ├── 404.png │ │ └── 404_cloud.png │ ├── avatar.png │ ├── images │ │ ├── 404.png │ │ ├── 404_error.png │ │ ├── WePayLogo.png │ │ ├── add-bg.png │ │ ├── address-active.png │ │ ├── addselect.png │ │ ├── agree.jpg │ │ ├── all.png │ │ ├── allBtn.png │ │ ├── apply_icon.png │ │ ├── arrow-lf.png │ │ ├── arrow-rg.png │ │ ├── arrow_down.png │ │ ├── arrow_up.png │ │ ├── ban-1.jpg │ │ ├── ban-2.jpg │ │ ├── ban-3.jpg │ │ ├── ban-4.jpg │ │ ├── ban-5.jpg │ │ ├── bank │ │ │ ├── abc_1301.png │ │ │ ├── ailpay.png │ │ │ ├── bcom_1301.png │ │ │ ├── boc_1301.png │ │ │ ├── ccb_1301.png │ │ │ ├── ceb_1301.png │ │ │ ├── cib_1301.png │ │ │ ├── citic_1301.png │ │ │ ├── cmb_1301.png │ │ │ ├── cmbc_1301.png │ │ │ ├── ganzhou.png │ │ │ ├── icbc_1301.png │ │ │ ├── jiujiang.png │ │ │ ├── post_1301.png │ │ │ ├── spdb_1301.png │ │ │ ├── weixin.png │ │ │ └── xianxia.png │ │ ├── banner-logo.jpg │ │ ├── banner.jpg │ │ ├── bg.jpg │ │ ├── bg_txt.png │ │ ├── blue_line.png │ │ ├── bottom_tip_2.jpg │ │ ├── bottom_tip_2.png │ │ ├── bottom_tip_icon.jpg │ │ ├── btel.png │ │ ├── cancle.png │ │ ├── car.png │ │ ├── cart_icon.png │ │ ├── cart_tishi_ico.png │ │ ├── case-bg.jpg │ │ ├── caveat.png │ │ ├── checkbox.gif │ │ ├── code-2.jpg │ │ ├── code.jpg │ │ ├── code_in.gif │ │ ├── collect_icon.png │ │ ├── date.png │ │ ├── date_icon.jpg │ │ ├── detail_icon.png │ │ ├── direct_icon_01.png │ │ ├── direct_icon_02.png │ │ ├── dos.gif │ │ ├── dot-1.png │ │ ├── dot-2.png │ │ ├── dot-3.png │ │ ├── dot-white.png │ │ ├── dot.png │ │ ├── dot_icon.png │ │ ├── down-hover.png │ │ ├── down-icon.png │ │ ├── down.png │ │ ├── downarr.png │ │ ├── error-bg.jpg │ │ ├── error-icon.jpg │ │ ├── error.jpg │ │ ├── error.png │ │ ├── error_logo.jpg │ │ ├── eval.png │ │ ├── face_mask.png │ │ ├── family-1.png │ │ ├── family-2.png │ │ ├── family-3.png │ │ ├── favicon.ico │ │ ├── fix-tool.gif │ │ ├── flag.png │ │ ├── gift_back_m.png │ │ ├── gift_bg.jpg │ │ ├── gold.png │ │ ├── goto_top.png │ │ ├── green_line.png │ │ ├── gscore.png │ │ ├── home_icon.png │ │ ├── hook_icon.png │ │ ├── hot2.png │ │ ├── icon-arrow-1.png │ │ ├── icon-arrow-2.png │ │ ├── icon-arrow-3.png │ │ ├── icon-arrow-4.png │ │ ├── icon-arrow-5.png │ │ ├── icon-arrow-6.png │ │ ├── icon-arrow-7.png │ │ ├── icon-arrow-8.png │ │ ├── icon-arrow-9.png │ │ ├── icon-attest.png │ │ ├── icon-book.png │ │ ├── icon-claim.png │ │ ├── icon-link.png │ │ ├── icon-list.png │ │ ├── icon-map-1.png │ │ ├── icon-map.png │ │ ├── icon-marker.png │ │ ├── icon-money.png │ │ ├── icon-ok.png │ │ ├── icon-search.png │ │ ├── icon-service.png │ │ ├── icon-star.png │ │ ├── icon-step.png │ │ ├── icon-success.png │ │ ├── icon-tel-1.png │ │ ├── icon-tel.png │ │ ├── icon-time.png │ │ ├── icon-unattest.png │ │ ├── icon-user-1.png │ │ ├── icon-user-2.png │ │ ├── icon-user-3.png │ │ ├── icon-user-4.png │ │ ├── icon-user.png │ │ ├── icon-voice.png │ │ ├── icon-wechat.png │ │ ├── icon-wen.png │ │ ├── icon.gif │ │ ├── icon.png │ │ ├── icon_1.png │ │ ├── icon_down.jpg │ │ ├── icon_up.jpg │ │ ├── iconfont-home.png │ │ ├── ido.png │ │ ├── img-down.png │ │ ├── img-pic.jpg │ │ ├── img-san1.png │ │ ├── img-san2.png │ │ ├── img-time.png │ │ ├── img-up.png │ │ ├── index_bg_4.jpg │ │ ├── index_qq.png │ │ ├── index_tel.png │ │ ├── index_weixin.png │ │ ├── join_car_btn.jpg │ │ ├── jump_error.png │ │ ├── jump_success.png │ │ ├── kuaidi.png │ │ ├── left.png │ │ ├── lefth.png │ │ ├── line.jpg │ │ ├── line2.jpg │ │ ├── link.png │ │ ├── link1.png │ │ ├── link2.png │ │ ├── link3.png │ │ ├── listarr.png │ │ ├── load.gif │ │ ├── loading.gif │ │ ├── loading_1.gif │ │ ├── login-1.png │ │ ├── login-2.png │ │ ├── login-3.png │ │ ├── login-foot.png │ │ ├── login_close.png │ │ ├── logo-2.png │ │ ├── logo-foot.png │ │ ├── logo.png │ │ ├── m-chat.png │ │ ├── m-parts.png │ │ ├── m-tel.png │ │ ├── mail_icon.png │ │ ├── mobile │ │ │ ├── banner.jpg │ │ │ ├── foot-1-h.png │ │ │ ├── foot-1.png │ │ │ ├── foot-2-h.png │ │ │ ├── foot-2.png │ │ │ ├── foot-3-h.png │ │ │ ├── foot-3.png │ │ │ ├── foot-4-h.png │ │ │ ├── foot-4.png │ │ │ ├── foot-5-h.png │ │ │ ├── foot-5.png │ │ │ ├── head-search.png │ │ │ ├── icon-fee.png │ │ │ ├── icon-kemu.png │ │ │ ├── icon-nianji.png │ │ │ ├── icon-voice.png │ │ │ ├── img-step.png │ │ │ ├── nav-1.png │ │ │ ├── nav-2.png │ │ │ ├── nav-3.png │ │ │ ├── nav-4.png │ │ │ ├── nav-5.png │ │ │ ├── nav-6.png │ │ │ ├── nav-7.png │ │ │ ├── nav-8.png │ │ │ ├── tel.png │ │ │ ├── type-1.png │ │ │ ├── type-2.png │ │ │ ├── type-3.png │ │ │ ├── type-4.png │ │ │ ├── zc-1.png │ │ │ ├── zc-2.png │ │ │ ├── zc-3.png │ │ │ └── zc-4.png │ │ ├── more.png │ │ ├── mouse_mask.png │ │ ├── msg_noread.png │ │ ├── msg_read.png │ │ ├── nav-tel.png │ │ ├── nddot.jpg │ │ ├── ndot.jpg │ │ ├── nleft.png │ │ ├── no.png │ │ ├── nodata.png │ │ ├── nosearch.png │ │ ├── nrg.png │ │ ├── nscore.png │ │ ├── num.png │ │ ├── online_icon_a.png │ │ ├── online_icon_b.png │ │ ├── opacity-blank.png │ │ ├── opacity-white.png │ │ ├── opacity.png │ │ ├── orderstatue.png │ │ ├── pass_in.gif │ │ ├── paysuccess.png │ │ ├── person.png │ │ ├── phone.png │ │ ├── pic-10.jpg │ │ ├── pic-11.jpg │ │ ├── pic-2.jpg │ │ ├── pic-3.jpg │ │ ├── pic-4.jpg │ │ ├── pic-5.jpg │ │ ├── pic-6.jpg │ │ ├── pic-7.jpg │ │ ├── pic-8.jpg │ │ ├── pic-9.jpg │ │ ├── pwd_level.png │ │ ├── qq-white-icon.png │ │ ├── qq.png │ │ ├── qq_login.png │ │ ├── qq_login_icon.png │ │ ├── radiobutton.gif │ │ ├── realnameAuth.png │ │ ├── refresh.png │ │ ├── reg_bg.jpg │ │ ├── reg_icon.png │ │ ├── resetpass_email.jpg │ │ ├── resetpass_phone.jpg │ │ ├── right.png │ │ ├── right1.jpg │ │ ├── right2.jpg │ │ ├── right_arrow.png │ │ ├── right_arrow_white.png │ │ ├── rightarr.png │ │ ├── righth.png │ │ ├── rm_tag.png │ │ ├── say_tip_bg.png │ │ ├── scale.png │ │ ├── seal.png │ │ ├── search.png │ │ ├── select.png │ │ ├── semi-circle.png │ │ ├── share.png │ │ ├── share_icon.jpg │ │ ├── sidebar_bg.png │ │ ├── sound.png │ │ ├── sprite-operate.png │ │ ├── square.png │ │ ├── square2.png │ │ ├── star.png │ │ ├── star_grey.png │ │ ├── star_red.jpg │ │ ├── star_yellow.png │ │ ├── step-1.png │ │ ├── step-2.png │ │ ├── step-3.png │ │ ├── step-4.png │ │ ├── store_icon01.png │ │ ├── studentAuth.png │ │ ├── success-1.png │ │ ├── success-2.png │ │ ├── success-3.png │ │ ├── success-4.png │ │ ├── success-5.png │ │ ├── success-6.png │ │ ├── success-icon.jpg │ │ ├── success.png │ │ ├── success_ico.png │ │ ├── teacherAuth.png │ │ ├── tejia_icon.png │ │ ├── tejia_icons.png │ │ ├── tejia_tag.png │ │ ├── tel.png │ │ ├── tel_icon.png │ │ ├── timelimit_buy.png │ │ ├── tj_tag.png │ │ ├── top-1-h.png │ │ ├── top-1.png │ │ ├── top-2-h.png │ │ ├── top-2.png │ │ ├── top-3-h.png │ │ ├── top-3.png │ │ ├── trash_icon.png │ │ ├── tuihuo_b.png │ │ ├── tuihuo_process.png │ │ ├── type-1.png │ │ ├── type-2.png │ │ ├── type-3.png │ │ ├── type-4.png │ │ ├── type-cases.png │ │ ├── type-info.png │ │ ├── type-list.png │ │ ├── type-partner.png │ │ ├── type-teach.png │ │ ├── type-voice.png │ │ ├── u_h1.png │ │ ├── ungold.png │ │ ├── up-hover.png │ │ ├── up.png │ │ ├── uphone_icon.png │ │ ├── user-dot.png │ │ ├── user-icon.png │ │ ├── user_in.gif │ │ ├── user_passtip.jpg │ │ ├── user_passtips.jpg │ │ ├── usercenter_icon.png │ │ ├── wallet_pay_img.png │ │ ├── wbqrcode.png │ │ ├── weibo.png │ │ ├── weixin-bg-b.png │ │ ├── weixin-bg-r.png │ │ ├── weixin-bg-t.png │ │ ├── weixin_login.png │ │ ├── weixn_show.png │ │ ├── weixn_show_2.png │ │ ├── wexin.jpg │ │ ├── wx_login_icon.png │ │ ├── wx_pay_intro.png │ │ ├── wxqr.jpg │ │ ├── xp_tag.png │ │ └── yes.png │ └── logo.png ├── components │ ├── Breadcrumb │ │ └── index.vue │ ├── Hamburger │ │ └── index.vue │ └── SvgIcon │ │ └── index.vue ├── icons │ ├── index.js │ ├── svg │ │ ├── dashboard.svg │ │ ├── example.svg │ │ ├── eye-open.svg │ │ ├── eye.svg │ │ ├── form.svg │ │ ├── link.svg │ │ ├── nested.svg │ │ ├── password.svg │ │ ├── qq.svg │ │ ├── table.svg │ │ ├── tree.svg │ │ ├── user.svg │ │ └── wechat.svg │ └── svgo.yml ├── layout │ ├── components │ │ ├── AppMain.vue │ │ ├── Navbar.vue │ │ ├── Sidebar │ │ │ ├── FixiOSBug.js │ │ │ ├── Item.vue │ │ │ ├── Link.vue │ │ │ ├── Logo.vue │ │ │ ├── SidebarItem.vue │ │ │ └── index.vue │ │ └── index.js │ ├── index.vue │ └── mixin │ │ └── ResizeHandler.js ├── main.js ├── permission.js ├── router │ └── index.js ├── settings.js ├── store │ ├── getters.js │ ├── index.js │ └── modules │ │ ├── app.js │ │ ├── settings.js │ │ └── user.js ├── styles │ ├── element-ui.scss │ ├── front │ │ ├── aftersale.css │ │ ├── appoint.css │ │ ├── cart.css │ │ ├── city.css │ │ ├── common.css │ │ ├── convert.css │ │ ├── date.css │ │ ├── error.css │ │ ├── font-awesome │ │ │ ├── HELP-US-OUT.txt │ │ │ ├── css │ │ │ │ ├── font-awesome.css │ │ │ │ └── font-awesome.min.css │ │ │ ├── fonts │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ ├── less │ │ │ │ ├── animated.less │ │ │ │ ├── bordered-pulled.less │ │ │ │ ├── core.less │ │ │ │ ├── fixed-width.less │ │ │ │ ├── font-awesome.less │ │ │ │ ├── icons.less │ │ │ │ ├── larger.less │ │ │ │ ├── list.less │ │ │ │ ├── mixins.less │ │ │ │ ├── path.less │ │ │ │ ├── rotated-flipped.less │ │ │ │ ├── screen-reader.less │ │ │ │ ├── stacked.less │ │ │ │ └── variables.less │ │ │ └── scss │ │ │ │ ├── _animated.scss │ │ │ │ ├── _bordered-pulled.scss │ │ │ │ ├── _core.scss │ │ │ │ ├── _fixed-width.scss │ │ │ │ ├── _icons.scss │ │ │ │ ├── _larger.scss │ │ │ │ ├── _list.scss │ │ │ │ ├── _mixins.scss │ │ │ │ ├── _path.scss │ │ │ │ ├── _rotated-flipped.scss │ │ │ │ ├── _screen-reader.scss │ │ │ │ ├── _stacked.scss │ │ │ │ ├── _variables.scss │ │ │ │ └── font-awesome.scss │ │ ├── friendpay.css │ │ ├── index.css │ │ ├── item.css │ │ ├── laydate.css │ │ ├── login.css │ │ ├── news.css │ │ ├── order.css │ │ ├── owl.carousel.css │ │ ├── products.css │ │ ├── public.css │ │ ├── register.css │ │ ├── resetpass.css │ │ ├── swiper.3.2.0.min.css │ │ └── user.css │ ├── index.scss │ ├── mixin.scss │ ├── profile.scss │ ├── sidebar.scss │ ├── transition.scss │ └── variables.scss ├── utils │ ├── auth.js │ ├── get-page-title.js │ ├── index.js │ ├── open-window.js │ ├── request.js │ ├── ssoRequest.js │ └── validate.js └── views │ ├── 404.vue │ ├── area │ └── index.vue │ ├── footer │ └── index.vue │ ├── index │ └── index.vue │ ├── login │ └── ssoredirect.vue │ ├── need │ ├── add.vue │ ├── detail.vue │ └── index.vue │ ├── right │ └── index.vue │ ├── teacher │ ├── center.vue │ ├── centerappoint.vue │ ├── centerauthinformation.vue │ ├── centerbaseinformation.vue │ ├── centercomment.vue │ ├── centermessage.vue │ ├── centerneed.vue │ ├── centerorder.vue │ ├── centersecurity.vue │ ├── centerstudentcollection.vue │ ├── centertutorinformation.vue │ ├── centerwalletbalance.vue │ ├── centerwalletcashout.vue │ ├── centerwalletincome.vue │ ├── detail.vue │ └── index.vue │ └── top │ └── index.vue ├── tests └── unit │ ├── .eslintrc.js │ ├── components │ ├── Breadcrumb.spec.js │ ├── Hamburger.spec.js │ └── SvgIcon.spec.js │ └── utils │ ├── formatTime.spec.js │ ├── parseTime.spec.js │ └── validate.spec.js └── vue.config.js /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | end_of_line = lf 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [*.md] 13 | insert_final_newline = false 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /.env.development: -------------------------------------------------------------------------------- 1 | # just a flag 2 | ENV = 'development' 3 | 4 | # base api 5 | VUE_APP_BASE_API = '/dev-api' 6 | 7 | # vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable, 8 | # to control whether the babel-plugin-dynamic-import-node plugin is enabled. 9 | # It only does one thing by converting all import() to require(). 10 | # This configuration can significantly increase the speed of hot updates, 11 | # when you have a large number of pages. 12 | # Detail: https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.js 13 | 14 | VUE_CLI_BABEL_TRANSPILE_MODULES = true 15 | -------------------------------------------------------------------------------- /.env.production: -------------------------------------------------------------------------------- 1 | # just a flag 2 | ENV = 'production' 3 | 4 | # base api 5 | VUE_APP_BASE_API = '/prod-api' 6 | 7 | -------------------------------------------------------------------------------- /.env.staging: -------------------------------------------------------------------------------- 1 | NODE_ENV = production 2 | 3 | # just a flag 4 | ENV = 'staging' 5 | 6 | # base api 7 | VUE_APP_BASE_API = '/stage-api' 8 | 9 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | build/*.js 2 | src/assets 3 | public 4 | dist 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | package-lock.json 8 | tests/**/coverage/ 9 | 10 | # Editor directories and files 11 | .idea 12 | .vscode 13 | *.suo 14 | *.ntvs* 15 | *.njsproj 16 | *.sln 17 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 10 3 | script: npm run test 4 | notifications: 5 | email: false 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # tutor-portal-web 2 | 3 | 在线家教预约平台的前台门户前端应用,使用 [vue-admin-template](https://panjiachen.gitee.io/vue-admin-template) 作为开发脚手架。 4 | 5 | 样式模板修改至互联网一款名叫 [Thinkphp红色大气新版家教网多城市版](https://www.yuanmajia.cn/programcode/thinkphpjiajiaowang.html) 的 PHP 程序,用 Vue 和 Element UI 重写。 6 | 7 | [点击查看全部预览](https://github.com/JuchiaLu/tutor-server/blob/master/PREVIEW.md) 8 | 9 | ![preview39](https://raw.githubusercontent.com/JuchiaLu/tutor-server/master/preview/preview39.png) 10 | 11 | ![preview39](https://raw.githubusercontent.com/JuchiaLu/tutor-server/master/preview/preview40.png) 12 | 13 | ![preview39](https://raw.githubusercontent.com/JuchiaLu/tutor-server/master/preview/preview41.png) 14 | 15 | ![preview39](https://raw.githubusercontent.com/JuchiaLu/tutor-server/master/preview/preview42.png) 16 | 17 | ## 构建 18 | 19 | ```bash 20 | # 克隆项目 21 | git clone https://github.com/juchialu/tutor-portal-web.git 22 | 23 | # 进入项目目录 24 | cd tutor-portal-web 25 | 26 | # 安装依赖 27 | npm install 28 | 29 | # 建议不要直接使用 cnpm 安装以来,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题 30 | npm install --registry=https://registry.npm.taobao.org 31 | 32 | # 启动服务 33 | npm run dev 34 | ``` 35 | 36 | 浏览器访问 [http://localhost:1234](http://localhost:1234) 37 | 38 | ## 发布 39 | 40 | ```bash 41 | # 构建测试环境 42 | npm run build:stage 43 | 44 | # 构建生产环境 45 | npm run build:prod 46 | ``` 47 | 48 | ## 其它 49 | 50 | ```bash 51 | # 预览发布环境效果 52 | npm run preview 53 | 54 | # 预览发布环境效果 + 静态资源分析 55 | npm run preview -- --report 56 | 57 | # 代码格式检查 58 | npm run lint 59 | 60 | # 代码格式检查并自动修复 61 | npm run lint -- --fix 62 | ``` 63 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/app' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /build/index.js: -------------------------------------------------------------------------------- 1 | const { run } = require('runjs') 2 | const chalk = require('chalk') 3 | const config = require('../vue.config.js') 4 | const rawArgv = process.argv.slice(2) 5 | const args = rawArgv.join(' ') 6 | 7 | if (process.env.npm_config_preview || rawArgv.includes('--preview')) { 8 | const report = rawArgv.includes('--report') 9 | 10 | run(`vue-cli-service build ${args}`) 11 | 12 | const port = 9526 13 | const publicPath = config.publicPath 14 | 15 | var connect = require('connect') 16 | var serveStatic = require('serve-static') 17 | const app = connect() 18 | 19 | app.use( 20 | publicPath, 21 | serveStatic('./dist', { 22 | index: ['index.html', '/'] 23 | }) 24 | ) 25 | 26 | app.listen(port, function () { 27 | console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`)) 28 | if (report) { 29 | console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`)) 30 | } 31 | 32 | }) 33 | } else { 34 | run(`vue-cli-service build ${args}`) 35 | } 36 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | moduleFileExtensions: ['js', 'jsx', 'json', 'vue'], 3 | transform: { 4 | '^.+\\.vue$': 'vue-jest', 5 | '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 6 | 'jest-transform-stub', 7 | '^.+\\.jsx?$': 'babel-jest' 8 | }, 9 | moduleNameMapper: { 10 | '^@/(.*)$': '/src/$1' 11 | }, 12 | snapshotSerializers: ['jest-serializer-vue'], 13 | testMatch: [ 14 | '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' 15 | ], 16 | collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'], 17 | coverageDirectory: '/tests/unit/coverage', 18 | // 'collectCoverage': true, 19 | 'coverageReporters': [ 20 | 'lcov', 21 | 'text-summary' 22 | ], 23 | testURL: 'http://localhost/' 24 | } 25 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "./", 4 | "paths": { 5 | "@/*": ["src/*"] 6 | } 7 | }, 8 | "exclude": ["node_modules", "dist"] 9 | } 10 | -------------------------------------------------------------------------------- /mock/index.js: -------------------------------------------------------------------------------- 1 | import Mock from 'mockjs' 2 | import { param2Obj } from '../src/utils' 3 | 4 | import user from './user' 5 | import table from './table' 6 | 7 | const mocks = [ 8 | ...user, 9 | ...table 10 | ] 11 | 12 | // for front mock 13 | // please use it cautiously, it will redefine XMLHttpRequest, 14 | // which will cause many of your third-party libraries to be invalidated(like progress event). 15 | export function mockXHR() { 16 | // mock patch 17 | // https://github.com/nuysoft/Mock/issues/300 18 | Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send 19 | Mock.XHR.prototype.send = function() { 20 | if (this.custom.xhr) { 21 | this.custom.xhr.withCredentials = this.withCredentials || false 22 | 23 | if (this.responseType) { 24 | this.custom.xhr.responseType = this.responseType 25 | } 26 | } 27 | this.proxy_send(...arguments) 28 | } 29 | 30 | function XHR2ExpressReqWrap(respond) { 31 | return function(options) { 32 | let result = null 33 | if (respond instanceof Function) { 34 | const { body, type, url } = options 35 | // https://expressjs.com/en/4x/api.html#req 36 | result = respond({ 37 | method: type, 38 | body: JSON.parse(body), 39 | query: param2Obj(url) 40 | }) 41 | } else { 42 | result = respond 43 | } 44 | return Mock.mock(result) 45 | } 46 | } 47 | 48 | for (const i of mocks) { 49 | Mock.mock(new RegExp(i.url), i.type || 'get', XHR2ExpressReqWrap(i.response)) 50 | } 51 | } 52 | 53 | // for mock server 54 | const responseFake = (url, type, respond) => { 55 | return { 56 | url: new RegExp(`/mock${url}`), 57 | type: type || 'get', 58 | response(req, res) { 59 | res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond)) 60 | } 61 | } 62 | } 63 | 64 | export default mocks.map(route => { 65 | return responseFake(route.url, route.type, route.response) 66 | }) 67 | -------------------------------------------------------------------------------- /mock/mock-server.js: -------------------------------------------------------------------------------- 1 | const chokidar = require('chokidar') 2 | const bodyParser = require('body-parser') 3 | const chalk = require('chalk') 4 | const path = require('path') 5 | 6 | const mockDir = path.join(process.cwd(), 'mock') 7 | 8 | function registerRoutes(app) { 9 | let mockLastIndex 10 | const { default: mocks } = require('./index.js') 11 | for (const mock of mocks) { 12 | app[mock.type](mock.url, mock.response) 13 | mockLastIndex = app._router.stack.length 14 | } 15 | const mockRoutesLength = Object.keys(mocks).length 16 | return { 17 | mockRoutesLength: mockRoutesLength, 18 | mockStartIndex: mockLastIndex - mockRoutesLength 19 | } 20 | } 21 | 22 | function unregisterRoutes() { 23 | Object.keys(require.cache).forEach(i => { 24 | if (i.includes(mockDir)) { 25 | delete require.cache[require.resolve(i)] 26 | } 27 | }) 28 | } 29 | 30 | module.exports = app => { 31 | // es6 polyfill 32 | require('@babel/register') 33 | 34 | // parse app.body 35 | // https://expressjs.com/en/4x/api.html#req.body 36 | app.use(bodyParser.json()) 37 | app.use(bodyParser.urlencoded({ 38 | extended: true 39 | })) 40 | 41 | const mockRoutes = registerRoutes(app) 42 | var mockRoutesLength = mockRoutes.mockRoutesLength 43 | var mockStartIndex = mockRoutes.mockStartIndex 44 | 45 | // watch files, hot reload mock server 46 | chokidar.watch(mockDir, { 47 | ignored: /mock-server/, 48 | ignoreInitial: true 49 | }).on('all', (event, path) => { 50 | if (event === 'change' || event === 'add') { 51 | try { 52 | // remove mock routes stack 53 | app._router.stack.splice(mockStartIndex, mockRoutesLength) 54 | 55 | // clear routes cache 56 | unregisterRoutes() 57 | 58 | const mockRoutes = registerRoutes(app) 59 | mockRoutesLength = mockRoutes.mockRoutesLength 60 | mockStartIndex = mockRoutes.mockStartIndex 61 | 62 | console.log(chalk.magentaBright(`\n > Mock Server hot reload success! changed ${path}`)) 63 | } catch (error) { 64 | console.log(chalk.redBright(error)) 65 | } 66 | } 67 | }) 68 | } 69 | -------------------------------------------------------------------------------- /mock/table.js: -------------------------------------------------------------------------------- 1 | import Mock from 'mockjs' 2 | 3 | const data = Mock.mock({ 4 | 'items|30': [{ 5 | id: '@id', 6 | title: '@sentence(10, 20)', 7 | 'status|1': ['published', 'draft', 'deleted'], 8 | author: 'name', 9 | display_time: '@datetime', 10 | pageviews: '@integer(300, 5000)' 11 | }] 12 | }) 13 | 14 | export default [ 15 | { 16 | url: '/table/list', 17 | type: 'get', 18 | response: config => { 19 | const items = data.items 20 | return { 21 | code: 20000, 22 | data: { 23 | total: items.length, 24 | items: items 25 | } 26 | } 27 | } 28 | } 29 | ] 30 | -------------------------------------------------------------------------------- /mock/user.js: -------------------------------------------------------------------------------- 1 | 2 | const tokens = { 3 | admin: { 4 | token: 'admin-token' 5 | }, 6 | editor: { 7 | token: 'editor-token' 8 | } 9 | } 10 | 11 | const users = { 12 | 'admin-token': { 13 | roles: ['admin'], 14 | introduction: 'I am a super administrator', 15 | avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif', 16 | name: 'Super Admin' 17 | }, 18 | 'editor-token': { 19 | roles: ['editor'], 20 | introduction: 'I am an editor', 21 | avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif', 22 | name: 'Normal Editor' 23 | } 24 | } 25 | 26 | export default [ 27 | // user login 28 | { 29 | url: '/user/login', 30 | type: 'post', 31 | response: config => { 32 | const { username } = config.body 33 | const token = tokens[username] 34 | 35 | // mock error 36 | if (!token) { 37 | return { 38 | code: 60204, 39 | message: 'Account and password are incorrect.' 40 | } 41 | } 42 | 43 | return { 44 | code: 20000, 45 | data: token 46 | } 47 | } 48 | }, 49 | 50 | // get user info 51 | { 52 | url: '/user/info\.*', 53 | type: 'get', 54 | response: config => { 55 | const { token } = config.query 56 | const info = users[token] 57 | 58 | // mock error 59 | if (!info) { 60 | return { 61 | code: 50008, 62 | message: 'Login failed, unable to get user details.' 63 | } 64 | } 65 | 66 | return { 67 | code: 20000, 68 | data: info 69 | } 70 | } 71 | }, 72 | 73 | // user logout 74 | { 75 | url: '/user/logout', 76 | type: 'post', 77 | response: _ => { 78 | return { 79 | code: 20000, 80 | data: 'success' 81 | } 82 | } 83 | } 84 | ] 85 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-admin-template", 3 | "version": "4.2.1", 4 | "description": "A vue admin template with Element UI & axios & iconfont & permission control & lint", 5 | "author": "Pan ", 6 | "license": "MIT", 7 | "scripts": { 8 | "dev": "vue-cli-service serve", 9 | "build:prod": "vue-cli-service build", 10 | "build:stage": "vue-cli-service build --mode staging", 11 | "preview": "node build/index.js --preview", 12 | "lint": "eslint --ext .js,.vue src", 13 | "test:unit": "jest --clearCache && vue-cli-service test:unit", 14 | "test:ci": "npm run lint && npm run test:unit", 15 | "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" 16 | }, 17 | "dependencies": { 18 | "axios": "0.18.1", 19 | "element-ui": "2.12.0", 20 | "js-cookie": "2.2.0", 21 | "normalize.css": "7.0.0", 22 | "nprogress": "0.2.0", 23 | "path-to-regexp": "2.4.0", 24 | "vue": "2.6.10", 25 | "vue-router": "3.0.6", 26 | "vuex": "3.1.0" 27 | }, 28 | "devDependencies": { 29 | "@babel/core": "7.0.0", 30 | "@babel/register": "7.0.0", 31 | "@vue/cli-plugin-babel": "3.6.0", 32 | "@vue/cli-plugin-eslint": "^3.9.1", 33 | "@vue/cli-plugin-unit-jest": "3.6.3", 34 | "@vue/cli-service": "3.6.0", 35 | "@vue/test-utils": "1.0.0-beta.29", 36 | "autoprefixer": "^9.5.1", 37 | "babel-core": "7.0.0-bridge.0", 38 | "babel-eslint": "10.0.1", 39 | "babel-jest": "23.6.0", 40 | "chalk": "2.4.2", 41 | "connect": "3.6.6", 42 | "eslint": "5.15.3", 43 | "eslint-plugin-vue": "5.2.2", 44 | "html-webpack-plugin": "3.2.0", 45 | "mockjs": "1.0.1-beta3", 46 | "node-sass": "^4.9.0", 47 | "runjs": "^4.3.2", 48 | "sass-loader": "^7.1.0", 49 | "script-ext-html-webpack-plugin": "2.1.3", 50 | "script-loader": "0.7.2", 51 | "serve-static": "^1.13.2", 52 | "svg-sprite-loader": "4.1.3", 53 | "svgo": "1.2.2", 54 | "vue-template-compiler": "2.6.10" 55 | }, 56 | "engines": { 57 | "node": ">=8.9", 58 | "npm": ">= 3.0.0" 59 | }, 60 | "browserslist": [ 61 | "> 1%", 62 | "last 2 versions" 63 | ] 64 | } 65 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | 'plugins': { 5 | // to edit target browsers: use "browserslist" field in package.json 6 | 'autoprefixer': {} 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= webpackConfig.name %> 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /src/api/business/auth/area.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function listForMe(listQuery) { 4 | return request({ 5 | url: '/business/auth/areas/me', 6 | method: 'get', 7 | params: listQuery 8 | }) 9 | } 10 | 11 | export function putForMe(data) { 12 | return request({ 13 | url: '/business/auth/areas/me', 14 | method: 'put', 15 | data:data 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /src/api/business/auth/category.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function listForMe(listQuery) { 4 | return request({ 5 | url: '/business/auth/categories/me', 6 | method: 'get', 7 | params: listQuery 8 | }) 9 | } 10 | 11 | export function putForMe(data) { 12 | return request({ 13 | url: '/business/auth/categories/me', 14 | method: 'put', 15 | data:data 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /src/api/business/auth/comment.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function page(listQuery) { 4 | return request({ 5 | url: '/business/auth/comments/me/page', 6 | method: 'get', 7 | params: listQuery 8 | }) 9 | } 10 | 11 | 12 | export function saveCommentForTeacher(data,appointId) { 13 | return request({ 14 | url: '/business/auth/comments/me/'+ appointId + '/save', 15 | method: 'Post', 16 | data: data 17 | }) 18 | } 19 | 20 | export function saveCommentForStudent(data,appointId) { 21 | return request({ 22 | url: '/business/auth/comments/me/'+ appointId + '/student/save', 23 | method: 'Post', 24 | data: data 25 | }) 26 | } 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/api/business/auth/message.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | 4 | export function page(listQuery) { 5 | return request({ 6 | url: '/business/auth/messages/me/page', 7 | method: 'get', 8 | params: listQuery 9 | }) 10 | } 11 | 12 | export function deleteById(id) { 13 | return request({ 14 | url: '/business/auth/messages/me/'+id, 15 | method: 'delete', 16 | }) 17 | } 18 | 19 | export function readById(id) { 20 | return request({ 21 | url: '/business/auth/messages/me/'+id +'/read', 22 | method: 'patch', 23 | }) 24 | } 25 | 26 | export function save(data) { 27 | return request({ 28 | url: '/business/auth/messages/me', 29 | method: 'post', 30 | data, 31 | }) 32 | } 33 | 34 | 35 | export function countNotReadMessage() { 36 | return request({ 37 | url: '/business/auth/messages/me/countNotReadMessage', 38 | method: 'get', 39 | }) 40 | } 41 | -------------------------------------------------------------------------------- /src/api/business/auth/need.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | 4 | export function isMyPublish(needId) { 5 | return request({ 6 | url: '/business/auth/needs/me/'+needId+'/isMyPublish', 7 | method: 'get', 8 | }) 9 | } 10 | 11 | export function isMyAppoint(needId) { 12 | return request({ 13 | url: '/business/auth/needs/me/'+needId +'/isMyAppoint', 14 | method: 'get', 15 | }) 16 | } 17 | 18 | 19 | export function chooseTeacherForNeed(needId,teacherId) { 20 | return request({ 21 | url: '/business/auth/needs/me/'+needId +'/teacher/'+teacherId, 22 | method: 'patch', 23 | }) 24 | } 25 | 26 | export function save(data) { 27 | return request({ 28 | url: '/business/auth/needs/me', 29 | method: 'post', 30 | data:data 31 | }) 32 | } 33 | 34 | export function page(query) { 35 | return request({ 36 | url: '/business/auth/needs/me/page', 37 | method: 'get', 38 | params:query 39 | }) 40 | } 41 | 42 | export function close(needId) { 43 | return request({ 44 | url: '/business/auth/needs/me/'+needId +'/close', 45 | method: 'patch', 46 | }) 47 | } 48 | 49 | export function softDelete(needId) { 50 | return request({ 51 | url: '/business/auth/needs/me/'+needId +'/delete', 52 | method: 'patch', 53 | }) 54 | } 55 | 56 | 57 | -------------------------------------------------------------------------------- /src/api/business/auth/realnameAuth.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getForMe() { 4 | return request({ 5 | url: '/business/auth/realnameAuths/me', 6 | method: 'get', 7 | }) 8 | } 9 | 10 | export function putForMe(data) { 11 | return request({ 12 | url: '/business/auth/realnameAuths/me', 13 | method: 'put', 14 | data:data 15 | }) 16 | } 17 | -------------------------------------------------------------------------------- /src/api/business/auth/studentAuth.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getForMe() { 4 | return request({ 5 | url: '/business/auth/studentAuths/me', 6 | method: 'get', 7 | }) 8 | } 9 | 10 | export function putForMe(data) { 11 | return request({ 12 | url: '/business/auth/studentAuths/me', 13 | method: 'put', 14 | data:data 15 | }) 16 | } 17 | -------------------------------------------------------------------------------- /src/api/business/auth/studentCollection.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | 4 | export function page(listQuery) { 5 | return request({ 6 | url: '/business/auth/studentCollects/me/teachers/page', 7 | method: 'get', 8 | params: listQuery 9 | }) 10 | } 11 | 12 | export function deleteByTeacherId(teacherId) { 13 | return request({ 14 | url: '/business/auth/studentCollects/me/teacherId/'+teacherId, 15 | method: 'delete', 16 | }) 17 | } 18 | 19 | 20 | export function save(teacherId) { 21 | return request({ 22 | url: '/business/auth/studentCollects/me/teacherId/'+teacherId, 23 | method: 'post', 24 | }) 25 | } 26 | -------------------------------------------------------------------------------- /src/api/business/auth/teacher.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | 4 | // 获取我的信息 DTO 5 | export function getMe() { 6 | return request({ 7 | url: '/business/auth/teachers/me', 8 | method: 'get', 9 | }) 10 | } 11 | 12 | export function patchMe(data) { 13 | return request({ 14 | url: '/business/auth/teachers/me', 15 | method: 'patch', 16 | data: data, 17 | }) 18 | } 19 | 20 | export function cashout(data) { 21 | return request({ 22 | url: '/business/auth/teachers/me/cashout', 23 | method: 'patch', 24 | data: data, 25 | }) 26 | } 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/api/business/auth/teacherAuth.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getForMe() { 4 | return request({ 5 | url: '/business/auth/teacherAuths/me', 6 | method: 'get', 7 | }) 8 | } 9 | 10 | export function putForMe(data) { 11 | return request({ 12 | url: '/business/auth/teacherAuths/me', 13 | method: 'put', 14 | data:data 15 | }) 16 | } 17 | -------------------------------------------------------------------------------- /src/api/business/front/area.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function listByParentId(id) { 4 | return request({ 5 | url: '/business/areas/parentId/'+id, 6 | method: 'get', 7 | }) 8 | } 9 | 10 | export function list(listQuery) { 11 | return request({ 12 | url: '/business/areas', 13 | method: 'get', 14 | params: listQuery 15 | }) 16 | } 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/api/business/front/category.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | 4 | export function listByParentId(id) { 5 | return request({ 6 | url: '/business/categories/parentId/'+id, 7 | method: 'get', 8 | }) 9 | } 10 | 11 | export function list(listQuery) { 12 | return request({ 13 | url: '/business/categories', 14 | method: 'get', 15 | params: listQuery 16 | }) 17 | } 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/api/business/front/dict.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function listByCode(code) { 4 | return request({ 5 | url: '/business/dicts/code/'+code, 6 | method: 'get', 7 | }) 8 | } 9 | -------------------------------------------------------------------------------- /src/api/business/front/need.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function page(listQuery) { 4 | return request({ 5 | url: '/business/needs/page', 6 | method: 'get', 7 | params: listQuery 8 | }) 9 | } 10 | 11 | export function getById(id) { 12 | return request({ 13 | url: '/business/needs/'+id, 14 | method: 'get', 15 | }) 16 | } 17 | 18 | 19 | 20 | export function pageTeachersForNeed(id) { 21 | return request({ 22 | url: '/business/needs/'+id+'/teachers/page', 23 | method: 'get', 24 | }) 25 | } 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/api/business/front/teacher.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function page(listQuery) { 4 | return request({ 5 | url: '/business/teachers/page', 6 | method: 'get', 7 | params: listQuery 8 | }) 9 | } 10 | 11 | export function getById(id) { 12 | return request({ 13 | url: '/business/teachers/'+id, 14 | method: 'get', 15 | }) 16 | } 17 | 18 | export function pageCommentForTeacher(id,listQuery) { 19 | return request({ 20 | url: '/business/teachers/'+id +'/comments/page', 21 | method: 'get', 22 | params: listQuery 23 | }) 24 | } 25 | 26 | export function listAreasForTeacher(id) { 27 | return request({ 28 | url: '/business/teachers/'+id +'/areas', 29 | method: 'get', 30 | }) 31 | } 32 | 33 | export function listCategoriesForTeacher(id) { 34 | return request({ 35 | url: '/business/teachers/'+id +'/categories', 36 | method: 'get', 37 | }) 38 | } 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /src/api/pay/auth/cashin.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | 4 | export function page(listQuery) { 5 | return request({ 6 | url: '/pay/auth/cashins/me/page', 7 | method: 'get', 8 | params: listQuery 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /src/api/pay/auth/cashout.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | 4 | export function page(listQuery) { 5 | return request({ 6 | url: '/pay/auth/cashouts/me/page', 7 | method: 'get', 8 | params: listQuery 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /src/api/pay/auth/payInfo.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | 4 | export function page(listQuery) { 5 | return request({ 6 | url: '/pay/auth/payInfos/me/page', 7 | method: 'get', 8 | params: listQuery 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /src/api/ssoLogin.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/ssoRequest' 2 | const qs = require('qs'); 3 | 4 | export function getAccessTokenByCode(data) { 5 | return request({ 6 | url: '/oauth/token', 7 | method: 'post', 8 | data:qs.stringify(data) 9 | }) 10 | } 11 | 12 | export function getAccessTokenByPassword(data) { 13 | return request({ 14 | url: '/oauth/token', 15 | method: 'post', 16 | headers: { 17 | 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8' 18 | }, 19 | data:qs.stringify(data) 20 | }) 21 | } 22 | -------------------------------------------------------------------------------- /src/api/system/auth/advice.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function save(data){ 4 | return request({ 5 | url: '/system/auth/advices', 6 | method: 'post', 7 | data: data 8 | }); 9 | } 10 | -------------------------------------------------------------------------------- /src/api/system/auth/attachment.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function save(fileobj){ 4 | let param = new FormData(); 5 | // 上传文件对象 名称file与后台控制器参数要一致 6 | param.append('file',fileobj.file); 7 | return request({ 8 | method: 'post', 9 | // 上传地址 10 | url: '/system/auth/attachments', 11 | // 定义上传头 12 | headers: {'Content-Type':'multipart/form-data'}, 13 | data: param 14 | }); 15 | } 16 | -------------------------------------------------------------------------------- /src/api/system/front/advertisement.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function list(listQuery) { 4 | return request({ 5 | url: '/system/advertisements', 6 | method: 'get', 7 | params: listQuery 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /src/api/system/front/friendLink.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function list(listQuery) { 4 | return request({ 5 | url: '/system/friendLinks', 6 | method: 'get', 7 | params: listQuery 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /src/api/system/front/navigation.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function list(listQuery) { 4 | return request({ 5 | url: '/system/navigations', 6 | method: 'get', 7 | params: listQuery 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /src/api/system/front/notice.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function page(listQuery) { 4 | return request({ 5 | url: '/system/notices/page', 6 | method: 'get', 7 | params: listQuery 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /src/api/upms/auth/user.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | 4 | 5 | // 修改密码 6 | export function changePassword(data) { 7 | return request({ 8 | url: '/upms/auth/users/password', 9 | method: 'patch', 10 | data:data 11 | }) 12 | } 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/assets/404_images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/404_images/404.png -------------------------------------------------------------------------------- /src/assets/404_images/404_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/404_images/404_cloud.png -------------------------------------------------------------------------------- /src/assets/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/avatar.png -------------------------------------------------------------------------------- /src/assets/images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/404.png -------------------------------------------------------------------------------- /src/assets/images/404_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/404_error.png -------------------------------------------------------------------------------- /src/assets/images/WePayLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/WePayLogo.png -------------------------------------------------------------------------------- /src/assets/images/add-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/add-bg.png -------------------------------------------------------------------------------- /src/assets/images/address-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/address-active.png -------------------------------------------------------------------------------- /src/assets/images/addselect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/addselect.png -------------------------------------------------------------------------------- /src/assets/images/agree.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/agree.jpg -------------------------------------------------------------------------------- /src/assets/images/all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/all.png -------------------------------------------------------------------------------- /src/assets/images/allBtn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/allBtn.png -------------------------------------------------------------------------------- /src/assets/images/apply_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/apply_icon.png -------------------------------------------------------------------------------- /src/assets/images/arrow-lf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/arrow-lf.png -------------------------------------------------------------------------------- /src/assets/images/arrow-rg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/arrow-rg.png -------------------------------------------------------------------------------- /src/assets/images/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/arrow_down.png -------------------------------------------------------------------------------- /src/assets/images/arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/arrow_up.png -------------------------------------------------------------------------------- /src/assets/images/ban-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/ban-1.jpg -------------------------------------------------------------------------------- /src/assets/images/ban-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/ban-2.jpg -------------------------------------------------------------------------------- /src/assets/images/ban-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/ban-3.jpg -------------------------------------------------------------------------------- /src/assets/images/ban-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/ban-4.jpg -------------------------------------------------------------------------------- /src/assets/images/ban-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/ban-5.jpg -------------------------------------------------------------------------------- /src/assets/images/bank/abc_1301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/abc_1301.png -------------------------------------------------------------------------------- /src/assets/images/bank/ailpay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/ailpay.png -------------------------------------------------------------------------------- /src/assets/images/bank/bcom_1301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/bcom_1301.png -------------------------------------------------------------------------------- /src/assets/images/bank/boc_1301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/boc_1301.png -------------------------------------------------------------------------------- /src/assets/images/bank/ccb_1301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/ccb_1301.png -------------------------------------------------------------------------------- /src/assets/images/bank/ceb_1301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/ceb_1301.png -------------------------------------------------------------------------------- /src/assets/images/bank/cib_1301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/cib_1301.png -------------------------------------------------------------------------------- /src/assets/images/bank/citic_1301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/citic_1301.png -------------------------------------------------------------------------------- /src/assets/images/bank/cmb_1301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/cmb_1301.png -------------------------------------------------------------------------------- /src/assets/images/bank/cmbc_1301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/cmbc_1301.png -------------------------------------------------------------------------------- /src/assets/images/bank/ganzhou.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/ganzhou.png -------------------------------------------------------------------------------- /src/assets/images/bank/icbc_1301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/icbc_1301.png -------------------------------------------------------------------------------- /src/assets/images/bank/jiujiang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/jiujiang.png -------------------------------------------------------------------------------- /src/assets/images/bank/post_1301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/post_1301.png -------------------------------------------------------------------------------- /src/assets/images/bank/spdb_1301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/spdb_1301.png -------------------------------------------------------------------------------- /src/assets/images/bank/weixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/weixin.png -------------------------------------------------------------------------------- /src/assets/images/bank/xianxia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bank/xianxia.png -------------------------------------------------------------------------------- /src/assets/images/banner-logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/banner-logo.jpg -------------------------------------------------------------------------------- /src/assets/images/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/banner.jpg -------------------------------------------------------------------------------- /src/assets/images/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bg.jpg -------------------------------------------------------------------------------- /src/assets/images/bg_txt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bg_txt.png -------------------------------------------------------------------------------- /src/assets/images/blue_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/blue_line.png -------------------------------------------------------------------------------- /src/assets/images/bottom_tip_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bottom_tip_2.jpg -------------------------------------------------------------------------------- /src/assets/images/bottom_tip_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bottom_tip_2.png -------------------------------------------------------------------------------- /src/assets/images/bottom_tip_icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/bottom_tip_icon.jpg -------------------------------------------------------------------------------- /src/assets/images/btel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/btel.png -------------------------------------------------------------------------------- /src/assets/images/cancle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/cancle.png -------------------------------------------------------------------------------- /src/assets/images/car.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/car.png -------------------------------------------------------------------------------- /src/assets/images/cart_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/cart_icon.png -------------------------------------------------------------------------------- /src/assets/images/cart_tishi_ico.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/cart_tishi_ico.png -------------------------------------------------------------------------------- /src/assets/images/case-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/case-bg.jpg -------------------------------------------------------------------------------- /src/assets/images/caveat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/caveat.png -------------------------------------------------------------------------------- /src/assets/images/checkbox.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/checkbox.gif -------------------------------------------------------------------------------- /src/assets/images/code-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/code-2.jpg -------------------------------------------------------------------------------- /src/assets/images/code.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/code.jpg -------------------------------------------------------------------------------- /src/assets/images/code_in.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/code_in.gif -------------------------------------------------------------------------------- /src/assets/images/collect_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/collect_icon.png -------------------------------------------------------------------------------- /src/assets/images/date.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/date.png -------------------------------------------------------------------------------- /src/assets/images/date_icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/date_icon.jpg -------------------------------------------------------------------------------- /src/assets/images/detail_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/detail_icon.png -------------------------------------------------------------------------------- /src/assets/images/direct_icon_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/direct_icon_01.png -------------------------------------------------------------------------------- /src/assets/images/direct_icon_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/direct_icon_02.png -------------------------------------------------------------------------------- /src/assets/images/dos.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/dos.gif -------------------------------------------------------------------------------- /src/assets/images/dot-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/dot-1.png -------------------------------------------------------------------------------- /src/assets/images/dot-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/dot-2.png -------------------------------------------------------------------------------- /src/assets/images/dot-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/dot-3.png -------------------------------------------------------------------------------- /src/assets/images/dot-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/dot-white.png -------------------------------------------------------------------------------- /src/assets/images/dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/dot.png -------------------------------------------------------------------------------- /src/assets/images/dot_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/dot_icon.png -------------------------------------------------------------------------------- /src/assets/images/down-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/down-hover.png -------------------------------------------------------------------------------- /src/assets/images/down-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/down-icon.png -------------------------------------------------------------------------------- /src/assets/images/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/down.png -------------------------------------------------------------------------------- /src/assets/images/downarr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/downarr.png -------------------------------------------------------------------------------- /src/assets/images/error-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/error-bg.jpg -------------------------------------------------------------------------------- /src/assets/images/error-icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/error-icon.jpg -------------------------------------------------------------------------------- /src/assets/images/error.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/error.jpg -------------------------------------------------------------------------------- /src/assets/images/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/error.png -------------------------------------------------------------------------------- /src/assets/images/error_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/error_logo.jpg -------------------------------------------------------------------------------- /src/assets/images/eval.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/eval.png -------------------------------------------------------------------------------- /src/assets/images/face_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/face_mask.png -------------------------------------------------------------------------------- /src/assets/images/family-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/family-1.png -------------------------------------------------------------------------------- /src/assets/images/family-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/family-2.png -------------------------------------------------------------------------------- /src/assets/images/family-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/family-3.png -------------------------------------------------------------------------------- /src/assets/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/favicon.ico -------------------------------------------------------------------------------- /src/assets/images/fix-tool.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/fix-tool.gif -------------------------------------------------------------------------------- /src/assets/images/flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/flag.png -------------------------------------------------------------------------------- /src/assets/images/gift_back_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/gift_back_m.png -------------------------------------------------------------------------------- /src/assets/images/gift_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/gift_bg.jpg -------------------------------------------------------------------------------- /src/assets/images/gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/gold.png -------------------------------------------------------------------------------- /src/assets/images/goto_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/goto_top.png -------------------------------------------------------------------------------- /src/assets/images/green_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/green_line.png -------------------------------------------------------------------------------- /src/assets/images/gscore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/gscore.png -------------------------------------------------------------------------------- /src/assets/images/home_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/home_icon.png -------------------------------------------------------------------------------- /src/assets/images/hook_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/hook_icon.png -------------------------------------------------------------------------------- /src/assets/images/hot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/hot2.png -------------------------------------------------------------------------------- /src/assets/images/icon-arrow-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-arrow-1.png -------------------------------------------------------------------------------- /src/assets/images/icon-arrow-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-arrow-2.png -------------------------------------------------------------------------------- /src/assets/images/icon-arrow-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-arrow-3.png -------------------------------------------------------------------------------- /src/assets/images/icon-arrow-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-arrow-4.png -------------------------------------------------------------------------------- /src/assets/images/icon-arrow-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-arrow-5.png -------------------------------------------------------------------------------- /src/assets/images/icon-arrow-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-arrow-6.png -------------------------------------------------------------------------------- /src/assets/images/icon-arrow-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-arrow-7.png -------------------------------------------------------------------------------- /src/assets/images/icon-arrow-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-arrow-8.png -------------------------------------------------------------------------------- /src/assets/images/icon-arrow-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-arrow-9.png -------------------------------------------------------------------------------- /src/assets/images/icon-attest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-attest.png -------------------------------------------------------------------------------- /src/assets/images/icon-book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-book.png -------------------------------------------------------------------------------- /src/assets/images/icon-claim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-claim.png -------------------------------------------------------------------------------- /src/assets/images/icon-link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-link.png -------------------------------------------------------------------------------- /src/assets/images/icon-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-list.png -------------------------------------------------------------------------------- /src/assets/images/icon-map-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-map-1.png -------------------------------------------------------------------------------- /src/assets/images/icon-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-map.png -------------------------------------------------------------------------------- /src/assets/images/icon-marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-marker.png -------------------------------------------------------------------------------- /src/assets/images/icon-money.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-money.png -------------------------------------------------------------------------------- /src/assets/images/icon-ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-ok.png -------------------------------------------------------------------------------- /src/assets/images/icon-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-search.png -------------------------------------------------------------------------------- /src/assets/images/icon-service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-service.png -------------------------------------------------------------------------------- /src/assets/images/icon-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-star.png -------------------------------------------------------------------------------- /src/assets/images/icon-step.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-step.png -------------------------------------------------------------------------------- /src/assets/images/icon-success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-success.png -------------------------------------------------------------------------------- /src/assets/images/icon-tel-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-tel-1.png -------------------------------------------------------------------------------- /src/assets/images/icon-tel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-tel.png -------------------------------------------------------------------------------- /src/assets/images/icon-time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-time.png -------------------------------------------------------------------------------- /src/assets/images/icon-unattest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-unattest.png -------------------------------------------------------------------------------- /src/assets/images/icon-user-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-user-1.png -------------------------------------------------------------------------------- /src/assets/images/icon-user-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-user-2.png -------------------------------------------------------------------------------- /src/assets/images/icon-user-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-user-3.png -------------------------------------------------------------------------------- /src/assets/images/icon-user-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-user-4.png -------------------------------------------------------------------------------- /src/assets/images/icon-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-user.png -------------------------------------------------------------------------------- /src/assets/images/icon-voice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-voice.png -------------------------------------------------------------------------------- /src/assets/images/icon-wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-wechat.png -------------------------------------------------------------------------------- /src/assets/images/icon-wen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon-wen.png -------------------------------------------------------------------------------- /src/assets/images/icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon.gif -------------------------------------------------------------------------------- /src/assets/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon.png -------------------------------------------------------------------------------- /src/assets/images/icon_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon_1.png -------------------------------------------------------------------------------- /src/assets/images/icon_down.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon_down.jpg -------------------------------------------------------------------------------- /src/assets/images/icon_up.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/icon_up.jpg -------------------------------------------------------------------------------- /src/assets/images/iconfont-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/iconfont-home.png -------------------------------------------------------------------------------- /src/assets/images/ido.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/ido.png -------------------------------------------------------------------------------- /src/assets/images/img-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/img-down.png -------------------------------------------------------------------------------- /src/assets/images/img-pic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/img-pic.jpg -------------------------------------------------------------------------------- /src/assets/images/img-san1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/img-san1.png -------------------------------------------------------------------------------- /src/assets/images/img-san2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/img-san2.png -------------------------------------------------------------------------------- /src/assets/images/img-time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/img-time.png -------------------------------------------------------------------------------- /src/assets/images/img-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/img-up.png -------------------------------------------------------------------------------- /src/assets/images/index_bg_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/index_bg_4.jpg -------------------------------------------------------------------------------- /src/assets/images/index_qq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/index_qq.png -------------------------------------------------------------------------------- /src/assets/images/index_tel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/index_tel.png -------------------------------------------------------------------------------- /src/assets/images/index_weixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/index_weixin.png -------------------------------------------------------------------------------- /src/assets/images/join_car_btn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/join_car_btn.jpg -------------------------------------------------------------------------------- /src/assets/images/jump_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/jump_error.png -------------------------------------------------------------------------------- /src/assets/images/jump_success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/jump_success.png -------------------------------------------------------------------------------- /src/assets/images/kuaidi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/kuaidi.png -------------------------------------------------------------------------------- /src/assets/images/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/left.png -------------------------------------------------------------------------------- /src/assets/images/lefth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/lefth.png -------------------------------------------------------------------------------- /src/assets/images/line.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/line.jpg -------------------------------------------------------------------------------- /src/assets/images/line2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/line2.jpg -------------------------------------------------------------------------------- /src/assets/images/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/link.png -------------------------------------------------------------------------------- /src/assets/images/link1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/link1.png -------------------------------------------------------------------------------- /src/assets/images/link2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/link2.png -------------------------------------------------------------------------------- /src/assets/images/link3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/link3.png -------------------------------------------------------------------------------- /src/assets/images/listarr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/listarr.png -------------------------------------------------------------------------------- /src/assets/images/load.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/load.gif -------------------------------------------------------------------------------- /src/assets/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/loading.gif -------------------------------------------------------------------------------- /src/assets/images/loading_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/loading_1.gif -------------------------------------------------------------------------------- /src/assets/images/login-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/login-1.png -------------------------------------------------------------------------------- /src/assets/images/login-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/login-2.png -------------------------------------------------------------------------------- /src/assets/images/login-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/login-3.png -------------------------------------------------------------------------------- /src/assets/images/login-foot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/login-foot.png -------------------------------------------------------------------------------- /src/assets/images/login_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/login_close.png -------------------------------------------------------------------------------- /src/assets/images/logo-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/logo-2.png -------------------------------------------------------------------------------- /src/assets/images/logo-foot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/logo-foot.png -------------------------------------------------------------------------------- /src/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/logo.png -------------------------------------------------------------------------------- /src/assets/images/m-chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/m-chat.png -------------------------------------------------------------------------------- /src/assets/images/m-parts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/m-parts.png -------------------------------------------------------------------------------- /src/assets/images/m-tel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/m-tel.png -------------------------------------------------------------------------------- /src/assets/images/mail_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mail_icon.png -------------------------------------------------------------------------------- /src/assets/images/mobile/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/banner.jpg -------------------------------------------------------------------------------- /src/assets/images/mobile/foot-1-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/foot-1-h.png -------------------------------------------------------------------------------- /src/assets/images/mobile/foot-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/foot-1.png -------------------------------------------------------------------------------- /src/assets/images/mobile/foot-2-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/foot-2-h.png -------------------------------------------------------------------------------- /src/assets/images/mobile/foot-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/foot-2.png -------------------------------------------------------------------------------- /src/assets/images/mobile/foot-3-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/foot-3-h.png -------------------------------------------------------------------------------- /src/assets/images/mobile/foot-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/foot-3.png -------------------------------------------------------------------------------- /src/assets/images/mobile/foot-4-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/foot-4-h.png -------------------------------------------------------------------------------- /src/assets/images/mobile/foot-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/foot-4.png -------------------------------------------------------------------------------- /src/assets/images/mobile/foot-5-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/foot-5-h.png -------------------------------------------------------------------------------- /src/assets/images/mobile/foot-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/foot-5.png -------------------------------------------------------------------------------- /src/assets/images/mobile/head-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/head-search.png -------------------------------------------------------------------------------- /src/assets/images/mobile/icon-fee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/icon-fee.png -------------------------------------------------------------------------------- /src/assets/images/mobile/icon-kemu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/icon-kemu.png -------------------------------------------------------------------------------- /src/assets/images/mobile/icon-nianji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/icon-nianji.png -------------------------------------------------------------------------------- /src/assets/images/mobile/icon-voice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/icon-voice.png -------------------------------------------------------------------------------- /src/assets/images/mobile/img-step.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/img-step.png -------------------------------------------------------------------------------- /src/assets/images/mobile/nav-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/nav-1.png -------------------------------------------------------------------------------- /src/assets/images/mobile/nav-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/nav-2.png -------------------------------------------------------------------------------- /src/assets/images/mobile/nav-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/nav-3.png -------------------------------------------------------------------------------- /src/assets/images/mobile/nav-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/nav-4.png -------------------------------------------------------------------------------- /src/assets/images/mobile/nav-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/nav-5.png -------------------------------------------------------------------------------- /src/assets/images/mobile/nav-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/nav-6.png -------------------------------------------------------------------------------- /src/assets/images/mobile/nav-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/nav-7.png -------------------------------------------------------------------------------- /src/assets/images/mobile/nav-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/nav-8.png -------------------------------------------------------------------------------- /src/assets/images/mobile/tel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/tel.png -------------------------------------------------------------------------------- /src/assets/images/mobile/type-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/type-1.png -------------------------------------------------------------------------------- /src/assets/images/mobile/type-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/type-2.png -------------------------------------------------------------------------------- /src/assets/images/mobile/type-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/type-3.png -------------------------------------------------------------------------------- /src/assets/images/mobile/type-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/type-4.png -------------------------------------------------------------------------------- /src/assets/images/mobile/zc-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/zc-1.png -------------------------------------------------------------------------------- /src/assets/images/mobile/zc-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/zc-2.png -------------------------------------------------------------------------------- /src/assets/images/mobile/zc-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/zc-3.png -------------------------------------------------------------------------------- /src/assets/images/mobile/zc-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mobile/zc-4.png -------------------------------------------------------------------------------- /src/assets/images/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/more.png -------------------------------------------------------------------------------- /src/assets/images/mouse_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/mouse_mask.png -------------------------------------------------------------------------------- /src/assets/images/msg_noread.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/msg_noread.png -------------------------------------------------------------------------------- /src/assets/images/msg_read.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/msg_read.png -------------------------------------------------------------------------------- /src/assets/images/nav-tel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/nav-tel.png -------------------------------------------------------------------------------- /src/assets/images/nddot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/nddot.jpg -------------------------------------------------------------------------------- /src/assets/images/ndot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/ndot.jpg -------------------------------------------------------------------------------- /src/assets/images/nleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/nleft.png -------------------------------------------------------------------------------- /src/assets/images/no.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/no.png -------------------------------------------------------------------------------- /src/assets/images/nodata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/nodata.png -------------------------------------------------------------------------------- /src/assets/images/nosearch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/nosearch.png -------------------------------------------------------------------------------- /src/assets/images/nrg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/nrg.png -------------------------------------------------------------------------------- /src/assets/images/nscore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/nscore.png -------------------------------------------------------------------------------- /src/assets/images/num.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/num.png -------------------------------------------------------------------------------- /src/assets/images/online_icon_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/online_icon_a.png -------------------------------------------------------------------------------- /src/assets/images/online_icon_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/online_icon_b.png -------------------------------------------------------------------------------- /src/assets/images/opacity-blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/opacity-blank.png -------------------------------------------------------------------------------- /src/assets/images/opacity-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/opacity-white.png -------------------------------------------------------------------------------- /src/assets/images/opacity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/opacity.png -------------------------------------------------------------------------------- /src/assets/images/orderstatue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/orderstatue.png -------------------------------------------------------------------------------- /src/assets/images/pass_in.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/pass_in.gif -------------------------------------------------------------------------------- /src/assets/images/paysuccess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/paysuccess.png -------------------------------------------------------------------------------- /src/assets/images/person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/person.png -------------------------------------------------------------------------------- /src/assets/images/phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/phone.png -------------------------------------------------------------------------------- /src/assets/images/pic-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/pic-10.jpg -------------------------------------------------------------------------------- /src/assets/images/pic-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/pic-11.jpg -------------------------------------------------------------------------------- /src/assets/images/pic-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/pic-2.jpg -------------------------------------------------------------------------------- /src/assets/images/pic-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/pic-3.jpg -------------------------------------------------------------------------------- /src/assets/images/pic-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/pic-4.jpg -------------------------------------------------------------------------------- /src/assets/images/pic-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/pic-5.jpg -------------------------------------------------------------------------------- /src/assets/images/pic-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/pic-6.jpg -------------------------------------------------------------------------------- /src/assets/images/pic-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/pic-7.jpg -------------------------------------------------------------------------------- /src/assets/images/pic-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/pic-8.jpg -------------------------------------------------------------------------------- /src/assets/images/pic-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/pic-9.jpg -------------------------------------------------------------------------------- /src/assets/images/pwd_level.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/pwd_level.png -------------------------------------------------------------------------------- /src/assets/images/qq-white-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/qq-white-icon.png -------------------------------------------------------------------------------- /src/assets/images/qq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/qq.png -------------------------------------------------------------------------------- /src/assets/images/qq_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/qq_login.png -------------------------------------------------------------------------------- /src/assets/images/qq_login_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/qq_login_icon.png -------------------------------------------------------------------------------- /src/assets/images/radiobutton.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/radiobutton.gif -------------------------------------------------------------------------------- /src/assets/images/realnameAuth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/realnameAuth.png -------------------------------------------------------------------------------- /src/assets/images/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/refresh.png -------------------------------------------------------------------------------- /src/assets/images/reg_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/reg_bg.jpg -------------------------------------------------------------------------------- /src/assets/images/reg_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/reg_icon.png -------------------------------------------------------------------------------- /src/assets/images/resetpass_email.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/resetpass_email.jpg -------------------------------------------------------------------------------- /src/assets/images/resetpass_phone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/resetpass_phone.jpg -------------------------------------------------------------------------------- /src/assets/images/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/right.png -------------------------------------------------------------------------------- /src/assets/images/right1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/right1.jpg -------------------------------------------------------------------------------- /src/assets/images/right2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/right2.jpg -------------------------------------------------------------------------------- /src/assets/images/right_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/right_arrow.png -------------------------------------------------------------------------------- /src/assets/images/right_arrow_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/right_arrow_white.png -------------------------------------------------------------------------------- /src/assets/images/rightarr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/rightarr.png -------------------------------------------------------------------------------- /src/assets/images/righth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/righth.png -------------------------------------------------------------------------------- /src/assets/images/rm_tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/rm_tag.png -------------------------------------------------------------------------------- /src/assets/images/say_tip_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/say_tip_bg.png -------------------------------------------------------------------------------- /src/assets/images/scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/scale.png -------------------------------------------------------------------------------- /src/assets/images/seal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/seal.png -------------------------------------------------------------------------------- /src/assets/images/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/search.png -------------------------------------------------------------------------------- /src/assets/images/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/select.png -------------------------------------------------------------------------------- /src/assets/images/semi-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/semi-circle.png -------------------------------------------------------------------------------- /src/assets/images/share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/share.png -------------------------------------------------------------------------------- /src/assets/images/share_icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/share_icon.jpg -------------------------------------------------------------------------------- /src/assets/images/sidebar_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/sidebar_bg.png -------------------------------------------------------------------------------- /src/assets/images/sound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/sound.png -------------------------------------------------------------------------------- /src/assets/images/sprite-operate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/sprite-operate.png -------------------------------------------------------------------------------- /src/assets/images/square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/square.png -------------------------------------------------------------------------------- /src/assets/images/square2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/square2.png -------------------------------------------------------------------------------- /src/assets/images/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/star.png -------------------------------------------------------------------------------- /src/assets/images/star_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/star_grey.png -------------------------------------------------------------------------------- /src/assets/images/star_red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/star_red.jpg -------------------------------------------------------------------------------- /src/assets/images/star_yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/star_yellow.png -------------------------------------------------------------------------------- /src/assets/images/step-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/step-1.png -------------------------------------------------------------------------------- /src/assets/images/step-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/step-2.png -------------------------------------------------------------------------------- /src/assets/images/step-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/step-3.png -------------------------------------------------------------------------------- /src/assets/images/step-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/step-4.png -------------------------------------------------------------------------------- /src/assets/images/store_icon01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/store_icon01.png -------------------------------------------------------------------------------- /src/assets/images/studentAuth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/studentAuth.png -------------------------------------------------------------------------------- /src/assets/images/success-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/success-1.png -------------------------------------------------------------------------------- /src/assets/images/success-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/success-2.png -------------------------------------------------------------------------------- /src/assets/images/success-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/success-3.png -------------------------------------------------------------------------------- /src/assets/images/success-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/success-4.png -------------------------------------------------------------------------------- /src/assets/images/success-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/success-5.png -------------------------------------------------------------------------------- /src/assets/images/success-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/success-6.png -------------------------------------------------------------------------------- /src/assets/images/success-icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/success-icon.jpg -------------------------------------------------------------------------------- /src/assets/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/success.png -------------------------------------------------------------------------------- /src/assets/images/success_ico.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/success_ico.png -------------------------------------------------------------------------------- /src/assets/images/teacherAuth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/teacherAuth.png -------------------------------------------------------------------------------- /src/assets/images/tejia_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/tejia_icon.png -------------------------------------------------------------------------------- /src/assets/images/tejia_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/tejia_icons.png -------------------------------------------------------------------------------- /src/assets/images/tejia_tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/tejia_tag.png -------------------------------------------------------------------------------- /src/assets/images/tel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/tel.png -------------------------------------------------------------------------------- /src/assets/images/tel_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/tel_icon.png -------------------------------------------------------------------------------- /src/assets/images/timelimit_buy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/timelimit_buy.png -------------------------------------------------------------------------------- /src/assets/images/tj_tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/tj_tag.png -------------------------------------------------------------------------------- /src/assets/images/top-1-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/top-1-h.png -------------------------------------------------------------------------------- /src/assets/images/top-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/top-1.png -------------------------------------------------------------------------------- /src/assets/images/top-2-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/top-2-h.png -------------------------------------------------------------------------------- /src/assets/images/top-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/top-2.png -------------------------------------------------------------------------------- /src/assets/images/top-3-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/top-3-h.png -------------------------------------------------------------------------------- /src/assets/images/top-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/top-3.png -------------------------------------------------------------------------------- /src/assets/images/trash_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/trash_icon.png -------------------------------------------------------------------------------- /src/assets/images/tuihuo_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/tuihuo_b.png -------------------------------------------------------------------------------- /src/assets/images/tuihuo_process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/tuihuo_process.png -------------------------------------------------------------------------------- /src/assets/images/type-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/type-1.png -------------------------------------------------------------------------------- /src/assets/images/type-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/type-2.png -------------------------------------------------------------------------------- /src/assets/images/type-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/type-3.png -------------------------------------------------------------------------------- /src/assets/images/type-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/type-4.png -------------------------------------------------------------------------------- /src/assets/images/type-cases.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/type-cases.png -------------------------------------------------------------------------------- /src/assets/images/type-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/type-info.png -------------------------------------------------------------------------------- /src/assets/images/type-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/type-list.png -------------------------------------------------------------------------------- /src/assets/images/type-partner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/type-partner.png -------------------------------------------------------------------------------- /src/assets/images/type-teach.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/type-teach.png -------------------------------------------------------------------------------- /src/assets/images/type-voice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/type-voice.png -------------------------------------------------------------------------------- /src/assets/images/u_h1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/u_h1.png -------------------------------------------------------------------------------- /src/assets/images/ungold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/ungold.png -------------------------------------------------------------------------------- /src/assets/images/up-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/up-hover.png -------------------------------------------------------------------------------- /src/assets/images/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/up.png -------------------------------------------------------------------------------- /src/assets/images/uphone_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/uphone_icon.png -------------------------------------------------------------------------------- /src/assets/images/user-dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/user-dot.png -------------------------------------------------------------------------------- /src/assets/images/user-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/user-icon.png -------------------------------------------------------------------------------- /src/assets/images/user_in.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/user_in.gif -------------------------------------------------------------------------------- /src/assets/images/user_passtip.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/user_passtip.jpg -------------------------------------------------------------------------------- /src/assets/images/user_passtips.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/user_passtips.jpg -------------------------------------------------------------------------------- /src/assets/images/usercenter_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/usercenter_icon.png -------------------------------------------------------------------------------- /src/assets/images/wallet_pay_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/wallet_pay_img.png -------------------------------------------------------------------------------- /src/assets/images/wbqrcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/wbqrcode.png -------------------------------------------------------------------------------- /src/assets/images/weibo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/weibo.png -------------------------------------------------------------------------------- /src/assets/images/weixin-bg-b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/weixin-bg-b.png -------------------------------------------------------------------------------- /src/assets/images/weixin-bg-r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/weixin-bg-r.png -------------------------------------------------------------------------------- /src/assets/images/weixin-bg-t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/weixin-bg-t.png -------------------------------------------------------------------------------- /src/assets/images/weixin_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/weixin_login.png -------------------------------------------------------------------------------- /src/assets/images/weixn_show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/weixn_show.png -------------------------------------------------------------------------------- /src/assets/images/weixn_show_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/weixn_show_2.png -------------------------------------------------------------------------------- /src/assets/images/wexin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/wexin.jpg -------------------------------------------------------------------------------- /src/assets/images/wx_login_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/wx_login_icon.png -------------------------------------------------------------------------------- /src/assets/images/wx_pay_intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/wx_pay_intro.png -------------------------------------------------------------------------------- /src/assets/images/wxqr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/wxqr.jpg -------------------------------------------------------------------------------- /src/assets/images/xp_tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/xp_tag.png -------------------------------------------------------------------------------- /src/assets/images/yes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/images/yes.png -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/assets/logo.png -------------------------------------------------------------------------------- /src/components/Breadcrumb/index.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 65 | 66 | 79 | -------------------------------------------------------------------------------- /src/components/Hamburger/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 32 | 33 | 45 | -------------------------------------------------------------------------------- /src/components/SvgIcon/index.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 47 | 48 | 63 | -------------------------------------------------------------------------------- /src/icons/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import SvgIcon from '@/components/SvgIcon'// svg component 3 | 4 | // register globally 5 | Vue.component('svg-icon', SvgIcon) 6 | 7 | const req = require.context('./svg', false, /\.svg$/) 8 | const requireAll = requireContext => requireContext.keys().map(requireContext) 9 | requireAll(req) 10 | -------------------------------------------------------------------------------- /src/icons/svg/dashboard.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/icons/svg/example.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/icons/svg/eye-open.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/icons/svg/eye.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/icons/svg/form.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/icons/svg/link.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/icons/svg/nested.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/icons/svg/password.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/icons/svg/table.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/icons/svg/tree.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/icons/svg/user.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/icons/svg/wechat.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/icons/svgo.yml: -------------------------------------------------------------------------------- 1 | # replace default config 2 | 3 | # multipass: true 4 | # full: true 5 | 6 | plugins: 7 | 8 | # - name 9 | # 10 | # or: 11 | # - name: false 12 | # - name: true 13 | # 14 | # or: 15 | # - name: 16 | # param1: 1 17 | # param2: 2 18 | 19 | - removeAttrs: 20 | attrs: 21 | - 'fill' 22 | - 'fill-rule' 23 | -------------------------------------------------------------------------------- /src/layout/components/AppMain.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 19 | 20 | 32 | 33 | 41 | -------------------------------------------------------------------------------- /src/layout/components/Sidebar/FixiOSBug.js: -------------------------------------------------------------------------------- 1 | export default { 2 | computed: { 3 | device() { 4 | return this.$store.state.app.device 5 | } 6 | }, 7 | mounted() { 8 | // In order to fix the click on menu on the ios device will trigger the mouseleave bug 9 | // https://github.com/PanJiaChen/vue-element-admin/issues/1135 10 | this.fixBugIniOS() 11 | }, 12 | methods: { 13 | fixBugIniOS() { 14 | const $subMenu = this.$refs.subMenu 15 | if ($subMenu) { 16 | const handleMouseleave = $subMenu.handleMouseleave 17 | $subMenu.handleMouseleave = (e) => { 18 | if (this.device === 'mobile') { 19 | return 20 | } 21 | handleMouseleave(e) 22 | } 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/layout/components/Sidebar/Item.vue: -------------------------------------------------------------------------------- 1 | 30 | -------------------------------------------------------------------------------- /src/layout/components/Sidebar/Link.vue: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 37 | -------------------------------------------------------------------------------- /src/layout/components/Sidebar/Logo.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 33 | 34 | 83 | -------------------------------------------------------------------------------- /src/layout/components/Sidebar/index.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 57 | -------------------------------------------------------------------------------- /src/layout/components/index.js: -------------------------------------------------------------------------------- 1 | export { default as Navbar } from './Navbar' 2 | export { default as Sidebar } from './Sidebar' 3 | export { default as AppMain } from './AppMain' 4 | -------------------------------------------------------------------------------- /src/layout/index.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 52 | 53 | 94 | -------------------------------------------------------------------------------- /src/layout/mixin/ResizeHandler.js: -------------------------------------------------------------------------------- 1 | import store from '@/store' 2 | 3 | const { body } = document 4 | const WIDTH = 992 // refer to Bootstrap's responsive design 5 | 6 | export default { 7 | watch: { 8 | $route(route) { 9 | if (this.device === 'mobile' && this.sidebar.opened) { 10 | store.dispatch('app/closeSideBar', { withoutAnimation: false }) 11 | } 12 | } 13 | }, 14 | beforeMount() { 15 | window.addEventListener('resize', this.$_resizeHandler) 16 | }, 17 | beforeDestroy() { 18 | window.removeEventListener('resize', this.$_resizeHandler) 19 | }, 20 | mounted() { 21 | const isMobile = this.$_isMobile() 22 | if (isMobile) { 23 | store.dispatch('app/toggleDevice', 'mobile') 24 | store.dispatch('app/closeSideBar', { withoutAnimation: true }) 25 | } 26 | }, 27 | methods: { 28 | // use $_ for mixins properties 29 | // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential 30 | $_isMobile() { 31 | const rect = body.getBoundingClientRect() 32 | return rect.width - 1 < WIDTH 33 | }, 34 | $_resizeHandler() { 35 | if (!document.hidden) { 36 | const isMobile = this.$_isMobile() 37 | store.dispatch('app/toggleDevice', isMobile ? 'mobile' : 'desktop') 38 | 39 | if (isMobile) { 40 | store.dispatch('app/closeSideBar', { withoutAnimation: true }) 41 | } 42 | } 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | 3 | import 'normalize.css/normalize.css' // A modern alternative to CSS resets 4 | 5 | import ElementUI from 'element-ui' 6 | import 'element-ui/lib/theme-chalk/index.css' 7 | import locale from 'element-ui/lib/locale/lang/en' // lang i18n 8 | 9 | import '@/styles/index.scss' // global css 10 | 11 | import App from './App' 12 | import store from './store' 13 | import router from './router' 14 | 15 | import '@/icons' // icon 16 | import '@/permission' // permission control 17 | 18 | /** 19 | * If you don't want to use mock-server 20 | * you want to use MockJs for mock api 21 | * you can execute: mockXHR() 22 | * 23 | * Currently MockJs will be used in the production environment, 24 | * please remove it before going online! ! ! 25 | */ 26 | import { mockXHR } from '../mock' 27 | if (process.env.NODE_ENV === 'production') { 28 | mockXHR() 29 | } 30 | 31 | // set ElementUI lang to EN 32 | Vue.use(ElementUI, { locale }) 33 | // 如果想要中文版 element-ui,按如下方式声明 34 | // Vue.use(ElementUI) 35 | 36 | Vue.config.productionTip = false 37 | 38 | new Vue({ 39 | el: '#app', 40 | router, 41 | store, 42 | render: h => h(App) 43 | }) 44 | -------------------------------------------------------------------------------- /src/permission.js: -------------------------------------------------------------------------------- 1 | import router from './router' 2 | import store from './store' 3 | import { Message } from 'element-ui' 4 | import NProgress from 'nprogress' // progress bar 5 | import 'nprogress/nprogress.css' // progress bar style 6 | import { getToken } from '@/utils/auth' // get token from cookie 7 | import getPageTitle from '@/utils/get-page-title' 8 | 9 | NProgress.configure({ showSpinner: false }) // NProgress Configuration 10 | 11 | const whiteList = [ 12 | '/login', 13 | '/authredirect', 14 | '/login/register', 15 | '/login/qq', 16 | '/teacher', 17 | // '/profile' 18 | ] // no redirect whitelist 19 | 20 | router.beforeEach(async(to, from, next) => { 21 | // start progress bar 22 | NProgress.start() 23 | 24 | // set page title 25 | document.title = getPageTitle(to.meta.title) 26 | 27 | // determine whether the user has logged in 28 | const hasToken = getToken() 29 | 30 | 31 | if(to.path==='/teacher/center'&& !hasToken){ 32 | next({ path: '/index' }) 33 | Message.error('请登录后再访问个人中心') 34 | NProgress.done() 35 | }else { 36 | NProgress.done() 37 | next() 38 | } 39 | 40 | return 41 | 42 | 43 | if (hasToken) { 44 | if (to.path === '/login') { 45 | // if is logged in, redirect to the home page 46 | next({ path: '/' }) 47 | NProgress.done() 48 | } else { 49 | // const hasGetUserInfo = store.getters.name 50 | // if (hasGetUserInfo) { 51 | // next() 52 | // } else { 53 | // try { 54 | // // get user info 55 | // await store.dispatch('user/getInfo') 56 | // 57 | // next() 58 | // } catch (error) { 59 | // // remove token and go to login page to re-login 60 | // await store.dispatch('user/resetToken') 61 | // Message.error(error || 'Has Error') 62 | // next(`/login?redirect=${to.path}`) 63 | // NProgress.done() 64 | // } 65 | // } 66 | NProgress.done() 67 | next() 68 | } 69 | } else { 70 | /* has no token*/ 71 | if (whiteList.indexOf(to.path) !== -1) { 72 | // in the free login whitelist, go directly 73 | next() 74 | } else { 75 | // other pages that do not have permission to access are redirected to the login page. 76 | //next(`/login?redirect=${to.path}`) 77 | next() 78 | NProgress.done() 79 | } 80 | } 81 | }) 82 | 83 | router.afterEach(() => { 84 | // finish progress bar 85 | NProgress.done() 86 | }) 87 | -------------------------------------------------------------------------------- /src/settings.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | // 标题 4 | title: 'Vue Admin Template', 5 | 6 | /** 7 | * 修复头 8 | * @type {boolean} true | false 9 | * @description Whether fix the header 10 | */ 11 | fixedHeader: false, 12 | 13 | /** 14 | * 显示LOGO 15 | * @type {boolean} true | false 16 | * @description Whether show the logo in sidebar 17 | */ 18 | sidebarLogo: false 19 | } 20 | -------------------------------------------------------------------------------- /src/store/getters.js: -------------------------------------------------------------------------------- 1 | const getters = { 2 | sidebar: state => state.app.sidebar, 3 | device: state => state.app.device, 4 | token: state => state.user.token, 5 | avatar: state => state.user.avatar, 6 | name: state => state.user.name 7 | } 8 | export default getters 9 | -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import getters from './getters' 4 | import app from './modules/app' 5 | import settings from './modules/settings' 6 | import user from './modules/user' 7 | 8 | Vue.use(Vuex) 9 | 10 | const store = new Vuex.Store({ 11 | modules: { 12 | app, 13 | settings, 14 | user 15 | }, 16 | getters 17 | }) 18 | 19 | export default store 20 | -------------------------------------------------------------------------------- /src/store/modules/app.js: -------------------------------------------------------------------------------- 1 | import Cookies from 'js-cookie' 2 | 3 | const state = { 4 | sidebar: { 5 | opened: Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true, 6 | withoutAnimation: false 7 | }, 8 | device: 'desktop' 9 | } 10 | 11 | const mutations = { 12 | TOGGLE_SIDEBAR: state => { 13 | state.sidebar.opened = !state.sidebar.opened 14 | state.sidebar.withoutAnimation = false 15 | if (state.sidebar.opened) { 16 | Cookies.set('sidebarStatus', 1) 17 | } else { 18 | Cookies.set('sidebarStatus', 0) 19 | } 20 | }, 21 | CLOSE_SIDEBAR: (state, withoutAnimation) => { 22 | Cookies.set('sidebarStatus', 0) 23 | state.sidebar.opened = false 24 | state.sidebar.withoutAnimation = withoutAnimation 25 | }, 26 | TOGGLE_DEVICE: (state, device) => { 27 | state.device = device 28 | } 29 | } 30 | 31 | const actions = { 32 | toggleSideBar({ commit }) { 33 | commit('TOGGLE_SIDEBAR') 34 | }, 35 | closeSideBar({ commit }, { withoutAnimation }) { 36 | commit('CLOSE_SIDEBAR', withoutAnimation) 37 | }, 38 | toggleDevice({ commit }, device) { 39 | commit('TOGGLE_DEVICE', device) 40 | } 41 | } 42 | 43 | export default { 44 | namespaced: true, 45 | state, 46 | mutations, 47 | actions 48 | } 49 | -------------------------------------------------------------------------------- /src/store/modules/settings.js: -------------------------------------------------------------------------------- 1 | import defaultSettings from '@/settings' 2 | 3 | const { showSettings, fixedHeader, sidebarLogo } = defaultSettings 4 | 5 | const state = { 6 | showSettings: showSettings, 7 | fixedHeader: fixedHeader, 8 | sidebarLogo: sidebarLogo 9 | } 10 | 11 | const mutations = { 12 | CHANGE_SETTING: (state, { key, value }) => { 13 | if (state.hasOwnProperty(key)) { 14 | state[key] = value 15 | } 16 | } 17 | } 18 | 19 | const actions = { 20 | changeSetting({ commit }, data) { 21 | commit('CHANGE_SETTING', data) 22 | } 23 | } 24 | 25 | export default { 26 | namespaced: true, 27 | state, 28 | mutations, 29 | actions 30 | } 31 | 32 | -------------------------------------------------------------------------------- /src/store/modules/user.js: -------------------------------------------------------------------------------- 1 | import * as tokenUtils from '@/utils/auth' 2 | import { resetRouter } from '@/router' 3 | 4 | const state = { 5 | token: tokenUtils.getToken(), 6 | name: '', 7 | avatar: '' 8 | } 9 | 10 | const mutations = { 11 | SET_TOKEN: (state, token) => { 12 | state.token = token 13 | }, 14 | SET_NAME: (state, name) => { 15 | state.name = name 16 | }, 17 | SET_AVATAR: (state, avatar) => { 18 | state.avatar = avatar 19 | } 20 | } 21 | 22 | const actions = { 23 | 24 | setToken({ commit }, token) { 25 | commit('SET_TOKEN', token) 26 | // 同时将 access_token写到cookie 27 | tokenUtils.setToken(token.access_token) 28 | }, 29 | 30 | // get user info 31 | getInfo({ commit, state }) { 32 | // return new Promise((resolve, reject) => { 33 | // getInfo(state.token).then(response => { 34 | // const { data } = response 35 | // 36 | // if (!data) { 37 | // reject('Verification failed, please Login again.') 38 | // } 39 | // 40 | // const { name, avatar } = data 41 | // 42 | // commit('SET_NAME', name) 43 | // commit('SET_AVATAR', avatar) 44 | // resolve(data) 45 | // }).catch(error => { 46 | // reject(error) 47 | // }) 48 | // }) 49 | }, 50 | 51 | // user logout 52 | logout({ commit, state }) { 53 | // return new Promise((resolve, reject) => { 54 | // logout(state.token).then(() => { 55 | // commit('SET_TOKEN', '') 56 | // removeToken() 57 | // resetRouter() 58 | // resolve() 59 | // }).catch(error => { 60 | // reject(error) 61 | // }) 62 | // }) 63 | }, 64 | 65 | // remove token 66 | resetToken({ commit }) { 67 | return new Promise(resolve => { 68 | commit('SET_TOKEN', '') 69 | tokenUtils.removeToken() 70 | resolve() 71 | }) 72 | } 73 | } 74 | 75 | export default { 76 | namespaced: true, 77 | state, 78 | mutations, 79 | actions 80 | } 81 | 82 | -------------------------------------------------------------------------------- /src/styles/element-ui.scss: -------------------------------------------------------------------------------- 1 | // cover some element-ui styles 2 | 3 | .el-breadcrumb__inner, 4 | .el-breadcrumb__inner a { 5 | font-weight: 400 !important; 6 | } 7 | 8 | .el-upload { 9 | input[type="file"] { 10 | display: none !important; 11 | } 12 | } 13 | 14 | .el-upload__input { 15 | display: none; 16 | } 17 | 18 | 19 | // to fixed https://github.com/ElemeFE/element/issues/2461 20 | .el-dialog { 21 | transform: none; 22 | left: 0; 23 | position: relative; 24 | margin: 0 auto; 25 | } 26 | 27 | // refine element ui upload 28 | .upload-container { 29 | .el-upload { 30 | width: 100%; 31 | 32 | .el-upload-dragger { 33 | width: 100%; 34 | height: 200px; 35 | } 36 | } 37 | } 38 | 39 | // dropdown 40 | .el-dropdown-menu { 41 | a { 42 | display: block 43 | } 44 | } 45 | 46 | // to fix el-date-picker css style 47 | .el-range-separator { 48 | box-sizing: content-box; 49 | } 50 | -------------------------------------------------------------------------------- /src/styles/front/city.css: -------------------------------------------------------------------------------- 1 | .city_list{ 2 | width: 1200px; 3 | margin: 20px auto; 4 | } 5 | .city_list dl{ 6 | clear: both; 7 | height: 28px; 8 | line-height: 28px; 9 | padding: 10px 0px; 10 | } 11 | .city_list dl dt{ 12 | font-weight: bold; 13 | padding-right: 10px; 14 | float:left; 15 | overflow: hidden; 16 | } 17 | .city_list dl dd{ 18 | float: left; 19 | 20 | } 21 | .city_list dl dd a{ 22 | color: #333; 23 | margin-right: 10px; 24 | position: relative; 25 | } 26 | 27 | .city_list dl dd a img{ 28 | position: absolute; 29 | top: -15px; 30 | left: 0; 31 | } 32 | 33 | .city_list dl dd a.enabled{ 34 | color: #999; 35 | cursor: not-allowed; 36 | } -------------------------------------------------------------------------------- /src/styles/front/error.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* CSS Document */ 3 | body,html,div,h1{ margin:0; padding:0; font-size:14px;} 4 | .bh-error{ width:100%; height:auto; overflow:hidden;} 5 | .bh-error .bh-tips{ height:50px; text-align:center; line-height:50px; color:#666; font-size:28px; font-family:Arial, Helvetica, sans-serif;} 6 | .bh-error .bh-notice{ height:30px; line-height:30px; text-align:center; color:#999; font-size:14px;font-family:Arial, Helvetica, sans-serif;} 7 | .bh-error .bh-errorbg{ height:349px; width:100%; margin:0px auto 20px auto; overflow:hidden; background:url(../images/bg/error-bg.jpg) no-repeat center center; -webkit-animation:ebg-a 150s linear infinite;animation:ebg-a 150s linear infinite;} 8 | .bh-error .bh-errorbg img{ text-align:center; display:block; margin:90px auto 0px auto;} 9 | .bh-error .bh-btn{ width:330px; height:62px; color:#797979; line-height:62px; text-align:center; cursor:pointer; border:solid 3px #189aff; border-radius:4px; margin:50px auto 0px auto; font-size:20px;} 10 | .bh-error .bh-btn:hover{ background:#189aff; color:#fff;} 11 | .bh-error a{ color:#797979; text-decoration:none;} 12 | @-webkit-keyframes ebg-a{ 13 | 0%{ background-position:top center;} 14 | 100%{ background-position:bottom center;} 15 | } 16 | @keyframes ebg-a{ 17 | 0%{ background-position:top center;} 18 | 100%{ background-position:bottom center;} 19 | } 20 | @media (max-width:640px){ 21 | .bh-error .bh-errorbg{ height:200px; overflow:hidden; margin-bottom:10px;} 22 | .bh-error .bh-errorbg img{ margin:50px auto 0px auto; height:100px; text-align:center; display:block;} 23 | .bh-error .bh-btn{ width:90%; height:45px; line-height:45px; font-size:14px; margin-top:15px; border-width:1px;} 24 | .bh-error .bh-tips{ height:auto; line-height:40px; width:95%; margin:0px auto;} 25 | .bh-error .bh-notice{ height:auto; line-height:200%; width:95%; margin:0px auto; padding:0;} 26 | } -------------------------------------------------------------------------------- /src/styles/front/font-awesome/HELP-US-OUT.txt: -------------------------------------------------------------------------------- 1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, 2 | Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, 3 | comprehensive icon sets or copy and paste your own. 4 | 5 | Please. Check it out. 6 | 7 | -Dave Gandy 8 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/styles/front/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /src/styles/front/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/styles/front/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/styles/front/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/styles/front/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/styles/front/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/styles/front/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/styles/front/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuchiaLu/tutor-portal-web/3b26c52512003eddadefa3138af5a1da58ea0f5f/src/styles/front/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/styles/front/font-awesome/less/animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .@{fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix} { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .@{fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "animated.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | @import "screen-reader.less"; 19 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | .fa-icon-rotate(@degrees, @rotation) { 15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})"; 16 | -webkit-transform: rotate(@degrees); 17 | -ms-transform: rotate(@degrees); 18 | transform: rotate(@degrees); 19 | } 20 | 21 | .fa-icon-flip(@horiz, @vert, @rotation) { 22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)"; 23 | -webkit-transform: scale(@horiz, @vert); 24 | -ms-transform: scale(@horiz, @vert); 25 | transform: scale(@horiz, @vert); 26 | } 27 | 28 | 29 | // Only display content to screen readers. A la Bootstrap 4. 30 | // 31 | // See: http://a11yproject.com/posts/how-to-hide-content/ 32 | 33 | .sr-only() { 34 | position: absolute; 35 | width: 1px; 36 | height: 1px; 37 | padding: 0; 38 | margin: -1px; 39 | overflow: hidden; 40 | clip: rect(0,0,0,0); 41 | border: 0; 42 | } 43 | 44 | // Use in conjunction with .sr-only to only display content when it's focused. 45 | // 46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 47 | // 48 | // Credit: HTML5 Boilerplate 49 | 50 | .sr-only-focusable() { 51 | &:active, 52 | &:focus { 53 | position: static; 54 | width: auto; 55 | height: auto; 56 | margin: 0; 57 | overflow: visible; 58 | clip: auto; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), 9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/less/screen-reader.less: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { .sr-only(); } 5 | .sr-only-focusable { .sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .#{$fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .#{$fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | @mixin fa-icon-rotate($degrees, $rotation) { 15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; 16 | -webkit-transform: rotate($degrees); 17 | -ms-transform: rotate($degrees); 18 | transform: rotate($degrees); 19 | } 20 | 21 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; 23 | -webkit-transform: scale($horiz, $vert); 24 | -ms-transform: scale($horiz, $vert); 25 | transform: scale($horiz, $vert); 26 | } 27 | 28 | 29 | // Only display content to screen readers. A la Bootstrap 4. 30 | // 31 | // See: http://a11yproject.com/posts/how-to-hide-content/ 32 | 33 | @mixin sr-only { 34 | position: absolute; 35 | width: 1px; 36 | height: 1px; 37 | padding: 0; 38 | margin: -1px; 39 | overflow: hidden; 40 | clip: rect(0,0,0,0); 41 | border: 0; 42 | } 43 | 44 | // Use in conjunction with .sr-only to only display content when it's focused. 45 | // 46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 47 | // 48 | // Credit: HTML5 Boilerplate 49 | 50 | @mixin sr-only-focusable { 51 | &:active, 52 | &:focus { 53 | position: static; 54 | width: auto; 55 | height: auto; 56 | margin: 0; 57 | overflow: visible; 58 | clip: auto; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), 9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/scss/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { @include sr-only(); } 5 | .sr-only-focusable { @include sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /src/styles/front/font-awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "animated"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | @import "screen-reader"; 19 | -------------------------------------------------------------------------------- /src/styles/index.scss: -------------------------------------------------------------------------------- 1 | @import './variables.scss'; 2 | @import './mixin.scss'; 3 | @import './transition.scss'; 4 | @import './element-ui.scss'; 5 | @import './sidebar.scss'; 6 | 7 | body { 8 | height: 100%; 9 | -moz-osx-font-smoothing: grayscale; 10 | -webkit-font-smoothing: antialiased; 11 | text-rendering: optimizeLegibility; 12 | font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif; 13 | } 14 | 15 | label { 16 | font-weight: 700; 17 | } 18 | 19 | html { 20 | height: 100%; 21 | box-sizing: border-box; 22 | } 23 | 24 | #app { 25 | height: 100%; 26 | } 27 | 28 | *, 29 | *:before, 30 | *:after { 31 | box-sizing: inherit; 32 | } 33 | 34 | a:focus, 35 | a:active { 36 | outline: none; 37 | } 38 | 39 | a, 40 | a:focus, 41 | a:hover { 42 | cursor: pointer; 43 | color: inherit; 44 | text-decoration: none; 45 | } 46 | 47 | div:focus { 48 | outline: none; 49 | } 50 | 51 | .clearfix { 52 | &:after { 53 | visibility: hidden; 54 | display: block; 55 | font-size: 0; 56 | content: " "; 57 | clear: both; 58 | height: 0; 59 | } 60 | } 61 | 62 | // main-container global css 63 | .app-container { 64 | padding: 20px; 65 | } 66 | -------------------------------------------------------------------------------- /src/styles/mixin.scss: -------------------------------------------------------------------------------- 1 | @mixin clearfix { 2 | &:after { 3 | content: ""; 4 | display: table; 5 | clear: both; 6 | } 7 | } 8 | 9 | @mixin scrollBar { 10 | &::-webkit-scrollbar-track-piece { 11 | background: #d3dce6; 12 | } 13 | 14 | &::-webkit-scrollbar { 15 | width: 6px; 16 | } 17 | 18 | &::-webkit-scrollbar-thumb { 19 | background: #99a9bf; 20 | border-radius: 20px; 21 | } 22 | } 23 | 24 | @mixin relative { 25 | position: relative; 26 | width: 100%; 27 | height: 100%; 28 | } 29 | -------------------------------------------------------------------------------- /src/styles/transition.scss: -------------------------------------------------------------------------------- 1 | // global transition css 2 | 3 | /* fade */ 4 | .fade-enter-active, 5 | .fade-leave-active { 6 | transition: opacity 0.28s; 7 | } 8 | 9 | .fade-enter, 10 | .fade-leave-active { 11 | opacity: 0; 12 | } 13 | 14 | /* fade-transform */ 15 | .fade-transform-leave-active, 16 | .fade-transform-enter-active { 17 | transition: all .5s; 18 | } 19 | 20 | .fade-transform-enter { 21 | opacity: 0; 22 | transform: translateX(-30px); 23 | } 24 | 25 | .fade-transform-leave-to { 26 | opacity: 0; 27 | transform: translateX(30px); 28 | } 29 | 30 | /* breadcrumb transition */ 31 | .breadcrumb-enter-active, 32 | .breadcrumb-leave-active { 33 | transition: all .5s; 34 | } 35 | 36 | .breadcrumb-enter, 37 | .breadcrumb-leave-active { 38 | opacity: 0; 39 | transform: translateX(20px); 40 | } 41 | 42 | .breadcrumb-move { 43 | transition: all .5s; 44 | } 45 | 46 | .breadcrumb-leave-active { 47 | position: absolute; 48 | } 49 | -------------------------------------------------------------------------------- /src/styles/variables.scss: -------------------------------------------------------------------------------- 1 | // sidebar 2 | $menuText:#bfcbd9; 3 | $menuActiveText:#409EFF; 4 | $subMenuActiveText:#f4f4f5; //https://github.com/ElemeFE/element/issues/12951 5 | 6 | $menuBg:#304156; 7 | $menuHover:#263445; 8 | 9 | $subMenuBg:#1f2d3d; 10 | $subMenuHover:#001528; 11 | 12 | $sideBarWidth: 210px; 13 | 14 | // the :export directive is the magic sauce for webpack 15 | // https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass 16 | :export { 17 | menuText: $menuText; 18 | menuActiveText: $menuActiveText; 19 | subMenuActiveText: $subMenuActiveText; 20 | menuBg: $menuBg; 21 | menuHover: $menuHover; 22 | subMenuBg: $subMenuBg; 23 | subMenuHover: $subMenuHover; 24 | sideBarWidth: $sideBarWidth; 25 | } 26 | -------------------------------------------------------------------------------- /src/utils/auth.js: -------------------------------------------------------------------------------- 1 | import Cookies from 'js-cookie' 2 | 3 | const TokenKey = 'vue_admin_template_token' 4 | 5 | export function getToken() { 6 | return Cookies.get(TokenKey) 7 | } 8 | 9 | export function setToken(token) { 10 | return Cookies.set(TokenKey, token) 11 | } 12 | 13 | export function removeToken() { 14 | return Cookies.remove(TokenKey) 15 | } 16 | -------------------------------------------------------------------------------- /src/utils/get-page-title.js: -------------------------------------------------------------------------------- 1 | import defaultSettings from '@/settings' 2 | 3 | const title = defaultSettings.title || 'Vue Admin Template' 4 | 5 | export default function getPageTitle(pageTitle) { 6 | if (pageTitle) { 7 | return `${pageTitle} - ${title}` 8 | } 9 | return `${title}` 10 | } 11 | -------------------------------------------------------------------------------- /src/utils/open-window.js: -------------------------------------------------------------------------------- 1 | /** 2 | *Created by PanJiaChen on 16/11/29. 3 | * @param {Sting} url 4 | * @param {Sting} title 5 | * @param {Number} w 6 | * @param {Number} h 7 | */ 8 | export default function openWindow(url, title, w, h) { 9 | // Fixes dual-screen position Most browsers Firefox 10 | const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : screen.left 11 | const dualScreenTop = window.screenTop !== undefined ? window.screenTop : screen.top 12 | 13 | const width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width 14 | const height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height 15 | 16 | const left = ((width / 2) - (w / 2)) + dualScreenLeft 17 | const top = ((height / 2) - (h / 2)) + dualScreenTop 18 | const newWindow = window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left) 19 | 20 | // Puts focus on the newWindow 21 | if (window.focus) { 22 | newWindow.focus() 23 | } 24 | } 25 | 26 | -------------------------------------------------------------------------------- /src/utils/request.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | import { MessageBox, Message } from 'element-ui' 3 | import store from '@/store' 4 | import { getToken } from '@/utils/auth' 5 | 6 | // create an axios instance 7 | const service = axios.create({ 8 | baseURL: '/api', 9 | // withCredentials: true, // send cookies when cross-domain requests 10 | timeout: 5000 // request timeout 11 | }) 12 | 13 | // request interceptor 14 | service.interceptors.request.use( 15 | config => { 16 | const bearerToken = getToken() 17 | if (bearerToken) { 18 | config.headers['Authorization'] = "bearer "+bearerToken 19 | } 20 | return config 21 | }, 22 | error => { 23 | console.log(error) // for debug 24 | return Promise.reject(error) 25 | } 26 | ) 27 | 28 | // response interceptor 29 | service.interceptors.response.use( 30 | 31 | response => { 32 | const res = response.data 33 | return res 34 | }, 35 | error => { 36 | console.log('err' + error) // for debug 37 | 38 | if(error.response.data.message){ 39 | let message = error.response.data.message 40 | if(error.response.data.data){ 41 | message = message+':'+JSON.stringify(error.response.data.data) 42 | } 43 | Message({ 44 | message: message, 45 | type: 'warning', 46 | duration: 5 * 1000 47 | }) 48 | } 49 | return Promise.reject(error) 50 | } 51 | ) 52 | 53 | export default service 54 | -------------------------------------------------------------------------------- /src/utils/ssoRequest.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | import { MessageBox, Message } from 'element-ui' 3 | import store from '@/store' 4 | import { getToken } from '@/utils/auth' 5 | 6 | // create an axios instance 7 | const service2 = axios.create({ 8 | baseURL: '/api/auth', 9 | // withCredentials: true, // send cookies when cross-domain requests 10 | timeout: 5000 // request timeout 11 | }) 12 | 13 | // request interceptor 14 | service2.interceptors.request.use( 15 | config => { 16 | config.headers['Authorization'] = 'Basic d2ViLXBvcnRhbDp3ZWItcG9ydGFs' 17 | return config 18 | }, 19 | error => { 20 | console.log(error) // for debug 21 | return Promise.reject(error) 22 | } 23 | ) 24 | 25 | // response interceptor 26 | service2.interceptors.response.use( 27 | 28 | response => { 29 | const res = response.data 30 | return res 31 | }, 32 | error => { 33 | console.log(error.response) // for debug 34 | if(error.response.data.message){ 35 | Message({ 36 | message: error.response.data.message, 37 | type: 'warning', 38 | duration: 5 * 1000 39 | }) 40 | } 41 | return Promise.reject(error) 42 | } 43 | ) 44 | 45 | export default service2 46 | -------------------------------------------------------------------------------- /src/utils/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by PanJiaChen on 16/11/18. 3 | */ 4 | 5 | /** 6 | * @param {string} path 7 | * @returns {Boolean} 8 | */ 9 | export function isExternal(path) { 10 | return /^(https?:|mailto:|tel:)/.test(path) 11 | } 12 | 13 | /** 14 | * @param {string} str 15 | * @returns {Boolean} 16 | */ 17 | export function validUsername(str) { 18 | const valid_map = ['admin', 'editor'] 19 | return valid_map.indexOf(str.trim()) >= 0 20 | } 21 | -------------------------------------------------------------------------------- /src/views/footer/index.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 35 | 36 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/views/login/ssoredirect.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 43 | 44 | 46 | -------------------------------------------------------------------------------- /src/views/right/index.vue: -------------------------------------------------------------------------------- 1 | 44 | 45 | 68 | 69 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /tests/unit/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | jest: true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tests/unit/components/Hamburger.spec.js: -------------------------------------------------------------------------------- 1 | import { shallowMount } from '@vue/test-utils' 2 | import Hamburger from '@/components/Hamburger/index.vue' 3 | describe('Hamburger.vue', () => { 4 | it('toggle click', () => { 5 | const wrapper = shallowMount(Hamburger) 6 | const mockFn = jest.fn() 7 | wrapper.vm.$on('toggleClick', mockFn) 8 | wrapper.find('.hamburger').trigger('click') 9 | expect(mockFn).toBeCalled() 10 | }) 11 | it('prop isActive', () => { 12 | const wrapper = shallowMount(Hamburger) 13 | wrapper.setProps({ isActive: true }) 14 | expect(wrapper.contains('.is-active')).toBe(true) 15 | wrapper.setProps({ isActive: false }) 16 | expect(wrapper.contains('.is-active')).toBe(false) 17 | }) 18 | }) 19 | -------------------------------------------------------------------------------- /tests/unit/components/SvgIcon.spec.js: -------------------------------------------------------------------------------- 1 | import { shallowMount } from '@vue/test-utils' 2 | import SvgIcon from '@/components/SvgIcon/index.vue' 3 | describe('SvgIcon.vue', () => { 4 | it('iconClass', () => { 5 | const wrapper = shallowMount(SvgIcon, { 6 | propsData: { 7 | iconClass: 'test' 8 | } 9 | }) 10 | expect(wrapper.find('use').attributes().href).toBe('#icon-test') 11 | }) 12 | it('className', () => { 13 | const wrapper = shallowMount(SvgIcon, { 14 | propsData: { 15 | iconClass: 'test' 16 | } 17 | }) 18 | expect(wrapper.classes().length).toBe(1) 19 | wrapper.setProps({ className: 'test' }) 20 | expect(wrapper.classes().includes('test')).toBe(true) 21 | }) 22 | }) 23 | -------------------------------------------------------------------------------- /tests/unit/utils/formatTime.spec.js: -------------------------------------------------------------------------------- 1 | import { formatTime } from '@/utils/index.js' 2 | 3 | describe('Utils:formatTime', () => { 4 | const d = new Date('2018-07-13 17:54:01') // "2018-07-13 17:54:01" 5 | const retrofit = 5 * 1000 6 | 7 | it('ten digits timestamp', () => { 8 | expect(formatTime((d / 1000).toFixed(0))).toBe('7月13日17时54分') 9 | }) 10 | it('test now', () => { 11 | expect(formatTime(+new Date() - 1)).toBe('刚刚') 12 | }) 13 | it('less two minute', () => { 14 | expect(formatTime(+new Date() - 60 * 2 * 1000 + retrofit)).toBe('2分钟前') 15 | }) 16 | it('less two hour', () => { 17 | expect(formatTime(+new Date() - 60 * 60 * 2 * 1000 + retrofit)).toBe('2小时前') 18 | }) 19 | it('less one day', () => { 20 | expect(formatTime(+new Date() - 60 * 60 * 24 * 1 * 1000)).toBe('1天前') 21 | }) 22 | it('more than one day', () => { 23 | expect(formatTime(d)).toBe('7月13日17时54分') 24 | }) 25 | it('format', () => { 26 | expect(formatTime(d, '{y}-{m}-{d} {h}:{i}')).toBe('2018-07-13 17:54') 27 | expect(formatTime(d, '{y}-{m}-{d}')).toBe('2018-07-13') 28 | expect(formatTime(d, '{y}/{m}/{d} {h}-{i}')).toBe('2018/07/13 17-54') 29 | }) 30 | }) 31 | -------------------------------------------------------------------------------- /tests/unit/utils/parseTime.spec.js: -------------------------------------------------------------------------------- 1 | import { parseTime } from '@/utils/index.js' 2 | 3 | describe('Utils:parseTime', () => { 4 | const d = new Date('2018-07-13 17:54:01') // "2018-07-13 17:54:01" 5 | it('timestamp', () => { 6 | expect(parseTime(d)).toBe('2018-07-13 17:54:01') 7 | }) 8 | it('ten digits timestamp', () => { 9 | expect(parseTime((d / 1000).toFixed(0))).toBe('2018-07-13 17:54:01') 10 | }) 11 | it('new Date', () => { 12 | expect(parseTime(new Date(d))).toBe('2018-07-13 17:54:01') 13 | }) 14 | it('format', () => { 15 | expect(parseTime(d, '{y}-{m}-{d} {h}:{i}')).toBe('2018-07-13 17:54') 16 | expect(parseTime(d, '{y}-{m}-{d}')).toBe('2018-07-13') 17 | expect(parseTime(d, '{y}/{m}/{d} {h}-{i}')).toBe('2018/07/13 17-54') 18 | }) 19 | it('get the day of the week', () => { 20 | expect(parseTime(d, '{a}')).toBe('五') // 星期五 21 | }) 22 | it('get the day of the week', () => { 23 | expect(parseTime(+d + 1000 * 60 * 60 * 24 * 2, '{a}')).toBe('日') // 星期日 24 | }) 25 | it('empty argument', () => { 26 | expect(parseTime()).toBeNull() 27 | }) 28 | }) 29 | -------------------------------------------------------------------------------- /tests/unit/utils/validate.spec.js: -------------------------------------------------------------------------------- 1 | import { validUsername, isExternal } from '@/utils/validate.js' 2 | 3 | describe('Utils:validate', () => { 4 | it('validUsername', () => { 5 | expect(validUsername('admin')).toBe(true) 6 | expect(validUsername('editor')).toBe(true) 7 | expect(validUsername('xxxx')).toBe(false) 8 | }) 9 | it('isExternal', () => { 10 | expect(isExternal('https://github.com/PanJiaChen/vue-element-admin')).toBe(true) 11 | expect(isExternal('http://github.com/PanJiaChen/vue-element-admin')).toBe(true) 12 | expect(isExternal('github.com/PanJiaChen/vue-element-admin')).toBe(false) 13 | expect(isExternal('/dashboard')).toBe(false) 14 | expect(isExternal('./dashboard')).toBe(false) 15 | expect(isExternal('dashboard')).toBe(false) 16 | }) 17 | }) 18 | --------------------------------------------------------------------------------