├── .gitignore ├── README.md ├── doc ├── “互动课堂”微信小程序.md ├── “互动课堂”微信小程序需求.md ├── 功能.jpg └── 功能1.jpg ├── interactive-class ├── .gitignore ├── class-core │ ├── .gitignore │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── code │ │ │ └── core │ │ │ ├── config │ │ │ ├── ValidatorConfig.java │ │ │ └── WebMvcConfiguration.java │ │ │ ├── entity │ │ │ └── ResponseResult.java │ │ │ ├── enums │ │ │ └── ErrorEnum.java │ │ │ ├── error │ │ │ └── CommonError.java │ │ │ ├── exception │ │ │ ├── AuthenticationFailException.java │ │ │ ├── BusinessException.java │ │ │ ├── FileException.java │ │ │ ├── ParamInvalidException.java │ │ │ └── handler │ │ │ │ └── GlobalExceptionHandler.java │ │ │ └── util │ │ │ ├── CookieUtil.java │ │ │ ├── DateUtils.java │ │ │ ├── ResourceUtils.java │ │ │ ├── ResponseResultUtil.java │ │ │ ├── SpringApplicationUtil.java │ │ │ ├── StringUtils.java │ │ │ ├── UUIDUtil.java │ │ │ └── ValidationUtils.java │ │ └── test │ │ └── java │ │ └── com │ │ └── code │ │ └── core │ │ └── CoreApplicationTests.java ├── class-generator │ ├── .gitignore │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── code │ │ │ │ ├── GenCode.java │ │ │ │ └── classgenerator │ │ │ │ ├── gen │ │ │ │ └── Generator.java │ │ │ │ └── utils │ │ │ │ ├── DBPropertiesUtils.java │ │ │ │ └── PropertiesUtil.java │ │ └── resources │ │ │ └── gen.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── code │ │ └── classgenerator │ │ └── ClassGeneratorApplicationTests.java ├── class-system │ ├── .gitignore │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── code │ │ │ │ └── classsystem │ │ │ │ ├── ClassSystemApplication.java │ │ │ │ ├── common │ │ │ │ ├── FileRequest │ │ │ │ │ ├── config │ │ │ │ │ │ ├── FileRequestConfig.java │ │ │ │ │ │ └── FileRequestMappingConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ │ └── FileRequestController.java │ │ │ │ │ └── util │ │ │ │ │ │ └── FileUtils.java │ │ │ │ ├── shiro │ │ │ │ │ ├── SessionManager │ │ │ │ │ │ └── MySessionManager.java │ │ │ │ │ ├── config │ │ │ │ │ │ ├── AuthorUrlConfig.java │ │ │ │ │ │ └── ShiroConfig.java │ │ │ │ │ ├── filter │ │ │ │ │ │ └── LoginFilter.java │ │ │ │ │ ├── handler │ │ │ │ │ │ └── ShiroExceptionHandler.java │ │ │ │ │ ├── realm │ │ │ │ │ │ └── UserRealm.java │ │ │ │ │ └── util │ │ │ │ │ │ ├── ShiroUtils.java │ │ │ │ │ │ └── TokenUtil.java │ │ │ │ └── websocket │ │ │ │ │ ├── WebSocketServer.java │ │ │ │ │ ├── config │ │ │ │ │ └── WebsocketConfiguration.java │ │ │ │ │ └── userCache │ │ │ │ │ └── ClassUserCacheService.java │ │ │ │ ├── config │ │ │ │ ├── DruidConfig.java │ │ │ │ └── SwaggerConfig.java │ │ │ │ ├── controller │ │ │ │ ├── ClassController.java │ │ │ │ ├── ClassCourseController.java │ │ │ │ ├── ClassUserController.java │ │ │ │ ├── CourseController.java │ │ │ │ ├── CourseResourceController.java │ │ │ │ ├── HomeWorkController.java │ │ │ │ ├── MsgController.java │ │ │ │ ├── NoticeController.java │ │ │ │ ├── PaperController.java │ │ │ │ ├── PaperQuestionController.java │ │ │ │ ├── RoleController.java │ │ │ │ ├── UserController.java │ │ │ │ ├── UserQuestionController.java │ │ │ │ ├── UserScoreController.java │ │ │ │ └── UserSignController.java │ │ │ │ ├── dao │ │ │ │ ├── ClassCourseMapper.java │ │ │ │ ├── ClassMapper.java │ │ │ │ ├── ClassStudentMapper.java │ │ │ │ ├── ClassUserMapper.java │ │ │ │ ├── CourseMapper.java │ │ │ │ ├── CourseResourceMapper.java │ │ │ │ ├── HomeWorkMapper.java │ │ │ │ ├── MsgMapper.java │ │ │ │ ├── NoticeMapper.java │ │ │ │ ├── PaperMapper.java │ │ │ │ ├── PaperQuestionMapper.java │ │ │ │ ├── RoleMapper.java │ │ │ │ ├── UserMapper.java │ │ │ │ ├── UserQuestionMapper.java │ │ │ │ ├── UserScoreMapper.java │ │ │ │ └── UserSignMapper.java │ │ │ │ ├── entity │ │ │ │ ├── Class.java │ │ │ │ ├── ClassCourse.java │ │ │ │ ├── ClassStudent.java │ │ │ │ ├── ClassUser.java │ │ │ │ ├── Course.java │ │ │ │ ├── CourseResource.java │ │ │ │ ├── HomeWork.java │ │ │ │ ├── Msg.java │ │ │ │ ├── Notice.java │ │ │ │ ├── Paper.java │ │ │ │ ├── PaperQuestion.java │ │ │ │ ├── Role.java │ │ │ │ ├── User.java │ │ │ │ ├── UserQuestion.java │ │ │ │ ├── UserScore.java │ │ │ │ └── UserSign.java │ │ │ │ ├── service │ │ │ │ ├── ClassCourseService.java │ │ │ │ ├── ClassService.java │ │ │ │ ├── ClassUserService.java │ │ │ │ ├── CourseResourceService.java │ │ │ │ ├── CourseService.java │ │ │ │ ├── HomeWorkService.java │ │ │ │ ├── MsgService.java │ │ │ │ ├── NoticeService.java │ │ │ │ ├── PaperQuestionService.java │ │ │ │ ├── PaperService.java │ │ │ │ ├── RoleService.java │ │ │ │ ├── UserQuestionService.java │ │ │ │ ├── UserScoreService.java │ │ │ │ ├── UserService.java │ │ │ │ ├── UserSignService.java │ │ │ │ └── impl │ │ │ │ │ ├── ClassCourseServiceImpl.java │ │ │ │ │ ├── ClassServiceImpl.java │ │ │ │ │ ├── ClassUserServiceImpl.java │ │ │ │ │ ├── CourseResourceServiceImpl.java │ │ │ │ │ ├── CourseServiceImpl.java │ │ │ │ │ ├── HomeWorkServiceImpl.java │ │ │ │ │ ├── MsgServiceImpl.java │ │ │ │ │ ├── NoticeServiceImpl.java │ │ │ │ │ ├── PaperQuestionServiceImpl.java │ │ │ │ │ ├── PaperServiceImpl.java │ │ │ │ │ ├── RoleServiceImpl.java │ │ │ │ │ ├── UserQuestionServiceImpl.java │ │ │ │ │ ├── UserScoreServiceImpl.java │ │ │ │ │ ├── UserServiceImpl.java │ │ │ │ │ └── UserSignServiceImpl.java │ │ │ │ ├── util │ │ │ │ ├── ApplicationContextInfoUtils.java │ │ │ │ ├── DateUtils.java │ │ │ │ ├── HttpContextUtils.java │ │ │ │ ├── IPUtil.java │ │ │ │ └── JsonUtils.java │ │ │ │ └── vo │ │ │ │ ├── ClassSearchVo.java │ │ │ │ ├── ClassStudentVo.java │ │ │ │ ├── ClassVo.java │ │ │ │ ├── CourseAndClass.java │ │ │ │ ├── CourseInfoVo.java │ │ │ │ ├── CourseVo.java │ │ │ │ ├── HomeWorkVo.java │ │ │ │ ├── NoticeVo.java │ │ │ │ ├── PaperInfoVo.java │ │ │ │ ├── PaperResultBinVo.java │ │ │ │ ├── PaperResultVo.java │ │ │ │ ├── PaperVo.java │ │ │ │ ├── SignVo.java │ │ │ │ ├── TeacherCourseVo.java │ │ │ │ ├── UserInfoVo.java │ │ │ │ └── UserLoginVo.java │ │ └── resources │ │ │ ├── config │ │ │ ├── application-local.yml │ │ │ ├── application-test.yml │ │ │ └── application.yml │ │ │ └── mapper │ │ │ ├── ClassCourseMapper.xml │ │ │ ├── ClassMapper.xml │ │ │ ├── ClassStudentMapper.xml │ │ │ ├── ClassUserMapper.xml │ │ │ ├── CourseMapper.xml │ │ │ ├── CourseResourceMapper.xml │ │ │ ├── HomeWorkMapper.xml │ │ │ ├── MsgMapper.xml │ │ │ ├── NoticeMapper.xml │ │ │ ├── PaperMapper.xml │ │ │ ├── PaperQuestionMapper.xml │ │ │ ├── RoleMapper.xml │ │ │ ├── UserMapper.xml │ │ │ ├── UserQuestionMapper.xml │ │ │ ├── UserScoreMapper.xml │ │ │ └── UserSignMapper.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── code │ │ └── classsystem │ │ ├── ClassSystemApplicationTests.java │ │ └── TestCode.java ├── pom.xml └── sql │ └── interactive_class.sql ├── interactiveClassAdminUI ├── .editorconfig ├── .env.development ├── .env.production ├── .env.staging ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .travis.yml ├── LICENSE ├── README-zh.md ├── README.md ├── babel.config.js ├── build │ └── index.js ├── jest.config.js ├── jsconfig.json ├── mock │ ├── index.js │ ├── mock-server.js │ ├── table.js │ └── user.js ├── package.json ├── postcss.config.js ├── public │ ├── favicon.ico │ └── index.html ├── src │ ├── App.vue │ ├── api │ │ ├── class.js │ │ ├── course.js │ │ ├── courseware.js │ │ ├── file.js │ │ ├── homework.js │ │ ├── paper.js │ │ └── user.js │ ├── assets │ │ ├── 404_images │ │ │ ├── 404.png │ │ │ └── 404_cloud.png │ │ └── user │ │ │ └── cat.jpeg │ ├── components │ │ ├── Breadcrumb │ │ │ └── index.vue │ │ ├── Hamburger │ │ │ └── index.vue │ │ ├── Pagnation │ │ │ └── Pagination.vue │ │ └── SvgIcon │ │ │ └── index.vue │ ├── directive │ │ └── permission │ │ │ ├── index.js │ │ │ └── permission.js │ ├── icons │ │ ├── index.js │ │ ├── svg │ │ │ ├── dashboard.svg │ │ │ ├── example.svg │ │ │ ├── eye-open.svg │ │ │ ├── eye.svg │ │ │ ├── form.svg │ │ │ ├── link.svg │ │ │ ├── nested.svg │ │ │ ├── password.svg │ │ │ ├── table.svg │ │ │ ├── tree.svg │ │ │ └── user.svg │ │ └── svgo.yml │ ├── layout │ │ ├── components │ │ │ ├── AppMain.vue │ │ │ ├── Navbar.vue │ │ │ ├── Sidebar │ │ │ │ ├── FixiOSBug.js │ │ │ │ ├── Item.vue │ │ │ │ ├── Link.vue │ │ │ │ ├── Logo.vue │ │ │ │ ├── SidebarItem.vue │ │ │ │ └── index.vue │ │ │ └── index.js │ │ ├── index.vue │ │ └── mixin │ │ │ └── ResizeHandler.js │ ├── main.js │ ├── permission.js │ ├── router │ │ └── index.js │ ├── settings.js │ ├── store │ │ ├── getters.js │ │ ├── index.js │ │ └── modules │ │ │ ├── app.js │ │ │ ├── settings.js │ │ │ └── user.js │ ├── styles │ │ ├── common.css │ │ ├── element-ui.scss │ │ ├── index.scss │ │ ├── mixin.scss │ │ ├── sidebar.scss │ │ ├── transition.scss │ │ └── variables.scss │ ├── utils │ │ ├── auth.js │ │ ├── commonUtils.js │ │ ├── fileRequest.js │ │ ├── get-page-title.js │ │ ├── index.js │ │ ├── request.js │ │ └── validate.js │ └── views │ │ ├── 404.vue │ │ ├── class │ │ ├── formDialog.vue │ │ └── index.vue │ │ ├── courseware │ │ ├── formDialog.vue │ │ └── index.vue │ │ ├── homework │ │ ├── formDialog.vue │ │ └── index.vue │ │ ├── index │ │ └── index.vue │ │ ├── login │ │ └── index.vue │ │ ├── paper │ │ ├── addFormDialog.vue │ │ ├── formDialog.vue │ │ ├── index.vue │ │ └── questionList.vue │ │ ├── unAuthor.vue │ │ └── user │ │ ├── formDialog.vue │ │ └── index.vue ├── tests │ └── unit │ │ ├── .eslintrc.js │ │ ├── components │ │ ├── Breadcrumb.spec.js │ │ ├── Hamburger.spec.js │ │ └── SvgIcon.spec.js │ │ └── utils │ │ ├── formatTime.spec.js │ │ ├── parseTime.spec.js │ │ └── validate.spec.js └── vue.config.js ├── interactiveClassUI ├── .gitignore ├── README.en.md ├── README.md ├── babel.config.js ├── package-lock.json ├── package.json ├── postcss.config.js ├── public │ └── index.html ├── src │ ├── App.vue │ ├── api │ │ ├── class.js │ │ ├── classUser.js │ │ ├── course.js │ │ ├── courseware.js │ │ ├── msg.js │ │ ├── notice.js │ │ ├── paper.js │ │ ├── sign.js │ │ ├── user.js │ │ ├── userQuestion.js │ │ └── userScore.js │ ├── directive │ │ └── permission │ │ │ ├── index.js │ │ │ └── permission.js │ ├── lib │ │ ├── qqmap-wx-jssdk.js │ │ └── qqmap-wx-jssdk.min.js │ ├── main.js │ ├── manifest.json │ ├── pages.json │ ├── pages │ │ ├── aboutme │ │ │ └── index.vue │ │ ├── class │ │ │ ├── Analysis │ │ │ │ └── index.vue │ │ │ ├── codeImg │ │ │ │ └── index.vue │ │ │ ├── courseware │ │ │ │ └── index.vue │ │ │ ├── index.vue │ │ │ ├── notice │ │ │ │ ├── form.vue │ │ │ │ └── index.vue │ │ │ ├── paper │ │ │ │ ├── addPaperForm.vue │ │ │ │ ├── index.vue │ │ │ │ └── paperList.vue │ │ │ ├── sign │ │ │ │ └── index.vue │ │ │ ├── student │ │ │ │ └── index.vue │ │ │ └── talk │ │ │ │ └── index.vue │ │ ├── file │ │ │ └── index.vue │ │ ├── index │ │ │ ├── courseware │ │ │ │ └── courseware.vue │ │ │ ├── encourse │ │ │ │ └── index.vue │ │ │ ├── index.vue │ │ │ └── paper │ │ │ │ └── paper.vue │ │ └── user │ │ │ ├── courseware │ │ │ └── index.vue │ │ │ ├── login │ │ │ └── index.vue │ │ │ ├── me │ │ │ └── index.vue │ │ │ ├── paper │ │ │ ├── index.vue │ │ │ └── paperList.vue │ │ │ ├── register │ │ │ └── index.vue │ │ │ └── userInfo │ │ │ └── index.vue │ ├── static │ │ ├── icon │ │ │ ├── aboutme.png │ │ │ ├── aboutme_active.png │ │ │ ├── add.png │ │ │ ├── classroom-active.png │ │ │ ├── classroom.png │ │ │ ├── code.png │ │ │ ├── cygl.png │ │ │ ├── error.png │ │ │ ├── gg.png │ │ │ ├── home.png │ │ │ ├── home_active.png │ │ │ ├── kj.png │ │ │ ├── me-active.png │ │ │ ├── me.png │ │ │ ├── paper.png │ │ │ ├── sz.png │ │ │ ├── tlq.png │ │ │ └── 测试.png │ │ ├── images │ │ │ ├── swaper1.jpg │ │ │ ├── swaper2.jpg │ │ │ ├── swaper3.jpg │ │ │ └── user │ │ │ │ └── cat.jpeg │ │ └── logo.png │ ├── style │ │ └── uni-common.css │ ├── uni.scss │ ├── utils │ │ ├── WebSocketUtil.js │ │ ├── alert.js │ │ ├── config.js │ │ ├── fileUpload.js │ │ ├── request.js │ │ ├── storage.js │ │ ├── tokenUtil.js │ │ ├── u-charts.js │ │ ├── u-charts.min.js │ │ ├── userStorage.js │ │ └── wxqrcode.js │ └── wxcomponents │ │ └── vant │ │ ├── action-sheet │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── area │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── badge-group │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── badge │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── button │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── calendar │ │ ├── calendar.wxml │ │ ├── components │ │ │ ├── header │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ └── index.wxss │ │ │ └── month │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.json │ │ │ │ ├── index.wxml │ │ │ │ ├── index.wxs │ │ │ │ └── index.wxss │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxs │ │ ├── index.wxss │ │ ├── utils.d.ts │ │ ├── utils.js │ │ └── utils.wxs │ │ ├── card │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── cell-group │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── cell │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── checkbox-group │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── checkbox │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxs │ │ └── index.wxss │ │ ├── circle │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── col │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── collapse-item │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── collapse │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── common │ │ ├── color.d.ts │ │ ├── color.js │ │ ├── component.d.ts │ │ ├── component.js │ │ ├── index.wxss │ │ ├── style │ │ │ ├── clearfix.wxss │ │ │ ├── ellipsis.wxss │ │ │ ├── hairline.wxss │ │ │ ├── mixins │ │ │ │ ├── clearfix.wxss │ │ │ │ ├── ellipsis.wxss │ │ │ │ └── hairline.wxss │ │ │ ├── theme.wxss │ │ │ └── var.wxss │ │ ├── utils.d.ts │ │ └── utils.js │ │ ├── count-down │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxss │ │ ├── utils.d.ts │ │ └── utils.js │ │ ├── datetime-picker │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── definitions │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── weapp.d.ts │ │ └── weapp.js │ │ ├── dialog │ │ ├── dialog.d.ts │ │ ├── dialog.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── divider │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── dropdown-item │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── dropdown-menu │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxs │ │ └── index.wxss │ │ ├── field │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxs │ │ ├── index.wxss │ │ ├── props.d.ts │ │ └── props.js │ │ ├── goods-action-button │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── goods-action-icon │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── goods-action │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── grid-item │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── grid │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── icon │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── image │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── index-anchor │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── index-bar │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── info │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── loading │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── mixins │ │ ├── basic.d.ts │ │ ├── basic.js │ │ ├── button.d.ts │ │ ├── button.js │ │ ├── link.d.ts │ │ ├── link.js │ │ ├── observer │ │ │ ├── behavior.d.ts │ │ │ ├── behavior.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── props.d.ts │ │ │ └── props.js │ │ ├── open-type.d.ts │ │ ├── open-type.js │ │ ├── page-scroll.d.ts │ │ ├── page-scroll.js │ │ ├── safe-area.d.ts │ │ ├── safe-area.js │ │ ├── touch.d.ts │ │ ├── touch.js │ │ ├── transition.d.ts │ │ └── transition.js │ │ ├── nav-bar │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── notice-bar │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── notify │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxss │ │ ├── notify.d.ts │ │ └── notify.js │ │ ├── overlay │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── panel │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── picker-column │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxs │ │ └── index.wxss │ │ ├── picker │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxss │ │ ├── shared.d.ts │ │ ├── shared.js │ │ └── toolbar.wxml │ │ ├── popup │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── progress │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxs │ │ └── index.wxss │ │ ├── radio-group │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── radio │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── rate │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── row │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── search │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── sidebar-item │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── sidebar │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── skeleton │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── slider │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── stepper │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── steps │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── sticky │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxs │ │ └── index.wxss │ │ ├── submit-bar │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── swipe-cell │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── switch-cell │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── switch │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── tab │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── tabbar-item │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── tabbar │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── tabs │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxs │ │ └── index.wxss │ │ ├── tag │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── toast │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxss │ │ ├── toast.d.ts │ │ └── toast.js │ │ ├── transition │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ ├── tree-select │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxs │ │ └── index.wxss │ │ ├── uploader │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ ├── index.wxss │ │ ├── shared.d.ts │ │ ├── shared.js │ │ ├── utils.d.ts │ │ └── utils.js │ │ └── wxs │ │ ├── add-unit.wxs │ │ ├── array.wxs │ │ ├── bem.wxs │ │ ├── memoize.wxs │ │ ├── object.wxs │ │ └── utils.wxs └── tsconfig.json └── 系统运行界面 ├── addcource.png ├── course-list.png ├── mp-classList.png ├── mp-index.png ├── user-admin.png └── userList.png /.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | target/ 3 | out/ 4 | 5 | # Eclipse project files 6 | .classpath 7 | .project 8 | .settings 9 | 10 | # IDEA metadata and output dirs 11 | *.iml 12 | *.ipr 13 | *.iws 14 | *.jar 15 | *.class 16 | .idea/ 17 | 18 | # gitbook 19 | _book 20 | tmp 21 | 22 | #默认文件上传位置 23 | /upload -------------------------------------------------------------------------------- /doc/“互动课堂”微信小程序.md: -------------------------------------------------------------------------------- 1 | ## “互动课堂”微信小程序 2 | 3 | 一数据库设计 4 | 5 | 1. 用户注册、登录,用户分为学生,教师 6 | 7 | * user表、role表 8 | 9 | 2. 学生加入班级 10 | * class表 11 | 12 | 3. 学生签到 13 | 14 | * sign 15 | 16 | 4. 教师提问(抢答或者一起答题) 17 | 18 | * answer 19 | 20 | 5. 课后作业布置 21 | 22 | * homework 23 | 24 | 6. 老师发布学习资料、学生学习 25 | 26 | * study 27 | 28 | 7. 老师发布通知 29 | 30 | * notice 31 | 32 | 8. 计算学生成绩(通过签到情况、上课问题回答情况、老师作业给分对学生表现情况进行评分给出平时分参考) 33 | 34 | * score 35 | 36 | 9. 讨论区答疑 37 | 38 | * talk -------------------------------------------------------------------------------- /doc/“互动课堂”微信小程序需求.md: -------------------------------------------------------------------------------- 1 | ## “互动课堂”微信小程序需求 2 | 3 | 4 | 5 | 1. 主要有教师端与学生端,教师创建班级,学生通过二维码加入。 6 | 7 | 2. 教师可以通过小程序让学生进行定位签到、课上提问(抢答或者一起答题)、课后作业布置,视频上传,在讨论区答疑。 8 | 9 | 3. 学生可以通过小程序提交作业、在专门的讨论区提出问题或者参与讨论、观看老师上传的视频。 10 | 11 | 4. 期末小程序通过签到情况、上课问题回答情况、老师作业给分对学生表现情况进行评分给出平时分参考。迟到或者缺课的同学老师可以作出标记。 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /doc/功能.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/doc/功能.jpg -------------------------------------------------------------------------------- /doc/功能1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/doc/功能1.jpg -------------------------------------------------------------------------------- /interactive-class/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | 17 | ### IntelliJ IDEA ### 18 | .idea 19 | *.iws 20 | *.iml 21 | *.ipr 22 | .mvn 23 | 24 | ### NetBeans ### 25 | /nbproject/private/ 26 | /nbbuild/ 27 | /dist/ 28 | /nbdist/ 29 | /.nb-gradle/ 30 | build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /interactive-class/class-core/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | .mvn 22 | 23 | ### NetBeans ### 24 | /nbproject/private/ 25 | /nbbuild/ 26 | /dist/ 27 | /nbdist/ 28 | /.nb-gradle/ 29 | build/ 30 | 31 | ### VS Code ### 32 | .vscode/ 33 | -------------------------------------------------------------------------------- /interactive-class/class-core/src/main/java/com/code/core/entity/ResponseResult.java: -------------------------------------------------------------------------------- 1 | package com.code.core.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import lombok.Data; 5 | 6 | /** 7 | * Created by rf on 2019/3/4. 8 | */ 9 | @Data 10 | @JsonInclude(JsonInclude.Include.NON_NULL) 11 | public class ResponseResult { 12 | private int code; 13 | private String message; 14 | private Object data; 15 | 16 | public ResponseResult(int code, String message) { 17 | this.code = code; 18 | this.message = message; 19 | } 20 | 21 | public ResponseResult(String message, Object data) { 22 | this.message = message; 23 | this.data = data; 24 | this.code = 200; 25 | } 26 | 27 | public ResponseResult(int code, Object data) { 28 | this.code = code; 29 | this.data = data; 30 | } 31 | public ResponseResult(Object data) { 32 | this(200,data); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /interactive-class/class-core/src/main/java/com/code/core/error/CommonError.java: -------------------------------------------------------------------------------- 1 | package com.code.core.error; 2 | 3 | /** 4 | * Created by rf on 2019/3/10. 5 | */ 6 | public interface CommonError { 7 | int getCode(); 8 | String getMsg(); 9 | } 10 | -------------------------------------------------------------------------------- /interactive-class/class-core/src/main/java/com/code/core/exception/AuthenticationFailException.java: -------------------------------------------------------------------------------- 1 | package com.code.core.exception; 2 | 3 | 4 | import com.code.core.enums.ErrorEnum; 5 | import com.code.core.error.CommonError; 6 | 7 | /** 8 | * Created by rf on 2019/4/23. 9 | */ 10 | public class AuthenticationFailException extends RuntimeException implements CommonError { 11 | private int code; 12 | private String msg; 13 | public AuthenticationFailException(int code, String msg) { 14 | super(msg); 15 | this.code = code; 16 | this.msg = msg; 17 | } 18 | public AuthenticationFailException(ErrorEnum errorEnum) { 19 | this(errorEnum.getCode(), errorEnum.getMsg()); 20 | } 21 | @Override 22 | public int getCode() { 23 | return code; 24 | } 25 | 26 | @Override 27 | public String getMsg() { 28 | return msg; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /interactive-class/class-core/src/main/java/com/code/core/exception/BusinessException.java: -------------------------------------------------------------------------------- 1 | package com.code.core.exception; 2 | 3 | 4 | import com.code.core.enums.ErrorEnum; 5 | import com.code.core.error.CommonError; 6 | 7 | /** 8 | * Created by rf on 2019/3/10. 9 | */ 10 | public class BusinessException extends RuntimeException implements CommonError { 11 | private int code; 12 | private String msg; 13 | 14 | public BusinessException(int code, String msg) { 15 | super(msg); 16 | this.code = code; 17 | this.msg = msg; 18 | } 19 | public BusinessException(ErrorEnum errorEnum) { 20 | this(errorEnum.getCode(), errorEnum.getMsg()); 21 | } 22 | @Override 23 | public int getCode() { 24 | return code; 25 | } 26 | 27 | @Override 28 | public String getMsg() { 29 | return msg; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /interactive-class/class-core/src/main/java/com/code/core/exception/FileException.java: -------------------------------------------------------------------------------- 1 | package com.code.core.exception; 2 | 3 | 4 | import com.code.core.enums.ErrorEnum; 5 | import com.code.core.error.CommonError; 6 | 7 | /** 8 | * Created by rf on 2019/3/10. 9 | */ 10 | public class FileException extends RuntimeException implements CommonError { 11 | private String msg; 12 | private int code; 13 | 14 | public FileException(int code, String msg) { 15 | super(msg); 16 | this.code = code; 17 | this.msg = msg; 18 | } 19 | 20 | public FileException(ErrorEnum errorEnum) { 21 | this(errorEnum.getCode(),errorEnum.getMsg()); 22 | } 23 | 24 | @Override 25 | public int getCode() { 26 | return code; 27 | } 28 | 29 | @Override 30 | public String getMsg() { 31 | return msg; 32 | } 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /interactive-class/class-core/src/main/java/com/code/core/exception/ParamInvalidException.java: -------------------------------------------------------------------------------- 1 | package com.code.core.exception; 2 | 3 | 4 | import com.code.core.enums.ErrorEnum; 5 | import com.code.core.error.CommonError; 6 | 7 | /** 8 | * Created by rf on 2019/3/10. 9 | */ 10 | public class ParamInvalidException extends RuntimeException implements CommonError { 11 | private String msg; 12 | private int code; 13 | 14 | public ParamInvalidException( int code,String msg) { 15 | super(msg); 16 | this.code = code; 17 | this.msg = msg; 18 | } 19 | 20 | public ParamInvalidException(ErrorEnum errorEnum) { 21 | this(errorEnum.getCode(),errorEnum.getMsg()); 22 | } 23 | 24 | @Override 25 | public int getCode() { 26 | return code; 27 | } 28 | 29 | @Override 30 | public String getMsg() { 31 | return msg; 32 | } 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /interactive-class/class-core/src/main/java/com/code/core/util/ResourceUtils.java: -------------------------------------------------------------------------------- 1 | package com.code.core.util; 2 | 3 | public class ResourceUtils { 4 | public static String getClassPath(){ 5 | return System.getProperty("user.dir"); 6 | } 7 | 8 | public static String getResourcePath(){ 9 | return getClassPath()+"/src/main/resource"; 10 | } 11 | 12 | public static void main(String[] args) { 13 | System.out.print(getClassPath()); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /interactive-class/class-core/src/main/java/com/code/core/util/StringUtils.java: -------------------------------------------------------------------------------- 1 | package com.code.core.util; 2 | 3 | public class StringUtils { 4 | public static String getTimeRandomCode(int n){ 5 | String timeRandomCode = System.currentTimeMillis()+""; 6 | int length = timeRandomCode.length(); 7 | int start = length - n; 8 | if(start<0){ 9 | start = 0; 10 | } 11 | return timeRandomCode.substring(start,length); 12 | } 13 | 14 | public static String getFileSaveDirStr(){ 15 | String timeStr = DateUtils.getFileSaveDirPathStr(); 16 | return timeStr; 17 | } 18 | 19 | public static boolean isNull(String str){ 20 | return str==null || str.trim().equals(""); 21 | } 22 | 23 | public static boolean isNotNull(String str){ 24 | return !isNull(str); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /interactive-class/class-core/src/main/java/com/code/core/util/UUIDUtil.java: -------------------------------------------------------------------------------- 1 | package com.code.core.util; 2 | 3 | import java.util.UUID; 4 | 5 | 6 | public class UUIDUtil { 7 | public static String getUUid(){ 8 | return UUID.randomUUID().toString().replace("-",""); 9 | } 10 | 11 | /** 12 | *get uuid36λ 13 | * @return 14 | */ 15 | public static String getRandomUUID(){ 16 | return UUID.randomUUID().toString(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /interactive-class/class-core/src/test/java/com/code/core/CoreApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.code.core; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class CoreApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /interactive-class/class-generator/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | .mvn 22 | 23 | ### NetBeans ### 24 | /nbproject/private/ 25 | /nbbuild/ 26 | /dist/ 27 | /nbdist/ 28 | /.nb-gradle/ 29 | build/ 30 | 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | 35 | /src/main/java/com/code/classsystem 36 | -------------------------------------------------------------------------------- /interactive-class/class-generator/src/main/java/com/code/GenCode.java: -------------------------------------------------------------------------------- 1 | package com.code; 2 | 3 | import com.code.classgenerator.gen.Generator; 4 | 5 | public class GenCode { 6 | public static void main(String[] args) { 7 | //指定包名 8 | String packageName = "com.code.classsystem"; 9 | //user -> UserService, 设置成true: user -> IUserService 10 | boolean serviceNameStartWithI = false; 11 | //指定生成的表名 12 | String[] tableNames = new String[]{"course"}; 13 | Generator generator = new Generator(); 14 | generator.generateByTables(serviceNameStartWithI, packageName, tableNames); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /interactive-class/class-generator/src/main/resources/gen.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactive-class/class-generator/src/main/resources/gen.properties -------------------------------------------------------------------------------- /interactive-class/class-generator/src/test/java/com/code/classgenerator/ClassGeneratorApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.code.classgenerator; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ClassGeneratorApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /interactive-class/class-system/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | .mvn 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | 30 | ### VS Code ### 31 | .vscode/ 32 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/controller/ClassCourseController.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.controller; 2 | 3 | 4 | import org.springframework.web.bind.annotation.RequestMapping; 5 | 6 | import org.springframework.web.bind.annotation.RestController; 7 | 8 | /** 9 | *

10 | * 前端控制器 11 | *

12 | * 13 | * @author coder 14 | * @since 2020-05-11 15 | */ 16 | @RestController 17 | @RequestMapping("/classCourse") 18 | public class ClassCourseController { 19 | 20 | } 21 | 22 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/controller/RoleController.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.controller; 2 | 3 | 4 | import org.springframework.web.bind.annotation.RequestMapping; 5 | 6 | import org.springframework.web.bind.annotation.RestController; 7 | 8 | /** 9 | *

10 | * 前端控制器 11 | *

12 | * 13 | * @author coder 14 | * @since 2020-04-05 15 | */ 16 | @RestController 17 | @RequestMapping("/role") 18 | public class RoleController { 19 | 20 | } 21 | 22 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/dao/ClassCourseMapper.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.dao; 2 | 3 | import com.code.classsystem.entity.ClassCourse; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author coder 12 | * @since 2020-05-11 13 | */ 14 | public interface ClassCourseMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/dao/ClassMapper.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.dao; 2 | 3 | import com.code.classsystem.entity.Class; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import com.code.classsystem.vo.ClassVo; 6 | import org.apache.ibatis.annotations.Param; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | *

12 | * Mapper 接口 13 | *

14 | * 15 | * @author coder 16 | * @since 2020-04-05 17 | */ 18 | public interface ClassMapper extends BaseMapper { 19 | 20 | Class getClassByClassCode(String classCode); 21 | 22 | Class getClassByClassNameAndCurId(@Param("className") String className, @Param("userId") String userId); 23 | 24 | List listPage(Class cla); 25 | } 26 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/dao/ClassStudentMapper.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.dao; 2 | 3 | import com.baomidou.mybatisplus.mapper.BaseMapper; 4 | import com.code.classsystem.entity.ClassStudent; 5 | 6 | public interface ClassStudentMapper extends BaseMapper { 7 | } 8 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/dao/CourseMapper.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.dao; 2 | 3 | import com.code.classsystem.entity.Course; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import com.code.classsystem.vo.CourseAndClass; 6 | import com.code.classsystem.vo.CourseInfoVo; 7 | import com.code.classsystem.vo.TeacherCourseVo; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | *

13 | * Mapper 接口 14 | *

15 | * 16 | * @author coder 17 | * @since 2020-04-18 18 | */ 19 | public interface CourseMapper extends BaseMapper { 20 | 21 | List mcourseInfo(String userId); 22 | 23 | ListqueryTeachCourse(String userId); 24 | 25 | List listPage(Course course); 26 | 27 | CourseInfoVo getDetailById(String id); 28 | } 29 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/dao/CourseResourceMapper.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.dao; 2 | 3 | import com.code.classsystem.entity.CourseResource; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * Mapper 接口 11 | *

12 | * 13 | * @author coder 14 | * @since 2020-04-18 15 | */ 16 | public interface CourseResourceMapper extends BaseMapper { 17 | List queryMyCourse(String userId); 18 | } 19 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/dao/HomeWorkMapper.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.dao; 2 | 3 | import com.code.classsystem.entity.HomeWork; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import com.code.classsystem.vo.HomeWorkVo; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author coder 15 | * @since 2020-05-07 16 | */ 17 | public interface HomeWorkMapper extends BaseMapper { 18 | 19 | List listPage(HomeWork homeWork); 20 | 21 | HomeWorkVo getDetailById(String id); 22 | } 23 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/dao/MsgMapper.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.dao; 2 | 3 | import com.code.classsystem.entity.Msg; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author coder 12 | * @since 2020-05-10 13 | */ 14 | public interface MsgMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/dao/NoticeMapper.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.dao; 2 | 3 | import com.code.classsystem.entity.Notice; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author coder 12 | * @since 2020-04-18 13 | */ 14 | public interface NoticeMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/dao/PaperMapper.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.dao; 2 | 3 | import com.code.classsystem.entity.Paper; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import com.code.classsystem.vo.PaperInfoVo; 6 | import com.code.classsystem.vo.PaperResultBinVo; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | *

12 | * Mapper 接口 13 | *

14 | * 15 | * @author coder 16 | * @since 2020-04-18 17 | */ 18 | public interface PaperMapper extends BaseMapper { 19 | List listPage(Paper paper); 20 | List queryMyPaper(String userId); 21 | List queryPaperResult(String courseId); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/dao/PaperQuestionMapper.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.dao; 2 | 3 | import com.code.classsystem.entity.PaperQuestion; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author coder 12 | * @since 2020-04-18 13 | */ 14 | public interface PaperQuestionMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/dao/RoleMapper.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.dao; 2 | 3 | import com.code.classsystem.entity.Role; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author coder 12 | * @since 2020-04-05 13 | */ 14 | public interface RoleMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/dao/UserMapper.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.dao; 2 | 3 | import com.code.classsystem.entity.User; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import com.code.classsystem.vo.UserInfoVo; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author coder 15 | * @since 2020-04-05 16 | */ 17 | public interface UserMapper extends BaseMapper { 18 | 19 | List listPage(User user); 20 | 21 | UserInfoVo getUserInfoByUserId(String userId); 22 | } 23 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/dao/UserQuestionMapper.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.dao; 2 | 3 | import com.code.classsystem.entity.UserQuestion; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import com.code.classsystem.vo.PaperResultVo; 6 | 7 | import java.util.List; 8 | import java.util.Map; 9 | 10 | /** 11 | *

12 | * Mapper 接口 13 | *

14 | * 15 | * @author coder 16 | * @since 2020-05-06 17 | */ 18 | public interface UserQuestionMapper extends BaseMapper { 19 | 20 | List queryMyResult(Map map); 21 | } 22 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/dao/UserScoreMapper.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.dao; 2 | 3 | import com.code.classsystem.entity.UserScore; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author coder 12 | * @since 2020-05-07 13 | */ 14 | public interface UserScoreMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/dao/UserSignMapper.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.dao; 2 | 3 | import com.code.classsystem.entity.UserSign; 4 | import com.baomidou.mybatisplus.mapper.BaseMapper; 5 | import com.code.classsystem.vo.SignVo; 6 | 7 | /** 8 | *

9 | * Mapper 接口 10 | *

11 | * 12 | * @author coder 13 | * @since 2020-04-05 14 | */ 15 | public interface UserSignMapper extends BaseMapper { 16 | SignVo querySignInfo(UserSign userSign); 17 | } 18 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/service/ClassCourseService.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.service; 2 | 3 | import com.code.classsystem.entity.ClassCourse; 4 | import com.baomidou.mybatisplus.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author coder 12 | * @since 2020-05-11 13 | */ 14 | public interface ClassCourseService extends IService { 15 | void save(String classId,String courseId); 16 | } 17 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/service/CourseResourceService.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.service; 2 | 3 | import com.code.classsystem.entity.Course; 4 | import com.code.classsystem.entity.CourseResource; 5 | import com.baomidou.mybatisplus.service.IService; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | *

11 | * 服务类 12 | *

13 | * 14 | * @author coder 15 | * @since 2020-04-18 16 | */ 17 | public interface CourseResourceService extends IService { 18 | 19 | void deleteByCourseId(String id); 20 | 21 | List getResources(Course course, int pageNum, int pageSize); 22 | 23 | List getMyResources(int pageNum, int pageSize); 24 | 25 | List queryCourseRes(int pageNum, int pageSize); 26 | } 27 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/service/HomeWorkService.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.service; 2 | 3 | import com.code.classsystem.entity.HomeWork; 4 | import com.baomidou.mybatisplus.service.IService; 5 | import com.code.classsystem.vo.HomeWorkVo; 6 | import com.github.pagehelper.PageInfo; 7 | 8 | /** 9 | *

10 | * 服务类 11 | *

12 | * 13 | * @author coder 14 | * @since 2020-05-07 15 | */ 16 | public interface HomeWorkService extends IService { 17 | 18 | void addHomeWork(HomeWork homeWork); 19 | 20 | PageInfo listPage(HomeWork homeWork, int pageNum, int pageSize); 21 | 22 | HomeWorkVo getDetailById(String id); 23 | } 24 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/service/MsgService.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.service; 2 | 3 | import com.code.classsystem.entity.Msg; 4 | import com.baomidou.mybatisplus.service.IService; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * 服务类 11 | *

12 | * 13 | * @author coder 14 | * @since 2020-05-10 15 | */ 16 | public interface MsgService extends IService { 17 | 18 | List listLastN(String classId, int n); 19 | } 20 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/service/NoticeService.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.service; 2 | 3 | import com.code.classsystem.entity.Notice; 4 | import com.baomidou.mybatisplus.service.IService; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * 服务类 11 | *

12 | * 13 | * @author coder 14 | * @since 2020-04-18 15 | */ 16 | public interface NoticeService extends IService { 17 | boolean addNotice (Notice notice); 18 | 19 | List queryNotice(Notice notice, int page, int limit); 20 | } 21 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/service/PaperQuestionService.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.service; 2 | 3 | import com.code.classsystem.entity.PaperQuestion; 4 | import com.baomidou.mybatisplus.service.IService; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * 服务类 11 | *

12 | * 13 | * @author coder 14 | * @since 2020-04-18 15 | */ 16 | public interface PaperQuestionService extends IService { 17 | 18 | Boolean addPaperQuestion(PaperQuestion paper); 19 | 20 | List queryPaperQuestionById(String paperId); 21 | 22 | boolean delPaper(String paperId); 23 | } 24 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/service/RoleService.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.service; 2 | 3 | import com.code.classsystem.entity.Role; 4 | import com.baomidou.mybatisplus.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author coder 12 | * @since 2020-04-05 13 | */ 14 | public interface RoleService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/service/UserQuestionService.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.service; 2 | 3 | import com.code.classsystem.entity.UserQuestion; 4 | import com.baomidou.mybatisplus.service.IService; 5 | import com.code.classsystem.vo.PaperResultVo; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | *

11 | * 服务类 12 | *

13 | * 14 | * @author coder 15 | * @since 2020-05-06 16 | */ 17 | public interface UserQuestionService extends IService { 18 | 19 | boolean subAnswer(List userQuestions); 20 | 21 | List queryMyResult(String paperId); 22 | } 23 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/service/UserScoreService.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.service; 2 | 3 | import com.code.classsystem.entity.UserScore; 4 | import com.baomidou.mybatisplus.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author coder 12 | * @since 2020-05-07 13 | */ 14 | public interface UserScoreService extends IService { 15 | 16 | boolean addUserScore(UserScore userScore); 17 | 18 | UserScore queryUserScore(UserScore userScore); 19 | } 20 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/service/UserSignService.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.service; 2 | 3 | import com.code.classsystem.entity.UserSign; 4 | import com.baomidou.mybatisplus.service.IService; 5 | import com.code.classsystem.vo.SignVo; 6 | 7 | /** 8 | *

9 | * 服务类 10 | *

11 | * 12 | * @author coder 13 | * @since 2020-04-05 14 | */ 15 | public interface UserSignService extends IService { 16 | boolean doSign(UserSign userSign); 17 | SignVo querySignInfo(UserSign userSign); 18 | } 19 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/service/impl/RoleServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.service.impl; 2 | 3 | import com.code.classsystem.entity.Role; 4 | import com.code.classsystem.dao.RoleMapper; 5 | import com.code.classsystem.service.RoleService; 6 | import com.baomidou.mybatisplus.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author coder 15 | * @since 2020-04-05 16 | */ 17 | @Service 18 | public class RoleServiceImpl extends ServiceImpl implements RoleService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/util/DateUtils.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.util; 2 | 3 | import org.slf4j.Logger; 4 | import org.slf4j.LoggerFactory; 5 | 6 | import java.text.DateFormat; 7 | import java.text.ParseException; 8 | import java.text.SimpleDateFormat; 9 | import java.util.Date; 10 | import java.util.Locale; 11 | 12 | /** 13 | * 日期时间工具类 14 | * 15 | * @author Administrator 16 | */ 17 | public class DateUtils { 18 | 19 | private static Logger logger = LoggerFactory.getLogger(DateUtils.class); 20 | private static final SimpleDateFormat TIME_FORMAT = 21 | new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 22 | private static final SimpleDateFormat DATE_FORMAT = 23 | new SimpleDateFormat("yyyy-MM-dd"); 24 | 25 | public static String getCurTimeStr() { 26 | return TIME_FORMAT.format(new Date()); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/util/JsonUtils.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.util; 2 | 3 | import com.alibaba.fastjson.JSONObject; 4 | 5 | public class JsonUtils { 6 | public static boolean isJsonStr(String str) { 7 | try { 8 | JSONObject jsonStr = JSONObject.parseObject(str); 9 | return true; 10 | } catch (Exception e) { 11 | return false; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/vo/ClassSearchVo.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.vo; 2 | 3 | import com.code.classsystem.entity.Class; 4 | 5 | public class ClassSearchVo extends Class { 6 | private String creatorId; 7 | 8 | public String getCreatorId() { 9 | return creatorId; 10 | } 11 | 12 | public void setCreatorId(String creatorId) { 13 | this.creatorId = creatorId; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/vo/ClassStudentVo.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.vo; 2 | 3 | import com.code.classsystem.entity.ClassStudent; 4 | 5 | public class ClassStudentVo extends ClassStudent { 6 | private int page; 7 | private int limit; 8 | 9 | public int getPage() { 10 | return page; 11 | } 12 | 13 | public void setPage(int page) { 14 | this.page = page; 15 | } 16 | 17 | public int getLimit() { 18 | return limit; 19 | } 20 | 21 | public void setLimit(int limit) { 22 | this.limit = limit; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/vo/ClassVo.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.vo; 2 | 3 | import com.code.classsystem.entity.Class; 4 | 5 | public class ClassVo extends Class { 6 | private String createUserName; 7 | 8 | public String getCreateUserName() { 9 | return createUserName; 10 | } 11 | 12 | public void setCreateUserName(String createUserName) { 13 | this.createUserName = createUserName; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/vo/CourseVo.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.vo; 2 | 3 | import com.code.classsystem.entity.Course; 4 | 5 | import java.util.List; 6 | 7 | public class CourseVo extends Course { 8 | private List classNameList; 9 | 10 | public List getClassNameList() { 11 | return classNameList; 12 | } 13 | 14 | public void setClassNameList(List classNameList) { 15 | this.classNameList = classNameList; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/vo/HomeWorkVo.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.vo; 2 | 3 | import com.code.classsystem.entity.HomeWork; 4 | 5 | public class HomeWorkVo extends HomeWork { 6 | private String courseName; 7 | private String teacherName; 8 | private String studentName; 9 | 10 | public String getCourseName() { 11 | return courseName; 12 | } 13 | 14 | public void setCourseName(String courseName) { 15 | this.courseName = courseName; 16 | } 17 | 18 | public String getTeacherName() { 19 | return teacherName; 20 | } 21 | 22 | public void setTeacherName(String teacherName) { 23 | this.teacherName = teacherName; 24 | } 25 | 26 | public String getStudentName() { 27 | return studentName; 28 | } 29 | 30 | public void setStudentName(String studentName) { 31 | this.studentName = studentName; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/vo/NoticeVo.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.vo; 2 | 3 | import com.code.classsystem.entity.Notice; 4 | 5 | public class NoticeVo extends Notice { 6 | private int page; 7 | private int limit; 8 | 9 | public int getPage() { 10 | return page; 11 | } 12 | 13 | public void setPage(int page) { 14 | this.page = page; 15 | } 16 | 17 | public int getLimit() { 18 | return limit; 19 | } 20 | 21 | public void setLimit(int limit) { 22 | this.limit = limit; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/vo/PaperInfoVo.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.vo; 2 | 3 | import com.code.classsystem.entity.Paper; 4 | 5 | public class PaperInfoVo extends Paper { 6 | private String courseName; 7 | private String className; 8 | 9 | public String getCourseName() { 10 | return courseName; 11 | } 12 | 13 | public void setCourseName(String courseName) { 14 | this.courseName = courseName; 15 | } 16 | 17 | public String getClassName() { 18 | return className; 19 | } 20 | 21 | public void setClassName(String className) { 22 | this.className = className; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/vo/PaperVo.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.vo; 2 | 3 | import com.code.classsystem.entity.Paper; 4 | 5 | public class PaperVo extends Paper { 6 | private int page; 7 | private int limit; 8 | 9 | public int getPage() { 10 | return page; 11 | } 12 | 13 | public void setPage(int page) { 14 | this.page = page; 15 | } 16 | 17 | public int getLimit() { 18 | return limit; 19 | } 20 | 21 | public void setLimit(int limit) { 22 | this.limit = limit; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/vo/TeacherCourseVo.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.vo; 2 | 3 | import com.code.classsystem.entity.Class; 4 | 5 | import java.util.List; 6 | 7 | public class TeacherCourseVo { 8 | private String courseId; 9 | private String courseName; 10 | private List classList; 11 | 12 | public String getCourseId() { 13 | return courseId; 14 | } 15 | 16 | public void setCourseId(String courseId) { 17 | this.courseId = courseId; 18 | } 19 | 20 | public String getCourseName() { 21 | return courseName; 22 | } 23 | 24 | public void setCourseName(String courseName) { 25 | this.courseName = courseName; 26 | } 27 | 28 | public List getClassList() { 29 | return classList; 30 | } 31 | 32 | public void setClassList(List classList) { 33 | this.classList = classList; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/vo/UserInfoVo.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.vo; 2 | 3 | import com.code.classsystem.entity.User; 4 | 5 | public class UserInfoVo extends User { 6 | private String roleType; 7 | private String sexType; 8 | private String roleCode; 9 | 10 | public String getRoleType() { 11 | return roleType; 12 | } 13 | 14 | public void setRoleType(String roleType) { 15 | this.roleType = roleType; 16 | } 17 | 18 | public String getSexType() { 19 | return sexType; 20 | } 21 | 22 | public void setSexType(String sexType) { 23 | this.sexType = sexType; 24 | } 25 | 26 | public String getRoleCode() { 27 | return roleCode; 28 | } 29 | 30 | public void setRoleCode(String roleCode) { 31 | this.roleCode = roleCode; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/java/com/code/classsystem/vo/UserLoginVo.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem.vo; 2 | 3 | import javax.validation.constraints.NotNull; 4 | 5 | public class UserLoginVo { 6 | @NotNull(message = "账号密码不能为空!") 7 | private String password; 8 | @NotNull(message = "登录账号不能为空!") 9 | private String userAccount; 10 | 11 | public String getUserAccount() { 12 | return userAccount; 13 | } 14 | 15 | public void setUserAccount(String userAccount) { 16 | this.userAccount = userAccount; 17 | } 18 | 19 | public String getPassword() { 20 | return password; 21 | } 22 | 23 | public void setPassword(String password) { 24 | this.password = password; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/resources/config/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | profiles: 3 | # 切换配置文件 4 | active: local -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/resources/mapper/ClassCourseMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | id, class_id, course_id, select_course_time 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/resources/mapper/ClassStudentMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/resources/mapper/RoleMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | id, role_name,role_code, desc, is_delete, is_used 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/main/resources/mapper/UserScoreMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | id, user_id, paper_id, course_id, total_score, create_time 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /interactive-class/class-system/src/test/java/com/code/classsystem/ClassSystemApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.code.classsystem; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ClassSystemApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | end_of_line = lf 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [*.md] 13 | insert_final_newline = false 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/.env.development: -------------------------------------------------------------------------------- 1 | # just a flag 2 | ENV = 'development' 3 | 4 | # base api 5 | VUE_APP_BASE_API = '/dev-api' 6 | VUE_APP_BASE_API2 = '/api' 7 | port = 8082 8 | # vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable, 9 | # to control whether the babel-plugin-dynamic-import-node plugin is enabled. 10 | # It only does one thing by converting all import() to require(). 11 | # This configuration can significantly increase the speed of hot updates, 12 | # when you have a large number of pages. 13 | # Detail: https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.js 14 | 15 | VUE_CLI_BABEL_TRANSPILE_MODULES = true 16 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/.env.production: -------------------------------------------------------------------------------- 1 | # just a flag 2 | ENV = 'production' 3 | 4 | # base api 5 | VUE_APP_BASE_API = '/prod-api' 6 | 7 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/.env.staging: -------------------------------------------------------------------------------- 1 | NODE_ENV = production 2 | 3 | # just a flag 4 | ENV = 'staging' 5 | 6 | # base api 7 | VUE_APP_BASE_API = '/stage-api' 8 | 9 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/.eslintignore: -------------------------------------------------------------------------------- 1 | build/*.js 2 | src/assets 3 | public 4 | dist 5 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | package-lock.json 8 | tests/**/coverage/ 9 | 10 | # Editor directories and files 11 | .idea 12 | .vscode 13 | *.suo 14 | *.ntvs* 15 | *.njsproj 16 | *.sln 17 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 10 3 | script: npm run test 4 | notifications: 5 | email: false 6 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/app' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | moduleFileExtensions: ['js', 'jsx', 'json', 'vue'], 3 | transform: { 4 | '^.+\\.vue$': 'vue-jest', 5 | '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 6 | 'jest-transform-stub', 7 | '^.+\\.jsx?$': 'babel-jest' 8 | }, 9 | moduleNameMapper: { 10 | '^@/(.*)$': '/src/$1' 11 | }, 12 | snapshotSerializers: ['jest-serializer-vue'], 13 | testMatch: [ 14 | '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' 15 | ], 16 | collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'], 17 | coverageDirectory: '/tests/unit/coverage', 18 | // 'collectCoverage': true, 19 | 'coverageReporters': [ 20 | 'lcov', 21 | 'text-summary' 22 | ], 23 | testURL: 'http://localhost/' 24 | } 25 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "./", 4 | "paths": { 5 | "@/*": ["src/*"] 6 | } 7 | }, 8 | "exclude": ["node_modules", "dist"] 9 | } 10 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/mock/table.js: -------------------------------------------------------------------------------- 1 | import Mock from 'mockjs' 2 | 3 | const data = Mock.mock({ 4 | 'items|30': [{ 5 | id: '@id', 6 | title: '@sentence(10, 20)', 7 | 'status|1': ['published', 'draft', 'deleted'], 8 | author: 'name', 9 | display_time: '@datetime', 10 | pageviews: '@integer(300, 5000)' 11 | }] 12 | }) 13 | 14 | export default [ 15 | { 16 | url: '/vue-admin-template/table/list', 17 | type: 'get', 18 | response: config => { 19 | const items = data.items 20 | return { 21 | code: 200, 22 | data: { 23 | total: items.length, 24 | items: items 25 | } 26 | } 27 | } 28 | } 29 | ] 30 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/postcss.config.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | 'plugins': { 5 | // to edit target browsers: use "browserslist" field in test.json 6 | 'autoprefixer': {} 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassAdminUI/public/favicon.ico -------------------------------------------------------------------------------- /interactiveClassAdminUI/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= webpackConfig.name %> 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/api/class.js: -------------------------------------------------------------------------------- 1 | import { get, post } from '@/utils/request' 2 | 3 | export function listClassByUserId(params) { 4 | return get('/classUser/listClassByUserId', params) 5 | } 6 | 7 | export function listTeacherClasses(params) { 8 | return get('/classUser/listTeacherClasses', params) 9 | } 10 | 11 | export function getClassById(classId) { 12 | return get('/class/getClassById/' + classId) 13 | } 14 | 15 | export function listPage(params) { 16 | return get('/class/listPage', params) 17 | } 18 | 19 | export function add(data) { 20 | return post('/class/createClass', data) 21 | } 22 | 23 | export function update(data) { 24 | return post('/class/updateClass', data) 25 | } 26 | 27 | export function deleteById(params) { 28 | return post('/class/deleteClass', params) 29 | } 30 | 31 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/api/course.js: -------------------------------------------------------------------------------- 1 | import { get, post } from '@/utils/request' 2 | 3 | export function listPage(params) { 4 | return get('/course/listPage', params) 5 | } 6 | 7 | export function addCourse(params) { 8 | return post('/course/addCourse/', params, 'json') 9 | } 10 | 11 | export function deleteCourseByIds(params) { 12 | return post('/course/deleteCourse/', params) 13 | } 14 | 15 | export function updateCourse(params) { 16 | return post('/course/updateCourse/', params, 'json') 17 | } 18 | 19 | export function getDetailById(id) { 20 | return get('/course/getDetailById/' + id) 21 | } 22 | 23 | export function queryCourseInfoByCurUser() { 24 | return post('/course/queryCourseInfo') 25 | } 26 | 27 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/api/courseware.js: -------------------------------------------------------------------------------- 1 | import { get, post } from '@/utils/request' 2 | 3 | export function listPage(params) { 4 | return post('/courseResource/listPage', params) 5 | } 6 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/api/file.js: -------------------------------------------------------------------------------- 1 | import { get, post } from '@/utils/request' 2 | //这个直接调用有问题 3 | // export function download(filePath) { 4 | // return get('/file/download?filePath=' + filePath) 5 | // } 6 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/api/homework.js: -------------------------------------------------------------------------------- 1 | import { get, post } from '@/utils/request' 2 | 3 | export function listPage(params) { 4 | return get('/homework/listPage', params) 5 | } 6 | 7 | export function addHomework(params) { 8 | return post('/homework/createHomeWork/', params, 'json') 9 | } 10 | 11 | export function deleteHomeworkByIds(params) { 12 | return post('/homework/deleteHomework/', params) 13 | } 14 | 15 | export function updateHomework(params) { 16 | return post('/homework/updateHomework/', params, 'json') 17 | } 18 | 19 | export function getDetailById(id) { 20 | return get('/homework/getDetailById/' + id) 21 | } 22 | 23 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/api/paper.js: -------------------------------------------------------------------------------- 1 | import { get, post } from '@/utils/request' 2 | 3 | export function listPage(params) { 4 | return get('/paper/listPage', params) 5 | } 6 | export function addQuestion(params) { 7 | return post('/paperQuestion/addQuestion', params) 8 | } 9 | export function queryPaperQuestionById(params) { 10 | return get('/paperQuestion/queryPaperQuestionById', params) 11 | } 12 | export function delPaper(params) { 13 | return get('/paperQuestion/delPaper', params) 14 | } 15 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/assets/404_images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassAdminUI/src/assets/404_images/404.png -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/assets/404_images/404_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassAdminUI/src/assets/404_images/404_cloud.png -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/assets/user/cat.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassAdminUI/src/assets/user/cat.jpeg -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/directive/permission/index.js: -------------------------------------------------------------------------------- 1 | import permission from './permission' 2 | 3 | const install = function(Vue) { 4 | Vue.directive('permission', permission) 5 | } 6 | // vue 自定义permission指令 7 | if (window.Vue) { 8 | window['permission'] = permission 9 | Vue.use(install); // eslint-disable-line 10 | } 11 | 12 | permission.install = install 13 | export default permission 14 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/directive/permission/permission.js: -------------------------------------------------------------------------------- 1 | import store from '@/store' 2 | 3 | export default { 4 | inserted(el, binding, vnode) { 5 | debugger 6 | const { value } = binding 7 | const roles = store.getters && store.getters.roles 8 | 9 | if (value && value instanceof Array && value.length > 0) { 10 | const permissionRoles = value 11 | const hasPermission = roles.some(role => { 12 | return permissionRoles.includes(role) 13 | }) 14 | 15 | if (!hasPermission) { 16 | el.parentNode && el.parentNode.removeChild(el) 17 | } 18 | } else { 19 | throw new Error(`need roles! Like v-permission="['admin','editor']"`) 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/icons/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import SvgIcon from '@/components/SvgIcon'// svg component 3 | 4 | // register globally 5 | Vue.component('svg-icon', SvgIcon) 6 | 7 | const req = require.context('./svg', false, /\.svg$/) 8 | const requireAll = requireContext => requireContext.keys().map(requireContext) 9 | requireAll(req) 10 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/icons/svg/example.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/icons/svg/eye.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/icons/svg/link.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/icons/svg/nested.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/icons/svg/password.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/icons/svg/table.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/icons/svg/user.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/icons/svgo.yml: -------------------------------------------------------------------------------- 1 | # replace default config 2 | 3 | # multipass: true 4 | # full: true 5 | 6 | plugins: 7 | 8 | # - name 9 | # 10 | # or: 11 | # - name: false 12 | # - name: true 13 | # 14 | # or: 15 | # - name: 16 | # param1: 1 17 | # param2: 2 18 | 19 | - removeAttrs: 20 | attrs: 21 | - 'fill' 22 | - 'fill-rule' 23 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/layout/components/AppMain.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 19 | 20 | 32 | 33 | 41 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/layout/components/Sidebar/FixiOSBug.js: -------------------------------------------------------------------------------- 1 | export default { 2 | computed: { 3 | device() { 4 | return this.$store.state.app.device 5 | } 6 | }, 7 | mounted() { 8 | // In order to fix the click on menu on the ios device will trigger the mouseleave bug 9 | // https://github.com/PanJiaChen/vue-element-admin/issues/1135 10 | this.fixBugIniOS() 11 | }, 12 | methods: { 13 | fixBugIniOS() { 14 | const $subMenu = this.$refs.subMenu 15 | if ($subMenu) { 16 | const handleMouseleave = $subMenu.handleMouseleave 17 | $subMenu.handleMouseleave = (e) => { 18 | if (this.device === 'mobile') { 19 | return 20 | } 21 | handleMouseleave(e) 22 | } 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/layout/components/Sidebar/Item.vue: -------------------------------------------------------------------------------- 1 | 30 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/layout/components/Sidebar/Link.vue: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 37 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/layout/components/index.js: -------------------------------------------------------------------------------- 1 | export { default as Navbar } from './Navbar' 2 | export { default as Sidebar } from './Sidebar' 3 | export { default as AppMain } from './AppMain' 4 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/settings.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | title: '互动课堂后台管理', 4 | 5 | /** 6 | * @type {boolean} true | false 7 | * @description Whether fix the header 8 | */ 9 | fixedHeader: false, 10 | 11 | /** 12 | * @type {boolean} true | false 13 | * @description Whether show the logo in sidebar 14 | */ 15 | sidebarLogo: false 16 | } 17 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/store/getters.js: -------------------------------------------------------------------------------- 1 | const getters = { 2 | sidebar: state => state.app.sidebar, 3 | device: state => state.app.device, 4 | token: state => state.user.token, 5 | avatar: state => state.user.avatar, 6 | name: state => state.user.name, 7 | roles: state => state.user.roles 8 | } 9 | export default getters 10 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import getters from './getters' 4 | import app from './modules/app' 5 | import settings from './modules/settings' 6 | import user from './modules/user' 7 | 8 | Vue.use(Vuex) 9 | 10 | const store = new Vuex.Store({ 11 | modules: { 12 | app, 13 | settings, 14 | user 15 | }, 16 | getters 17 | }) 18 | 19 | export default store 20 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/store/modules/settings.js: -------------------------------------------------------------------------------- 1 | import defaultSettings from '@/settings' 2 | 3 | const { showSettings, fixedHeader, sidebarLogo } = defaultSettings 4 | 5 | const state = { 6 | showSettings: showSettings, 7 | fixedHeader: fixedHeader, 8 | sidebarLogo: sidebarLogo 9 | } 10 | 11 | const mutations = { 12 | CHANGE_SETTING: (state, { key, value }) => { 13 | if (state.hasOwnProperty(key)) { 14 | state[key] = value 15 | } 16 | } 17 | } 18 | 19 | const actions = { 20 | changeSetting({ commit }, data) { 21 | commit('CHANGE_SETTING', data) 22 | } 23 | } 24 | 25 | export default { 26 | namespaced: true, 27 | state, 28 | mutations, 29 | actions 30 | } 31 | 32 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/styles/common.css: -------------------------------------------------------------------------------- 1 | .btn_group{ 2 | float: right; 3 | margin-bottom: 4px; 4 | } 5 | .formItem{ 6 | width: 200px; 7 | } 8 | .btn_opt{ 9 | width: 260px; 10 | margin: 0 auto; 11 | } 12 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/styles/element-ui.scss: -------------------------------------------------------------------------------- 1 | // cover some element-ui styles 2 | 3 | .el-breadcrumb__inner, 4 | .el-breadcrumb__inner a { 5 | font-weight: 400 !important; 6 | } 7 | 8 | .el-upload { 9 | input[type="file"] { 10 | display: none !important; 11 | } 12 | } 13 | 14 | .el-upload__input { 15 | display: none; 16 | } 17 | 18 | 19 | // to fixed https://github.com/ElemeFE/element/issues/2461 20 | .el-dialog { 21 | transform: none; 22 | left: 0; 23 | position: relative; 24 | margin: 0 auto; 25 | } 26 | 27 | // refine element ui upload 28 | .upload-container { 29 | .el-upload { 30 | width: 100%; 31 | 32 | .el-upload-dragger { 33 | width: 100%; 34 | height: 200px; 35 | } 36 | } 37 | } 38 | 39 | // dropdown 40 | .el-dropdown-menu { 41 | a { 42 | display: block 43 | } 44 | } 45 | 46 | // to fix el-date-picker css style 47 | .el-range-separator { 48 | box-sizing: content-box; 49 | } 50 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/styles/mixin.scss: -------------------------------------------------------------------------------- 1 | @mixin clearfix { 2 | &:after { 3 | content: ""; 4 | display: table; 5 | clear: both; 6 | } 7 | } 8 | 9 | @mixin scrollBar { 10 | &::-webkit-scrollbar-track-piece { 11 | background: #d3dce6; 12 | } 13 | 14 | &::-webkit-scrollbar { 15 | width: 6px; 16 | } 17 | 18 | &::-webkit-scrollbar-thumb { 19 | background: #99a9bf; 20 | border-radius: 20px; 21 | } 22 | } 23 | 24 | @mixin relative { 25 | position: relative; 26 | width: 100%; 27 | height: 100%; 28 | } 29 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/styles/transition.scss: -------------------------------------------------------------------------------- 1 | // global transition css 2 | 3 | /* fade */ 4 | .fade-enter-active, 5 | .fade-leave-active { 6 | transition: opacity 0.28s; 7 | } 8 | 9 | .fade-enter, 10 | .fade-leave-active { 11 | opacity: 0; 12 | } 13 | 14 | /* fade-transform */ 15 | .fade-transform-leave-active, 16 | .fade-transform-enter-active { 17 | transition: all .5s; 18 | } 19 | 20 | .fade-transform-enter { 21 | opacity: 0; 22 | transform: translateX(-30px); 23 | } 24 | 25 | .fade-transform-leave-to { 26 | opacity: 0; 27 | transform: translateX(30px); 28 | } 29 | 30 | /* breadcrumb transition */ 31 | .breadcrumb-enter-active, 32 | .breadcrumb-leave-active { 33 | transition: all .5s; 34 | } 35 | 36 | .breadcrumb-enter, 37 | .breadcrumb-leave-active { 38 | opacity: 0; 39 | transform: translateX(20px); 40 | } 41 | 42 | .breadcrumb-move { 43 | transition: all .5s; 44 | } 45 | 46 | .breadcrumb-leave-active { 47 | position: absolute; 48 | } 49 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/styles/variables.scss: -------------------------------------------------------------------------------- 1 | // sidebar 2 | $menuText:#bfcbd9; 3 | $menuActiveText:#409EFF; 4 | $subMenuActiveText:#f4f4f5; //https://github.com/ElemeFE/element/issues/12951 5 | 6 | $menuBg:#304156; 7 | $menuHover:#263445; 8 | 9 | $subMenuBg:#1f2d3d; 10 | $subMenuHover:#001528; 11 | 12 | $sideBarWidth: 210px; 13 | 14 | // the :export directive is the magic sauce for webpack 15 | // https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass 16 | :export { 17 | menuText: $menuText; 18 | menuActiveText: $menuActiveText; 19 | subMenuActiveText: $subMenuActiveText; 20 | menuBg: $menuBg; 21 | menuHover: $menuHover; 22 | subMenuBg: $subMenuBg; 23 | subMenuHover: $subMenuHover; 24 | sideBarWidth: $sideBarWidth; 25 | } 26 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/utils/auth.js: -------------------------------------------------------------------------------- 1 | import Cookies from 'js-cookie' 2 | 3 | const TokenKey = 'USER-TOKEN' 4 | 5 | export function getToken() { 6 | return Cookies.get(TokenKey) 7 | } 8 | 9 | export function setToken(token) { 10 | return Cookies.set(TokenKey, token) 11 | } 12 | 13 | export function removeToken() { 14 | return Cookies.remove(TokenKey) 15 | } 16 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/utils/commonUtils.js: -------------------------------------------------------------------------------- 1 | export function strIsNotNull(str) { 2 | return !strIsNull(str) 3 | } 4 | 5 | export function strIsNull(str) { 6 | if (str === undefined || str === null || str === '') { 7 | return true 8 | } 9 | return false 10 | } 11 | 12 | export function getFileName(filePath) { 13 | let fileName = filePath 14 | if (strIsNull(filePath)) { 15 | return null 16 | } 17 | if (filePath.contain('_')) { 18 | fileName = filePath.substr(filePath.lastIndexOf('_') + 1) 19 | } 20 | return fileName 21 | } 22 | 23 | export function getDefaultPage() { 24 | return { 25 | pageSize: 20, 26 | curPage: 1 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/utils/fileRequest.js: -------------------------------------------------------------------------------- 1 | // 本地开发url 2 | const url_base = process.env.VUE_APP_BASE_API 3 | const fileUploadUrl = url_base + '/file/upload' 4 | const imgUploadUrl = url_base + '/file/uploadImg' 5 | const imgAccessUrl = url_base + '/img/' 6 | const downUrl = url_base + '/file/download?filePath=' 7 | export function downFile(filePath) { 8 | window.open(downUrl + filePath, '_blank') 9 | } 10 | export default { 11 | fileUploadUrl, 12 | imgUploadUrl, 13 | imgAccessUrl 14 | } 15 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/utils/get-page-title.js: -------------------------------------------------------------------------------- 1 | import defaultSettings from '@/settings' 2 | 3 | const title = defaultSettings.title || 'Vue Admin Template' 4 | 5 | export default function getPageTitle(pageTitle) { 6 | if (pageTitle) { 7 | return `${pageTitle} - ${title}` 8 | } 9 | return `${title}` 10 | } 11 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/utils/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by PanJiaChen on 16/11/18. 3 | */ 4 | 5 | /** 6 | * @param {string} path 7 | * @returns {Boolean} 8 | */ 9 | export function isExternal(path) { 10 | return /^(https?:|mailto:|tel:)/.test(path) 11 | } 12 | 13 | export function isNotNull(str) { 14 | return str !== undefined && str !== null && str.trim() !== '' 15 | } 16 | 17 | /** 18 | * @param {string} str 19 | * @returns {Boolean} 20 | */ 21 | export function validUsername(str) { 22 | return isNotNull(str) 23 | } 24 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/src/views/index/index.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 20 | 21 | 36 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/tests/unit/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | jest: true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/tests/unit/components/Hamburger.spec.js: -------------------------------------------------------------------------------- 1 | import { shallowMount } from '@vue/test-utils' 2 | import Hamburger from '@/components/Hamburger/index.vue' 3 | describe('Hamburger.vue', () => { 4 | it('toggle click', () => { 5 | const wrapper = shallowMount(Hamburger) 6 | const mockFn = jest.fn() 7 | wrapper.vm.$on('toggleClick', mockFn) 8 | wrapper.find('.hamburger').trigger('click') 9 | expect(mockFn).toBeCalled() 10 | }) 11 | it('prop isActive', () => { 12 | const wrapper = shallowMount(Hamburger) 13 | wrapper.setProps({ isActive: true }) 14 | expect(wrapper.contains('.is-active')).toBe(true) 15 | wrapper.setProps({ isActive: false }) 16 | expect(wrapper.contains('.is-active')).toBe(false) 17 | }) 18 | }) 19 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/tests/unit/components/SvgIcon.spec.js: -------------------------------------------------------------------------------- 1 | import { shallowMount } from '@vue/test-utils' 2 | import SvgIcon from '@/components/SvgIcon/index.vue' 3 | describe('SvgIcon.vue', () => { 4 | it('iconClass', () => { 5 | const wrapper = shallowMount(SvgIcon, { 6 | propsData: { 7 | iconClass: 'test' 8 | } 9 | }) 10 | expect(wrapper.find('use').attributes().href).toBe('#icon-test') 11 | }) 12 | it('className', () => { 13 | const wrapper = shallowMount(SvgIcon, { 14 | propsData: { 15 | iconClass: 'test' 16 | } 17 | }) 18 | expect(wrapper.classes().length).toBe(1) 19 | wrapper.setProps({ className: 'test' }) 20 | expect(wrapper.classes().includes('test')).toBe(true) 21 | }) 22 | }) 23 | -------------------------------------------------------------------------------- /interactiveClassAdminUI/tests/unit/utils/validate.spec.js: -------------------------------------------------------------------------------- 1 | import { validUsername, isExternal } from '@/utils/validate.js' 2 | 3 | describe('Utils:validate', () => { 4 | it('validUsername', () => { 5 | expect(validUsername('admin')).toBe(true) 6 | expect(validUsername('editor')).toBe(true) 7 | expect(validUsername('xxxx')).toBe(false) 8 | }) 9 | it('isExternal', () => { 10 | expect(isExternal('https://github.com/PanJiaChen/vue-element-admin')).toBe(true) 11 | expect(isExternal('http://github.com/PanJiaChen/vue-element-admin')).toBe(true) 12 | expect(isExternal('github.com/PanJiaChen/vue-element-admin')).toBe(false) 13 | expect(isExternal('/dashboard')).toBe(false) 14 | expect(isExternal('./dashboard')).toBe(false) 15 | expect(isExternal('dashboard')).toBe(false) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /interactiveClassUI/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | unpackage/ 4 | dist/ 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | 15 | # Editor directories and files 16 | .project 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw* 24 | -------------------------------------------------------------------------------- /interactiveClassUI/README.md: -------------------------------------------------------------------------------- 1 | # interactiveClassFront 2 | 3 | #### 介绍 4 | 云课堂小程序前端 5 | 6 | #### 软件架构 7 | 软件架构说明 8 | 9 | 10 | #### 安装教程 11 | 12 | 1. xxxx 13 | 2. xxxx 14 | 3. xxxx 15 | 16 | #### 使用说明 17 | 18 | 1. xxxx 19 | 2. xxxx 20 | 3. xxxx 21 | 22 | #### 参与贡献 23 | 24 | 1. Fork 本仓库 25 | 2. 新建 Feat_xxx 分支 26 | 3. 提交代码 27 | 4. 新建 Pull Request 28 | 29 | 30 | #### 码云特技 31 | 32 | 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 33 | 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 34 | 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 35 | 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 36 | 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 37 | 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) 38 | -------------------------------------------------------------------------------- /interactiveClassUI/postcss.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | module.exports = { 3 | parser: require('postcss-comment'), 4 | plugins: [ 5 | require('postcss-import')({ 6 | resolve (id, basedir, importOptions) { 7 | if (id.startsWith('~@/')) { 8 | return path.resolve(process.env.UNI_INPUT_DIR, id.substr(3)) 9 | } else if (id.startsWith('@/')) { 10 | return path.resolve(process.env.UNI_INPUT_DIR, id.substr(2)) 11 | } else if (id.startsWith('/') && !id.startsWith('//')) { 12 | return path.resolve(process.env.UNI_INPUT_DIR, id.substr(1)) 13 | } 14 | return id 15 | } 16 | }), 17 | require('autoprefixer')({ 18 | remove: process.env.UNI_PLATFORM !== 'h5' 19 | }), 20 | require('@dcloudio/vue-cli-plugin-uni/packages/postcss') 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /interactiveClassUI/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 19 | 20 | 25 | -------------------------------------------------------------------------------- /interactiveClassUI/src/api/classUser.js: -------------------------------------------------------------------------------- 1 | import {get, post} from "@/utils/request" 2 | import {getStorage, setStorage} from '@/utils/storage' 3 | 4 | export function joinClass(data) { 5 | return post("classUser/joinClass", data) 6 | } 7 | export function showClassUsers(data) { 8 | return post("classUser/showClassUsers", data) 9 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/api/course.js: -------------------------------------------------------------------------------- 1 | import {get, post} from "@/utils/request" 2 | import {getStorage, setStorage} from '@/utils/storage' 3 | 4 | /** 5 | * 创建课程 6 | * @param data 7 | * @returns {*} 8 | */ 9 | export function createCourse(data) { 10 | return post("course/createCourse", data) 11 | } 12 | 13 | /** 14 | * 我学的课程 15 | * @param data 16 | * @returns {*} 17 | */ 18 | export function queryMCourse(data) { 19 | return post("course/queryCourseInfo", data) 20 | } 21 | 22 | /** 23 | * 查询老师教的课程 24 | * @param data 25 | * @returns {*} 26 | */ 27 | export function queryTeachCourse(data) { 28 | return post("course/queryTeachCourse", data) 29 | } 30 | -------------------------------------------------------------------------------- /interactiveClassUI/src/api/courseware.js: -------------------------------------------------------------------------------- 1 | import { get, post } from '@/utils/request' 2 | 3 | export function listPage(params) { 4 | return post('/courseResource/listPage', params) 5 | } 6 | 7 | export function myCourses(params) { 8 | return post('/courseResource/myCourses', params) 9 | } 10 | export function queryCourseRes(params) { 11 | return get('/courseResource/queryCourseRes', params) 12 | } 13 | -------------------------------------------------------------------------------- /interactiveClassUI/src/api/msg.js: -------------------------------------------------------------------------------- 1 | import {get, post} from "@/utils/request" 2 | 3 | export function listLastN(data) { 4 | return get("msg/listLastN",data) 5 | } 6 | 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/api/notice.js: -------------------------------------------------------------------------------- 1 | import {get, post} from "@/utils/request" 2 | import {getStorage, setStorage} from '@/utils/storage' 3 | 4 | export function addNotice(data) { 5 | return post("notice/addNotice", data) 6 | } 7 | export function queryNotice(data) { 8 | return post("notice/queryNotice", data,'json') 9 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/api/paper.js: -------------------------------------------------------------------------------- 1 | import {get, post} from "@/utils/request" 2 | 3 | export function createPaper(data) { 4 | return post("paper/createPaper", data) 5 | } 6 | export function queryPaper(data) { 7 | return post("paper/queryPaper", data,'json') 8 | } 9 | export function queryPaperQuestionById(params) { 10 | return get('/paperQuestion/queryPaperQuestionById', params) 11 | } 12 | export function queryMyPaper(params) { 13 | return get('/paper/queryMyPaper', params) 14 | } 15 | export function queryAllPaper(params) { 16 | return get('/paper/queryAllPaper', params) 17 | } 18 | export function queryPaperResult(params) { 19 | return get('/paper/queryPaperResult', params) 20 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/api/sign.js: -------------------------------------------------------------------------------- 1 | import {get, post} from "@/utils/request" 2 | 3 | 4 | /** 5 | * 签到 6 | * @param data 7 | * @returns {*} 8 | */ 9 | export function signIn(data) { 10 | return post("userSign/signIn", data) 11 | } 12 | 13 | /** 14 | * 签退 15 | * @param data 16 | * @returns {*} 17 | */ 18 | export function signOut(data) { 19 | return post("userSign/signOut", data) 20 | } 21 | 22 | /** 23 | * 查询个人签到情况 24 | * @param data 25 | * @returns {*} 26 | */ 27 | export function queryMySignInfo(data) { 28 | return post("userSign/queryMySignInfo", data) 29 | } 30 | -------------------------------------------------------------------------------- /interactiveClassUI/src/api/userQuestion.js: -------------------------------------------------------------------------------- 1 | import {get, post} from "@/utils/request" 2 | 3 | export function subAnswer(data) { 4 | return post("userQuestion/subAnswer", data,'json') 5 | } 6 | export function queryMyResult(data) { 7 | return post("userQuestion/queryMyResult", data) 8 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/api/userScore.js: -------------------------------------------------------------------------------- 1 | import {get, post} from "@/utils/request" 2 | 3 | export function addUserScore(data) { 4 | return post("userScore/addUserScore", data) 5 | } 6 | export function queryUserScore(data) { 7 | return post("userScore/queryUserScore", data) 8 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/directive/permission/index.js: -------------------------------------------------------------------------------- 1 | import permission from './permission' 2 | 3 | const install = function(Vue) { 4 | Vue.directive('permission', permission) 5 | } 6 | // vue 自定义permission指令 7 | // if (window.Vue) { 8 | // window['permission'] = permission 9 | // Vue.use(install); // eslint-disable-line 10 | // } 11 | 12 | permission.install = install 13 | export default permission 14 | -------------------------------------------------------------------------------- /interactiveClassUI/src/directive/permission/permission.js: -------------------------------------------------------------------------------- 1 | // import store from '@/store' 2 | import {takeStoreUserInfo} from "@/api/user" 3 | export default { 4 | inserted(el, binding, vnode) { 5 | debugger 6 | const { value } = binding 7 | const user = takeStoreUserInfo() 8 | const roles = user.roleCode 9 | if (value && value instanceof Array && value.length > 0) { 10 | const permissionRoles = value 11 | const hasPermission = roles.some(role => { 12 | return permissionRoles.includes(role) 13 | }) 14 | 15 | if (!hasPermission) { 16 | el.parentNode && el.parentNode.removeChild(el) 17 | } 18 | } else { 19 | throw new Error(`need roles! Like v-permission="['admin','editor']"`) 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /interactiveClassUI/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App' 3 | import request,{get,post} from "./utils/request" 4 | import {successAlert} from './utils/alert' 5 | import './style/uni-common.css' 6 | Vue.config.productionTip = false 7 | Vue.prototype.request=request; 8 | Vue.prototype.get=get; 9 | Vue.prototype.post=post; 10 | Vue.prototype.successAlert=successAlert; 11 | App.mpType = 'app' 12 | 13 | import permission from '@/directive/permission/index' // vue 自定义permission指令 14 | Vue.use(permission) 15 | const app = new Vue({ 16 | ...App 17 | }) 18 | app.$mount() 19 | -------------------------------------------------------------------------------- /interactiveClassUI/src/pages/aboutme/index.vue: -------------------------------------------------------------------------------- 1 | 4 | 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/aboutme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/aboutme.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/aboutme_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/aboutme_active.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/add.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/classroom-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/classroom-active.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/classroom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/classroom.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/code.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/cygl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/cygl.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/error.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/gg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/gg.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/home.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/home_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/home_active.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/kj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/kj.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/me-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/me-active.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/me.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/paper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/paper.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/sz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/sz.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/tlq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/tlq.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/icon/测试.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/icon/测试.png -------------------------------------------------------------------------------- /interactiveClassUI/src/static/images/swaper1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/images/swaper1.jpg -------------------------------------------------------------------------------- /interactiveClassUI/src/static/images/swaper2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/images/swaper2.jpg -------------------------------------------------------------------------------- /interactiveClassUI/src/static/images/swaper3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/images/swaper3.jpg -------------------------------------------------------------------------------- /interactiveClassUI/src/static/images/user/cat.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/images/user/cat.jpeg -------------------------------------------------------------------------------- /interactiveClassUI/src/static/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/static/logo.png -------------------------------------------------------------------------------- /interactiveClassUI/src/utils/alert.js: -------------------------------------------------------------------------------- 1 | export function errorAlert(msg){ 2 | uni.showToast({ 3 | title: msg, 4 | image: '/static/icon/error.png', 5 | duration: 5000 6 | }); 7 | } 8 | 9 | export function successAlert(msg){ 10 | uni.showToast({ 11 | title: msg, 12 | duration: 4000 13 | }); 14 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/utils/config.js: -------------------------------------------------------------------------------- 1 | // 本地开发url 2 | // const local_url = "http://192.168.0.104:8080/" 3 | const local_url = "http://localhost:8080/" 4 | //真机测试url(内网IP或者外网ip) 5 | const test_url = "http://192.168.0.104:8080/" 6 | const env = 'local' 7 | 8 | let url_base = local_url 9 | if (env != 'local') { 10 | url_base = test_url 11 | } 12 | let websocketUrl=url_base.replace("http","ws")+'imServer/' 13 | export const fileUploadUrl = url_base + "/file/upload" 14 | export const imgUploadUrl = url_base + "/file/uploadImg" 15 | export const imgAccessUrl = url_base + "/img/" 16 | export default { 17 | url_base: url_base, 18 | websocketUrl: websocketUrl 19 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/utils/storage.js: -------------------------------------------------------------------------------- 1 | export function setStorage(key,data) { 2 | uni.setStorageSync(key,data); 3 | } 4 | 5 | export function getStorage(key) { 6 | return uni.getStorageSync(key) 7 | } 8 | 9 | export function clearStorageSync() { 10 | uni.clearStorageSync() 11 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/utils/tokenUtil.js: -------------------------------------------------------------------------------- 1 | import {getStorage, setStorage} from './storage.js' 2 | 3 | const token_key = "USER-TOKEN" 4 | 5 | export function getToken() { 6 | return getStorage(token_key) 7 | } 8 | 9 | export function setToken(token) { 10 | return setStorage(token_key, token) 11 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/utils/userStorage.js: -------------------------------------------------------------------------------- 1 | import {getStorage, setStorage} from '@/utils/storage' 2 | 3 | const userStoreKey = "user" 4 | 5 | export function saveUserStore(userInfo) { 6 | setStorage(userStoreKey, userInfo) 7 | } 8 | 9 | export function getStoreUser() { 10 | return getStorage(userStoreKey) 11 | } 12 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/action-sheet/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/action-sheet/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-popup": "../popup/index", 6 | "van-loading": "../loading/index" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/area/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/area/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-picker": "../picker/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/area/index.wxml: -------------------------------------------------------------------------------- 1 | 19 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/area/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss'; -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/badge-group/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/badge-group/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/badge-group/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/badge-group/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-badge-group{width:85px} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/badge/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/badge/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | relation: { 4 | type: 'ancestor', 5 | name: 'badge-group', 6 | linked(target) { 7 | this.parent = target; 8 | } 9 | }, 10 | props: { 11 | info: null, 12 | title: String 13 | }, 14 | methods: { 15 | onClick() { 16 | const { parent } = this; 17 | if (!parent) { 18 | return; 19 | } 20 | const index = parent.badges.indexOf(this); 21 | parent.setActive(index).then(() => { 22 | this.$emit('click', index); 23 | parent.$emit('change', index); 24 | }); 25 | }, 26 | setActive(active) { 27 | return this.set({ active }); 28 | } 29 | } 30 | }); 31 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/badge/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-info": "../info/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/badge/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 15 | {{ title }} 16 | 17 | 18 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/badge/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-badge{display:block;padding:20px 12px 20px 9px;overflow:hidden;font-size:14px;line-height:1.4;color:#7d7e80;word-break:break-all;background-color:#f8f8f8;border-left:3px solid transparent;box-sizing:border-box;-webkit-user-select:none;user-select:none}.van-badge--hover{background-color:#f2f3f5}.van-badge:after{border-bottom-width:1px}.van-badge--active{font-weight:700;color:#333;border-color:#f44}.van-badge--active:after{border-right-width:1px}.van-badge--active,.van-badge--active.van-badge--hover{background-color:#fff}.van-badge__text{position:relative} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/button/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/button/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-loading": "../loading/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/calendar/components/header/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/calendar/components/header/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../../../common/component'; 2 | VantComponent({ 3 | props: { 4 | title: { 5 | type: String, 6 | value: '日期选择' 7 | }, 8 | subtitle: String, 9 | showTitle: Boolean, 10 | showSubtitle: Boolean 11 | }, 12 | data: { 13 | weekdays: ['日', '一', '二', '三', '四', '五', '六'] 14 | }, 15 | methods: {} 16 | }); 17 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/calendar/components/header/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/calendar/components/header/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ title }} 5 | 6 | 7 | 8 | {{ subtitle }} 9 | 10 | 11 | 12 | 13 | {{ item }} 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/calendar/components/header/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../../../common/index.wxss';.van-calendar__header{-webkit-flex-shrink:0;flex-shrink:0;box-shadow:0 2px 10px rgba(125,126,128,.16);box-shadow:var(--calendar-header-box-shadow,0 2px 10px rgba(125,126,128,.16))}.van-calendar__header-subtitle,.van-calendar__header-title{text-align:center;height:44px;height:var(--calendar-header-title-height,44px);font-weight:500;font-weight:var(--font-weight-bold,500);line-height:44px;line-height:var(--calendar-header-title-height,44px)}.van-calendar__header-title+.van-calendar__header-title,.van-calendar__header-title:empty{display:none}.van-calendar__header-title:empty+.van-calendar__header-title{display:block!important}.van-calendar__weekdays{display:-webkit-flex;display:flex}.van-calendar__weekday{-webkit-flex:1;flex:1;text-align:center;font-size:12px;font-size:var(--calendar-weekdays-font-size,12px);line-height:30px;line-height:var(--calendar-weekdays-height,30px)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/calendar/components/month/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/calendar/components/month/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/calendar/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/calendar/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "header": "./components/header/index", 5 | "month": "./components/month/index", 6 | "van-button": "../button/index", 7 | "van-popup": "../popup/index" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/calendar/index.wxs: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | var utils = require('./utils.wxs'); 3 | 4 | function getMonths(minDate, maxDate) { 5 | var months = []; 6 | var cursor = getDate(minDate); 7 | 8 | cursor.setDate(1); 9 | 10 | do { 11 | months.push(cursor.getTime()); 12 | cursor.setMonth(cursor.getMonth() + 1); 13 | } while (utils.compareMonth(cursor, getDate(maxDate)) !== 1); 14 | 15 | return months; 16 | } 17 | 18 | function getButtonDisabled(type, currentDate) { 19 | if (currentDate == null) { 20 | return true; 21 | } 22 | 23 | if (type === 'range') { 24 | return !currentDate[0] || !currentDate[1]; 25 | } 26 | 27 | if (type === 'multiple') { 28 | return !currentDate.length; 29 | } 30 | 31 | return !currentDate; 32 | } 33 | 34 | module.exports = { 35 | getMonths: getMonths, 36 | getButtonDisabled: getButtonDisabled 37 | }; 38 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/calendar/utils.d.ts: -------------------------------------------------------------------------------- 1 | export declare const ROW_HEIGHT = 64; 2 | export declare function formatMonthTitle(date: Date): string; 3 | export declare function compareMonth(date1: Date | number, date2: Date | number): 1 | 0 | -1; 4 | export declare function compareDay(day1: Date | number, day2: Date | number): 1 | 0 | -1; 5 | export declare function getPrevDay(date: Date): Date; 6 | export declare function getNextDay(date: Date): Date; 7 | export declare function calcDateNum(date: [Date, Date]): number; 8 | export declare function copyDates(dates: Date | Date[]): Date | Date[]; 9 | export declare function getMonthEndDay(year: number, month: number): number; 10 | export declare function getMonths(minDate: number, maxDate: number): any[]; 11 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/calendar/utils.wxs: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | function getMonthEndDay(year, month) { 3 | return 32 - getDate(year, month - 1, 32).getDate(); 4 | } 5 | 6 | function compareMonth(date1, date2) { 7 | date1 = getDate(date1); 8 | date2 = getDate(date2); 9 | 10 | var year1 = date1.getFullYear(); 11 | var year2 = date2.getFullYear(); 12 | var month1 = date1.getMonth(); 13 | var month2 = date2.getMonth(); 14 | 15 | if (year1 === year2) { 16 | return month1 === month2 ? 0 : month1 > month2 ? 1 : -1; 17 | } 18 | 19 | return year1 > year2 ? 1 : -1; 20 | } 21 | 22 | module.exports = { 23 | getMonthEndDay: getMonthEndDay, 24 | compareMonth: compareMonth 25 | }; 26 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/card/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/card/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-tag": "../tag/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/cell-group/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/cell-group/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | props: { 4 | title: String, 5 | border: { 6 | type: Boolean, 7 | value: true 8 | } 9 | } 10 | }); 11 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/cell-group/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/cell-group/index.wxml: -------------------------------------------------------------------------------- 1 | 5 | {{ title }} 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/cell-group/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-cell-group__title{padding:16px 16px 8px;padding:var(--cell-group-title-padding,16px 16px 8px);font-size:14px;font-size:var(--cell-group-title-font-size,14px);line-height:16px;line-height:var(--cell-group-title-line-height,16px);color:#969799;color:var(--cell-group-title-color,#969799)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/cell/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/cell/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/checkbox-group/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/checkbox-group/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/checkbox-group/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/checkbox-group/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss'; -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/checkbox/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/checkbox/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/checkbox/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/checkbox/index.wxs: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | var utils = require('../wxs/utils.wxs'); 3 | 4 | function iconStyle(checkedColor, value, disabled, parentDisabled, iconSize) { 5 | var styles = [['font-size', utils.addUnit(iconSize)]]; 6 | if (checkedColor && value && !disabled && !parentDisabled) { 7 | styles.push(['border-color', checkedColor]); 8 | styles.push(['background-color', checkedColor]); 9 | } 10 | 11 | return styles 12 | .map(function(item) { 13 | return item.join(':'); 14 | }) 15 | .join(';'); 16 | } 17 | 18 | module.exports = { 19 | iconStyle: iconStyle 20 | }; 21 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/circle/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/circle/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/circle/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | {{ text }} 9 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/circle/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-circle{position:relative;display:inline-block;text-align:center}.van-circle__text{position:absolute;top:50%;left:0;width:100%;-webkit-transform:translateY(-50%);transform:translateY(-50%);color:#323233;color:var(--circle-text-color,#323233)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/col/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/col/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | relation: { 4 | name: 'row', 5 | type: 'ancestor', 6 | current: 'col', 7 | }, 8 | props: { 9 | span: Number, 10 | offset: Number 11 | }, 12 | data: { 13 | viewStyle: '' 14 | }, 15 | methods: { 16 | setGutter(gutter) { 17 | const padding = `${gutter / 2}px`; 18 | const viewStyle = gutter ? `padding-left: ${padding}; padding-right: ${padding};` : ''; 19 | if (viewStyle !== this.data.viewStyle) { 20 | this.setData({ viewStyle }); 21 | } 22 | } 23 | } 24 | }); 25 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/col/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/col/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/collapse-item/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/collapse-item/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-cell": "../cell/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/collapse/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/collapse/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/collapse/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/collapse/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss'; -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/common/color.d.ts: -------------------------------------------------------------------------------- 1 | export declare const RED = "#ee0a24"; 2 | export declare const BLUE = "#1989fa"; 3 | export declare const WHITE = "#fff"; 4 | export declare const GREEN = "#07c160"; 5 | export declare const ORANGE = "#ff976a"; 6 | export declare const GRAY = "#323233"; 7 | export declare const GRAY_DARK = "#969799"; 8 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/common/color.js: -------------------------------------------------------------------------------- 1 | export const RED = '#ee0a24'; 2 | export const BLUE = '#1989fa'; 3 | export const WHITE = '#fff'; 4 | export const GREEN = '#07c160'; 5 | export const ORANGE = '#ff976a'; 6 | export const GRAY = '#323233'; 7 | export const GRAY_DARK = '#969799'; 8 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/common/component.d.ts: -------------------------------------------------------------------------------- 1 | import { VantComponentOptions, CombinedComponentInstance } from '../definitions/index'; 2 | declare function VantComponent(vantOptions?: VantComponentOptions>): void; 3 | export { VantComponent }; 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/common/style/clearfix.wxss: -------------------------------------------------------------------------------- 1 | .van-clearfix:after{display:table;clear:both;content:""} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/common/style/ellipsis.wxss: -------------------------------------------------------------------------------- 1 | .van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{-webkit-line-clamp:3} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/common/style/hairline.wxss: -------------------------------------------------------------------------------- 1 | .van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #eee;-webkit-transform:scale(.5);transform:scale(.5)}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/common/style/mixins/clearfix.wxss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/wxcomponents/vant/common/style/mixins/clearfix.wxss -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/common/style/mixins/ellipsis.wxss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/wxcomponents/vant/common/style/mixins/ellipsis.wxss -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/common/style/mixins/hairline.wxss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/wxcomponents/vant/common/style/mixins/hairline.wxss -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/common/style/theme.wxss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/wxcomponents/vant/common/style/theme.wxss -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/common/style/var.wxss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/wxcomponents/vant/common/style/var.wxss -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/common/utils.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | export declare function isDef(value: any): boolean; 3 | export declare function isObj(x: any): boolean; 4 | export declare function isNumber(value: any): boolean; 5 | export declare function range(num: number, min: number, max: number): number; 6 | export declare function nextTick(fn: Function): void; 7 | export declare function getSystemInfoSync(): WechatMiniprogram.GetSystemInfoSuccessCallbackResult; 8 | export declare function addUnit(value?: string | number): string | undefined; 9 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/count-down/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/count-down/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/count-down/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{ formattedTime }} 4 | 5 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/count-down/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-count-down{color:#323233;color:var(--count-down-text-color,#323233);font-size:14px;font-size:var(--count-down-font-size,14px);line-height:20px;line-height:var(--count-down-line-height,20px)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/count-down/utils.d.ts: -------------------------------------------------------------------------------- 1 | export declare type TimeData = { 2 | days: number; 3 | hours: number; 4 | minutes: number; 5 | seconds: number; 6 | milliseconds: number; 7 | }; 8 | export declare function parseTimeData(time: number): TimeData; 9 | export declare function parseFormat(format: string, timeData: TimeData): string; 10 | export declare function isSameSecond(time1: number, time2: number): boolean; 11 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/datetime-picker/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/datetime-picker/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-picker": "../picker/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/datetime-picker/index.wxml: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/datetime-picker/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss'; -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/definitions/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/wxcomponents/vant/definitions/index.js -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/definitions/weapp.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/interactiveClassUI/src/wxcomponents/vant/definitions/weapp.js -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/dialog/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/dialog/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-popup": "../popup/index", 5 | "van-button": "../button/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/divider/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/divider/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | props: { 4 | dashed: { 5 | type: Boolean, 6 | value: false 7 | }, 8 | hairline: { 9 | type: Boolean, 10 | value: false 11 | }, 12 | contentPosition: { 13 | type: String, 14 | value: '' 15 | }, 16 | fontSize: { 17 | type: Number, 18 | value: '' 19 | }, 20 | borderColor: { 21 | type: String, 22 | value: '' 23 | }, 24 | textColor: { 25 | type: String, 26 | value: '' 27 | }, 28 | customStyle: { 29 | type: String, 30 | value: '' 31 | } 32 | } 33 | }); 34 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/divider/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": {} 4 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/divider/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/dropdown-item/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/dropdown-item/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-popup": "../popup/index", 5 | "van-cell": "../cell/index", 6 | "van-icon": "../icon/index" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/dropdown-item/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-dropdown-item{position:fixed;right:0;left:0;overflow:hidden}.van-dropdown-item__option{text-align:left}.van-dropdown-item__option--active .van-dropdown-item__icon,.van-dropdown-item__option--active .van-dropdown-item__title{color:#1989fa;color:var(--dropdown-menu-option-active-color,#1989fa)}.van-dropdown-item--up{top:0}.van-dropdown-item--down{bottom:0}.van-dropdown-item__icon{display:block;line-height:inherit} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/dropdown-menu/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/dropdown-menu/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/dropdown-menu/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 12 | 16 | 17 | {{ computed.displayTitle(item) }} 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/dropdown-menu/index.wxs: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | function displayTitle(item) { 3 | if (item.title) { 4 | return item.title; 5 | } 6 | 7 | var match = item.options.filter(function(option) { 8 | return option.value === item.value; 9 | }); 10 | var displayTitle = match.length ? match[0].text : ''; 11 | return displayTitle; 12 | } 13 | 14 | module.exports = { 15 | displayTitle: displayTitle 16 | }; 17 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/field/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/field/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-cell": "../cell/index", 5 | "van-icon": "../icon/index" 6 | } 7 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/field/index.wxs: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | var utils = require('../wxs/utils.wxs'); 3 | 4 | function inputStyle(autosize) { 5 | if (autosize.constructor === 'Object') { 6 | var style = ''; 7 | if (autosize.minHeight) { 8 | style += 'min-height:' + utils.addUnit(autosize.minHeight); 9 | } 10 | if (autosize.maxHeight) { 11 | style += 'min-height:' + utils.addUnit(autosize.maxHeight); 12 | } 13 | return style; 14 | } 15 | 16 | return ''; 17 | } 18 | 19 | module.exports = { 20 | inputStyle: inputStyle 21 | }; 22 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/goods-action-button/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/goods-action-button/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-button": "../button/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/goods-action-icon/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/goods-action-icon/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | import { link } from '../mixins/link'; 3 | import { button } from '../mixins/button'; 4 | import { openType } from '../mixins/open-type'; 5 | VantComponent({ 6 | classes: ['icon-class', 'text-class'], 7 | mixins: [link, button, openType], 8 | props: { 9 | text: String, 10 | dot: Boolean, 11 | info: String, 12 | icon: String, 13 | disabled: Boolean, 14 | loading: Boolean 15 | }, 16 | methods: { 17 | onClick(event) { 18 | this.$emit('click', event.detail); 19 | this.jumpLink(); 20 | } 21 | } 22 | }); 23 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/goods-action-icon/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-button": "../button/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/goods-action-icon/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-goods-action-icon{border:none!important;width:50px!important;width:var(--goods-action-icon-height,50px)!important}.van-goods-action-icon__content{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-justify-content:center;justify-content:center;height:100%;line-height:1;font-size:10px;font-size:var(--goods-action-icon-font-size,10px);color:#646566;color:var(--goods-action-icon-text-color,#646566)}.van-goods-action-icon__icon{margin-bottom:4px} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/goods-action/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/goods-action/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | relation: { 4 | type: 'descendant', 5 | name: 'goods-action-button', 6 | current: 'goods-action', 7 | }, 8 | props: { 9 | safeAreaInsetBottom: { 10 | type: Boolean, 11 | value: true 12 | } 13 | } 14 | }); 15 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/goods-action/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/goods-action/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/goods-action/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-goods-action{position:fixed;right:0;bottom:0;left:0;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;background-color:#fff;background-color:var(--goods-action-background-color,#fff)}.van-goods-action--safe{padding-bottom:env(safe-area-inset-bottom)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/grid-item/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/grid-item/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/grid-item/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | {{ text }} 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/grid/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/grid/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/grid/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/grid/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-grid{position:relative;box-sizing:border-box;overflow:hidden} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/icon/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/icon/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | props: { 4 | dot: Boolean, 5 | info: null, 6 | size: null, 7 | color: String, 8 | customStyle: String, 9 | classPrefix: { 10 | type: String, 11 | value: 'van-icon' 12 | }, 13 | name: { 14 | type: String, 15 | observer(val) { 16 | this.setData({ 17 | isImageName: val.indexOf('/') !== -1 18 | }); 19 | } 20 | } 21 | }, 22 | methods: { 23 | onClick() { 24 | this.$emit('click'); 25 | } 26 | } 27 | }); 28 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/icon/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-info": "../info/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/icon/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 14 | 20 | 21 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/image/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/image/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-loading": "../loading/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/image/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-image{position:relative;display:inline-block}.van-image--round{overflow:hidden;border-radius:50%}.van-image--round .van-image__img{border-radius:inherit}.van-image__error,.van-image__img,.van-image__loading{display:block;width:100%;height:100%}.van-image__error,.van-image__loading{position:absolute;top:0;left:0;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;color:#969799;color:var(--image-placeholder-text-color,#969799);font-size:14px;font-size:var(--image-placeholder-font-size,14px);background-color:#f7f8fa;background-color:var(--image-placeholder-background-color,#f7f8fa)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/index-anchor/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/index-anchor/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | relation: { 4 | name: 'index-bar', 5 | type: 'ancestor', 6 | current: 'index-anchor', 7 | }, 8 | props: { 9 | useSlot: Boolean, 10 | index: null 11 | }, 12 | data: { 13 | active: false, 14 | wrapperStyle: '', 15 | anchorStyle: '' 16 | } 17 | }); 18 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/index-anchor/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/index-anchor/index.wxml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | 11 | {{ index }} 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/index-anchor/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-index-anchor{padding:0 16px;padding:var(--index-anchor-padding,0 16px);color:#323233;color:var(--index-anchor-text-color,#323233);font-weight:500;font-weight:var(--index-anchor-font-weight,500);font-size:14px;font-size:var(--index-anchor-font-size,14px);line-height:32px;line-height:var(--index-anchor-line-height,32px);background-color:initial;background-color:var(--index-anchor-background-color,transparent)}.van-index-anchor--active{right:0;left:0;color:#07c160;color:var(--index-anchor-active-text-color,#07c160);background-color:#fff;background-color:var(--index-anchor-active-background-color,#fff)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/index-bar/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/index-bar/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/index-bar/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 19 | {{ item }} 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/index-bar/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-index-bar{position:relative}.van-index-bar__sidebar{position:fixed;top:50%;right:0;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;text-align:center;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-user-select:none;user-select:none}.van-index-bar__index{font-weight:500;padding:0 4px 0 16px;padding:0 var(--padding-base,4px) 0 var(--padding-md,16px);font-size:10px;font-size:var(--index-bar-index-font-size,10px);line-height:14px;line-height:var(--index-bar-index-line-height,14px)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/info/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/info/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | props: { 4 | dot: Boolean, 5 | info: null, 6 | customStyle: String 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/info/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/info/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{ dot ? '' : info }} 8 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/loading/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/loading/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | props: { 4 | color: String, 5 | vertical: Boolean, 6 | type: { 7 | type: String, 8 | value: 'circular' 9 | }, 10 | size: String, 11 | textSize: String 12 | }, 13 | data: { 14 | array12: Array.from({ length: 12 }), 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/loading/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/loading/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/mixins/basic.d.ts: -------------------------------------------------------------------------------- 1 | export declare const basic: string; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/mixins/button.d.ts: -------------------------------------------------------------------------------- 1 | export declare const button: string; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/mixins/button.js: -------------------------------------------------------------------------------- 1 | export const button = Behavior({ 2 | externalClasses: ['hover-class'], 3 | properties: { 4 | id: String, 5 | lang: String, 6 | businessId: Number, 7 | sessionFrom: String, 8 | sendMessageTitle: String, 9 | sendMessagePath: String, 10 | sendMessageImg: String, 11 | showMessageCard: Boolean, 12 | appParameter: String, 13 | ariaLabel: String 14 | } 15 | }); 16 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/mixins/link.d.ts: -------------------------------------------------------------------------------- 1 | export declare const link: string; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/mixins/link.js: -------------------------------------------------------------------------------- 1 | export const link = Behavior({ 2 | properties: { 3 | url: String, 4 | linkType: { 5 | type: String, 6 | value: 'navigateTo' 7 | } 8 | }, 9 | methods: { 10 | jumpLink(urlKey = 'url') { 11 | const url = this.data[urlKey]; 12 | if (url) { 13 | wx[this.data.linkType]({ url }); 14 | } 15 | } 16 | } 17 | }); 18 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/mixins/observer/behavior.d.ts: -------------------------------------------------------------------------------- 1 | export declare const behavior: string; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/mixins/observer/index.d.ts: -------------------------------------------------------------------------------- 1 | export declare function observe(vantOptions: any, options: any): void; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/mixins/observer/props.d.ts: -------------------------------------------------------------------------------- 1 | export declare function observeProps(props: any): void; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/mixins/observer/props.js: -------------------------------------------------------------------------------- 1 | export function observeProps(props) { 2 | if (!props) { 3 | return; 4 | } 5 | Object.keys(props).forEach(key => { 6 | let prop = props[key]; 7 | if (prop === null || !('type' in prop)) { 8 | prop = { type: prop }; 9 | } 10 | let { observer } = prop; 11 | prop.observer = function (...args) { 12 | if (observer) { 13 | if (typeof observer === 'string') { 14 | observer = this[observer]; 15 | } 16 | observer.apply(this, args); 17 | } 18 | this.set(); 19 | }; 20 | props[key] = prop; 21 | }); 22 | } 23 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/mixins/open-type.d.ts: -------------------------------------------------------------------------------- 1 | export declare const openType: string; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/mixins/open-type.js: -------------------------------------------------------------------------------- 1 | export const openType = Behavior({ 2 | properties: { 3 | openType: String 4 | }, 5 | methods: { 6 | bindGetUserInfo(event) { 7 | this.$emit('getuserinfo', event.detail); 8 | }, 9 | bindContact(event) { 10 | this.$emit('contact', event.detail); 11 | }, 12 | bindGetPhoneNumber(event) { 13 | this.$emit('getphonenumber', event.detail); 14 | }, 15 | bindError(event) { 16 | this.$emit('error', event.detail); 17 | }, 18 | bindLaunchApp(event) { 19 | this.$emit('launchapp', event.detail); 20 | }, 21 | bindOpenSetting(event) { 22 | this.$emit('opensetting', event.detail); 23 | }, 24 | } 25 | }); 26 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/mixins/page-scroll.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | declare type IPageScrollOption = WechatMiniprogram.Page.IPageScrollOption; 3 | declare type Scroller = (event: IPageScrollOption) => void; 4 | export declare const pageScrollMixin: (scroller: Scroller) => string; 5 | export {}; 6 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/mixins/safe-area.d.ts: -------------------------------------------------------------------------------- 1 | export declare const safeArea: ({ safeAreaInsetBottom, safeAreaInsetTop }?: { 2 | safeAreaInsetBottom?: boolean; 3 | safeAreaInsetTop?: boolean; 4 | }) => string; 5 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/mixins/touch.d.ts: -------------------------------------------------------------------------------- 1 | export declare const touch: string; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/mixins/transition.d.ts: -------------------------------------------------------------------------------- 1 | export declare const transition: (showDefaultValue: boolean) => any; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/nav-bar/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/nav-bar/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/notice-bar/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/notice-bar/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/notify/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/notify/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-transition": "../transition/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/notify/index.wxml: -------------------------------------------------------------------------------- 1 | 8 | 12 | 16 | {{ message }} 17 | 18 | 19 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/notify/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-notify{text-align:center;word-wrap:break-word;padding:6px 15px;padding:var(--notify-padding,6px 15px);font-size:14px;font-size:var(--notify-font-size,14px);line-height:20px;line-height:var(--notify-line-height,20px)}.van-notify__container{position:fixed;top:0;box-sizing:border-box;width:100%}.van-notify--primary{background-color:#1989fa;background-color:var(--notify-primary-background-color,#1989fa)}.van-notify--success{background-color:#07c160;background-color:var(--notify-success-background-color,#07c160)}.van-notify--danger{background-color:#ee0a24;background-color:var(--notify-danger-background-color,#ee0a24)}.van-notify--warning{background-color:#ff976a;background-color:var(--notify-warning-background-color,#ff976a)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/notify/notify.d.ts: -------------------------------------------------------------------------------- 1 | interface NotifyOptions { 2 | type?: 'primary' | 'success' | 'danger' | 'warning'; 3 | color?: string; 4 | zIndex?: number; 5 | message: string; 6 | context?: any; 7 | duration?: number; 8 | selector?: string; 9 | background?: string; 10 | safeAreaInsetTop?: boolean; 11 | onClick?: () => void; 12 | onOpened?: () => void; 13 | onClose?: () => void; 14 | } 15 | declare function Notify(options: NotifyOptions | string): any; 16 | declare namespace Notify { 17 | var clear: (options?: NotifyOptions) => void; 18 | } 19 | export default Notify; 20 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/overlay/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/overlay/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | props: { 4 | show: Boolean, 5 | customStyle: String, 6 | duration: { 7 | type: null, 8 | value: 300 9 | }, 10 | zIndex: { 11 | type: Number, 12 | value: 1 13 | } 14 | }, 15 | methods: { 16 | onClick() { 17 | this.$emit('click'); 18 | }, 19 | // for prevent touchmove 20 | noop() { } 21 | } 22 | }); 23 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/overlay/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-transition": "../transition/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/overlay/index.wxml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/overlay/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.7);background-color:var(--overlay-background-color,rgba(0,0,0,.7))} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/panel/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/panel/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | classes: ['header-class', 'footer-class'], 4 | props: { 5 | desc: String, 6 | title: String, 7 | status: String, 8 | useFooterSlot: Boolean 9 | } 10 | }); 11 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/panel/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-cell": "../cell/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/panel/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/panel/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-panel{background:#fff;background:var(--panel-background-color,#fff)}.van-panel__header-value{color:#ee0a24;color:var(--panel-header-value-color,#ee0a24)}.van-panel__footer{padding:8px 16px;padding:var(--panel-footer-padding,8px 16px)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/picker-column/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/picker-column/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/picker-column/index.wxs: -------------------------------------------------------------------------------- 1 | function isObj(x) { 2 | var type = typeof x; 3 | return x !== null && (type === 'object' || type === 'function'); 4 | } 5 | 6 | module.exports = function (option, valueKey) { 7 | return isObj(option) && option[valueKey] != null ? option[valueKey] : option; 8 | } 9 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/picker-column/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-picker-column{overflow:hidden;text-align:center;color:#000;color:var(--picker-option-text-color,#000);font-size:16px;font-size:var(--picker-option-font-size,16px)}.van-picker-column__item{padding:0 5px}.van-picker-column__item--selected{font-weight:500;font-weight:var(--font-weight-bold,500);color:#323233;color:var(--picker-option-selected-text-color,#323233)}.van-picker-column__item--disabled{opacity:.3;opacity:var(--picker-option-disabled-opacity,.3)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/picker/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/picker/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "picker-column": "../picker-column/index", 5 | "loading": "../loading/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/picker/shared.d.ts: -------------------------------------------------------------------------------- 1 | export declare const pickerProps: { 2 | title: StringConstructor; 3 | loading: BooleanConstructor; 4 | showToolbar: BooleanConstructor; 5 | cancelButtonText: { 6 | type: StringConstructor; 7 | value: string; 8 | }; 9 | confirmButtonText: { 10 | type: StringConstructor; 11 | value: string; 12 | }; 13 | visibleItemCount: { 14 | type: NumberConstructor; 15 | value: number; 16 | }; 17 | itemHeight: { 18 | type: NumberConstructor; 19 | value: number; 20 | }; 21 | }; 22 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/picker/shared.js: -------------------------------------------------------------------------------- 1 | export const pickerProps = { 2 | title: String, 3 | loading: Boolean, 4 | showToolbar: Boolean, 5 | cancelButtonText: { 6 | type: String, 7 | value: '取消' 8 | }, 9 | confirmButtonText: { 10 | type: String, 11 | value: '确认' 12 | }, 13 | visibleItemCount: { 14 | type: Number, 15 | value: 5 16 | }, 17 | itemHeight: { 18 | type: Number, 19 | value: 44 20 | } 21 | }; 22 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/picker/toolbar.wxml: -------------------------------------------------------------------------------- 1 | 29 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/popup/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/popup/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-overlay": "../overlay/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/progress/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/progress/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | import { BLUE } from '../common/color'; 3 | VantComponent({ 4 | props: { 5 | inactive: Boolean, 6 | percentage: Number, 7 | pivotText: String, 8 | pivotColor: String, 9 | trackColor: String, 10 | showPivot: { 11 | type: Boolean, 12 | value: true 13 | }, 14 | color: { 15 | type: String, 16 | value: BLUE 17 | }, 18 | textColor: { 19 | type: String, 20 | value: '#fff' 21 | }, 22 | strokeWidth: { 23 | type: null, 24 | value: 4 25 | } 26 | } 27 | }); 28 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/progress/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/progress/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 12 | 17 | {{ getters.text(pivotText, percentage) }} 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/progress/index.wxs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | text: function(pivotText, percentage) { 3 | return pivotText || percentage + '%'; 4 | } 5 | }; 6 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/progress/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-progress{position:relative;height:4px;height:var(--progress-height,4px);border-radius:4px;border-radius:var(--progress-height,4px);background:#ebedf0;background:var(--progress-background-color,#ebedf0)}.van-progress__portion{position:absolute;left:0;height:100%;border-radius:inherit;background:#1989fa;background:var(--progress-color,#1989fa)}.van-progress__pivot{position:absolute;top:50%;right:0;box-sizing:border-box;min-width:2em;text-align:center;word-break:keep-all;border-radius:1em;-webkit-transform:translateY(-50%);transform:translateY(-50%);color:#fff;color:var(--progress-pivot-text-color,#fff);padding:0 5px;padding:var(--progress-pivot-padding,0 5px);font-size:10px;font-size:var(--progress-pivot-font-size,10px);line-height:1.6;line-height:var(--progress-pivot-line-height,1.6);background-color:#1989fa;background-color:var(--progress-pivot-background-color,#1989fa)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/radio-group/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/radio-group/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/radio-group/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/radio-group/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss'; -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/radio/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/radio/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/rate/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/rate/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/rate/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-rate{display:-webkit-inline-flex;display:inline-flex;-webkit-user-select:none;user-select:none}.van-rate__item{position:relative;padding:0 2px;padding:0 var(--rate-horizontal-padding,2px)}.van-rate__icon{display:block;height:1em;font-size:20px;font-size:var(--rate-icon-size,20px)}.van-rate__icon--half{position:absolute;top:0;width:.5em;overflow:hidden;left:2px;left:var(--rate-horizontal-padding,2px)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/row/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/row/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/row/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/row/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-row:after{display:table;clear:both;content:""} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/search/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/search/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-field": "../field/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/sidebar-item/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/sidebar-item/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-info": "../info/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/sidebar-item/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 16 | {{ title }} 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/sidebar/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/sidebar/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/sidebar/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/sidebar/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-sidebar{width:85px;width:var(--sidebar-width,85px)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/skeleton/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/skeleton/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": {} 4 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/slider/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/slider/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/slider/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 12 | 19 | 23 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/slider/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-slider{position:relative;border-radius:999px;border-radius:var(--border-radius-max,999px);background-color:#ebedf0;background-color:var(--slider-inactive-background-color,#ebedf0)}.van-slider:before{position:absolute;right:0;left:0;content:"";top:-8px;top:-var(--padding-xs,8px);bottom:-8px;bottom:-var(--padding-xs,8px)}.van-slider__bar{position:relative;border-radius:inherit;transition:width .2s;transition:width var(--animation-duration-fast,.2s);background-color:#1989fa;background-color:var(--slider-active-background-color,#1989fa)}.van-slider__button{width:24px;height:24px;border-radius:50%;box-shadow:0 1px 2px rgba(0,0,0,.5);background-color:#fff;background-color:var(--slider-button-background-color,#fff)}.van-slider__button-wrapper{position:absolute;top:50%;right:0;-webkit-transform:translate3d(50%,-50%,0);transform:translate3d(50%,-50%,0)}.van-slider--disabled{opacity:.5} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/stepper/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/stepper/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/steps/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/steps/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | import { GREEN, GRAY_DARK } from '../common/color'; 3 | VantComponent({ 4 | classes: ['desc-class'], 5 | props: { 6 | icon: String, 7 | steps: Array, 8 | active: Number, 9 | direction: { 10 | type: String, 11 | value: 'horizontal' 12 | }, 13 | activeColor: { 14 | type: String, 15 | value: GREEN 16 | }, 17 | inactiveColor: { 18 | type: String, 19 | value: GRAY_DARK 20 | }, 21 | activeIcon: { 22 | type: String, 23 | value: 'checked' 24 | }, 25 | inactiveIcon: String 26 | }, 27 | methods: { 28 | onClick(event) { 29 | const { index } = event.currentTarget.dataset; 30 | this.$emit('click-step', index); 31 | } 32 | }, 33 | }); 34 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/steps/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/sticky/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/sticky/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/sticky/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/sticky/index.wxs: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | function wrapStyle(data) { 3 | var style = ''; 4 | 5 | if (data.transform) { 6 | style += 'transform: translate3d(0, ' + data.transform + 'px, 0);'; 7 | } 8 | 9 | if (data.fixed) { 10 | style += 'top: ' + data.offsetTop + 'px;'; 11 | } 12 | 13 | if (data.zIndex) { 14 | style += 'z-index: ' + data.zIndex + ';'; 15 | } 16 | 17 | return style; 18 | } 19 | 20 | function containerStyle(data) { 21 | var style = ''; 22 | 23 | if (data.fixed) { 24 | style += 'height: ' + data.height + 'px;'; 25 | } 26 | 27 | if (data.zIndex) { 28 | style += 'z-index: ' + data.zIndex + ';'; 29 | } 30 | 31 | return style; 32 | } 33 | 34 | module.exports = { 35 | wrapStyle: wrapStyle, 36 | containerStyle: containerStyle 37 | }; 38 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/sticky/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-sticky{position:relative}.van-sticky-wrap--fixed{position:fixed;right:0;left:0} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/submit-bar/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/submit-bar/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-button": "../button/index", 5 | "van-icon": "../icon/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/swipe-cell/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/swipe-cell/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/swipe-cell/index.wxml: -------------------------------------------------------------------------------- 1 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/swipe-cell/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-swipe-cell{position:relative;overflow:hidden}.van-swipe-cell__left,.van-swipe-cell__right{position:absolute;top:0;height:100%}.van-swipe-cell__left{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.van-swipe-cell__right{right:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/switch-cell/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/switch-cell/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-cell": "../cell/index", 5 | "van-switch": "../switch/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/switch-cell/index.wxml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 25 | 26 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/switch-cell/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-switch-cell{padding-top:9px;padding-bottom:9px}.van-switch-cell__switch{vertical-align:middle} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/switch/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/switch/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-loading": "../loading/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/switch/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tab/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tab/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tab/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tab/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';:host{-webkit-flex-shrink:0;flex-shrink:0;width:100%}.van-tab__pane,:host{box-sizing:border-box}.van-tab__pane{overflow-y:auto;-webkit-overflow-scrolling:touch}.van-tab__pane--active{height:auto}.van-tab__pane--inactive{height:0;overflow:visible} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tabbar-item/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tabbar-item/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-info": "../info/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tabbar-item/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 14 | 15 | 19 | 20 | 21 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tabbar-item/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';:host{-webkit-flex:1;flex:1}.van-tabbar-item{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;height:100%;color:#646566;color:var(--tabbar-item-text-color,#646566);font-size:12px;font-size:var(--tabbar-item-font-size,12px);line-height:1;line-height:var(--tabbar-item-line-height,1)}.van-tabbar-item__icon{position:relative;margin-bottom:5px;margin-bottom:var(--tabbar-item-margin-bottom,5px);font-size:18px;font-size:var(--tabbar-item-icon-size,18px)}.van-tabbar-item__icon__inner{display:block;min-width:1em}.van-tabbar-item--active{color:#1989fa;color:var(--tabbar-item-active-color,#1989fa)}.van-tabbar-item__info{margin-top:2px} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tabbar/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tabbar/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } 4 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tabbar/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tabbar/index.wxss: -------------------------------------------------------------------------------- 1 | @import '../common/index.wxss';.van-tabbar{display:-webkit-flex;display:flex;width:100%;height:50px;height:var(--tabbar-height,50px);background-color:#fff;background-color:var(--tabbar-background-color,#fff)}.van-tabbar--fixed{position:fixed;bottom:0;left:0}.van-tabbar--safe{padding-bottom:env(safe-area-inset-bottom)} -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tabs/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tabs/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-info": "../info/index", 5 | "van-sticky": "../sticky/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tag/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tag/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | props: { 4 | size: String, 5 | mark: Boolean, 6 | color: String, 7 | plain: Boolean, 8 | round: Boolean, 9 | textColor: String, 10 | type: { 11 | type: String, 12 | value: 'default' 13 | }, 14 | closeable: Boolean 15 | }, 16 | methods: { 17 | onClose() { 18 | this.$emit('close'); 19 | } 20 | } 21 | }); 22 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tag/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tag/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 14 | 15 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/toast/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/toast/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | VantComponent({ 3 | props: { 4 | show: Boolean, 5 | mask: Boolean, 6 | message: String, 7 | forbidClick: Boolean, 8 | zIndex: { 9 | type: Number, 10 | value: 1000 11 | }, 12 | type: { 13 | type: String, 14 | value: 'text' 15 | }, 16 | loadingType: { 17 | type: String, 18 | value: 'circular' 19 | }, 20 | position: { 21 | type: String, 22 | value: 'middle' 23 | } 24 | }, 25 | methods: { 26 | // for prevent touchmove 27 | noop() { } 28 | } 29 | }); 30 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/toast/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-loading": "../loading/index", 6 | "van-overlay": "../overlay/index", 7 | "van-transition": "../transition/index" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/transition/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/transition/index.js: -------------------------------------------------------------------------------- 1 | import { VantComponent } from '../common/component'; 2 | import { transition } from '../mixins/transition'; 3 | VantComponent({ 4 | classes: [ 5 | 'enter-class', 6 | 'enter-active-class', 7 | 'enter-to-class', 8 | 'leave-class', 9 | 'leave-active-class', 10 | 'leave-to-class' 11 | ], 12 | mixins: [transition(true)] 13 | }); 14 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/transition/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/transition/index.wxml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tree-select/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tree-select/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-sidebar": "../sidebar/index", 6 | "van-sidebar-item": "../sidebar-item/index" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/tree-select/index.wxs: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | var array = require('../wxs/array.wxs'); 3 | 4 | function isActive (activeList, itemId) { 5 | if (array.isArray(activeList)) { 6 | return activeList.indexOf(itemId) > -1; 7 | } 8 | 9 | return activeList === itemId; 10 | } 11 | 12 | module.exports.isActive = isActive; 13 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/uploader/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/uploader/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "van-icon": "../icon/index", 5 | "van-loading": "../loading/index" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/uploader/shared.d.ts: -------------------------------------------------------------------------------- 1 | export declare const chooseImageProps: { 2 | sizeType: { 3 | type: ArrayConstructor; 4 | value: string[]; 5 | }; 6 | capture: { 7 | type: ArrayConstructor; 8 | value: string[]; 9 | }; 10 | }; 11 | export declare const chooseVideoProps: { 12 | capture: { 13 | type: ArrayConstructor; 14 | value: string[]; 15 | }; 16 | compressed: { 17 | type: BooleanConstructor; 18 | value: boolean; 19 | }; 20 | maxDuration: { 21 | type: NumberConstructor; 22 | value: number; 23 | }; 24 | camera: { 25 | type: StringConstructor; 26 | value: string; 27 | }; 28 | }; 29 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/uploader/shared.js: -------------------------------------------------------------------------------- 1 | // props for choose image 2 | export const chooseImageProps = { 3 | sizeType: { 4 | type: Array, 5 | value: ['original', 'compressed'] 6 | }, 7 | capture: { 8 | type: Array, 9 | value: ['album', 'camera'] 10 | } 11 | }; 12 | // props for choose video 13 | export const chooseVideoProps = { 14 | capture: { 15 | type: Array, 16 | value: ['album', 'camera'] 17 | }, 18 | compressed: { 19 | type: Boolean, 20 | value: true 21 | }, 22 | maxDuration: { 23 | type: Number, 24 | value: 60 25 | }, 26 | camera: { 27 | type: String, 28 | value: 'back' 29 | } 30 | }; 31 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/wxs/add-unit.wxs: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | var REGEXP = getRegExp('^\d+(\.\d+)?$'); 3 | 4 | function addUnit(value) { 5 | if (value == null) { 6 | return undefined; 7 | } 8 | 9 | return REGEXP.test('' + value) ? value + 'px' : value; 10 | } 11 | 12 | module.exports = { 13 | addUnit: addUnit 14 | }; 15 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/wxs/array.wxs: -------------------------------------------------------------------------------- 1 | function isArray(array) { 2 | return array && (array.constructor === 'Array' || (typeof Array !== 'undefined' && Array.isArray(array))); 3 | } 4 | 5 | module.exports.isArray = isArray; 6 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/wxs/object.wxs: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | var REGEXP = getRegExp('{|}|"', 'g'); 3 | 4 | function keys(obj) { 5 | return JSON.stringify(obj) 6 | .replace(REGEXP, '') 7 | .split(',') 8 | .map(function(item) { 9 | return item.split(':')[0]; 10 | }); 11 | } 12 | 13 | module.exports.keys = keys; 14 | -------------------------------------------------------------------------------- /interactiveClassUI/src/wxcomponents/vant/wxs/utils.wxs: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | var bem = require('./bem.wxs').bem; 3 | var memoize = require('./memoize.wxs').memoize; 4 | var addUnit = require('./add-unit.wxs').addUnit; 5 | 6 | module.exports = { 7 | bem: memoize(bem), 8 | memoize: memoize, 9 | addUnit: addUnit 10 | }; 11 | -------------------------------------------------------------------------------- /interactiveClassUI/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "types": [ 4 | "uni-app", 5 | "html5plus", 6 | "miniprogram-api-typings/types/lib.wx.api.d.ts", 7 | "mini-types/types/api" 8 | ] 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /系统运行界面/addcource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/系统运行界面/addcource.png -------------------------------------------------------------------------------- /系统运行界面/course-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/系统运行界面/course-list.png -------------------------------------------------------------------------------- /系统运行界面/mp-classList.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/系统运行界面/mp-classList.png -------------------------------------------------------------------------------- /系统运行界面/mp-index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/系统运行界面/mp-index.png -------------------------------------------------------------------------------- /系统运行界面/user-admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/系统运行界面/user-admin.png -------------------------------------------------------------------------------- /系统运行界面/userList.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengsam6/interactiveClass/9bd83f4804efd72c60ec72f88ea6e64af6bcc061/系统运行界面/userList.png --------------------------------------------------------------------------------