├── .dockerignore ├── .env.example ├── .github └── SECURITY.md ├── .gitignore ├── ADDITIONAL_TERMS.md ├── CHANGELOG.md ├── Dockerfile ├── LICENSE ├── README.md ├── compose.yml ├── docker ├── nginx │ └── default.conf └── php │ ├── php-fpm.conf │ ├── php-fpm.d │ ├── docker.conf │ ├── www.conf │ └── zz-docker.conf │ └── php.ini ├── xyz.meedu.admin ├── .env.example ├── .gitignore ├── README.md ├── index.html ├── package.json ├── pnpm-lock.yaml ├── public │ ├── favicon.png │ ├── js │ │ ├── aliyun-vod │ │ │ ├── aliyun-oss-sdk-5.2.0.min.js │ │ │ └── aliyun-upload-sdk-1.4.0.min.js │ │ ├── highlight │ │ │ ├── a11y-dark.min.css │ │ │ └── highlight-9.18.5.min.js │ │ ├── katex │ │ │ ├── contrib │ │ │ │ └── auto-render.min.js │ │ │ ├── fonts │ │ │ │ ├── KaTeX_AMS-Regular.ttf │ │ │ │ ├── KaTeX_AMS-Regular.woff │ │ │ │ ├── KaTeX_AMS-Regular.woff2 │ │ │ │ ├── KaTeX_Caligraphic-Bold.ttf │ │ │ │ ├── KaTeX_Caligraphic-Bold.woff │ │ │ │ ├── KaTeX_Caligraphic-Bold.woff2 │ │ │ │ ├── KaTeX_Caligraphic-Regular.ttf │ │ │ │ ├── KaTeX_Caligraphic-Regular.woff │ │ │ │ ├── KaTeX_Caligraphic-Regular.woff2 │ │ │ │ ├── KaTeX_Fraktur-Bold.ttf │ │ │ │ ├── KaTeX_Fraktur-Bold.woff │ │ │ │ ├── KaTeX_Fraktur-Bold.woff2 │ │ │ │ ├── KaTeX_Fraktur-Regular.ttf │ │ │ │ ├── KaTeX_Fraktur-Regular.woff │ │ │ │ ├── KaTeX_Fraktur-Regular.woff2 │ │ │ │ ├── KaTeX_Main-Bold.ttf │ │ │ │ ├── KaTeX_Main-Bold.woff │ │ │ │ ├── KaTeX_Main-Bold.woff2 │ │ │ │ ├── KaTeX_Main-BoldItalic.ttf │ │ │ │ ├── KaTeX_Main-BoldItalic.woff │ │ │ │ ├── KaTeX_Main-BoldItalic.woff2 │ │ │ │ ├── KaTeX_Main-Italic.ttf │ │ │ │ ├── KaTeX_Main-Italic.woff │ │ │ │ ├── KaTeX_Main-Italic.woff2 │ │ │ │ ├── KaTeX_Main-Regular.ttf │ │ │ │ ├── KaTeX_Main-Regular.woff │ │ │ │ ├── KaTeX_Main-Regular.woff2 │ │ │ │ ├── KaTeX_Math-BoldItalic.ttf │ │ │ │ ├── KaTeX_Math-BoldItalic.woff │ │ │ │ ├── KaTeX_Math-BoldItalic.woff2 │ │ │ │ ├── KaTeX_Math-Italic.ttf │ │ │ │ ├── KaTeX_Math-Italic.woff │ │ │ │ ├── KaTeX_Math-Italic.woff2 │ │ │ │ ├── KaTeX_SansSerif-Bold.ttf │ │ │ │ ├── KaTeX_SansSerif-Bold.woff │ │ │ │ ├── KaTeX_SansSerif-Bold.woff2 │ │ │ │ ├── KaTeX_SansSerif-Italic.ttf │ │ │ │ ├── KaTeX_SansSerif-Italic.woff │ │ │ │ ├── KaTeX_SansSerif-Italic.woff2 │ │ │ │ ├── KaTeX_SansSerif-Regular.ttf │ │ │ │ ├── KaTeX_SansSerif-Regular.woff │ │ │ │ ├── KaTeX_SansSerif-Regular.woff2 │ │ │ │ ├── KaTeX_Script-Regular.ttf │ │ │ │ ├── KaTeX_Script-Regular.woff │ │ │ │ ├── KaTeX_Script-Regular.woff2 │ │ │ │ ├── KaTeX_Size1-Regular.ttf │ │ │ │ ├── KaTeX_Size1-Regular.woff │ │ │ │ ├── KaTeX_Size1-Regular.woff2 │ │ │ │ ├── KaTeX_Size2-Regular.ttf │ │ │ │ ├── KaTeX_Size2-Regular.woff │ │ │ │ ├── KaTeX_Size2-Regular.woff2 │ │ │ │ ├── KaTeX_Size3-Regular.ttf │ │ │ │ ├── KaTeX_Size3-Regular.woff │ │ │ │ ├── KaTeX_Size3-Regular.woff2 │ │ │ │ ├── KaTeX_Size4-Regular.ttf │ │ │ │ ├── KaTeX_Size4-Regular.woff │ │ │ │ ├── KaTeX_Size4-Regular.woff2 │ │ │ │ ├── KaTeX_Typewriter-Regular.ttf │ │ │ │ ├── KaTeX_Typewriter-Regular.woff │ │ │ │ └── KaTeX_Typewriter-Regular.woff2 │ │ │ ├── katex.min.css │ │ │ └── katex.min.js │ │ └── player │ │ │ ├── DPlayer.min.js │ │ │ └── hls-1.4.10.min.js │ └── template │ │ ├── 学员批量导入模板.xlsx │ │ ├── 试题批量导入模板.xlsx │ │ └── 课时批量导入模板.xlsx ├── src │ ├── App.scss │ ├── App.tsx │ ├── AutoTop.ts │ ├── api │ │ ├── admin-role.ts │ │ ├── administrator.ts │ │ ├── comment.ts │ │ ├── course.ts │ │ ├── home.ts │ │ ├── index.ts │ │ ├── internal │ │ │ ├── httpClient.ts │ │ │ └── prehttpClient.ts │ │ ├── login.ts │ │ ├── media.ts │ │ ├── member.ts │ │ ├── order.ts │ │ ├── pre.ts │ │ ├── promocode.ts │ │ ├── role.ts │ │ ├── stats.ts │ │ ├── system.ts │ │ ├── user.ts │ │ ├── video-category.ts │ │ ├── viewBlock.ts │ │ └── wechat.ts │ ├── assets │ │ ├── common │ │ │ └── iconfont │ │ │ │ ├── iconfont.css │ │ │ │ ├── iconfont.ttf │ │ │ │ ├── iconfont.woff │ │ │ │ └── iconfont.woff2 │ │ ├── home │ │ │ ├── favicon.ico │ │ │ ├── logo.png │ │ │ └── selected.png │ │ ├── images │ │ │ ├── config │ │ │ │ ├── ali.png │ │ │ │ ├── camera.png │ │ │ │ ├── clicklogin.png │ │ │ │ ├── coursetime.png │ │ │ │ ├── credict.png │ │ │ │ ├── h5.png │ │ │ │ ├── icon-option.png │ │ │ │ ├── icon-sign in.png │ │ │ │ ├── import.png │ │ │ │ ├── live.png │ │ │ │ ├── login.png │ │ │ │ ├── message.png │ │ │ │ ├── payment.png │ │ │ │ ├── pic.png │ │ │ │ ├── player.png │ │ │ │ ├── role.png │ │ │ │ ├── search.png │ │ │ │ ├── sendvip.png │ │ │ │ ├── system.png │ │ │ │ ├── tecent.png │ │ │ │ ├── topic.png │ │ │ │ ├── video.png │ │ │ │ ├── webview.png │ │ │ │ ├── wechat.png │ │ │ │ └── weixin.png │ │ │ ├── decoration │ │ │ │ └── h5 │ │ │ │ │ ├── blank.png │ │ │ │ │ ├── book-back.png │ │ │ │ │ ├── code.png │ │ │ │ │ ├── course-back.png │ │ │ │ │ ├── default-grid-nav.png │ │ │ │ │ ├── default-slider.png │ │ │ │ │ ├── empty-image.png │ │ │ │ │ ├── grid-nav.png │ │ │ │ │ ├── h5-book-v1.png │ │ │ │ │ ├── h5-edit.png │ │ │ │ │ ├── h5-gognzhoanghao-v1.png │ │ │ │ │ ├── h5-vod-v1.png │ │ │ │ │ ├── icon-announce.png │ │ │ │ │ ├── icon-banner.png │ │ │ │ │ ├── icon-link.png │ │ │ │ │ ├── icon-nav.png │ │ │ │ │ ├── image-group-1-2-active.png │ │ │ │ │ ├── image-group-1-2.png │ │ │ │ │ ├── image-group-1-active.png │ │ │ │ │ ├── image-group-1.png │ │ │ │ │ ├── image-group-2-active.png │ │ │ │ │ ├── image-group-2.png │ │ │ │ │ ├── image-group-3-active.png │ │ │ │ │ ├── image-group-3.png │ │ │ │ │ ├── image-group-4-active.png │ │ │ │ │ ├── image-group-4.png │ │ │ │ │ ├── image-group.png │ │ │ │ │ ├── mp-wechat-icon.png │ │ │ │ │ ├── mp-wechat.png │ │ │ │ │ ├── none-img.png │ │ │ │ │ ├── pc-edit.png │ │ │ │ │ ├── pc-edit2.png │ │ │ │ │ ├── search-bar.png │ │ │ │ │ ├── slider.png │ │ │ │ │ └── status-bar.png │ │ │ ├── stats │ │ │ │ └── icon.png │ │ │ └── upload-video │ │ │ │ └── empty.png │ │ ├── img │ │ │ ├── ali-pay.png │ │ │ ├── card.png │ │ │ ├── close.png │ │ │ ├── default-vip.png │ │ │ ├── focus-device.png │ │ │ ├── icon-back-n.png │ │ │ ├── icon-back.png │ │ │ ├── icon-close-h.png │ │ │ ├── icon-close.png │ │ │ ├── icon-filter-h.png │ │ │ ├── icon-filter.png │ │ │ ├── icon-handin.png │ │ │ └── wepay.png │ │ └── login │ │ │ ├── loginleft_banner.png │ │ │ └── yuyan@2x.png │ ├── components │ │ ├── back-bar │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── close-icon │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── day-week-month │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── duration-text │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── footer │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── h5-link │ │ │ ├── components │ │ │ │ └── courses │ │ │ │ │ ├── index.module.scss │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── vod-comp.tsx │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── header │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── helper-text │ │ │ └── index.tsx │ │ ├── index.ts │ │ ├── input-duration │ │ │ └── index.tsx │ │ ├── keep-alive │ │ │ └── index.tsx │ │ ├── left-menu │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── option-bar │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── option-single-bar │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── pc-link │ │ │ └── index.tsx │ │ ├── permission-button │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── quill-editor │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── select-image │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── select-resources │ │ │ ├── components │ │ │ │ ├── multiVip.tsx │ │ │ │ ├── multiVod.tsx │ │ │ │ ├── video.tsx │ │ │ │ ├── vip.tsx │ │ │ │ └── vod.tsx │ │ │ ├── index.tsx │ │ │ └── multiIndex.tsx │ │ ├── student-device │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── tags-tooltip │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── thumb-bar │ │ │ ├── index.moduel.scss │ │ │ └── index.tsx │ │ ├── tree-category │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── upload-image-button │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── upload-image-sub │ │ │ │ └── index.tsx │ │ ├── upload-video-item │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── upload-video │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── user-add │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── user-import │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── user-single-add │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ └── vhtml-tooltip │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ ├── config │ │ └── permissions.ts │ ├── index.scss │ ├── js │ │ ├── config.ts │ │ └── htmlToPdf.ts │ ├── main.tsx │ ├── meedu.d.ts │ ├── pages │ │ ├── administrator │ │ │ └── change-password │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ ├── comments │ │ │ └── index.tsx │ │ ├── course │ │ │ ├── attach │ │ │ │ ├── create.tsx │ │ │ │ └── index.tsx │ │ │ ├── category │ │ │ │ └── index.tsx │ │ │ ├── chapter │ │ │ │ └── index.tsx │ │ │ ├── components │ │ │ │ ├── category-create.tsx │ │ │ │ ├── category-update.tsx │ │ │ │ ├── chapter-create.tsx │ │ │ │ ├── chapter-update.tsx │ │ │ │ ├── sub-users.tsx │ │ │ │ ├── watch-records-detail.tsx │ │ │ │ └── watch-records.tsx │ │ │ ├── create.tsx │ │ │ ├── index.tsx │ │ │ ├── update.tsx │ │ │ ├── users.tsx │ │ │ └── video │ │ │ │ ├── create.tsx │ │ │ │ ├── import.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── subscribe.tsx │ │ │ │ ├── update.tsx │ │ │ │ └── watch-records.tsx │ │ ├── dashboard │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── decoration │ │ │ ├── components │ │ │ │ ├── h5 │ │ │ │ │ ├── config │ │ │ │ │ │ ├── blank.module.scss │ │ │ │ │ │ ├── blank.tsx │ │ │ │ │ │ ├── code.module.scss │ │ │ │ │ │ ├── code.tsx │ │ │ │ │ │ ├── grid-nav.module.scss │ │ │ │ │ │ ├── grid-nav.tsx │ │ │ │ │ │ ├── gzh-v1.module.scss │ │ │ │ │ │ ├── gzh-v1.tsx │ │ │ │ │ │ ├── image-group.module.scss │ │ │ │ │ │ ├── image-group.tsx │ │ │ │ │ │ ├── index.module.scss │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── slider.module.scss │ │ │ │ │ │ ├── slider.tsx │ │ │ │ │ │ ├── vod-v1.module.scss │ │ │ │ │ │ └── vod-v1.tsx │ │ │ │ │ ├── render-blank │ │ │ │ │ │ ├── index.module.scss │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── render-grid-nav │ │ │ │ │ │ ├── index.module.scss │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── render-gzh-v1 │ │ │ │ │ │ ├── index.module.scss │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── render-image-group │ │ │ │ │ │ ├── index.module.scss │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── render-mp-wechat │ │ │ │ │ │ ├── index.module.scss │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── render-sliders │ │ │ │ │ │ ├── index.module.scss │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── render-vod │ │ │ │ │ │ ├── index.module.scss │ │ │ │ │ │ └── index.tsx │ │ │ │ └── pc │ │ │ │ │ ├── render-code │ │ │ │ │ ├── index.module.scss │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── render-links │ │ │ │ │ ├── create.tsx │ │ │ │ │ ├── index.module.scss │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── list.tsx │ │ │ │ │ └── update.tsx │ │ │ │ │ ├── render-navs │ │ │ │ │ ├── create.tsx │ │ │ │ │ ├── index.module.scss │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── list.tsx │ │ │ │ │ └── update.tsx │ │ │ │ │ ├── render-notice │ │ │ │ │ ├── create.tsx │ │ │ │ │ ├── index.module.scss │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── list.tsx │ │ │ │ │ └── update.tsx │ │ │ │ │ ├── render-sliders │ │ │ │ │ ├── create.tsx │ │ │ │ │ ├── index.module.scss │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── list.tsx │ │ │ │ │ └── update.tsx │ │ │ │ │ └── render-vod │ │ │ │ │ ├── index.module.scss │ │ │ │ │ └── index.tsx │ │ │ ├── h5.module.scss │ │ │ ├── h5.tsx │ │ │ ├── pc.module.scss │ │ │ └── pc.tsx │ │ ├── edit-config │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── error │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── no-sevice.tsx │ │ ├── index.ts │ │ ├── init │ │ │ └── index.tsx │ │ ├── layouts │ │ │ ├── with-header-without-footer │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ │ └── without-header-without-footer │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ ├── loading │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── login │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── member │ │ │ ├── components │ │ │ │ ├── config-update.tsx │ │ │ │ ├── create.tsx │ │ │ │ ├── credit-dialog.tsx │ │ │ │ ├── message-send.tsx │ │ │ │ ├── my-profile.module.scss │ │ │ │ ├── my-profile.tsx │ │ │ │ ├── remark-dailog.tsx │ │ │ │ ├── tags-dialog.tsx │ │ │ │ ├── update.tsx │ │ │ │ └── video-table-dialog.tsx │ │ │ ├── detail.module.scss │ │ │ ├── detail.tsx │ │ │ ├── detail │ │ │ │ ├── credit1.tsx │ │ │ │ ├── orders.tsx │ │ │ │ ├── video-watch-records.tsx │ │ │ │ └── vod-watch-records.tsx │ │ │ ├── import.tsx │ │ │ ├── index.tsx │ │ │ ├── profile.module.scss │ │ │ ├── profile.tsx │ │ │ └── tags │ │ │ │ ├── create.tsx │ │ │ │ ├── index.tsx │ │ │ │ └── update.tsx │ │ ├── order │ │ │ ├── components │ │ │ │ └── refund-dailog │ │ │ │ │ └── index.tsx │ │ │ ├── detail.tsx │ │ │ ├── index.tsx │ │ │ └── refund.tsx │ │ ├── promocode │ │ │ ├── components │ │ │ │ ├── create-multi.tsx │ │ │ │ └── create.tsx │ │ │ ├── create-multi.tsx │ │ │ ├── create.tsx │ │ │ ├── import.module.scss │ │ │ ├── import.tsx │ │ │ └── index.tsx │ │ ├── resource │ │ │ ├── images │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ │ └── videos │ │ │ │ ├── compenents │ │ │ │ ├── create.module.less │ │ │ │ ├── create.tsx │ │ │ │ ├── update.module.less │ │ │ │ ├── update.tsx │ │ │ │ └── video-update.tsx │ │ │ │ └── index.tsx │ │ ├── role │ │ │ ├── components │ │ │ │ ├── create.tsx │ │ │ │ └── update.tsx │ │ │ ├── create.tsx │ │ │ ├── index.tsx │ │ │ └── update.tsx │ │ ├── stats │ │ │ ├── content │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ │ ├── member │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ │ └── transaction │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ └── system │ │ │ ├── administrator │ │ │ ├── create.tsx │ │ │ ├── index.tsx │ │ │ └── update.tsx │ │ │ ├── adminroles │ │ │ ├── create.tsx │ │ │ ├── index.tsx │ │ │ └── update.tsx │ │ │ ├── application │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ │ ├── config │ │ │ ├── config.tsx │ │ │ ├── creditSignConfig.tsx │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ ├── messageConfig.tsx │ │ │ ├── mp_wechatConfig.tsx │ │ │ ├── paymentConfig.tsx │ │ │ ├── playerConfig.tsx │ │ │ ├── saveFilesConfig.tsx │ │ │ └── videoSaveConfig.tsx │ │ │ └── systemLog │ │ │ ├── components │ │ │ ├── admin-log │ │ │ │ └── index.tsx │ │ │ ├── runtime-log │ │ │ │ └── index.tsx │ │ │ ├── upload-images-log │ │ │ │ └── index.tsx │ │ │ └── user-login-log │ │ │ │ └── index.tsx │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ ├── routes │ │ └── index.tsx │ ├── store │ │ ├── enabledAddons │ │ │ └── enabledAddonsConfigSlice.ts │ │ ├── index.ts │ │ ├── system │ │ │ └── systemConfigSlice.ts │ │ └── user │ │ │ └── loginUserSlice.ts │ ├── types │ │ ├── index.d.ts │ │ └── permission.ts │ ├── utils │ │ ├── index.ts │ │ └── permissionUtil.ts │ └── vite-env.d.ts ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts ├── xyz.meedu.api ├── .env.example ├── .env.install ├── .gitattributes ├── .gitignore ├── .php-cs-fixer.php ├── README.md ├── addons │ └── .gitignore ├── apidoc.json ├── app │ ├── Bus │ │ ├── AdminPermissionBus.php │ │ ├── AliVodBus.php │ │ ├── AuthBus.php │ │ ├── CourseAttachDownloadBus.php │ │ ├── MediaVideoCategoryBindBus.php │ │ ├── MemberBus.php │ │ ├── RefundBus.php │ │ ├── TencentVodBus.php │ │ ├── UniPayBus.php │ │ ├── UploadBus.php │ │ ├── VideoBus.php │ │ └── WechatScanBusV2.php │ ├── Businesses │ │ └── BusinessState.php │ ├── Console │ │ ├── Commands │ │ │ ├── AddonsProviderMapGenrator.php │ │ │ ├── ApplicationInstallCommand.php │ │ │ ├── FullSearchRebuildCommand.php │ │ │ ├── InstallLockCommand.php │ │ │ ├── MeEduUpgradeCommand.php │ │ │ ├── OrderTimeoutHandlerCommand.php │ │ │ ├── PublishedCoursesIndexBuildSearchCommand.php │ │ │ ├── RefundQueryCommand.php │ │ │ ├── UserDeleteJobRunCommand.php │ │ │ └── UserRoleExpireHandlerCommand.php │ │ └── Kernel.php │ ├── Constant │ │ ├── ApiV2Constant.php │ │ ├── BackendApiConstant.php │ │ ├── BusConstant.php │ │ ├── CacheConstant.php │ │ ├── ConfigConstant.php │ │ ├── FrontendConstant.php │ │ ├── HookConstant.php │ │ ├── SystemConstant.php │ │ └── TableConstant.php │ ├── Events │ │ ├── AliyunVodCallbackAddLiveRecordVideoCompleteEvent.php │ │ ├── AliyunVodCallbackDeleteMediaCompleteEvent.php │ │ ├── AliyunVodCallbackFileUploadCompleteEvent.php │ │ ├── AliyunVodCallbackMediaBaseChangeCompleteEvent.php │ │ ├── AliyunVodCallbackTranscodeCompleteEvent.php │ │ ├── AliyunVodCallbackVideoAnalysisCompleteEvent.php │ │ ├── AppConfigSavedEvent.php │ │ ├── CourseAttachDownloadEvent.php │ │ ├── CourseCommentEvent.php │ │ ├── FullSearchDataRebuildEvent.php │ │ ├── LinkUpdateEvent.php │ │ ├── NavUpdateEvent.php │ │ ├── OrderCancelEvent.php │ │ ├── OrderRefundCreated.php │ │ ├── OrderRefundProcessed.php │ │ ├── PaymentSuccessEvent.php │ │ ├── PublishedCoursesSearchIndexBuildEvent.php │ │ ├── SliderUpdateEvent.php │ │ ├── TencentVodCallbackFileDeletedEvent.php │ │ ├── TencentVodCallbackNewFileUploadEvent.php │ │ ├── TencentVodCallbackProcedureStateChangedEvent.php │ │ ├── TencentVodCallbackTranscodeCompleteEvent.php │ │ ├── UserCourseWatchedEvent.php │ │ ├── UserDeleteCancelEvent.php │ │ ├── UserDeleteSubmitEvent.php │ │ ├── UserDeletedEvent.php │ │ ├── UserLoginEvent.php │ │ ├── UserLogoutEvent.php │ │ ├── UserNotificationReadEvent.php │ │ ├── UserRegisterEvent.php │ │ ├── UserVerifyFaceSuccessEvent.php │ │ ├── UserVideoWatchedEvent.php │ │ ├── VideoCommentEvent.php │ │ ├── VodCourseCreatedEvent.php │ │ ├── VodCourseDestroyedEvent.php │ │ ├── VodCourseUpdatedEvent.php │ │ ├── VodVideoCreatedEvent.php │ │ ├── VodVideoDestroyedEvent.php │ │ └── VodVideoUpdatedEvent.php │ ├── Exceptions │ │ ├── Backend │ │ │ └── ValidateException.php │ │ ├── Handler.php │ │ ├── ServiceException.php │ │ └── SystemException.php │ ├── Hooks │ │ ├── CommentStoreCheck │ │ │ ├── VodCourseCommentHook.php │ │ │ └── VodCourseVideoCommentHook.php │ │ ├── OrderStore │ │ │ ├── OrderStoreCourseHook.php │ │ │ └── OrderStoreRoleHook.php │ │ └── ViewBlock │ │ │ └── Data │ │ │ └── VodV1DataHook.php │ ├── Http │ │ ├── Controllers │ │ │ ├── Api │ │ │ │ ├── Media │ │ │ │ │ ├── AliVodCallbackController.php │ │ │ │ │ └── TencentVodCallbackController.php │ │ │ │ ├── V2 │ │ │ │ │ ├── AnnouncementController.php │ │ │ │ │ ├── BaseController.php │ │ │ │ │ ├── CaptchaController.php │ │ │ │ │ ├── CourseCategoryController.php │ │ │ │ │ ├── CourseController.php │ │ │ │ │ ├── LinkController.php │ │ │ │ │ ├── LoginController.php │ │ │ │ │ ├── MemberController.php │ │ │ │ │ ├── NavController.php │ │ │ │ │ ├── OrderController.php │ │ │ │ │ ├── OtherController.php │ │ │ │ │ ├── PasswordController.php │ │ │ │ │ ├── PromoCodeController.php │ │ │ │ │ ├── RegisterController.php │ │ │ │ │ ├── RoleController.php │ │ │ │ │ ├── SearchController.php │ │ │ │ │ ├── SliderController.php │ │ │ │ │ ├── Traits │ │ │ │ │ │ └── ResponseTrait.php │ │ │ │ │ ├── UploadController.php │ │ │ │ │ ├── VideoController.php │ │ │ │ │ └── ViewBlockController.php │ │ │ │ ├── V3 │ │ │ │ │ ├── CommentController.php │ │ │ │ │ ├── CourseController.php │ │ │ │ │ ├── LoginController.php │ │ │ │ │ ├── MemberController.php │ │ │ │ │ ├── OrderController.php │ │ │ │ │ ├── OtherController.php │ │ │ │ │ ├── SearchController.php │ │ │ │ │ ├── SystemController.php │ │ │ │ │ └── WechatScanLoginController.php │ │ │ │ └── Wechat │ │ │ │ │ ├── RefundController.php │ │ │ │ │ └── ServerController.php │ │ │ ├── Backend │ │ │ │ └── Api │ │ │ │ │ ├── V1 │ │ │ │ │ ├── AdFromController.php │ │ │ │ │ ├── AddonsController.php │ │ │ │ │ ├── AdministratorController.php │ │ │ │ │ ├── AdministratorPermissionController.php │ │ │ │ │ ├── AdministratorRoleController.php │ │ │ │ │ ├── AnnouncementController.php │ │ │ │ │ ├── BaseController.php │ │ │ │ │ ├── CaptchaController.php │ │ │ │ │ ├── CommentController.php │ │ │ │ │ ├── CourseAttachController.php │ │ │ │ │ ├── CourseCategoryController.php │ │ │ │ │ ├── CourseCategoryTrait.php │ │ │ │ │ ├── CourseChapterController.php │ │ │ │ │ ├── CourseController.php │ │ │ │ │ ├── CourseVideoController.php │ │ │ │ │ ├── DashboardController.php │ │ │ │ │ ├── LinkController.php │ │ │ │ │ ├── LogController.php │ │ │ │ │ ├── LoginController.php │ │ │ │ │ ├── MediaImageController.php │ │ │ │ │ ├── MediaVideoCategoryController.php │ │ │ │ │ ├── MediaVideoController.php │ │ │ │ │ ├── MemberController.php │ │ │ │ │ ├── MemberTagController.php │ │ │ │ │ ├── NavController.php │ │ │ │ │ ├── OrderController.php │ │ │ │ │ ├── PromoCodeController.php │ │ │ │ │ ├── RoleController.php │ │ │ │ │ ├── SettingController.php │ │ │ │ │ ├── SliderController.php │ │ │ │ │ ├── VideoUploadController.php │ │ │ │ │ └── ViewBlockController.php │ │ │ │ │ └── V2 │ │ │ │ │ ├── BaseController.php │ │ │ │ │ ├── MemberController.php │ │ │ │ │ ├── StatsController.php │ │ │ │ │ └── SystemController.php │ │ │ ├── BaseController.php │ │ │ ├── Controller.php │ │ │ └── Frontend │ │ │ │ ├── FrontendController.php │ │ │ │ ├── IndexController.php │ │ │ │ └── PaymentController.php │ │ ├── Kernel.php │ │ ├── Middleware │ │ │ ├── Api │ │ │ │ ├── DeprecatedApiGuardMiddleware.php │ │ │ │ ├── LoginStatusCheckMiddleware.php │ │ │ │ └── UserFaceVerifyLimitMiddleware.php │ │ │ ├── Backend │ │ │ │ ├── BackendPermissionCheckMiddleware.php │ │ │ │ └── BackendSensitiveDataMaskMiddleware.php │ │ │ ├── EncryptCookies.php │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ ├── RedirectIfAuthenticated.php │ │ │ ├── TrimStrings.php │ │ │ ├── TrustProxies.php │ │ │ └── VerifyCsrfToken.php │ │ └── Requests │ │ │ ├── ApiV2 │ │ │ ├── AvatarChangeRequest.php │ │ │ ├── BaseRequest.php │ │ │ ├── CommentRequest.php │ │ │ ├── InviteBalanceWithdrawRequest.php │ │ │ ├── MobileChangeRequest.php │ │ │ ├── MobileLoginRequest.php │ │ │ ├── NicknameChangeRequest.php │ │ │ ├── PasswordChangeRequest.php │ │ │ ├── PasswordLoginRequest.php │ │ │ ├── RegisterRequest.php │ │ │ ├── RegisterSmsRequest.php │ │ │ ├── SmsRequest.php │ │ │ └── UploadImageRequest.php │ │ │ ├── ApiV3 │ │ │ ├── CommentRequest.php │ │ │ └── SocialiteLoginRequest.php │ │ │ ├── Backend │ │ │ ├── AdFromRequest.php │ │ │ ├── Administrator │ │ │ │ ├── AdministratorRequest.php │ │ │ │ └── EditPasswordRequest.php │ │ │ ├── AdministratorRoleRequest.php │ │ │ ├── AnnouncementRequest.php │ │ │ ├── BaseRequest.php │ │ │ ├── CourseAttachRequest.php │ │ │ ├── CourseCategoryRequest.php │ │ │ ├── CourseChapterRequest.php │ │ │ ├── CourseRequest.php │ │ │ ├── CourseVideoRequest.php │ │ │ ├── ImageUploadRequest.php │ │ │ ├── LinkRequest.php │ │ │ ├── LoginRequest.php │ │ │ ├── MediaVideoCategoryRequest.php │ │ │ ├── MemberRequest.php │ │ │ ├── MpWechatMessageReplyRequest.php │ │ │ ├── NavRequest.php │ │ │ ├── PromoCodeGeneratorRequest.php │ │ │ ├── PromoCodeRequest.php │ │ │ ├── RoleRequest.php │ │ │ └── SliderRequest.php │ │ │ └── ThrottleRequests.php │ ├── Listeners │ │ ├── AliyunVodCallbackDeleteMediaCompleteEvent │ │ │ └── DeleteMediaVideoListener.php │ │ ├── AliyunVodCallbackFileUploadCompleteEvent │ │ │ ├── UpdateMediaVideoListener.php │ │ │ └── VideoVisibilityToggleListener.php │ │ ├── AliyunVodCallbackMediaBaseChangeCompleteEvent │ │ │ └── StoreUploadVideoListener.php │ │ ├── AliyunVodCallbackVideoAnalysisCompleteEvent │ │ │ └── UpdateMediaVideoListener.php │ │ ├── AppConfigSavedEvent │ │ │ ├── AliyunPlayDomainConfigSyncListener.php │ │ │ ├── AliyunVodCallbackUrlListener.php │ │ │ ├── TencentPlayKeySyncListener.php │ │ │ └── TencentVodCallbackUrlListener.php │ │ ├── CourseAttachDownloadEvent │ │ │ └── IncDownloadTimesListener.php │ │ ├── FullSearchDataRebuildEvent │ │ │ ├── VodRebuildListener.php │ │ │ └── VodVideoRebuildListener.php │ │ ├── LinkUpdateEvent │ │ │ └── CacheClearListener.php │ │ ├── NavUpdateEvent │ │ │ └── CacheClearListener.php │ │ ├── OrderCancelEvent │ │ │ └── PromoCodeResumeListener.php │ │ ├── OrderRefundProcessed │ │ │ ├── OrderRefundStatusChange.php │ │ │ └── UserNotify.php │ │ ├── PaymentSuccessEvent │ │ │ ├── Credit1RewardListener.php │ │ │ ├── OrderPaidDeliverListener.php │ │ │ ├── OrderPaidNotificationListener.php │ │ │ └── OrderPaidStatusChangeListener.php │ │ ├── PublishedCoursesSearchIndexBuildEvent │ │ │ ├── VodCourseListener.php │ │ │ └── VodCourseVideoListener.php │ │ ├── SliderUpdateEvent │ │ │ └── CacheClearListener.php │ │ ├── TencentVodCallbackFileDeletedEvent │ │ │ └── DeleteMediaVideoListener.php │ │ ├── TencentVodCallbackNewFileUploadEvent │ │ │ └── StoreUploadVideoListener.php │ │ ├── UserCourseWatchedEvent │ │ │ ├── UserCourseWatchedCredit1RewardListener.php │ │ │ └── UserCourseWatchedListener.php │ │ ├── UserDeleteCancelEvent │ │ │ └── UserNotify.php │ │ ├── UserDeletedEvent │ │ │ └── ClearCommentListener.php │ │ ├── UserLoginEvent │ │ │ ├── LoginRecordListener.php │ │ │ └── UserDeleteCancelListener.php │ │ ├── UserLogoutEvent │ │ │ └── LoginRecordUpdateListener.php │ │ ├── UserNotificationReadEvent │ │ │ └── NotificationCountCacheUpdateListener.php │ │ ├── UserRegisterEvent │ │ │ ├── RegisterCredit1RewardListener.php │ │ │ ├── RegisterIpRecordListener.php │ │ │ ├── RegisterSendVipListener.php │ │ │ └── WelcomeMessageListener.php │ │ ├── UserVerifyFaceSuccessEvent │ │ │ ├── UserNotifyListener.php │ │ │ └── UserProfileUpdateListener.php │ │ ├── UserVideoWatchedEvent │ │ │ ├── UserVideoWatchedCredit1RewardListener.php │ │ │ └── UserVideoWatchedListener.php │ │ ├── VodCourseCreatedEvent │ │ │ └── SearchRecordNotify.php │ │ ├── VodCourseDestroyedEvent │ │ │ ├── ClearCommentListener.php │ │ │ └── SearchRecordNotify.php │ │ ├── VodCourseUpdatedEvent │ │ │ └── SearchRecordNotify.php │ │ ├── VodVideoCreatedEvent │ │ │ └── SearchRecordNotify.php │ │ ├── VodVideoDestroyedEvent │ │ │ ├── ClearCommentListener.php │ │ │ ├── SearchRecordNotify.php │ │ │ └── UserWatchedRecordClear.php │ │ └── VodVideoUpdatedEvent │ │ │ └── SearchRecordNotify.php │ ├── Meedu │ │ ├── Addons.php │ │ ├── AddonsProvider.php │ │ ├── Aliyun │ │ │ └── Vod.php │ │ ├── Cache │ │ │ ├── Impl │ │ │ │ ├── AliVodPlayCache.php │ │ │ │ ├── CommentStoreLimitCache.php │ │ │ │ ├── CourseAttachDownloadCache.php │ │ │ │ ├── LinkCache.php │ │ │ │ ├── NavCache.php │ │ │ │ ├── SliderCache.php │ │ │ │ ├── TencentVodPlayCache.php │ │ │ │ ├── UserNotificationCountCache.php │ │ │ │ └── ViewBlockCache.php │ │ │ ├── Inc │ │ │ │ ├── Inc.php │ │ │ │ ├── IncItem.php │ │ │ │ └── VideoViewIncItem.php │ │ │ └── MemoryCache.php │ │ ├── Core │ │ │ ├── HashID.php │ │ │ ├── Upgrade.php │ │ │ └── UpgradeLog │ │ │ │ ├── UpgradeV400.php │ │ │ │ ├── UpgradeV420.php │ │ │ │ ├── UpgradeV450.php │ │ │ │ ├── UpgradeV454.php │ │ │ │ ├── UpgradeV460.php │ │ │ │ ├── UpgradeV480.php │ │ │ │ ├── UpgradeV4910.php │ │ │ │ ├── UpgradeV4911.php │ │ │ │ ├── UpgradeV4912.php │ │ │ │ ├── UpgradeV4913.php │ │ │ │ ├── UpgradeV4914.php │ │ │ │ ├── UpgradeV4915.php │ │ │ │ ├── UpgradeV4917.php │ │ │ │ ├── UpgradeV4920.php │ │ │ │ ├── UpgradeV4922.php │ │ │ │ ├── UpgradeV493.php │ │ │ │ ├── UpgradeV494.php │ │ │ │ └── UpgradeV498.php │ │ ├── Factory.php │ │ ├── Hooks │ │ │ ├── Constant │ │ │ │ └── PositionConstant.php │ │ │ ├── HookContainer.php │ │ │ ├── HookParams.php │ │ │ ├── HookRun.php │ │ │ └── HookRuntimeInterface.php │ │ ├── MeEdu.php │ │ ├── MeEduCloud.php │ │ ├── Payment │ │ │ ├── Alipay │ │ │ │ └── AlipayRefund.php │ │ │ └── Wechat │ │ │ │ └── WechatRefund.php │ │ ├── Schedule │ │ │ └── ScheduleContainer.php │ │ ├── ServiceProxy │ │ │ ├── Cache │ │ │ │ └── CacheInfo.php │ │ │ ├── Limiter │ │ │ │ └── LimiterInfo.php │ │ │ ├── Lock │ │ │ │ └── LockInfo.php │ │ │ └── ServiceProxy.php │ │ ├── ServiceV2 │ │ │ ├── Dao │ │ │ │ ├── CommentDao.php │ │ │ │ ├── CommentDaoInterface.php │ │ │ │ ├── CourseDao.php │ │ │ │ ├── CourseDaoInterface.php │ │ │ │ ├── OrderDao.php │ │ │ │ ├── OrderDaoInterface.php │ │ │ │ ├── OtherDao.php │ │ │ │ ├── OtherDaoInterface.php │ │ │ │ ├── UserDao.php │ │ │ │ └── UserDaoInterface.php │ │ │ ├── Models │ │ │ │ ├── AppConfig.php │ │ │ │ ├── Comment.php │ │ │ │ ├── Course.php │ │ │ │ ├── CourseAttach.php │ │ │ │ ├── CourseAttachDownloadRecord.php │ │ │ │ ├── CourseCategory.php │ │ │ │ ├── CourseChapter.php │ │ │ │ ├── CourseUserRecord.php │ │ │ │ ├── CourseVideo.php │ │ │ │ ├── MediaVideo.php │ │ │ │ ├── Order.php │ │ │ │ ├── OrderGoods.php │ │ │ │ ├── OrderPaidRecord.php │ │ │ │ ├── PromoCode.php │ │ │ │ ├── Role.php │ │ │ │ ├── SearchRecord.php │ │ │ │ ├── Socialite.php │ │ │ │ ├── User.php │ │ │ │ ├── UserCourse.php │ │ │ │ ├── UserDeleteJob.php │ │ │ │ ├── UserFaceVerifyTencentRecord.php │ │ │ │ ├── UserLoginRecord.php │ │ │ │ ├── UserProfile.php │ │ │ │ ├── UserUploadImage.php │ │ │ │ └── UserVideoWatchRecord.php │ │ │ ├── README.md │ │ │ ├── ServiceInit.php │ │ │ └── Services │ │ │ │ ├── CommentService.php │ │ │ │ ├── CommentServiceInterface.php │ │ │ │ ├── ConfigService.php │ │ │ │ ├── ConfigServiceInterface.php │ │ │ │ ├── CourseService.php │ │ │ │ ├── CourseServiceInterface.php │ │ │ │ ├── FullSearchService.php │ │ │ │ ├── FullSearchServiceInterface.php │ │ │ │ ├── OrderService.php │ │ │ │ ├── OrderServiceInterface.php │ │ │ │ ├── OtherService.php │ │ │ │ ├── OtherServiceInterface.php │ │ │ │ ├── UserService.php │ │ │ │ └── UserServiceInterface.php │ │ ├── Setting.php │ │ ├── Sms │ │ │ ├── Aliyun.php │ │ │ ├── SmsInterface.php │ │ │ └── Tencent.php │ │ ├── Tencent │ │ │ ├── Face.php │ │ │ ├── Vod.php │ │ │ └── WechatMp.php │ │ ├── Utils │ │ │ ├── AppRedirect.php │ │ │ ├── IP.php │ │ │ └── SensitiveDataMask.php │ │ ├── Verify.php │ │ └── ViewBlock │ │ │ ├── Constant.php │ │ │ └── Render.php │ ├── Models │ │ ├── Administrator.php │ │ ├── AdministratorLog.php │ │ ├── AdministratorMenu.php │ │ ├── AdministratorPermission.php │ │ ├── AdministratorRole.php │ │ ├── MediaImage.php │ │ └── MediaVideoCategory.php │ ├── Providers │ │ ├── AppServiceProvider.php │ │ ├── AuthServiceProvider.php │ │ ├── BroadcastServiceProvider.php │ │ ├── EventServiceProvider.php │ │ ├── HooksRegisterProvider.php │ │ └── RouteServiceProvider.php │ ├── Services │ │ ├── Base │ │ │ ├── Interfaces │ │ │ │ ├── CacheServiceInterface.php │ │ │ │ └── ConfigServiceInterface.php │ │ │ ├── Model │ │ │ │ └── AppConfig.php │ │ │ ├── Providers │ │ │ │ └── BaseServiceRegisterProvider.php │ │ │ └── Services │ │ │ │ ├── CacheService.php │ │ │ │ └── ConfigService.php │ │ ├── Course │ │ │ ├── Interfaces │ │ │ │ ├── CourseCategoryServiceInterface.php │ │ │ │ ├── CourseServiceInterface.php │ │ │ │ └── VideoServiceInterface.php │ │ │ ├── Models │ │ │ │ ├── Base.php │ │ │ │ ├── Course.php │ │ │ │ ├── CourseAttach.php │ │ │ │ ├── CourseCategory.php │ │ │ │ ├── CourseChapter.php │ │ │ │ ├── CourseComment.php │ │ │ │ ├── CourseUserRecord.php │ │ │ │ ├── MediaVideo.php │ │ │ │ ├── Video.php │ │ │ │ └── VideoComment.php │ │ │ ├── Providers │ │ │ │ └── CourseServiceRegisterProvider.php │ │ │ ├── Proxies │ │ │ │ ├── CourseServiceProxy.php │ │ │ │ └── VideoServiceProxy.php │ │ │ └── Services │ │ │ │ ├── CourseCategoryService.php │ │ │ │ ├── CourseService.php │ │ │ │ └── VideoService.php │ │ ├── Member │ │ │ ├── Interfaces │ │ │ │ ├── CreditServiceInterface.php │ │ │ │ ├── DeliverServiceInterface.php │ │ │ │ ├── NotificationServiceInterface.php │ │ │ │ ├── RoleServiceInterface.php │ │ │ │ ├── SocialiteServiceInterface.php │ │ │ │ ├── UserInviteBalanceServiceInterface.php │ │ │ │ └── UserServiceInterface.php │ │ │ ├── Models │ │ │ │ ├── Role.php │ │ │ │ ├── Socialite.php │ │ │ │ ├── User.php │ │ │ │ ├── UserCourse.php │ │ │ │ ├── UserCreditRecord.php │ │ │ │ ├── UserInviteBalanceRecord.php │ │ │ │ ├── UserInviteBalanceWithdrawOrder.php │ │ │ │ ├── UserJoinRoleRecord.php │ │ │ │ ├── UserLikeCourse.php │ │ │ │ ├── UserProfile.php │ │ │ │ ├── UserRemark.php │ │ │ │ ├── UserTag.php │ │ │ │ ├── UserTagRelation.php │ │ │ │ ├── UserVideo.php │ │ │ │ ├── UserVideoWatchRecord.php │ │ │ │ └── UserWatchStat.php │ │ │ ├── Notifications │ │ │ │ └── SimpleMessageNotification.php │ │ │ ├── Providers │ │ │ │ └── MemberServiceRegisterProvider.php │ │ │ ├── Proxies │ │ │ │ ├── UserInviteBalanceServiceProxy.php │ │ │ │ └── UserServiceProxy.php │ │ │ └── Services │ │ │ │ ├── CreditService.php │ │ │ │ ├── DeliverService.php │ │ │ │ ├── NotificationService.php │ │ │ │ ├── RoleService.php │ │ │ │ ├── SocialiteService.php │ │ │ │ └── UserService.php │ │ ├── Order │ │ │ ├── Interfaces │ │ │ │ ├── OrderServiceInterface.php │ │ │ │ └── PromoCodeServiceInterface.php │ │ │ ├── Models │ │ │ │ ├── Order.php │ │ │ │ ├── OrderGoods.php │ │ │ │ ├── OrderPaidRecord.php │ │ │ │ ├── OrderRefund.php │ │ │ │ └── PromoCode.php │ │ │ ├── Providers │ │ │ │ └── OrderServiceRegisterProvider.php │ │ │ └── Services │ │ │ │ ├── OrderService.php │ │ │ │ └── PromoCodeService.php │ │ ├── Other │ │ │ ├── Interfaces │ │ │ │ ├── AnnouncementServiceInterface.php │ │ │ │ ├── LinkServiceInterface.php │ │ │ │ ├── NavServiceInterface.php │ │ │ │ ├── SliderServiceInterface.php │ │ │ │ ├── SmsServiceInterface.php │ │ │ │ └── ViewBlockServiceInterface.php │ │ │ ├── Models │ │ │ │ ├── AdFrom.php │ │ │ │ ├── AdFromNumber.php │ │ │ │ ├── Announcement.php │ │ │ │ ├── Link.php │ │ │ │ ├── Nav.php │ │ │ │ ├── Slider.php │ │ │ │ ├── SmsRecord.php │ │ │ │ └── ViewBlock.php │ │ │ ├── Providers │ │ │ │ └── OtherServiceRegisterProvider.php │ │ │ └── Services │ │ │ │ ├── AnnouncementService.php │ │ │ │ ├── LinkService.php │ │ │ │ ├── NavService.php │ │ │ │ ├── SliderService.php │ │ │ │ ├── SmsService.php │ │ │ │ └── ViewBlockService.php │ │ └── README.md │ └── helper.php ├── artisan ├── bootstrap │ ├── app.php │ └── cache │ │ └── .gitignore ├── composer.json ├── composer.lock ├── config │ ├── app.php │ ├── auth.php │ ├── broadcasting.php │ ├── cache.php │ ├── captcha.php │ ├── cors.php │ ├── database.php │ ├── filesystems.php │ ├── hashing.php │ ├── jwt.php │ ├── logging.php │ ├── mail.php │ ├── meedu.php │ ├── pay.php │ ├── purifier.php │ ├── queue.php │ ├── s3.php │ ├── scout.php │ ├── services.php │ ├── session.php │ ├── sms.php │ ├── tencent.php │ ├── throttle.php │ ├── trustedproxy.php │ └── view.php ├── database │ ├── .gitignore │ ├── factories │ │ ├── AdministratorFactory.php │ │ ├── AdministratorRoleFactory.php │ │ ├── Meedu │ │ │ └── ServiceV2 │ │ │ │ └── Models │ │ │ │ ├── UserDeleteJobFactory.php │ │ │ │ └── UserFactory.php │ │ └── Services │ │ │ ├── Course │ │ │ └── Models │ │ │ │ ├── CourseCategoryFactory.php │ │ │ │ ├── CourseChapterFactory.php │ │ │ │ ├── CourseCommentFactory.php │ │ │ │ ├── CourseFactory.php │ │ │ │ ├── CourseUserRecordFactory.php │ │ │ │ ├── VideoCommentFactory.php │ │ │ │ └── VideoFactory.php │ │ │ ├── Member │ │ │ └── Models │ │ │ │ ├── RoleFactory.php │ │ │ │ ├── SocialiteFactory.php │ │ │ │ ├── UserCourseFactory.php │ │ │ │ ├── UserCreditRecordFactory.php │ │ │ │ ├── UserFactory.php │ │ │ │ ├── UserJoinRoleRecordFactory.php │ │ │ │ ├── UserLikeCourseFactory.php │ │ │ │ ├── UserSocialiteFactory.php │ │ │ │ └── UserVideoFactory.php │ │ │ ├── Order │ │ │ └── Models │ │ │ │ ├── OrderFactory.php │ │ │ │ ├── OrderGoodsFactory.php │ │ │ │ ├── OrderPaidRecordFactory.php │ │ │ │ └── PromoCodeFactory.php │ │ │ └── Other │ │ │ └── Models │ │ │ ├── AdFromFactory.php │ │ │ ├── AdFromNumberFactory.php │ │ │ ├── AnnouncementFactory.php │ │ │ ├── LinkFactory.php │ │ │ ├── NavFactory.php │ │ │ └── SliderFactory.php │ ├── migrations │ │ ├── 2014_10_12_000000_create_users_table.php │ │ ├── 2018_06_10_093350_create_course_table.php │ │ ├── 2018_06_10_093941_create_video_table.php │ │ ├── 2018_06_11_140429_create_administrators_table.php │ │ ├── 2018_06_11_140557_create_administrator_roles_table.php │ │ ├── 2018_06_11_140702_create_administrator_role_relation_tbale.php │ │ ├── 2018_06_11_140936_create_administrator_permissions_table.php │ │ ├── 2018_06_11_141132_create_administrator_role_permission_relation_table.php │ │ ├── 2018_06_24_055643_add_charge_column_for_videos_table.php │ │ ├── 2018_08_24_111310_create_sms_records_table.php │ │ ├── 2018_08_25_122014_create_course_comments_table.php │ │ ├── 2018_08_25_122026_create_video_comments_table.php │ │ ├── 2018_08_28_194051_create_user_course_table.php │ │ ├── 2018_08_28_201555_create_roles_table.php │ │ ├── 2018_08_28_201633_add_role_id_column_for_users_table.php │ │ ├── 2018_08_28_202328_create_user_join_role_records_table.php │ │ ├── 2018_08_29_202834_create_notifications_table.php │ │ ├── 2018_08_29_203905_create_jobs_table.php │ │ ├── 2018_08_30_200622_add_charge_column_for_user_course_table.php │ │ ├── 2018_08_30_202222_create_user_video_table.php │ │ ├── 2018_09_03_202544_create_orders_table.php │ │ ├── 2018_09_16_110336_create_email_subscriptions_table.php │ │ ├── 2018_09_16_113005_create_announcements_table.php │ │ ├── 2018_10_07_101347_add_aliyun_video_id_column_for_videos.php │ │ ├── 2018_10_23_101556_create_administrator_menus_table.php │ │ ├── 2018_10_26_102622_create_order_goods_table.php │ │ ├── 2018_10_26_102656_adjust_orders_table.php │ │ ├── 2018_11_22_194642_create_ad_froms_table.php │ │ ├── 2018_11_22_194828_create_ad_from_number_table.php │ │ ├── 2018_11_24_205824_create_links_table.php │ │ ├── 2018_12_06_082850_create_course_chapter_table.php │ │ ├── 2018_12_06_192345_add_sort_column_for_course_chapter_table.php │ │ ├── 2018_12_06_192755_add_chapter_id_for_videos_table.php │ │ ├── 2018_12_12_214600_create_navs_table.php │ │ ├── 2018_12_12_221538_create_socialite_table.php │ │ ├── 2018_12_22_112124_add_duration_column_for_videos_table.php │ │ ├── 2018_12_25_222045_add_is_show_column_for_roles_table.php │ │ ├── 2019_02_19_200047_add_payment_column_for_orders_table.php │ │ ├── 2019_02_23_130633_create_failed_jobs_table.php │ │ ├── 2019_03_26_222210_add_tencent_video_id_column_for_videos.php │ │ ├── 2019_12_22_120342_change_course_comment_content_field.php │ │ ├── 2019_12_22_120357_change_video_comment_content_field.php │ │ ├── 2019_12_22_121813_change_course_description_field.php │ │ ├── 2019_12_22_121825_change_video_description_field.php │ │ ├── 2019_12_27_194525_alter_order_goods_table.php │ │ ├── 2020_01_08_121811_add_invite_column_for_users.php │ │ ├── 2020_01_08_122439_create_promo_codes_table.php │ │ ├── 2020_01_08_145811_create_order_paid_records_table.php │ │ ├── 2020_01_08_161753_create_user_invite_balance_records_table.php │ │ ├── 2020_01_11_162610_create_course_categories_table.php │ │ ├── 2020_01_11_165825_add_category_id_for_course_table.php │ │ ├── 2020_01_15_122836_create_invite_balance_withdraw_records_table.php │ │ ├── 2020_01_30_170310_create_cache_table.php │ │ ├── 2020_02_05_164322_add_is_recom_column_for_courses_table.php │ │ ├── 2020_02_21_145619_create_sliders_table.php │ │ ├── 2020_02_21_152347_add_title_column_for_announcement_table.php │ │ ├── 2020_02_24_140733_add_user_count_column_for_course_table.php │ │ ├── 2020_02_24_140813_create_course_user_records_table.php │ │ ├── 2020_02_28_145527_add_is_password_set_column_for_users_table.php │ │ ├── 2020_03_02_095800_add_is_set_nickname_column_for_users_table.php │ │ ├── 2020_03_04_133129_create_user_like_courses_table.php │ │ ├── 2020_03_07_175130_create_index_banners_table.php │ │ ├── 2020_05_02_112023_create_user_video_watch_records_table.php │ │ ├── 2020_05_02_112648_add_is_watched_column_for_user_course_records_table.php │ │ ├── 2020_05_10_161748_add_is_free_column_courses_table.php │ │ ├── 2020_05_10_161807_add_is_ban_sell_column_videos_table.php │ │ ├── 2020_05_21_110416_add_is_used_promo_code_column_for_users.php │ │ ├── 2020_05_21_135128_add_register_ip_column_for_users.php │ │ ├── 2020_05_24_221058_add_progress_column_for_course_user_records_table.php │ │ ├── 2020_06_08_153953_add_column_administrator_tables.php │ │ ├── 2020_06_08_154009_add_column_adm_permissions_tables.php │ │ ├── 2020_06_17_195229_create_user_credit_records_table.php │ │ ├── 2020_06_20_001804_create_course_attach_tables.php │ │ ├── 2020_06_24_123756_create_webconfig_table.php │ │ ├── 2020_06_25_223639_add_comment_status_column_for_courses_table.php │ │ ├── 2020_06_26_132235_add_some_field_for_videos_table.php │ │ ├── 2020_06_26_223017_modify_adm_menus_table.php │ │ ├── 2020_06_29_172741_add_is_show_column_for_app_config.php │ │ ├── 2020_07_23_121253_create_user_login_records.php │ │ ├── 2020_07_23_121304_add_login_info_column_for_users.php │ │ ├── 2020_07_24_135656_add_active_routes_for_navs.php │ │ ├── 2020_07_27_151657_add_platform_column_for_sliders.php │ │ ├── 2020_08_31_095138_add_goods_column_for_order_goods_table.php │ │ ├── 2020_09_02_163437_create_user_tags_table.php │ │ ├── 2020_09_02_163441_create_user_tag_table.php │ │ ├── 2020_09_03_111458_create_user_remarks_table.php │ │ ├── 2020_09_04_130615_create_mp_wechat_message_reply_table.php │ │ ├── 2020_09_24_222925_add_platform_column_for_navs_table.php │ │ ├── 2020_09_25_162213_create_user_watch_stat_table.php │ │ ├── 2020_10_28_132558_create_user_profiles_table.php │ │ ├── 2020_12_10_155045_add_blank_column_for_navs_table.php │ │ ├── 2021_04_18_170446_add_unique_id_column_for_socialites.php │ │ ├── 2021_07_13_122433_create_media_images_table.php │ │ ├── 2021_07_15_143114_create_view_blocks_table.php │ │ ├── 2021_07_21_100433_create_media_videos_table.php │ │ ├── 2021_09_07_211221_add_uuid_column_for_failed_job.php │ │ ├── 2021_09_08_162928_create_search_records_table.php │ │ ├── 2021_10_12_105950_delete_comment_status_for_courses.php │ │ ├── 2021_10_12_105953_delete_comment_status_for_videos.php │ │ ├── 2021_10_12_110006_delete_player_column__for_videos.php │ │ ├── 2022_02_19_202550_add_is_open_for_media_videos.php │ │ ├── 2022_03_27_151503_create_order_refund_table.php │ │ ├── 2022_03_27_152819_add_refund_column_for_orders.php │ │ ├── 2022_07_01_112543_remove_is_used_promo_code_for_users.php │ │ ├── 2022_07_31_102135_create_admin_logs.php │ │ ├── 2022_08_04_100621_create_user_delete_jobs.php │ │ ├── 2022_08_08_103539_create_user_upload_images.php │ │ ├── 2022_08_08_135018_change_user_login_records.php │ │ ├── 2022_08_22_144416_modify_media_videos_size_column.php │ │ ├── 2022_11_16_094116_add_is_verify_for_user_profile.php │ │ ├── 2023_02_01_102307_create_user_face_verify_tencent_records.php │ │ ├── 2023_09_18_141926_add_ip_for_course_comment.php │ │ ├── 2023_09_18_141932_add_ip_for_video_comment.php │ │ ├── 2024_07_01_141659_create_course_attach_download_records_table.php │ │ ├── 2024_07_11_110645_add_is_hidden_for_media_videos_table.php │ │ ├── 2024_12_06_111625_add_scene_and_is_hide_and_category_id_for_media_images_table.php │ │ ├── 2025_01_09_100614_create_media_video_categories_table.php │ │ ├── 2025_01_09_100820_add_category_id_for_media_video_table.php │ │ ├── 2025_01_13_092001_add_is_check_for_video_comments_table.php │ │ ├── 2025_01_13_092010_add_is_check_for_course_comments_table.php │ │ ├── 2025_01_13_104203_add_is_allow_comment_column_for_courses_table.php │ │ ├── 2025_01_13_104213_add_is_allow_comment_column_for_videos_table.php │ │ └── 2025_02_22_233300_create_comments_table.php │ └── seeders │ │ ├── AdministratorPermissionSeeder.php │ │ ├── AdministratorSuperSeeder.php │ │ ├── AppConfigSeeder.php │ │ ├── CourseVideoSeeder.php │ │ ├── DatabaseSeeder.php │ │ └── UserSeeder.php ├── phpunit.xml ├── public │ ├── .htaccess │ ├── addons │ │ └── .gitignore │ ├── favicon.ico │ ├── images │ │ ├── default_avatar.jpg │ │ ├── icons │ │ │ └── qq.svg │ │ ├── logo.png │ │ ├── pay │ │ │ ├── ali.svg │ │ │ ├── card.svg │ │ │ └── wechat.svg │ │ └── player-thumb.png │ ├── index.php │ ├── install.php │ ├── robots.txt │ └── templates │ │ └── .gitignore ├── resources │ ├── lang │ │ ├── en.json │ │ ├── en │ │ │ ├── auth.php │ │ │ ├── pagination.php │ │ │ ├── passwords.php │ │ │ └── validation.php │ │ ├── zh.json │ │ └── zh │ │ │ ├── auth.php │ │ │ ├── pagination.php │ │ │ ├── passwords.php │ │ │ └── validation.php │ └── views │ │ ├── errors │ │ └── 404.blade.php │ │ ├── index │ │ ├── aboutus.blade.php │ │ ├── face_verify_success.blade.php │ │ ├── user_private_protocol.blade.php │ │ ├── user_protocol.blade.php │ │ └── vip_protocol.blade.php │ │ ├── payment │ │ ├── error.blade.php │ │ ├── index.blade.php │ │ ├── success.blade.php │ │ └── wechat-jsapi.blade.php │ │ └── wechat_scan_login │ │ ├── fail.blade.php │ │ ├── index.blade.php │ │ └── success.blade.php ├── routes │ ├── backend-v1.php │ ├── backend-v2.php │ ├── channels.php │ ├── frontend-v2.php │ ├── frontend-v3.php │ ├── frontend.php │ └── web.php ├── server.php ├── storage │ ├── app │ │ ├── .gitignore │ │ ├── public │ │ │ └── .gitignore │ │ └── templates │ │ │ └── .gitignore │ ├── framework │ │ ├── .gitignore │ │ ├── cache │ │ │ ├── .gitignore │ │ │ └── data │ │ │ │ └── .gitignore │ │ ├── sessions │ │ │ └── .gitignore │ │ ├── testing │ │ │ └── .gitignore │ │ └── views │ │ │ └── .gitignore │ ├── logs │ │ └── .gitignore │ └── private │ │ └── .gitignore └── tests │ ├── Commands │ ├── AddonsProviderMapGeneratorTest.php │ ├── ApplicationInstallCommandTest.php │ ├── InstallLockCommandTest.php │ ├── MeEduUpgradeCommandTest.php │ ├── MemberRoleExpiredHandlerCommandTest.php │ ├── OrderPayTimeoutCommandTest.php │ ├── RefundQueryCommandTest.php │ └── UserDeleteJobRunCommandTest.php │ ├── CreatesApplication.php │ ├── Feature │ ├── Api │ │ ├── Bus │ │ │ └── LoginLimitTest.php │ │ ├── V2 │ │ │ ├── Base.php │ │ │ ├── CaptchaImageTest.php │ │ │ ├── CaptchaSmsTest.php │ │ │ ├── CourseCategoriesTest.php │ │ │ ├── CourseTest.php │ │ │ ├── LoginTest.php │ │ │ ├── MemberTest.php │ │ │ ├── PasswordTest.php │ │ │ ├── PromoCodeTest.php │ │ │ ├── RegisterTest.php │ │ │ ├── RoleTest.php │ │ │ └── VideoTest.php │ │ └── V3 │ │ │ ├── CommentTest.php │ │ │ ├── LoginTest.php │ │ │ └── MemberTest.php │ └── BackendApi │ │ ├── AdFromTest.php │ │ ├── AdministratorTest.php │ │ ├── AnnouncementTest.php │ │ ├── Base.php │ │ ├── CourseCategoryTest.php │ │ ├── DashboardTest.php │ │ ├── LinkTest.php │ │ ├── LoginTest.php │ │ ├── NavTest.php │ │ ├── PromoCodeTest.php │ │ ├── RoleTest.php │ │ ├── SliderTest.php │ │ └── UserTest.php │ ├── OriginalTestCase.php │ ├── ServiceV2 │ ├── Dao │ │ └── CommentDaoTest.php │ └── Service │ │ ├── CommentServiceTest.php │ │ └── UserServiceTest.php │ ├── Services │ ├── Course │ │ ├── CourseCategoryServiceTest.php │ │ ├── CourseServiceTest.php │ │ └── VideoServiceTest.php │ ├── Member │ │ ├── CreditServiceTest.php │ │ ├── DeliverServiceTest.php │ │ ├── NotificationServiceTest.php │ │ ├── RoleServiceTest.php │ │ ├── SocialiteServiceTest.php │ │ └── UserServiceTest.php │ ├── Order │ │ ├── OrderServiceTest.php │ │ └── PromoCodeServiceTest.php │ └── Other │ │ ├── AnnouncementServiceTest.php │ │ ├── LinkServiceTest.php │ │ ├── NavServiceTest.php │ │ ├── SliderServiceTest.php │ │ └── SmsServiceTest.php │ ├── TestCase.php │ └── Unit │ ├── Bus │ ├── AdminPermissionBusTest.php │ ├── AuthBusTest.php │ ├── BusinessStateTest.php │ └── RefundBusTest.php │ ├── Events │ ├── OrderCancelEventTest.php │ └── UserRegisterEventTest.php │ ├── HelperTest.php │ └── Meedu │ ├── MemoryCacheTest.php │ └── ServiceProxy │ ├── CacheInfoTest.php │ ├── LimitInfoTest.php │ ├── LockInfoTest.php │ └── ServiceProxyTest.php ├── xyz.meedu.h5 ├── .env.example ├── .gitignore ├── README.md ├── index.html ├── package.json ├── pnpm-lock.yaml ├── public │ ├── favicon.ico │ └── js │ │ ├── DPlayer.min.js │ │ └── jweixin-1.6.0.js ├── src │ ├── App.scss │ ├── App.tsx │ ├── AutoTop.ts │ ├── api │ │ ├── comment.ts │ │ ├── course.ts │ │ ├── index.ts │ │ ├── internal │ │ │ └── httpClient.ts │ │ ├── login.ts │ │ ├── order.ts │ │ ├── role.ts │ │ ├── search.ts │ │ ├── system.ts │ │ ├── user.ts │ │ └── viewBlock.ts │ ├── assets │ │ └── img │ │ │ ├── Spinload.gif │ │ │ ├── VIPcenter@2x.png │ │ │ ├── attach-icon.png │ │ │ ├── circle.png │ │ │ ├── close.png │ │ │ ├── collect-active.png │ │ │ ├── collect.png │ │ │ ├── default-vip.png │ │ │ ├── default_avatar.png │ │ │ ├── dianbo@2x.png │ │ │ ├── dianzishu@2x.png │ │ │ ├── faceSuccess.png │ │ │ ├── icon-adopt.png │ │ │ ├── icon-answer-card.png │ │ │ ├── icon-back-n.png │ │ │ ├── icon-back.png │ │ │ ├── icon-balance@2x.png │ │ │ ├── icon-card.png │ │ │ ├── icon-check-h.png │ │ │ ├── icon-check-n.png │ │ │ ├── icon-clock.png │ │ │ ├── icon-delete-h.png │ │ │ ├── icon-delete.png │ │ │ ├── icon-error.png │ │ │ ├── icon-exam@2x.png │ │ │ ├── icon-exchange@2x.png │ │ │ ├── icon-favorite-n.png │ │ │ ├── icon-favorite.png │ │ │ ├── icon-filter.png │ │ │ ├── icon-handin.png │ │ │ ├── icon-history@2x.png │ │ │ ├── icon-home-h@2x.png │ │ │ ├── icon-home-n@2x.png │ │ │ ├── icon-info@2x.png │ │ │ ├── icon-last.png │ │ │ ├── icon-list@2x.png │ │ │ ├── icon-me-h@2x.png │ │ │ ├── icon-me-n@2x.png │ │ │ ├── icon-message@2x.png │ │ │ ├── icon-mock@2x.png │ │ │ ├── icon-money@2x.png │ │ │ ├── icon-next.png │ │ │ ├── icon-point@2x.png │ │ │ ├── icon-practice@2x.png │ │ │ ├── icon-prev.png │ │ │ ├── icon-qq.png │ │ │ ├── icon-search.png │ │ │ ├── icon-setting@2x.png │ │ │ ├── icon-study-h@2x.png │ │ │ ├── icon-study-n@2x.png │ │ │ ├── icon-wexinpay.png │ │ │ ├── icon-wrongbook@2x.png │ │ │ ├── img-placeholder.png │ │ │ ├── kaoshi@2x.png │ │ │ ├── lujing@2x.png │ │ │ ├── miaosha@2x.png │ │ │ ├── new │ │ │ ├── VIP.png │ │ │ ├── agree.png │ │ │ ├── back.png │ │ │ ├── back@2x.png │ │ │ ├── banner.png │ │ │ ├── close.png │ │ │ ├── message.png │ │ │ ├── order.png │ │ │ └── setting.png │ │ │ ├── payali.png │ │ │ ├── payhand.png │ │ │ ├── paywechat.png │ │ │ ├── play.gif │ │ │ ├── practice.png │ │ │ ├── qq.png │ │ │ ├── selected.png │ │ │ ├── test.png │ │ │ ├── topright.png │ │ │ ├── tuwen@2x.png │ │ │ ├── unselected.png │ │ │ ├── virtual-test.png │ │ │ ├── watermark@2x.png │ │ │ ├── wechat.png │ │ │ ├── wenda@2x.png │ │ │ ├── work-weixin.png │ │ │ ├── wrong-book.png │ │ │ └── zhibo@2x.png │ ├── components │ │ ├── captcha-dialog │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── confirm-login │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── copyright │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── count-down │ │ │ └── index.tsx │ │ ├── course-comments │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── duration │ │ │ └── index.tsx │ │ ├── empty │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── footer-bar │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── index.ts │ │ ├── nav-header │ │ │ └── index.tsx │ │ ├── none │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── private-route │ │ │ └── index.tsx │ │ ├── protocol │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── search-box │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── show-model │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── tech-support │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── thumb-bar │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ └── vod-course-item │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ ├── index.tsx │ ├── js │ │ ├── config.ts │ │ └── wechat-share.ts │ ├── main.scss │ ├── main.tsx │ ├── meedu.d.ts │ ├── pages │ │ ├── bind-mobile │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── code-bind-mobile │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── course │ │ │ ├── compenents │ │ │ │ ├── attach-box │ │ │ │ │ ├── index.module.scss │ │ │ │ │ └── index.tsx │ │ │ │ ├── filter-box1 │ │ │ │ │ ├── index.module.scss │ │ │ │ │ └── index.tsx │ │ │ │ └── tabs │ │ │ │ │ ├── index.module.scss │ │ │ │ │ └── index.tsx │ │ │ ├── detail.module.scss │ │ │ ├── detail.tsx │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ ├── video.module.scss │ │ │ └── video.tsx │ │ ├── error │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── faceSuccess │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── index.ts │ │ ├── index │ │ │ ├── compenents │ │ │ │ ├── blank │ │ │ │ │ ├── index.module.scss │ │ │ │ │ └── index.tsx │ │ │ │ ├── grid-nav │ │ │ │ │ ├── index.module.scss │ │ │ │ │ └── index.tsx │ │ │ │ ├── gzh-v1 │ │ │ │ │ ├── index.module.scss │ │ │ │ │ └── index.tsx │ │ │ │ ├── image-group │ │ │ │ │ ├── index.module.scss │ │ │ │ │ └── index.tsx │ │ │ │ ├── index-slider │ │ │ │ │ ├── index.module.scss │ │ │ │ │ └── index.tsx │ │ │ │ └── vod-v1 │ │ │ │ │ ├── index.module.scss │ │ │ │ │ └── index.tsx │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── init │ │ │ └── index.tsx │ │ ├── layouts │ │ │ ├── with-footer │ │ │ │ └── index.tsx │ │ │ └── without-footer │ │ │ │ └── index.tsx │ │ ├── loading │ │ │ └── index.tsx │ │ ├── login │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ ├── login-error.module.scss │ │ │ ├── login-error.tsx │ │ │ ├── login-password.module.scss │ │ │ └── login-password.tsx │ │ ├── member │ │ │ ├── components │ │ │ │ ├── newmobile.module.scss │ │ │ │ └── newmobile.tsx │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ ├── mobile.module.scss │ │ │ ├── mobile.tsx │ │ │ ├── mobileVerify.module.scss │ │ │ ├── mobileVerify.tsx │ │ │ ├── order.module.scss │ │ │ ├── order.tsx │ │ │ ├── password.module.scss │ │ │ ├── password.tsx │ │ │ ├── profile.module.scss │ │ │ ├── profile.tsx │ │ │ ├── setting.module.scss │ │ │ └── setting.tsx │ │ ├── messages │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── order │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ ├── success.module.scss │ │ │ └── success.tsx │ │ ├── role │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── search │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ └── study │ │ │ ├── compenents │ │ │ ├── course-item.module.scss │ │ │ └── course-item.tsx │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ ├── routes │ │ └── index.tsx │ ├── store │ │ ├── index.ts │ │ ├── system │ │ │ └── systemConfigSlice.ts │ │ └── user │ │ │ └── loginUserSlice.ts │ ├── utils │ │ └── index.ts │ └── vite-env.d.ts ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts └── xyz.meedu.pc ├── .env.example ├── .gitignore ├── README.md ├── index.html ├── package.json ├── pnpm-lock.yaml ├── public ├── favicon.png └── js │ ├── aliyun-rts │ └── aliyun-rts-sdk-2.2.9.js │ ├── highlight │ ├── a11y-dark.min.css │ └── highlight-9.18.5.min.js │ ├── katex │ ├── contrib │ │ └── auto-render.min.js │ ├── fonts │ │ ├── KaTeX_AMS-Regular.ttf │ │ ├── KaTeX_AMS-Regular.woff │ │ ├── KaTeX_AMS-Regular.woff2 │ │ ├── KaTeX_Caligraphic-Bold.ttf │ │ ├── KaTeX_Caligraphic-Bold.woff │ │ ├── KaTeX_Caligraphic-Bold.woff2 │ │ ├── KaTeX_Caligraphic-Regular.ttf │ │ ├── KaTeX_Caligraphic-Regular.woff │ │ ├── KaTeX_Caligraphic-Regular.woff2 │ │ ├── KaTeX_Fraktur-Bold.ttf │ │ ├── KaTeX_Fraktur-Bold.woff │ │ ├── KaTeX_Fraktur-Bold.woff2 │ │ ├── KaTeX_Fraktur-Regular.ttf │ │ ├── KaTeX_Fraktur-Regular.woff │ │ ├── KaTeX_Fraktur-Regular.woff2 │ │ ├── KaTeX_Main-Bold.ttf │ │ ├── KaTeX_Main-Bold.woff │ │ ├── KaTeX_Main-Bold.woff2 │ │ ├── KaTeX_Main-BoldItalic.ttf │ │ ├── KaTeX_Main-BoldItalic.woff │ │ ├── KaTeX_Main-BoldItalic.woff2 │ │ ├── KaTeX_Main-Italic.ttf │ │ ├── KaTeX_Main-Italic.woff │ │ ├── KaTeX_Main-Italic.woff2 │ │ ├── KaTeX_Main-Regular.ttf │ │ ├── KaTeX_Main-Regular.woff │ │ ├── KaTeX_Main-Regular.woff2 │ │ ├── KaTeX_Math-BoldItalic.ttf │ │ ├── KaTeX_Math-BoldItalic.woff │ │ ├── KaTeX_Math-BoldItalic.woff2 │ │ ├── KaTeX_Math-Italic.ttf │ │ ├── KaTeX_Math-Italic.woff │ │ ├── KaTeX_Math-Italic.woff2 │ │ ├── KaTeX_SansSerif-Bold.ttf │ │ ├── KaTeX_SansSerif-Bold.woff │ │ ├── KaTeX_SansSerif-Bold.woff2 │ │ ├── KaTeX_SansSerif-Italic.ttf │ │ ├── KaTeX_SansSerif-Italic.woff │ │ ├── KaTeX_SansSerif-Italic.woff2 │ │ ├── KaTeX_SansSerif-Regular.ttf │ │ ├── KaTeX_SansSerif-Regular.woff │ │ ├── KaTeX_SansSerif-Regular.woff2 │ │ ├── KaTeX_Script-Regular.ttf │ │ ├── KaTeX_Script-Regular.woff │ │ ├── KaTeX_Script-Regular.woff2 │ │ ├── KaTeX_Size1-Regular.ttf │ │ ├── KaTeX_Size1-Regular.woff │ │ ├── KaTeX_Size1-Regular.woff2 │ │ ├── KaTeX_Size2-Regular.ttf │ │ ├── KaTeX_Size2-Regular.woff │ │ ├── KaTeX_Size2-Regular.woff2 │ │ ├── KaTeX_Size3-Regular.ttf │ │ ├── KaTeX_Size3-Regular.woff │ │ ├── KaTeX_Size3-Regular.woff2 │ │ ├── KaTeX_Size4-Regular.ttf │ │ ├── KaTeX_Size4-Regular.woff │ │ ├── KaTeX_Size4-Regular.woff2 │ │ ├── KaTeX_Typewriter-Regular.ttf │ │ ├── KaTeX_Typewriter-Regular.woff │ │ └── KaTeX_Typewriter-Regular.woff2 │ ├── katex.min.css │ └── katex.min.js │ ├── player │ ├── DPlayer.min.js │ └── hls-1.4.10.min.js │ └── tcplayer │ ├── tcplayer.min.css │ └── tcplayer.v4.8.0.min.js ├── src ├── App.scss ├── App.tsx ├── AutoTop.ts ├── api │ ├── comment.ts │ ├── course.ts │ ├── home.ts │ ├── index.ts │ ├── internal │ │ └── httpClient.ts │ ├── login.ts │ ├── order.ts │ ├── role.ts │ ├── search.ts │ ├── study.ts │ ├── system.ts │ ├── user.ts │ └── viewBlock.ts ├── assets │ ├── iconfont │ │ ├── iconfont.css │ │ ├── iconfont.ttf │ │ ├── iconfont.woff │ │ └── iconfont.woff2 │ └── img │ │ ├── back@2x.png │ │ ├── commen │ │ ├── VIP-top.png │ │ ├── banner2.jpg │ │ ├── bg-VIP.png │ │ ├── bg-zhibo.png │ │ ├── collect-paper.png │ │ ├── default-article.png │ │ ├── default-avatar.jpg │ │ ├── default-banner.png │ │ ├── default-ebook.png │ │ ├── default-lesson.png │ │ ├── default-live.png │ │ ├── default-paper.png │ │ ├── default-steps.png │ │ ├── default-video.png │ │ ├── default-vip.png │ │ ├── empty-data.png │ │ ├── faceSuccess.png │ │ ├── footlink.png │ │ ├── icon-VIP.png │ │ ├── icon-adopt.png │ │ ├── icon-back-h.png │ │ ├── icon-back.png │ │ ├── icon-backtop.png │ │ ├── icon-camera-h@2x.png │ │ ├── icon-camera-n@2x.png │ │ ├── icon-camera.png │ │ ├── icon-card.png │ │ ├── icon-close.png │ │ ├── icon-collect-h.png │ │ ├── icon-collect-n.png │ │ ├── icon-crad.png │ │ ├── icon-delete.png │ │ ├── icon-forward-h.png │ │ ├── icon-forward.png │ │ ├── icon-guidepost.png │ │ ├── icon-learning.png │ │ ├── icon-like-h.png │ │ ├── icon-like.png │ │ ├── icon-lock.png │ │ ├── icon-market.png │ │ ├── icon-market@2x.png │ │ ├── icon-member.png │ │ ├── icon-message.png │ │ ├── icon-mobile.png │ │ ├── icon-play.png │ │ ├── icon-qq.png │ │ ├── icon-question.png │ │ ├── icon-search.png │ │ ├── icon-sign-n.png │ │ ├── icon-top.png │ │ ├── icon-unlock.png │ │ ├── icon-video@2x.png │ │ ├── icon-vote-h.png │ │ ├── icon-vote-n.png │ │ ├── icon-wechat.png │ │ ├── icon-weibo.png │ │ ├── icon-weixin.png │ │ ├── icon-wepay.png │ │ ├── icon-wexinpay.png │ │ ├── icon-zfb.png │ │ ├── icon-zfb@2x.png │ │ ├── img-placeholder.png │ │ ├── img-wrong.png │ │ ├── login-banner.png │ │ ├── logo@2x.png │ │ ├── no-facecheck.png │ │ ├── practice.png │ │ ├── qq.svg │ │ ├── share-wechat.png │ │ ├── storehouse.png │ │ ├── test.png │ │ ├── tips-400.png │ │ ├── tips-500.png │ │ ├── upload.png │ │ ├── virtual-test.png │ │ └── wrong-book.png │ │ ├── icon-back-n.png │ │ ├── icon-back.png │ │ ├── icon-delete-h.png │ │ ├── icon-delete.png │ │ ├── icon-handin.png │ │ ├── member │ │ ├── mock.png │ │ ├── practice-collects.png │ │ ├── practice.png │ │ └── test.png │ │ └── study │ │ ├── banner.png │ │ └── icon-mystudy.png ├── components │ ├── back-top │ │ ├── index.module.scss │ │ └── index.tsx │ ├── code-login-bind-mobile │ │ ├── index.module.scss │ │ └── index.tsx │ ├── count-down │ │ └── index.tsx │ ├── course-comments │ │ ├── index.module.scss │ │ └── index.tsx │ ├── course-video-comments │ │ ├── index.module.scss │ │ └── index.tsx │ ├── duration │ │ └── index.tsx │ ├── empty │ │ ├── index.module.scss │ │ └── index.tsx │ ├── filter-categories │ │ ├── index.module.scss │ │ └── index.tsx │ ├── filter-scenes │ │ ├── index.module.scss │ │ └── index.tsx │ ├── footer │ │ ├── index.module.scss │ │ └── index.tsx │ ├── forget-password-dialog │ │ ├── index.module.scss │ │ └── index.tsx │ ├── header │ │ ├── index.module.scss │ │ └── index.tsx │ ├── image-preview │ │ ├── index.module.scss │ │ └── index.tsx │ ├── index.ts │ ├── login-dailog │ │ ├── index.module.scss │ │ └── index.tsx │ ├── nav-member │ │ ├── index.module.scss │ │ └── index.tsx │ ├── page-box │ │ ├── index.module.scss │ │ └── index.tsx │ ├── private-route │ │ └── index.tsx │ ├── register-dialog │ │ ├── index.module.scss │ │ └── index.tsx │ ├── tencent-face-check │ │ ├── index.module.scss │ │ └── index.tsx │ ├── thumb-bar │ │ ├── index.module.scss │ │ └── index.tsx │ ├── vod-course-item │ │ ├── index.module.scss │ │ └── index.tsx │ ├── weixin-bind-mobile-dialog │ │ ├── index.module.scss │ │ └── index.tsx │ └── weixin-login-dailog │ │ ├── index.module.scss │ │ └── index.tsx ├── index.scss ├── js │ ├── address.ts │ └── config.ts ├── main.tsx ├── meedu.d.ts ├── pages │ ├── announcement │ │ ├── index.module.scss │ │ └── index.tsx │ ├── auth │ │ ├── bindMobile.module.scss │ │ ├── bindMobile.tsx │ │ ├── faceCheck.module.scss │ │ ├── faceCheck.tsx │ │ └── loading.tsx │ ├── error │ │ ├── 404.tsx │ │ ├── index.module.scss │ │ └── index.tsx │ ├── index │ │ ├── components │ │ │ └── vod-v1 │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ ├── index.module.scss │ │ └── index.tsx │ ├── init │ │ └── index.tsx │ ├── layouts │ │ ├── with-header-with-footer │ │ │ └── index.tsx │ │ ├── with-header-without-footer │ │ │ └── index.tsx │ │ ├── without-header-with-footer │ │ │ └── index.tsx │ │ └── without-header-without-footer │ │ │ └── index.tsx │ ├── loading │ │ ├── index.module.scss │ │ └── index.tsx │ ├── login │ │ ├── index.module.scss │ │ └── index.tsx │ ├── member │ │ ├── components │ │ │ ├── bind-mobile │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ │ ├── bind-new-mobile │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ │ ├── bind-weixin │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ │ ├── change-password │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ │ ├── destroy-user │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ │ ├── mobile-verify-dialog │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ │ └── profile │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ ├── credit1-free │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── index.module.scss │ │ ├── index.tsx │ │ ├── messages │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ └── orders │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ ├── order │ │ ├── index.module.scss │ │ ├── index.tsx │ │ ├── pay.module.scss │ │ ├── pay.tsx │ │ ├── success.module.scss │ │ └── success.tsx │ ├── role │ │ ├── index.module.scss │ │ └── index.tsx │ ├── search │ │ ├── index.module.scss │ │ └── index.tsx │ ├── study │ │ ├── components │ │ │ ├── course-item │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ │ └── detail-dialog │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ ├── index.module.scss │ │ └── index.tsx │ └── vod │ │ ├── components │ │ ├── detail │ │ │ ├── video-chapter-list │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ │ └── video-list │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ └── video │ │ │ ├── video-chapter-list │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ │ └── video-list │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── detail.module.scss │ │ ├── detail.tsx │ │ ├── index.module.scss │ │ ├── index.tsx │ │ ├── video.module.scss │ │ └── video.tsx ├── routes │ └── index.tsx ├── store │ ├── index.ts │ ├── nav-menu │ │ └── navMenuConfigSlice.ts │ ├── system │ │ └── systemConfigSlice.ts │ └── user │ │ └── loginUserSlice.ts ├── utils │ └── index.ts └── vite-env.d.ts ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts /.dockerignore: -------------------------------------------------------------------------------- 1 | /xyz.meedu.h5/node_modules/ 2 | /xyz.meedu.h5/dist/ 3 | /xyz.meedu.h5/README.md 4 | 5 | /xyz.meedu.pc/node_modules/ 6 | /xyz.meedu.pc/dist/ 7 | /xyz.meedu.pc/README.md 8 | 9 | /xyz.meedu.admin/node_modules/ 10 | /xyz.meedu.admin/dist/ 11 | /xyz.meedu.admin/README.md 12 | 13 | /xyz.meedu.api/vendor/ 14 | /xyz.meedu.api/.env 15 | /xyz.meedu.api/.phpunit.result.cache 16 | /xyz.meedu.api/.php-cs-fixer.php 17 | /xyz.meedu.api/apidoc/ 18 | /xyz.meedu.api/apidoc.json 19 | /xyz.meedu.api/README.md 20 | /xyz.meedu.api/.env.testing -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | # MySQL数据库配置 2 | DB_HOST=mysql 3 | DB_PORT=3306 4 | DB_USERNAME=root 5 | DB_PASSWORD=meeduxyz 6 | DB_DATABASE=meedu 7 | 8 | # Redis配置 9 | REDIS_HOST=redis 10 | REDIS_PASSWORD=F9nO2FzJ*%uDX58! 11 | REDIS_PORT=6379 12 | 13 | # MeEdu配置 14 | APP_KEY=base64:s9M5EmBWLWerXU/udZ8biH8GYGKBAEtatGNI2XnzEVM= 15 | JWT_SECRET=26tpIiNHtYE0YsXeDge837qfIXVmlOES8l9M2u9OTrCZ9NASZcqJdYXBaOSPeLsh 16 | QUEUE_DRIVER=sync 17 | 18 | # MeiliSearch配置 19 | MEILISEARCH_HOST=http://meilisearch:7700 20 | MEILISEARCH_KEY= -------------------------------------------------------------------------------- /.github/SECURITY.md: -------------------------------------------------------------------------------- 1 | 2 | If you have feedback regarding a security vulnerability in meedu, please contact: 3 | 4 | Contact Name: Yongzhi Teng 5 | Contact Email: tengyongzhi@meedu.vip -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.log 3 | /.idea/ 4 | /.vscode/ 5 | LOCAL-TEST.md 6 | .env -------------------------------------------------------------------------------- /docker/php/php-fpm.d/docker.conf: -------------------------------------------------------------------------------- 1 | [global] 2 | error_log = /proc/self/fd/2 3 | 4 | ; https://github.com/docker-library/php/pull/725#issuecomment-443540114 5 | log_limit = 8192 6 | 7 | [www] 8 | ; if we send this to /proc/self/fd/1, it never appears 9 | access.log = /proc/self/fd/2 10 | 11 | clear_env = no 12 | 13 | ; Ensure worker stdout and stderr are sent to the main error log. 14 | catch_workers_output = yes 15 | decorate_workers_output = no 16 | -------------------------------------------------------------------------------- /docker/php/php-fpm.d/zz-docker.conf: -------------------------------------------------------------------------------- 1 | [global] 2 | daemonize = no 3 | 4 | [www] 5 | listen = 9000 6 | -------------------------------------------------------------------------------- /xyz.meedu.admin/.env.example: -------------------------------------------------------------------------------- 1 | VITE_APP_URL= -------------------------------------------------------------------------------- /xyz.meedu.admin/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | 26 | package-lock.json 27 | yarn.lock 28 | 29 | .env.production 30 | .env.development 31 | .env 32 | 33 | template.php 34 | 35 | deploy-test.sh 36 | deploy-demo.sh -------------------------------------------------------------------------------- /xyz.meedu.admin/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/favicon.png -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_AMS-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_AMS-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_AMS-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_AMS-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_AMS-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_AMS-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Bold.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Bold.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Bold.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Bold.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Bold.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Bold.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Bold.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Bold.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Bold.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-BoldItalic.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-BoldItalic.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-BoldItalic.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Italic.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Italic.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Italic.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-BoldItalic.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-BoldItalic.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-BoldItalic.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-Italic.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-Italic.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-Italic.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Bold.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Bold.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Bold.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Italic.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Italic.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Italic.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Script-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Script-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Script-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Script-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Script-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Script-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size1-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size1-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size1-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size1-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size1-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size1-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size2-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size2-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size2-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size2-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size2-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size2-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size3-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size3-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size3-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size3-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size3-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size3-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size4-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size4-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size4-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size4-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size4-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size4-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Typewriter-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Typewriter-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Typewriter-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Typewriter-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/public/js/katex/fonts/KaTeX_Typewriter-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Typewriter-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/public/template/学员批量导入模板.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/template/学员批量导入模板.xlsx -------------------------------------------------------------------------------- /xyz.meedu.admin/public/template/试题批量导入模板.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/template/试题批量导入模板.xlsx -------------------------------------------------------------------------------- /xyz.meedu.admin/public/template/课时批量导入模板.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/template/课时批量导入模板.xlsx -------------------------------------------------------------------------------- /xyz.meedu.admin/src/App.scss: -------------------------------------------------------------------------------- 1 | #root { 2 | width: 100%; 3 | margin: 0 auto; 4 | text-align: center; 5 | } 6 | 7 | ::selection { 8 | background-color: #3ca7fa; 9 | color: white; 10 | } -------------------------------------------------------------------------------- /xyz.meedu.admin/src/App.tsx: -------------------------------------------------------------------------------- 1 | import { useRoutes } from "react-router-dom"; 2 | import routes from "./routes"; 3 | import "./App.scss"; 4 | import { Suspense } from "react"; 5 | import LoadingPage from "./pages/loading"; 6 | 7 | function App() { 8 | const Views = () => useRoutes(routes); 9 | 10 | return ( 11 | }> 12 | 13 | 14 | ); 15 | } 16 | 17 | export default App; 18 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/AutoTop.ts: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { useLayoutEffect } from "react"; 3 | import { useLocation } from "react-router-dom"; 4 | 5 | const AutoScorllTop: React.FC<{ children: any }> = ({ children }) => { 6 | const location = useLocation(); 7 | useLayoutEffect(() => { 8 | document.documentElement.scrollTo(0, 0); 9 | }, [location.pathname]); 10 | return children; 11 | }; 12 | 13 | export default AutoScorllTop; 14 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/api/administrator.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function detail() { 4 | return client.get(`/backend/api/v1/user`, {}); 5 | } 6 | 7 | export function changePassword(params: any) { 8 | return client.put(`/backend/api/v1/administrator/password`, params); 9 | } 10 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/api/comment.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function list(params: any) { 4 | return client.get("/backend/api/v1/comment/index", params); 5 | } 6 | 7 | export function commentApplyMulti(params: any) { 8 | return client.post(`/backend/api/v1/comment/check`, params); 9 | } 10 | 11 | export function commentDestroy(params: any) { 12 | return client.post(`/backend/api/v1/comment/delete`, params); 13 | } 14 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/api/home.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function index() { 4 | return client.get("/backend/api/v1/dashboard", {}); 5 | } 6 | 7 | export function systemInfo() { 8 | return client.get("/backend/api/v1/dashboard/system/info", {}); 9 | } 10 | 11 | export function statistic(params: any) { 12 | return client.get(`/backend/api/v1/dashboard/graph`, params); 13 | } 14 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/api/login.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function login(params: any) { 4 | return client.post("/backend/api/v1/login", params); 5 | } 6 | 7 | export function logout() { 8 | return client.post("/backend/api/v1/logout", {}); 9 | } 10 | 11 | export function getUser() { 12 | return client.get("/backend/api/v1/user", {}); 13 | } 14 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/api/pre.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/prehttpClient"; 2 | 3 | export function setting() { 4 | return client.get("/backend/api/v1/setting", {}); 5 | } 6 | 7 | export function saveSetting(params: any) { 8 | return client.post("/backend/api/v1/setting", params); 9 | } 10 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/api/user.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function detail() { 4 | return client.get("/api/v1/user/detail", {}); 5 | } 6 | 7 | // 修改密码 8 | export function password(oldPassword: string, newPassword: string) { 9 | return client.put("/api/v1/user/avatar", { 10 | old_password: oldPassword, 11 | new_password: newPassword, 12 | }); 13 | } 14 | 15 | // 学员课程 16 | export function courses(depId: number) { 17 | return client.get("/api/v1/user/courses", { 18 | dep_id: depId, 19 | }); 20 | } 21 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/common/iconfont/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/common/iconfont/iconfont.ttf -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/common/iconfont/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/common/iconfont/iconfont.woff -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/common/iconfont/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/common/iconfont/iconfont.woff2 -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/home/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/home/favicon.ico -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/home/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/home/logo.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/home/selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/home/selected.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/ali.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/ali.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/camera.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/clicklogin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/clicklogin.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/coursetime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/coursetime.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/credict.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/credict.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/h5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/h5.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/icon-option.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/icon-option.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/icon-sign in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/icon-sign in.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/import.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/live.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/live.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/login.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/message.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/payment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/payment.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/pic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/pic.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/player.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/player.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/role.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/role.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/search.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/sendvip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/sendvip.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/system.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/system.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/tecent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/tecent.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/topic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/topic.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/video.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/webview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/webview.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/wechat.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/config/weixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/config/weixin.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/blank.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/book-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/book-back.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/code.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/course-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/course-back.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/default-grid-nav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/default-grid-nav.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/default-slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/default-slider.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/empty-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/empty-image.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/grid-nav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/grid-nav.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/h5-book-v1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/h5-book-v1.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/h5-edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/h5-edit.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/h5-gognzhoanghao-v1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/h5-gognzhoanghao-v1.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/h5-vod-v1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/h5-vod-v1.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/icon-announce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/icon-announce.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/icon-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/icon-banner.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/icon-link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/icon-link.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/icon-nav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/icon-nav.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/image-group-1-2-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/image-group-1-2-active.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/image-group-1-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/image-group-1-2.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/image-group-1-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/image-group-1-active.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/image-group-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/image-group-1.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/image-group-2-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/image-group-2-active.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/image-group-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/image-group-2.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/image-group-3-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/image-group-3-active.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/image-group-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/image-group-3.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/image-group-4-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/image-group-4-active.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/image-group-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/image-group-4.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/image-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/image-group.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/mp-wechat-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/mp-wechat-icon.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/mp-wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/mp-wechat.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/none-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/none-img.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/pc-edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/pc-edit.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/pc-edit2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/pc-edit2.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/search-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/search-bar.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/slider.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/decoration/h5/status-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/decoration/h5/status-bar.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/stats/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/stats/icon.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/images/upload-video/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/images/upload-video/empty.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/img/ali-pay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/img/ali-pay.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/img/card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/img/card.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/img/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/img/close.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/img/default-vip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/img/default-vip.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/img/focus-device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/img/focus-device.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/img/icon-back-n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/img/icon-back-n.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/img/icon-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/img/icon-back.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/img/icon-close-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/img/icon-close-h.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/img/icon-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/img/icon-close.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/img/icon-filter-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/img/icon-filter-h.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/img/icon-filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/img/icon-filter.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/img/icon-handin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/img/icon-handin.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/img/wepay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/img/wepay.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/login/loginleft_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/login/loginleft_banner.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/assets/login/yuyan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/assets/login/yuyan@2x.png -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/back-bar/index.module.scss: -------------------------------------------------------------------------------- 1 | .back-bar-box { 2 | width: 100%; 3 | height: auto; 4 | float: left; 5 | display: flex; 6 | align-items: center; 7 | 8 | .line { 9 | width: 1px; 10 | height: 14px; 11 | background-color: #d8d8d8; 12 | margin-right: 15px; 13 | } 14 | 15 | .name { 16 | font-size: 14px; 17 | font-weight: 600; 18 | color: #333333; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/close-icon/index.module.scss: -------------------------------------------------------------------------------- 1 | .btn-close-icon { 2 | width: 15px; 3 | height: 15px; 4 | background-color: #cccccc; 5 | color: white; 6 | border-radius: 50%; 7 | line-height: 15px; 8 | text-align: center; 9 | cursor: pointer; 10 | 11 | &:hover { 12 | background-color: rgba(#cccccc, 0.8); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/close-icon/index.tsx: -------------------------------------------------------------------------------- 1 | import styles from "./index.module.scss"; 2 | import { CloseCircleOutlined } from "@ant-design/icons"; 3 | 4 | export const CloseIcon = () => { 5 | return ( 6 |
7 | 8 |
9 | ); 10 | }; 11 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/duration-text/index.module.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/components/duration-text/index.module.scss -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/footer/index.module.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/components/footer/index.module.scss -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/h5-link/components/courses/index.module.scss: -------------------------------------------------------------------------------- 1 | .select-box { 2 | position: absolute; 3 | width: 340px; 4 | top: 0; 5 | display: flex; 6 | align-items: center; 7 | } 8 | .form-label { 9 | font-size: 14px; 10 | color: rgba(0, 0, 0, 0.7); 11 | } 12 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/helper-text/index.tsx: -------------------------------------------------------------------------------- 1 | import { InfoCircleOutlined } from "@ant-design/icons"; 2 | 3 | interface PropInterface { 4 | text: string; 5 | } 6 | 7 | export const HelperText = (props: PropInterface) => { 8 | return ( 9 |
10 | 11 | {props.text} 12 |
13 | ); 14 | }; 15 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/permission-button/index.module.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/components/permission-button/index.module.scss -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/quill-editor/index.module.scss: -------------------------------------------------------------------------------- 1 | .quill-editor-h40-box { 2 | width: 100%; 3 | float: left; 4 | background-color: white; 5 | .ql-editor { 6 | min-height: 40px; 7 | } 8 | } 9 | 10 | .quill-editor-box { 11 | width: 100%; 12 | float: left; 13 | background-color: white; 14 | } 15 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/student-device/index.module.scss: -------------------------------------------------------------------------------- 1 | .dialog-body { 2 | width: 100%; 3 | height: auto; 4 | box-sizing: border-box; 5 | padding: 30px 30px 30px 30px; 6 | display: flex; 7 | flex-direction: column; 8 | align-items: center; 9 | .qrcode { 10 | width: 150px; 11 | height: 150px; 12 | } 13 | 14 | label { 15 | font-size: 14px; 16 | font-weight: 400; 17 | color: #666666; 18 | line-height: 14px; 19 | margin-top: 10px; 20 | margin-bottom: 50px; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/tags-tooltip/index.module.scss: -------------------------------------------------------------------------------- 1 | .cursor-pointer { 2 | display: -webkit-box; 3 | width: 100%; 4 | overflow: hidden; 5 | white-space: nowrap; 6 | text-overflow: ellipsis; 7 | cursor: pointer; 8 | } 9 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/thumb-bar/index.moduel.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/components/thumb-bar/index.moduel.scss -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/tree-category/index.module.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/components/tree-category/index.module.scss -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/upload-video-item/index.module.scss: -------------------------------------------------------------------------------- 1 | .header { 2 | width: 100%; 3 | height: auto; 4 | float: left; 5 | box-sizing: border-box; 6 | padding: 0px 0px 20px 0px; 7 | font-size: 18px; 8 | font-weight: 500; 9 | color: #333333; 10 | line-height: 18px; 11 | display: flex; 12 | justify-content: space-between; 13 | align-items: center; 14 | } 15 | 16 | .body { 17 | width: 100%; 18 | height: 575px; 19 | overflow-x: hidden; 20 | overflow-y: auto; 21 | float: left; 22 | box-sizing: border-box; 23 | } 24 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/upload-video/index.module.scss: -------------------------------------------------------------------------------- 1 | .header { 2 | width: 100%; 3 | height: auto; 4 | float: left; 5 | box-sizing: border-box; 6 | padding: 0px 0px 20px 0px; 7 | font-size: 18px; 8 | font-weight: 500; 9 | color: #333333; 10 | line-height: 18px; 11 | display: flex; 12 | justify-content: space-between; 13 | align-items: center; 14 | } 15 | 16 | .body { 17 | width: 100%; 18 | height: 575px; 19 | float: left; 20 | box-sizing: border-box; 21 | } 22 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/user-add/index.module.scss: -------------------------------------------------------------------------------- 1 | .header { 2 | width: 100%; 3 | height: auto; 4 | box-sizing: border-box; 5 | font-size: 18px; 6 | font-weight: 400; 7 | color: #333333; 8 | line-height: 18px; 9 | } 10 | 11 | .body { 12 | width: 100%; 13 | height: 500px; 14 | overflow-y: auto; 15 | box-sizing: border-box; 16 | margin-top: 30px; 17 | } 18 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/user-import/index.module.scss: -------------------------------------------------------------------------------- 1 | .header { 2 | width: 100%; 3 | height: auto; 4 | box-sizing: border-box; 5 | font-size: 18px; 6 | font-weight: 400; 7 | color: #333333; 8 | line-height: 18px; 9 | } 10 | 11 | .body { 12 | width: 100%; 13 | height: 100px; 14 | box-sizing: border-box; 15 | margin-top: 30px; 16 | } 17 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/user-single-add/index.module.scss: -------------------------------------------------------------------------------- 1 | .header { 2 | width: 100%; 3 | height: auto; 4 | box-sizing: border-box; 5 | font-size: 18px; 6 | font-weight: 400; 7 | color: #333333; 8 | line-height: 18px; 9 | } 10 | 11 | .body { 12 | width: 100%; 13 | height: 500px; 14 | overflow-y: auto; 15 | box-sizing: border-box; 16 | margin-top: 30px; 17 | } 18 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/components/vhtml-tooltip/index.module.scss: -------------------------------------------------------------------------------- 1 | .cursor-pointer { 2 | display: -webkit-box; 3 | width: 100%; 4 | overflow: hidden; 5 | white-space: nowrap; 6 | text-overflow: ellipsis; 7 | cursor: pointer; 8 | } 9 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/js/config.ts: -------------------------------------------------------------------------------- 1 | let url = import.meta.env.VITE_APP_URL || ""; 2 | 3 | declare const window: any; 4 | 5 | if (typeof window.meedu_app_url !== "undefined" && window.meedu_app_url) { 6 | url = window.meedu_app_url; 7 | } 8 | 9 | export default { 10 | url: url, 11 | }; 12 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/meedu.d.ts: -------------------------------------------------------------------------------- 1 | declare module "xlsx"; 2 | 3 | declare global { 4 | interface ResponseInterface { 5 | data: any; 6 | status: number; 7 | message?: string; 8 | } 9 | 10 | interface CategoriesBoxModel { 11 | [key: number]: CategoriesItemModel[]; 12 | } 13 | 14 | interface CategoriesItemModel { 15 | id: number; 16 | name: string; 17 | parent_chain: string; 18 | parent_id: number; 19 | sort: number; 20 | } 21 | } 22 | 23 | export {}; 24 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/administrator/change-password/index.module.scss: -------------------------------------------------------------------------------- 1 | .change-password-box { 2 | width: 100%; 3 | height: auto; 4 | float: left; 5 | box-sizing: border-box; 6 | background-color: white; 7 | padding: 50px; 8 | text-align: left; 9 | } 10 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/decoration/components/h5/config/index.module.scss: -------------------------------------------------------------------------------- 1 | .config-index-box { 2 | width: 100%; 3 | height: 100%; 4 | float: left; 5 | overflow-y: auto; 6 | box-sizing: border-box; 7 | padding: 30px; 8 | text-align: left; 9 | } 10 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/decoration/components/h5/render-blank/index.module.scss: -------------------------------------------------------------------------------- 1 | .blank-box { 2 | width: 100%; 3 | height: auto; 4 | float: left; 5 | } 6 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/decoration/components/h5/render-blank/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState, useEffect } from "react"; 2 | import styles from "./index.module.scss"; 3 | 4 | interface PropInterface { 5 | config: any; 6 | } 7 | 8 | export const RenderBlank: React.FC = ({ config }) => { 9 | const [loading, setLoading] = useState(false); 10 | 11 | return ( 12 |
16 | ); 17 | }; 18 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/decoration/components/h5/render-image-group/index.module.scss: -------------------------------------------------------------------------------- 1 | .image-group-box { 2 | width: 100%; 3 | height: auto; 4 | float: left; 5 | text-align: left; 6 | } 7 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/decoration/components/h5/render-sliders/index.module.scss: -------------------------------------------------------------------------------- 1 | .slider-box { 2 | width: 100%; 3 | height: auto; 4 | float: left; 5 | box-sizing: border-box; 6 | padding: 10px 15px; 7 | background-color: white; 8 | } 9 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/decoration/components/pc/render-code/index.module.scss: -------------------------------------------------------------------------------- 1 | .code-empty { 2 | width: 100%; 3 | height: 100px; 4 | float: left; 5 | line-height: 100px; 6 | text-align: center; 7 | font-size: 24px; 8 | color: rgba(0, 0, 0, 0.8); 9 | background-color: rgba(0, 0, 0, 0.08); 10 | } 11 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/decoration/components/pc/render-notice/index.module.scss: -------------------------------------------------------------------------------- 1 | .notice-box { 2 | width: 100%; 3 | height: auto; 4 | float: left; 5 | box-sizing: border-box; 6 | background-color: #fff9d7; 7 | padding: 17px 30px; 8 | font-size: 16px; 9 | font-weight: 400; 10 | color: #de7a0b; 11 | line-height: 22px; 12 | cursor: pointer; 13 | border-bottom-left-radius: 8px; 14 | border-bottom-right-radius: 8px; 15 | text-align: left; 16 | } 17 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/decoration/components/pc/render-sliders/index.module.scss: -------------------------------------------------------------------------------- 1 | .empty-data { 2 | width: 100%; 3 | height: 400px; 4 | float: left; 5 | line-height: 400px; 6 | text-align: center; 7 | font-size: 24px; 8 | color: rgba(0, 0, 0, 0.7); 9 | background-color: rgba(0, 0, 0, 0.05); 10 | } 11 | 12 | .sliders-box { 13 | width: 100%; 14 | height: auto; 15 | float: left; 16 | cursor: pointer; 17 | } 18 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/error/index.module.scss: -------------------------------------------------------------------------------- 1 | .main { 2 | width: 100%; 3 | height: 100vh; 4 | box-sizing: border-box; 5 | padding-top: 100px; 6 | } 7 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/error/no-sevice.tsx: -------------------------------------------------------------------------------- 1 | import { Result } from "antd"; 2 | import styles from "./index.module.scss"; 3 | 4 | const NoServicePage = () => { 5 | return ; 6 | }; 7 | 8 | export default NoServicePage; 9 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/index.ts: -------------------------------------------------------------------------------- 1 | export * from './login'; -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/layouts/without-header-without-footer/index.module.scss: -------------------------------------------------------------------------------- 1 | .layout-wrap { 2 | position: fixed; 3 | top: 0; 4 | left: 0; 5 | right: 0; 6 | bottom: 0; 7 | display: flex; 8 | } 9 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/layouts/without-header-without-footer/index.tsx: -------------------------------------------------------------------------------- 1 | import { Suspense } from "react"; 2 | import styles from "./index.module.scss"; 3 | import { Outlet } from "react-router-dom"; 4 | import LoadingPage from "../../loading"; 5 | 6 | const WithoutHeaderWithoutFooter = () => { 7 | return ( 8 |
9 | }> 10 | 11 | 12 |
13 | ); 14 | }; 15 | 16 | export default WithoutHeaderWithoutFooter; 17 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/loading/index.module.scss: -------------------------------------------------------------------------------- 1 | .loading-box { 2 | width: 100vw; 3 | line-height: 100vh; 4 | text-align: center; 5 | background-color: #f4fafe; 6 | } 7 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/loading/index.tsx: -------------------------------------------------------------------------------- 1 | import { Spin } from "antd"; 2 | import styles from "./index.module.scss"; 3 | 4 | interface PropsInterface { 5 | height?: string; 6 | } 7 | 8 | const LoadingPage = (props: PropsInterface) => { 9 | return ( 10 | <> 11 |
15 | 16 |
17 | 18 | ); 19 | }; 20 | 21 | export default LoadingPage; 22 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/promocode/import.module.scss: -------------------------------------------------------------------------------- 1 | .user-import-box { 2 | width: 100%; 3 | height: auto; 4 | float: left; 5 | box-sizing: border-box; 6 | padding: 30px 100px; 7 | border-radius: 15px; 8 | background-color: white; 9 | } 10 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/resource/videos/compenents/create.module.less: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/pages/resource/videos/compenents/create.module.less -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/resource/videos/compenents/update.module.less: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/pages/resource/videos/compenents/update.module.less -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/system/application/index.module.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/pages/system/application/index.module.scss -------------------------------------------------------------------------------- /xyz.meedu.admin/src/pages/system/systemLog/index.module.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/src/pages/system/systemLog/index.module.scss -------------------------------------------------------------------------------- /xyz.meedu.admin/src/store/index.ts: -------------------------------------------------------------------------------- 1 | import { configureStore } from "@reduxjs/toolkit"; 2 | import systemConfigReducer from "./system/systemConfigSlice"; 3 | import loginUserReducer from "./user/loginUserSlice"; 4 | import EnabledAddonsReducer from "./enabledAddons/enabledAddonsConfigSlice"; 5 | 6 | const store = configureStore({ 7 | reducer: { 8 | loginUser: loginUserReducer, 9 | systemConfig: systemConfigReducer, 10 | enabledAddonsConfig: EnabledAddonsReducer, 11 | }, 12 | }); 13 | 14 | export default store; 15 | -------------------------------------------------------------------------------- /xyz.meedu.admin/src/types/permission.ts: -------------------------------------------------------------------------------- 1 | // 权限类型定义 2 | export interface Permission { 3 | [key: string]: boolean; 4 | } 5 | 6 | // 权限路径配置类型 7 | export interface PermissionPath { 8 | permission: string; // 权限标识 9 | path: string; // 路由路径 10 | title: string; // 页面标题 11 | } 12 | 13 | // 用户信息类型补充 14 | export interface MIAdministrator { 15 | id: number; 16 | name: string; 17 | email: string; 18 | permissions: Permission; 19 | created_at: string; 20 | is_ban_login: number; 21 | login_at: string; 22 | } -------------------------------------------------------------------------------- /xyz.meedu.admin/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /xyz.meedu.admin/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /xyz.meedu.admin/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vite"; 2 | import react from "@vitejs/plugin-react-swc"; 3 | import gzipPlugin from "rollup-plugin-gzip"; 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | server: { 8 | host: '0.0.0.0', 9 | port: 8300, 10 | }, 11 | plugins: [react()], 12 | build: { 13 | rollupOptions: { 14 | plugins: [gzipPlugin()], 15 | }, 16 | }, 17 | }); 18 | -------------------------------------------------------------------------------- /xyz.meedu.api/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.scss linguist-vendored 4 | *.js linguist-vendored 5 | CHANGELOG.md export-ignore 6 | -------------------------------------------------------------------------------- /xyz.meedu.api/.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /public/hot 3 | /public/storage 4 | /public/admin 5 | /storage/*.key 6 | /vendor 7 | /.idea 8 | /.vagrant 9 | Homestead.json 10 | Homestead.yaml 11 | npm-debug.log 12 | yarn-error.log 13 | .env 14 | bower_components 15 | .php_cs.cache 16 | /storage/meedu_config.json 17 | .DS_Store 18 | php-cs-fixer.phar 19 | /app/Console/Commands/TestCommand.php 20 | _ide_helper.php 21 | package-lock.json 22 | /storage/install.lock 23 | .phpunit.result.cache 24 | public/mix-manifest.json 25 | apidoc/ 26 | tests/report/ 27 | .env.testing -------------------------------------------------------------------------------- /xyz.meedu.api/addons/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /xyz.meedu.api/apidoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "MeEdu", 3 | "version": "v2.0.0", 4 | "description": "MeEdu点播系统", 5 | "title": "MeEdu点播系统", 6 | "url" : "" 7 | } -------------------------------------------------------------------------------- /xyz.meedu.api/app/Constant/BackendApiConstant.php: -------------------------------------------------------------------------------- 1 | userId = $userId; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /xyz.meedu.api/app/Events/UserNotificationReadEvent.php: -------------------------------------------------------------------------------- 1 | userId = $userId; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /xyz.meedu.api/app/Exceptions/Backend/ValidateException.php: -------------------------------------------------------------------------------- 1 | json([ 21 | 'status' => 406, 22 | 'message' => $this->message, 23 | ]); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /xyz.meedu.api/app/Exceptions/ServiceException.php: -------------------------------------------------------------------------------- 1 | error($this->getMessage()); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /xyz.meedu.api/app/Http/Controllers/Backend/Api/V1/AdministratorPermissionController.php: -------------------------------------------------------------------------------- 1 | orderByDesc('id')->get(); 18 | 19 | return $this->successData($permissions); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /xyz.meedu.api/app/Http/Controllers/Backend/Api/V1/CaptchaController.php: -------------------------------------------------------------------------------- 1 | create('default', true); 18 | 19 | return $this->successData($data); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /xyz.meedu.api/app/Http/Middleware/TrimStrings.php: -------------------------------------------------------------------------------- 1 | orderBy('sort')->get()->toArray(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /xyz.meedu.api/bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /xyz.meedu.api/config/tencent.php: -------------------------------------------------------------------------------- 1 | [ 11 | 'app_id' => '', 12 | 'secret_id' => '', 13 | 'secret_key' => '', 14 | 'callback_key' => '', 15 | 'play_domain' => '', 16 | 'play_key' => '', 17 | ], 18 | 'face' => [ 19 | 'rule_id' => '', 20 | 'secret_id' => '', 21 | 'secret_key' => '', 22 | ], 23 | ]; 24 | -------------------------------------------------------------------------------- /xyz.meedu.api/config/throttle.php: -------------------------------------------------------------------------------- 1 | explode(',', env('THROTTLE_WHITELIST_IP', '')), 11 | ]; 12 | -------------------------------------------------------------------------------- /xyz.meedu.api/database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite 2 | -------------------------------------------------------------------------------- /xyz.meedu.api/database/seeders/CourseVideoSeeder.php: -------------------------------------------------------------------------------- 1 | create(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /xyz.meedu.api/database/seeders/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | call(CourseVideoSeeder::class); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /xyz.meedu.api/database/seeders/UserSeeder.php: -------------------------------------------------------------------------------- 1 | create(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /xyz.meedu.api/public/addons/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /xyz.meedu.api/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.api/public/favicon.ico -------------------------------------------------------------------------------- /xyz.meedu.api/public/images/default_avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.api/public/images/default_avatar.jpg -------------------------------------------------------------------------------- /xyz.meedu.api/public/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.api/public/images/logo.png -------------------------------------------------------------------------------- /xyz.meedu.api/public/images/player-thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.api/public/images/player-thumb.png -------------------------------------------------------------------------------- /xyz.meedu.api/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /xyz.meedu.api/public/templates/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /xyz.meedu.api/resources/views/index/aboutus.blade.php: -------------------------------------------------------------------------------- 1 | @if(mb_substr($content, -7,7) === '') 2 | {!! $content !!} 3 | @else 4 | 5 | 6 | 7 | 8 | 10 | 11 | {{__('关于我们')}} 12 | 13 | 14 | {!! $content !!} 15 | 16 | 17 | @endif 18 | 19 | -------------------------------------------------------------------------------- /xyz.meedu.api/resources/views/index/face_verify_success.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | {{__('成功')}} 9 | 10 | 11 |

{{__('实名认证成功,请关闭当前网页')}}

12 | 13 | -------------------------------------------------------------------------------- /xyz.meedu.api/resources/views/index/user_private_protocol.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | {{__('用户隐私协议')}} 9 | 10 | 11 | {!! $protocol !!} 12 | 13 | -------------------------------------------------------------------------------- /xyz.meedu.api/resources/views/index/user_protocol.blade.php: -------------------------------------------------------------------------------- 1 | @if(mb_substr($protocol, -7,7) === '') 2 | {!! $protocol !!} 3 | @else 4 | 5 | 6 | 7 | 8 | 10 | 11 | {{__('用户协议')}} 12 | 13 | 14 | {!! $protocol !!} 15 | 16 | 17 | @endif 18 | 19 | -------------------------------------------------------------------------------- /xyz.meedu.api/resources/views/index/vip_protocol.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | {{__('会员服务协议')}} 9 | 10 | 11 | {!! $content !!} 12 | 13 | 14 | -------------------------------------------------------------------------------- /xyz.meedu.api/routes/channels.php: -------------------------------------------------------------------------------- 1 | artisan('meedu:upgrade')->assertSuccessful(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /xyz.meedu.api/tests/Commands/MemberRoleExpiredHandlerCommandTest.php: -------------------------------------------------------------------------------- 1 | artisan('member:role:expired')->assertExitCode(0); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /xyz.meedu.api/tests/Commands/UserDeleteJobRunCommandTest.php: -------------------------------------------------------------------------------- 1 | artisan('meedu:user-delete-job')->assertSuccessful(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /xyz.meedu.api/tests/Feature/Api/V2/CaptchaImageTest.php: -------------------------------------------------------------------------------- 1 | get('/api/v2/captcha/image') 16 | ->seeStatusCode(200); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /xyz.meedu.api/tests/Feature/Api/V2/RoleTest.php: -------------------------------------------------------------------------------- 1 | count(4)->create(); 18 | $r = $this->getJson('api/v2/roles'); 19 | $r = $this->assertResponseSuccess($r); 20 | $this->assertEquals(4, count($r['data'])); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /xyz.meedu.api/tests/Unit/Meedu/ServiceProxy/ServiceProxyTest.php: -------------------------------------------------------------------------------- 1 | assertTrue(true); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /xyz.meedu.h5/.env.example: -------------------------------------------------------------------------------- 1 | VITE_APP_URL= -------------------------------------------------------------------------------- /xyz.meedu.h5/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | .env 21 | .env.production 22 | .env.development 23 | 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | yarn.lock 29 | package-lock.json 30 | 31 | dist/ -------------------------------------------------------------------------------- /xyz.meedu.h5/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/public/favicon.ico -------------------------------------------------------------------------------- /xyz.meedu.h5/src/App.scss: -------------------------------------------------------------------------------- 1 | #root { 2 | width: 100%; 3 | margin: 0 auto; 4 | text-align: center; 5 | background-color: #ffffff; 6 | } 7 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/App.tsx: -------------------------------------------------------------------------------- 1 | import { Suspense } from "react"; 2 | import { useRoutes } from "react-router-dom"; 3 | import routes from "./routes"; 4 | import "./App.scss"; 5 | import LoadingPage from "./pages/loading"; 6 | 7 | const App = () => { 8 | const Views = () => useRoutes(routes); 9 | 10 | return ( 11 | }> 12 | 13 | 14 | ); 15 | }; 16 | 17 | export default App; 18 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/AutoTop.ts: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { useLayoutEffect } from "react"; 3 | import { useLocation } from "react-router-dom"; 4 | 5 | const AutoScorllTop: React.FC<{ children: any }> = ({ children }) => { 6 | const location = useLocation(); 7 | useLayoutEffect(() => { 8 | document.documentElement.scrollTo(0, 0); 9 | }, [location.pathname]); 10 | return children; 11 | }; 12 | 13 | export default AutoScorllTop; 14 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/api/comment.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function comments(params: any) { 4 | return client.get("/api/v3/comments", params); 5 | } 6 | 7 | export function commentsReplies(params: any) { 8 | return client.get(`/api/v3/comments/replies`, params); 9 | } 10 | 11 | export function submitComment(params: any) { 12 | return client.post(`/api/v3/comment/store`, params); 13 | } 14 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/api/index.ts: -------------------------------------------------------------------------------- 1 | export * as login from "./login"; 2 | export * as user from "./user"; 3 | export * as course from "./course"; 4 | export * as system from "./system"; 5 | export * as role from "./role"; 6 | export * as viewBlock from "./viewBlock"; 7 | export * as order from "./order"; 8 | export * as search from "./search"; 9 | export * as comment from "./comment"; 10 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/api/order.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function PromoCodeCheck(code: string) { 4 | return client.get("/api/v2/promoCode/" + code + "/check", {}); 5 | } 6 | 7 | export function CreateOrder(params: any) { 8 | return client.post("/api/v3/order", params); 9 | } 10 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/api/role.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function List() { 4 | return client.get("/api/v2/roles", {}); 5 | } 6 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/api/search.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function Index(params:any) { 4 | return client.get("/api/v3/search",params); 5 | } 6 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/api/system.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function config() { 4 | return client.get("/api/v2/other/config", {}); 5 | } 6 | 7 | export function imageCaptcha() { 8 | return client.get("/api/v2/captcha/image", {}); 9 | } 10 | 11 | export function sendSms(params: any) { 12 | return client.post("/api/v2/captcha/sms", params); 13 | } 14 | 15 | export function Jssdk(params: any) { 16 | return client.get("/api/v3/other/wechat-mp-jssdk", params); 17 | } 18 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/api/viewBlock.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function PageBlocks(params: any) { 4 | return client.get(`/api/v2/viewBlock/page/blocks`, params); 5 | } 6 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/Spinload.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/Spinload.gif -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/VIPcenter@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/VIPcenter@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/attach-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/attach-icon.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/circle.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/close.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/collect-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/collect-active.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/collect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/collect.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/default-vip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/default-vip.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/default_avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/default_avatar.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/dianbo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/dianbo@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/dianzishu@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/dianzishu@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/faceSuccess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/faceSuccess.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-adopt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-adopt.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-answer-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-answer-card.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-back-n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-back-n.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-back.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-balance@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-balance@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-card.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-check-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-check-h.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-check-n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-check-n.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-clock.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-delete-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-delete-h.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-delete.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-error.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-exam@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-exam@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-exchange@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-exchange@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-favorite-n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-favorite-n.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-favorite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-favorite.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-filter.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-handin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-handin.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-history@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-history@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-home-h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-home-h@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-home-n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-home-n@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-info@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-info@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-last.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-last.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-list@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-list@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-me-h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-me-h@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-me-n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-me-n@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-message@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-message@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-mock@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-mock@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-money@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-money@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-next.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-point@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-point@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-practice@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-practice@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-prev.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-qq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-qq.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-search.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-setting@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-setting@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-study-h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-study-h@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-study-n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-study-n@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-wexinpay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-wexinpay.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/icon-wrongbook@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/icon-wrongbook@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/img-placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/img-placeholder.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/kaoshi@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/kaoshi@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/lujing@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/lujing@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/miaosha@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/miaosha@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/new/VIP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/new/VIP.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/new/agree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/new/agree.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/new/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/new/back.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/new/back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/new/back@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/new/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/new/banner.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/new/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/new/close.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/new/message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/new/message.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/new/order.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/new/order.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/new/setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/new/setting.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/payali.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/payali.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/payhand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/payhand.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/paywechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/paywechat.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/play.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/play.gif -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/practice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/practice.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/qq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/qq.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/selected.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/test.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/topright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/topright.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/tuwen@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/tuwen@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/unselected.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/virtual-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/virtual-test.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/watermark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/watermark@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/wechat.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/wenda@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/wenda@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/work-weixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/work-weixin.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/wrong-book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/wrong-book.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/assets/img/zhibo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.h5/src/assets/img/zhibo@2x.png -------------------------------------------------------------------------------- /xyz.meedu.h5/src/components/copyright/index.module.scss: -------------------------------------------------------------------------------- 1 | .copyright { 2 | width: 100%; 3 | height: auto; 4 | float: left; 5 | margin-top: 100px; 6 | text-align: center; 7 | } 8 | 9 | .copyright > .item { 10 | font-size: 10px; 11 | color: rgba(0, 0, 0, 0.4); 12 | line-height: 20px; 13 | } 14 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/components/empty/index.module.scss: -------------------------------------------------------------------------------- 1 | .empty-box { 2 | width: 100%; 3 | height: auto; 4 | float: left; 5 | text-align: center; 6 | padding-top: 50px; 7 | padding-bottom: 50px; 8 | } 9 | .empty-box > .image-empty-item { 10 | display: inline-block; 11 | } 12 | .empty-box > .image-empty-item > img { 13 | width: 120px; 14 | height: 120px; 15 | } 16 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/components/empty/index.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import styles from "./index.module.scss"; 3 | import icon from "../../assets/img/img-placeholder.png"; 4 | 5 | export const Empty: React.FC = () => { 6 | return ( 7 | <> 8 |
9 |
10 | 11 |
12 |
13 | 14 | ); 15 | }; 16 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/components/footer-bar/index.module.scss: -------------------------------------------------------------------------------- 1 | .footer { 2 | position: fixed; 3 | bottom: 0; 4 | left: 0; 5 | right: 0; 6 | min-height: 55px; 7 | box-shadow: 0px -1px 4px 0px rgba(0, 0, 0, 0.04); 8 | background: #ffffff; 9 | z-index: 100; 10 | box-sizing: border-box; 11 | padding-bottom: constant(safe-area-inset-bottom); /* 兼容iOS 11.0 - 11.2 */ 12 | padding-bottom: env(safe-area-inset-bottom); /* 兼容iOS 11.2+ */ 13 | } 14 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/components/private-route/index.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { getToken } from "../../utils/index"; 3 | import { Navigate } from "react-router-dom"; 4 | 5 | interface PropInterface { 6 | Component: any; 7 | } 8 | 9 | const PrivateRoute: React.FC = ({ Component }) => { 10 | let url = 11 | "/login?redirect=" + 12 | encodeURIComponent(window.location.pathname + window.location.search); 13 | 14 | return getToken() ? Component : ; 15 | }; 16 | export default PrivateRoute; 17 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/components/tech-support/index.module.scss: -------------------------------------------------------------------------------- 1 | .tech-support { 2 | width: 100%; 3 | height: auto; 4 | float: left; 5 | padding-top: 50px; 6 | padding-bottom: 50px; 7 | text-align: center; 8 | margin-bottom: 53px; 9 | } 10 | 11 | .inline-img { 12 | display: inline-block; 13 | img { 14 | width: 115px; 15 | height: 42px; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/components/tech-support/index.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import styles from "./index.module.scss"; 3 | import icon from "../../assets/img/watermark@2x.png" 4 | 5 | export const TechSupport: React.FC = () => { 6 | return ( 7 |
8 |
9 | 10 |
11 |
12 | ); 13 | }; 14 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/components/thumb-bar/index.module.scss: -------------------------------------------------------------------------------- 1 | .content-box { 2 | display: block; 3 | width: 100%; 4 | height: auto; 5 | } 6 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/index.tsx: -------------------------------------------------------------------------------- 1 | import ReactDOM from "react-dom/client"; 2 | import { Provider } from "react-redux"; 3 | import store from "./store"; 4 | import { BrowserRouter } from "react-router-dom"; 5 | import "./index.scss"; 6 | import App from "./App"; 7 | import AutoScorllTop from "./AutoTop"; 8 | 9 | ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | ); 18 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/js/config.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | app_url: import.meta.env.VITE_APP_URL || "", 3 | }; 4 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/main.tsx: -------------------------------------------------------------------------------- 1 | import ReactDOM from "react-dom/client"; 2 | import { Provider } from "react-redux"; 3 | import store from "./store"; 4 | import { BrowserRouter } from "react-router-dom"; 5 | import "./main.scss"; 6 | import App from "./App"; 7 | import AutoScorllTop from "./AutoTop"; 8 | 9 | ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | ); 18 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/pages/course/index.module.scss: -------------------------------------------------------------------------------- 1 | .gray { 2 | float: left; 3 | width: 100%; 4 | height: 10px; 5 | background: #f3f6f9; 6 | } 7 | 8 | .drop { 9 | display: inline-block; 10 | width: 100%; 11 | text-align: center; 12 | color: #cccccc; 13 | font-size: 14px; 14 | margin-top: 30px; 15 | margin-bottom: 30px; 16 | } 17 | 18 | .vod-course-item { 19 | width: 100%; 20 | height: auto; 21 | float: left; 22 | box-sizing: border-box; 23 | padding: 15px; 24 | } 25 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/pages/index.ts: -------------------------------------------------------------------------------- 1 | export * from './login'; -------------------------------------------------------------------------------- /xyz.meedu.h5/src/pages/index/compenents/blank/index.module.scss: -------------------------------------------------------------------------------- 1 | .blank-box { 2 | width: 100%; 3 | height: auto; 4 | float: left; 5 | background: #ffffff; 6 | display: flex; 7 | } 8 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/pages/index/compenents/blank/index.tsx: -------------------------------------------------------------------------------- 1 | import styles from "./index.module.scss"; 2 | import React from "react"; 3 | 4 | interface PropInterface { 5 | height: number; 6 | bgColor: string; 7 | } 8 | 9 | export const IndexBlank: React.FC = ({ height, bgColor }) => { 10 | return ( 11 |
15 | ); 16 | }; 17 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/pages/index/compenents/index-slider/index.module.scss: -------------------------------------------------------------------------------- 1 | .slider-box { 2 | width: 100%; 3 | margin-top: 0px; 4 | box-sizing: border-box; 5 | padding: 10px 15px; 6 | height: 135px; 7 | overflow: hidden; 8 | background: #ffffff; 9 | } 10 | 11 | .swiper-slide { 12 | width: 100%; 13 | height: 115px; 14 | border-radius: 8px; 15 | overflow: hidden; 16 | } 17 | 18 | .swiper-slide > img { 19 | width: 100%; 20 | height: 115px; 21 | } 22 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/pages/layouts/with-footer/index.tsx: -------------------------------------------------------------------------------- 1 | import { Suspense } from "react"; 2 | import { Outlet } from "react-router-dom"; 3 | import LoadingPage from "../../loading"; 4 | import { TabBarFooter } from "../../../components/footer-bar"; 5 | 6 | const WithoutHeaderWithoutFooter = () => { 7 | return ( 8 | <> 9 | }> 10 | 11 | 12 | 13 | 14 | ); 15 | }; 16 | 17 | export default WithoutHeaderWithoutFooter; 18 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/pages/layouts/without-footer/index.tsx: -------------------------------------------------------------------------------- 1 | import { Suspense } from "react"; 2 | import { Outlet } from "react-router-dom"; 3 | import LoadingPage from "../../loading"; 4 | 5 | const WithoutHeaderWithoutFooter = () => { 6 | return ( 7 | }> 8 | 9 | 10 | ); 11 | }; 12 | 13 | export default WithoutHeaderWithoutFooter; 14 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/pages/loading/index.tsx: -------------------------------------------------------------------------------- 1 | import { SpinLoading } from "antd-mobile"; 2 | 3 | const LoadingPage = () => { 4 | return ( 5 |
14 | 15 |
16 | ); 17 | }; 18 | 19 | export default LoadingPage; 20 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/store/index.ts: -------------------------------------------------------------------------------- 1 | import { configureStore } from "@reduxjs/toolkit"; 2 | import systemConfigReducer from "./system/systemConfigSlice"; 3 | import loginUserReducer from "./user/loginUserSlice"; 4 | 5 | const store = configureStore({ 6 | reducer: { 7 | loginUser: loginUserReducer, 8 | systemConfig: systemConfigReducer, 9 | }, 10 | }); 11 | 12 | export default store; 13 | -------------------------------------------------------------------------------- /xyz.meedu.h5/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /xyz.meedu.h5/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /xyz.meedu.pc/.env.example: -------------------------------------------------------------------------------- 1 | VITE_APP_URL= -------------------------------------------------------------------------------- /xyz.meedu.pc/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | 26 | package-lock.json 27 | yarn.lock 28 | 29 | .env.production 30 | .env.development 31 | .env 32 | 33 | deploy-test.sh 34 | deploy-demo.sh 35 | docker-light-build.sh -------------------------------------------------------------------------------- /xyz.meedu.pc/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/favicon.png -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_AMS-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_AMS-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_AMS-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_AMS-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_AMS-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_AMS-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Caligraphic-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Caligraphic-Bold.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Caligraphic-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Caligraphic-Bold.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Caligraphic-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Caligraphic-Bold.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Caligraphic-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Caligraphic-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Caligraphic-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Caligraphic-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Caligraphic-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Caligraphic-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Fraktur-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Fraktur-Bold.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Fraktur-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Fraktur-Bold.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Fraktur-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Fraktur-Bold.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Fraktur-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Fraktur-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Fraktur-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Fraktur-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Fraktur-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Fraktur-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Bold.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Bold.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Bold.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-BoldItalic.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-BoldItalic.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-BoldItalic.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Italic.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Italic.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Italic.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Main-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Math-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Math-BoldItalic.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Math-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Math-BoldItalic.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Math-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Math-BoldItalic.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Math-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Math-Italic.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Math-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Math-Italic.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Math-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Math-Italic.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Bold.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Bold.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Bold.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Italic.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Italic.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Italic.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_SansSerif-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Script-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Script-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Script-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Script-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Script-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Script-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size1-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size1-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size1-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size1-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size1-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size1-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size2-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size2-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size2-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size2-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size2-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size2-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size3-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size3-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size3-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size3-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size3-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size3-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size4-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size4-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size4-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size4-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size4-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Size4-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Typewriter-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Typewriter-Regular.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Typewriter-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Typewriter-Regular.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/public/js/katex/fonts/KaTeX_Typewriter-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/public/js/katex/fonts/KaTeX_Typewriter-Regular.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/src/App.scss: -------------------------------------------------------------------------------- 1 | #root { 2 | width: 100%; 3 | min-height: 600px; 4 | margin: 0 auto; 5 | text-align: center; 6 | background-color: #f4fafe; 7 | } 8 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/App.tsx: -------------------------------------------------------------------------------- 1 | import { useRoutes } from "react-router-dom"; 2 | import routes from "./routes"; 3 | import "./App.scss"; 4 | import { Suspense } from "react"; 5 | import LoadingPage from "./pages/loading"; 6 | 7 | function App() { 8 | const Views = () => useRoutes(routes); 9 | 10 | return ( 11 | }> 12 | 13 | 14 | ); 15 | } 16 | 17 | export default App; 18 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/AutoTop.ts: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { useLayoutEffect } from "react"; 3 | import { useLocation } from "react-router-dom"; 4 | 5 | const AutoScorllTop: React.FC<{ children: any }> = ({ children }) => { 6 | const location = useLocation(); 7 | useLayoutEffect(() => { 8 | document.documentElement.scrollTo(0, 0); 9 | }, [location.pathname]); 10 | return children; 11 | }; 12 | 13 | export default AutoScorllTop; 14 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/api/comment.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function comments(params: any) { 4 | return client.get("/api/v3/comments", params); 5 | } 6 | 7 | export function commentsReplies(params: any) { 8 | return client.get(`/api/v3/comments/replies`, params); 9 | } 10 | 11 | export function submitComment(params: any) { 12 | return client.post(`/api/v3/comment/store`, params); 13 | } 14 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/api/home.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function announcement() { 4 | return client.get(`/api/v2/announcement/latest`, {}); 5 | } 6 | export function announcementList() { 7 | return client.get(`/api/v2/announcements`, {}); 8 | } 9 | export function announcementDetail(id: number) { 10 | return client.get(`/api/v2/announcement/${id}`, {}); 11 | } 12 | export function headerNav() { 13 | return client.get(`/api/v2/navs`, {}); 14 | } 15 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/api/index.ts: -------------------------------------------------------------------------------- 1 | export * as login from "./login"; 2 | export * as user from "./user"; 3 | export * as course from "./course"; 4 | export * as system from "./system"; 5 | export * as home from "./home"; 6 | export * as role from "./role"; 7 | export * as order from "./order"; 8 | export * as search from "./search"; 9 | export * as viewBlock from "./viewBlock"; 10 | export * as study from "./study"; 11 | export * as comment from "./comment"; 12 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/api/order.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function promoCodeCheck(code: string) { 4 | return client.get("/api/v2/promoCode/" + code + "/check", {}); 5 | } 6 | 7 | export function checkOrderStatus(params: any) { 8 | return client.get(`/api/v2/order/status`, params); 9 | } 10 | 11 | export function createOrder(params: any) { 12 | return client.post("/api/v3/order", params); 13 | } 14 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/api/role.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function list() { 4 | return client.get("/api/v2/roles", {}); 5 | } 6 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/api/search.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function list(params: any) { 4 | return client.get("/api/v3/search", params); 5 | } 6 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/api/study.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function courses(params: any) { 4 | return client.get("/api/v3/member/courses/learned", params); 5 | } 6 | 7 | export function coursesDetail(courseId: number, params: any) { 8 | return client.get(`/api/v3/member/learned/course/${courseId}`, params); 9 | } -------------------------------------------------------------------------------- /xyz.meedu.pc/src/api/system.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function config() { 4 | return client.get("/api/v2/other/config", {}); 5 | } 6 | 7 | export function sendSms(params: any) { 8 | return client.post("/api/v2/captcha/sms", params); 9 | } 10 | 11 | export function imageCaptcha() { 12 | return client.get("/api/v2/captcha/image", {}); 13 | } 14 | 15 | export function footerLink() { 16 | return client.get(`/api/v2/links`, {}); 17 | } -------------------------------------------------------------------------------- /xyz.meedu.pc/src/api/viewBlock.ts: -------------------------------------------------------------------------------- 1 | import client from "./internal/httpClient"; 2 | 3 | export function pageBlocks(params: any) { 4 | return client.get("/api/v2/viewBlock/page/blocks", params); 5 | } 6 | 7 | export function sliders(params: any) { 8 | return client.get("/api/v2/sliders", params); 9 | } 10 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/iconfont/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/iconfont/iconfont.ttf -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/iconfont/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/iconfont/iconfont.woff -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/iconfont/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/iconfont/iconfont.woff2 -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/back@2x.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/VIP-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/VIP-top.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/banner2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/banner2.jpg -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/bg-VIP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/bg-VIP.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/bg-zhibo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/bg-zhibo.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/collect-paper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/collect-paper.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/default-article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/default-article.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/default-avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/default-avatar.jpg -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/default-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/default-banner.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/default-ebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/default-ebook.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/default-lesson.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/default-lesson.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/default-live.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/default-live.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/default-paper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/default-paper.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/default-steps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/default-steps.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/default-video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/default-video.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/default-vip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/default-vip.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/empty-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/empty-data.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/faceSuccess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/faceSuccess.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/footlink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/footlink.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-VIP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-VIP.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-adopt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-adopt.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-back-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-back-h.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-back.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-backtop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-backtop.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-camera-h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-camera-h@2x.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-camera-n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-camera-n@2x.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-camera.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-card.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-close.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-collect-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-collect-h.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-collect-n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-collect-n.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-crad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-crad.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-delete.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-forward-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-forward-h.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-forward.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-guidepost.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-guidepost.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-learning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-learning.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-like-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-like-h.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-like.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-like.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-lock.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-market.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-market.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-market@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-market@2x.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-member.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-member.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-message.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-mobile.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-play.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-qq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-qq.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-question.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-search.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-sign-n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-sign-n.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-top.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-unlock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-unlock.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-video@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-video@2x.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-vote-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-vote-h.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-vote-n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-vote-n.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-wechat.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-weibo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-weibo.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-weixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-weixin.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-wepay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-wepay.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-wexinpay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-wexinpay.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-zfb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-zfb.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/icon-zfb@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/icon-zfb@2x.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/img-placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/img-placeholder.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/img-wrong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/img-wrong.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/login-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/login-banner.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/logo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/logo@2x.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/no-facecheck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/no-facecheck.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/practice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/practice.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/share-wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/share-wechat.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/storehouse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/storehouse.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/test.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/tips-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/tips-400.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/tips-500.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/tips-500.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/upload.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/virtual-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/virtual-test.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/commen/wrong-book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/commen/wrong-book.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/icon-back-n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/icon-back-n.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/icon-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/icon-back.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/icon-delete-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/icon-delete-h.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/icon-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/icon-delete.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/icon-handin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/icon-handin.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/member/mock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/member/mock.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/member/practice-collects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/member/practice-collects.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/member/practice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/member/practice.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/member/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/member/test.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/study/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/study/banner.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/assets/img/study/icon-mystudy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/assets/img/study/icon-mystudy.png -------------------------------------------------------------------------------- /xyz.meedu.pc/src/components/back-top/index.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import styles from "./index.module.scss"; 3 | import icon from "../../assets/img/commen/icon-top.png"; 4 | 5 | export const BackTop: React.FC = () => { 6 | return ( 7 |
window.scrollTo(0, 0)}> 8 | 9 | 顶部 10 |
11 | ); 12 | }; 13 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/components/empty/index.module.scss: -------------------------------------------------------------------------------- 1 | .img-box { 2 | width: 100%; 3 | height: auto; 4 | text-align: center; 5 | padding-top: 150px; 6 | padding-bottom: 150px; 7 | } 8 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/components/empty/index.tsx: -------------------------------------------------------------------------------- 1 | import styles from "./index.module.scss"; 2 | import React from "react"; 3 | import { Image } from "antd"; 4 | import empty from "../../assets/img/commen/img-placeholder.png"; 5 | 6 | export const Empty: React.FC = () => { 7 | return ( 8 |
9 | 10 |
11 | ); 12 | }; 13 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/components/image-preview/index.module.scss: -------------------------------------------------------------------------------- 1 | .image-preview-shadow-box { 2 | position: fixed; 3 | top: 0; 4 | left: 0; 5 | right: 0; 6 | bottom: 0; 7 | z-index: 99999; 8 | background-color: rgba(0, 0, 0, 0.8); 9 | text-align: center; 10 | overflow-y: auto; 11 | box-sizing: border-box; 12 | padding-top: 10px; 13 | padding-bottom: 10px; 14 | } 15 | .img { 16 | max-width: 100%; 17 | } 18 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/components/image-preview/index.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import styles from "./index.module.scss"; 3 | 4 | interface PropInterface { 5 | url: string; 6 | close: () => void; 7 | } 8 | 9 | export const ImagePreview: React.FC = ({ url, close }) => { 10 | return ( 11 |
close()}> 12 | 13 |
14 | ); 15 | }; 16 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/components/page-box/index.module.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.pc/src/components/page-box/index.module.scss -------------------------------------------------------------------------------- /xyz.meedu.pc/src/components/thumb-bar/index.module.scss: -------------------------------------------------------------------------------- 1 | .content-box { 2 | display: block; 3 | width: 100%; 4 | height: auto; 5 | } 6 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/js/config.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | app_url: import.meta.env.VITE_APP_URL || "", 3 | disable_vip: (import.meta.env.VITE_DISABLE_VIP || "") === "disable", 4 | }; 5 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/pages/auth/faceCheck.module.scss: -------------------------------------------------------------------------------- 1 | .box { 2 | width: 1200px; 3 | margin: 0 auto; 4 | margin-top: 150px; 5 | display: flex; 6 | flex-direction: column; 7 | align-items: center; 8 | } 9 | 10 | .tip { 11 | width: 100%; 12 | text-align: center; 13 | font-size: 16px; 14 | font-weight: 600; 15 | color: #333333; 16 | line-height: 30px; 17 | margin-top: 15px; 18 | } 19 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/pages/auth/loading.tsx: -------------------------------------------------------------------------------- 1 | import { Spin } from "antd"; 2 | 3 | const AuthLoadingPage = () => { 4 | document.title = "加载中"; 5 | 6 | return ( 7 |
16 | 17 |
18 | ); 19 | }; 20 | 21 | export default AuthLoadingPage; 22 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/pages/index/index.module.scss: -------------------------------------------------------------------------------- 1 | .announcement { 2 | width: 100%; 3 | background-color: #fff9d7; 4 | color: #de7a0b; 5 | box-sizing: border-box; 6 | border-radius: 0px 0px 16px 16px; 7 | padding-left: 1.5rem; 8 | padding-right: 1.5rem; 9 | padding-top: 0.75rem; 10 | padding-bottom: 0.75rem; 11 | display: block; 12 | text-align: left; 13 | } 14 | 15 | .box { 16 | width: 100%; 17 | box-sizing: border-box; 18 | padding-top: 40px; 19 | } 20 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/pages/layouts/with-header-without-footer/index.tsx: -------------------------------------------------------------------------------- 1 | import { Outlet } from "react-router-dom"; 2 | import { Header } from "../../../components"; 3 | import { Suspense } from "react"; 4 | import LoadingPage from "../../loading"; 5 | 6 | const WithHeaderWithoutFooter = () => { 7 | return ( 8 | <> 9 |
10 | }> 11 | 12 | 13 | 14 | ); 15 | }; 16 | 17 | export default WithHeaderWithoutFooter; 18 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/pages/layouts/without-header-with-footer/index.tsx: -------------------------------------------------------------------------------- 1 | import { Outlet } from "react-router-dom"; 2 | import { Footer } from "../../../components"; 3 | import { Suspense } from "react"; 4 | import LoadingPage from "../../loading"; 5 | 6 | const WithoutHeaderWithFooter = () => { 7 | return ( 8 | <> 9 | }> 10 | 11 | 12 |
13 | 14 | ); 15 | }; 16 | 17 | export default WithoutHeaderWithFooter; 18 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/pages/layouts/without-header-without-footer/index.tsx: -------------------------------------------------------------------------------- 1 | import { Suspense } from "react"; 2 | import { Outlet } from "react-router-dom"; 3 | import LoadingPage from "../../loading"; 4 | 5 | const WithoutHeaderWithoutFooter = () => { 6 | return ( 7 | }> 8 | 9 | 10 | ); 11 | }; 12 | 13 | export default WithoutHeaderWithoutFooter; 14 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/pages/loading/index.module.scss: -------------------------------------------------------------------------------- 1 | .loading-box { 2 | width: 100vw; 3 | line-height: 100vh; 4 | text-align: center; 5 | background-color: #f4fafe; 6 | } 7 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/pages/loading/index.tsx: -------------------------------------------------------------------------------- 1 | import { Spin } from "antd"; 2 | import styles from "./index.module.scss"; 3 | 4 | interface PropsInterface { 5 | height?: string; 6 | } 7 | 8 | const LoadingPage = (props: PropsInterface) => { 9 | return ( 10 | <> 11 |
15 | 16 |
17 | 18 | ); 19 | }; 20 | 21 | export default LoadingPage; 22 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/pages/login/index.module.scss: -------------------------------------------------------------------------------- 1 | .content { 2 | width: 1200px; 3 | height: auto; 4 | margin: 0 auto; 5 | margin-top: 216px; 6 | position: relative; 7 | display: flex; 8 | flex-direction: column; 9 | align-items: center; 10 | margin-bottom: 338px; 11 | } 12 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/pages/vod/index.module.scss: -------------------------------------------------------------------------------- 1 | .list-box { 2 | width: 100%; 3 | float: left; 4 | height: auto; 5 | display: grid; 6 | row-gap: 30px; 7 | column-gap: 48px; 8 | grid-template-columns: repeat(4, minmax(0, 1fr)); 9 | } 10 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/store/index.ts: -------------------------------------------------------------------------------- 1 | import { configureStore } from "@reduxjs/toolkit"; 2 | import systemConfigReducer from "./system/systemConfigSlice"; 3 | import loginUserReducer from "./user/loginUserSlice"; 4 | import navsMenuReducer from "./nav-menu/navMenuConfigSlice"; 5 | 6 | const store = configureStore({ 7 | reducer: { 8 | loginUser: loginUserReducer, 9 | systemConfig: systemConfigReducer, 10 | navsConfig: navsMenuReducer, 11 | }, 12 | }); 13 | 14 | export default store; 15 | -------------------------------------------------------------------------------- /xyz.meedu.pc/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /xyz.meedu.pc/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /xyz.meedu.pc/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vite"; 2 | import react from "@vitejs/plugin-react-swc"; 3 | import gzipPlugin from "rollup-plugin-gzip"; 4 | import path from "path"; 5 | 6 | // https://vitejs.dev/config/ 7 | export default defineConfig({ 8 | server: { 9 | host: '0.0.0.0', 10 | port: 8100, 11 | }, 12 | plugins: [react()], 13 | build: { 14 | rollupOptions: { 15 | plugins: [gzipPlugin()], 16 | }, 17 | }, 18 | resolve: { 19 | alias: { 20 | "@": path.resolve("./src"), 21 | }, 22 | }, 23 | }); 24 | --------------------------------------------------------------------------------