Commit c61460e4 by zhanghaozhe

添加formik提交错误时处理

parent a4c00237
......@@ -1524,15 +1524,15 @@
}
},
"@videojs/http-streaming": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/@videojs/http-streaming/-/http-streaming-1.9.3.tgz",
"integrity": "sha512-gNdqyvhxTU67optzxiywHXi/z2+Ju0b6hNth0V7BsL7YAH+R1StIKmmp6SsfFZQfrNW5ykYFoR95M/AT5cg9Ug==",
"version": "1.10.3",
"resolved": "https://registry.npmjs.org/@videojs/http-streaming/-/http-streaming-1.10.3.tgz",
"integrity": "sha512-fxXtwVrQBdhOFh6GymPAPCb4utCI01Zs5fdyZgtR6FSsaz/zGmnzfNS5GvNjBi/hZviMsbNPFaOTTFMMNLNA3A==",
"requires": {
"aes-decrypter": "3.0.0",
"global": "^4.3.0",
"m3u8-parser": "4.3.0",
"mpd-parser": "0.7.0",
"mux.js": "5.1.1",
"mpd-parser": "0.8.1",
"mux.js": "5.1.3",
"url-toolkit": "^2.1.3",
"video.js": "^6.8.0 || ^7.0.0"
}
......@@ -5867,15 +5867,15 @@
}
},
"formik": {
"version": "1.5.7",
"resolved": "https://registry.npmjs.org/formik/-/formik-1.5.7.tgz",
"integrity": "sha512-kZo8lS4WzfC2uivnSkE9DOuX9x+jVjCtIZOlb1A4lHGeURyuLt6eDfwGJzNlcP0lXIwmpANKzegiB8j60B54TA==",
"version": "1.5.8",
"resolved": "https://registry.npmjs.org/formik/-/formik-1.5.8.tgz",
"integrity": "sha512-fNvPe+ddbh+7xiByT25vuso2p2hseG/Yvuj211fV1DbCjljUEG9OpgRpcb7g7O3kxHX/q31cbZDzMxJXPWSNwA==",
"requires": {
"create-react-context": "^0.2.2",
"deepmerge": "^2.1.1",
"hoist-non-react-statics": "^3.3.0",
"lodash": "^4.17.11",
"lodash-es": "^4.17.11",
"lodash": "^4.17.14",
"lodash-es": "^4.17.14",
"prop-types": "^15.6.1",
"react-fast-compare": "^2.0.1",
"tiny-warning": "^1.0.2",
......@@ -8899,9 +8899,9 @@
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
},
"lodash-es": {
"version": "4.17.11",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.11.tgz",
"integrity": "sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q=="
"version": "4.17.15",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz",
"integrity": "sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ=="
},
"lodash._getnative": {
"version": "3.9.1",
......@@ -9515,9 +9515,9 @@
}
},
"mpd-parser": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/mpd-parser/-/mpd-parser-0.7.0.tgz",
"integrity": "sha512-nkzVIkecaDz3q7p4ToN3GR0FV2Odbh0w2sJ8ijsyw79JcBrJoUD3KHIiI8gL0hEDlex7mrVpTxXBsRHowUBmPw==",
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/mpd-parser/-/mpd-parser-0.8.1.tgz",
"integrity": "sha512-WBTJ1bKk8OLUIxBh6s1ju1e2yz/5CzhPbgi6P3F3kJHKhGy1Z+ElvEnuzEbtC/dnbRcJtMXazE3f93N5LLdp9Q==",
"requires": {
"global": "^4.3.2",
"url-toolkit": "^2.1.1"
......@@ -9548,9 +9548,9 @@
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
},
"mux.js": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/mux.js/-/mux.js-5.1.1.tgz",
"integrity": "sha512-Mf/UYmh5b8jvUP+jmrTbETnyFZprMdbT0RxKm/lJ/4d2Q3xdc5GaHaRPI1zVV5D3+6uxArVPm78QEb1RsrmaQw=="
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/mux.js/-/mux.js-5.1.3.tgz",
"integrity": "sha512-FhDcysLvAkO9H8ftBJ2sK1O4Rmz0AWnMS+2uqP7WjrnaAyE/ox11GEiZkRzrWIdp8at9R9qBHDqdURY3/h/xTg=="
},
"nan": {
"version": "2.13.2",
......@@ -13579,13 +13579,13 @@
}
},
"string.prototype.trim": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz",
"integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=",
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz",
"integrity": "sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg==",
"requires": {
"define-properties": "^1.1.2",
"es-abstract": "^1.5.0",
"function-bind": "^1.0.2"
"define-properties": "^1.1.3",
"es-abstract": "^1.13.0",
"function-bind": "^1.1.1"
}
},
"string_decoder": {
......@@ -14536,25 +14536,40 @@
}
},
"video.js": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/video.js/-/video.js-7.5.4.tgz",
"integrity": "sha512-+U3FyLVFbnJdEC6TVMv8U75c8VM00vmVY8TSfFthnvo7/6rz3LFg2Pd3TTGNbV2pEmBhkLLYO+dvmqMNUyc2ZA==",
"version": "7.6.0",
"resolved": "https://registry.npmjs.org/video.js/-/video.js-7.6.0.tgz",
"integrity": "sha512-A0HSKzAmcYkd1xyExqUlM6n8bkghcX54iCvW08bPvvl3UHt8d8zijuylfIWu8vo1Z8fYyk9HPOFs1i3Cldr/cw==",
"requires": {
"@babel/runtime": "^7.2.0",
"@videojs/http-streaming": "1.9.3",
"@babel/runtime": "^7.4.5",
"@videojs/http-streaming": "1.10.3",
"global": "4.3.2",
"keycode": "^2.2.0",
"safe-json-parse": "4.0.0",
"tsml": "1.0.1",
"videojs-font": "3.1.0",
"videojs-vtt.js": "0.14.1",
"videojs-font": "3.2.0",
"videojs-vtt.js": "^0.14.1",
"xhr": "2.4.0"
},
"dependencies": {
"@babel/runtime": {
"version": "7.5.5",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz",
"integrity": "sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==",
"requires": {
"regenerator-runtime": "^0.13.2"
}
},
"regenerator-runtime": {
"version": "0.13.3",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
"integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw=="
}
}
},
"videojs-font": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-3.1.0.tgz",
"integrity": "sha512-rxB68SVgbHD+kSwoNWNCHicKJuR2ga3bGfvGxmB+8fupsiLbnyCwTBVtrZUq4bZnD64mrKP1DxHiutxwrs59pQ=="
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-3.2.0.tgz",
"integrity": "sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA=="
},
"videojs-vtt.js": {
"version": "0.14.1",
......
......@@ -31,7 +31,7 @@
"eslint-plugin-jsx-a11y": "6.1.2",
"eslint-plugin-react": "7.12.4",
"file-loader": "2.0.0",
"formik": "^1.5.7",
"formik": "^1.5.8",
"fs-extra": "7.0.1",
"html-webpack-plugin": "4.0.0-alpha.2",
"http-proxy-middleware": "^0.19.1",
......@@ -74,7 +74,7 @@
"style-loader": "0.23.1",
"terser-webpack-plugin": "1.2.2",
"url-loader": "1.1.2",
"video.js": "^7.5.4",
"video.js": "^7.6.0",
"webpack": "4.28.3",
"webpack-dev-server": "3.1.14",
"webpack-manifest-plugin": "2.0.4",
......
@font-face {font-family: "iconfont";
src: url('iconfont.eot?t=1560753528895'); /* IE9 */
src: url('iconfont.eot?t=1560753528895#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
url('iconfont.woff?t=1560753528895') format('woff'),
url('iconfont.ttf?t=1560753528895') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1560753528895#iconfont') format('svg'); /* iOS 4.1- */
src: url('iconfont.eot?t=1564560236421'); /* IE9 */
src: url('iconfont.eot?t=1564560236421#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
url('iconfont.woff?t=1564560236421') format('woff'),
url('iconfont.ttf?t=1564560236421') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1564560236421#iconfont') format('svg'); /* iOS 4.1- */
}
.iconfont {
......@@ -543,3 +543,11 @@
content: "\e67b";
}
.iconpengyouquaniconx:before {
content: "\e604";
}
.iconplay_hovericon:before {
content: "\e683";
}
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -416,6 +416,12 @@ Created by iconfont
<glyph glyph-name="gouwuche-xianxing" unicode="&#59003;" d="M440-20m-44 0a44 44 0 1 1 88 0 44 44 0 1 1-88 0ZM850-20m-44 0a44 44 0 1 1 88 0 44 44 0 1 1-88 0ZM937.9 119.5H362.1c-3.1 0-8.5 4.5-9.2 10.5L297 548.1 265.6 729c-7.1 57.7-57.9 103-115.8 103H86.1C73.9 832 64 822.1 64 809.9c0-12.2 9.9-22.1 22.1-22.1h63.8c36 0 67.6-28.2 72.2-65.4l31.4-181.3L309.2 124c3.2-26.9 27-48.9 53-48.9h575.9c12.2 0 22.1 9.9 22.1 22.1-0.2 12.4-10.1 22.3-22.3 22.3zM944.9 702.4c-9 10.2-20.9 15.6-34.3 15.6H343c-11.6 0-21-9.4-21-21s9.4-21 21-21h567.5c1 0 1.6-0.1 2.7-1.4 2.8-3.2 5.3-10.7 4.6-17.2l-56.5-363.9c-0.8-6.8-8.4-13-17.2-13.1L404.5 248c-11.6-0.8-20.3-10.9-19.4-22.5 0.8-11.1 10-19.5 21-19.5 0.5 0 1 0 1.6 0.1l438.1 32.4c28.7 0.2 53.9 22.1 57.2 48.9l56.6 364c2.2 18.6-3.5 38.2-14.7 51z" horiz-adv-x="1024" />
<glyph glyph-name="pengyouquaniconx" unicode="&#58884;" d="M512-128C229.223784-128 0 101.223784 0 384S229.223784 896 512 896s512-229.223784 512-512-229.223784-512-512-512z m-83.027027 792.838919L617.762595 439.351351 622.702703 651.58227A305.497946 305.497946 0 0 1 505.828324 674.594595c-25.849081 0-51.684324-3.26573-76.855351-9.755676zM262.918919 524.038919L553.513514 494.702703 406.140541 646.918919a291.964541 291.964541 0 0 1-97.017082-63.584865A288.422054 288.422054 0 0 1 262.918919 524.038919zM231.161081 300.972973L456.648649 489.804108 244.41773 494.702703A305.235027 305.235027 0 0 1 221.405405 377.869838c0-26.001297 3.279568-51.836541 9.755676-76.896865z m140.730811-166.054054L401.297297 425.513514 249.081081 278.168216a290.636108 290.636108 0 0 1 63.584865-97.044757A291.161946 291.161946 0 0 1 371.891892 134.918919z m146.265946-41.513514A309.829189 309.829189 0 0 1 595.027027 103.119568L406.237405 328.648649 401.297297 116.376216A306.162162 306.162162 0 0 1 518.171676 93.405405zM470.486486 273.297297l147.359136-152.216216a291.078919 291.078919 0 0 1 97.003243 63.626378c17.989189 17.712432 33.487568 37.638919 46.232216 59.225946L470.486486 273.297297z m96.864865 4.898595L779.596108 273.297297A305.152 305.152 0 0 1 802.594595 390.171676c0 25.91827-3.26573 51.767351-9.741838 76.855351L567.351351 278.195892zM652.052757 633.081081L622.702703 342.486486l152.216216 147.372973a290.428541 290.428541 0 0 1-63.584865 97.058595A288.823351 288.823351 0 0 1 652.038919 633.081081z" horiz-adv-x="1024" />
<glyph glyph-name="play_hovericon" unicode="&#59011;" d="M512 896c282.763636 0 512-229.236364 512-512s-229.236364-512-512-512S0 101.236364 0 384 229.236364 896 512 896z m182.760727-552.680727a46.545455 46.545455 0 0 1 0 81.361454l-311.086545 172.846546A23.272727 23.272727 0 0 1 349.090909 577.163636v-386.327272a23.272727 23.272727 0 0 1 34.583273-20.363637l311.086545 172.846546z" horiz-adv-x="1024" />
</font>
......
......@@ -5,7 +5,8 @@ import {Toast} from 'antd-mobile'
import {api, http} from "@/utils"
import {HeaderBar} from "@/common"
import {logout, updateUser} from '@/store/userAction'
import {compose} from "redux";
import {WithFullSize} from '@/HOCs'
class MyEdut extends PureComponent {
constructor(props) {
......@@ -107,7 +108,10 @@ class MyEdut extends PureComponent {
}
export default connect(
state => ({user: state.user}),
{logout, updateUser}
export default compose(
connect(
state => ({user: state.user}),
{logout, updateUser}
),
WithFullSize
)(MyEdut)
......@@ -3,9 +3,9 @@ import './button.scss'
import classnames from 'classnames'
const Button = ({children, active}) => {
const Button = ({children, active, ...rest}) => {
return (
<button className={classnames('custom-button', {active})}>
<button className={classnames('custom-button', {active})} {...rest}>
{children}
</button>
);
......
import {useEffect} from 'react'
export default function Effect(props) {
const {submitCount, isValid} = props.formik
const effect = () => {
if(submitCount > 0 && !isValid){
props.onSubmissionError()
}
}
useEffect(effect, [submitCount])
return null
}
\ No newline at end of file
......@@ -79,13 +79,13 @@ class VeriCodeInput extends Component {
}
sendSMS = () => {
const {action, tel, challenge} = this.props
if (!tel) {
const {action, tel, account, challenge} = this.props
if (!tel && !account) {
Toast.info('请输入手机号或邮箱地址')
return
}
http.post(`${api['passport-api']}/quick_sms`, {
phone_num: tel,
phone_num: tel || account,
action: action || 'login',
challenge
}).then(res => {
......
......@@ -9,7 +9,7 @@ import { Toast } from "antd-mobile";
import { HeaderBar, Captcha, ClearableInput } from "@/common";
import { validateTel, validateEmail, http, api } from "@/utils";
import { quickLogin } from '@/store/userAction';
import { isEmpty } from "lodash";
import Effect from '../common/Effect'
class ForgotPassword extends Component {
......@@ -34,12 +34,15 @@ class ForgotPassword extends Component {
})
}
}
onSubmissionError = () => {
const errors = Object.values(this.props.errors);
errors.length && Toast.info(errors[0], 2000, null, false)
}
render() {
const {
values,
errors
isValid
} = this.props
return (
<div className={'forgot-password'}>
......@@ -82,8 +85,9 @@ class ForgotPassword extends Component {
}}
/>
}
<Effect formik={this.props} onSubmissionError={this.onSubmissionError}/>
<Captcha getInstance={this.getCaptchaInstance} onVerify={this.onVerify}/>
<Button active={values.account && values.veriCode && isEmpty(errors)}>下一步</Button>
<Button active={isValid}>下一步</Button>
</Form>
</div>
</div>
......@@ -98,17 +102,17 @@ const formikConfig = {
account: '',
veriCode: ''
}),
validateOnchange: true,
validateOnChange: true,
validateOnBlur: true,
validate: values => {
let errors = {}
if (!validateTel(values.account) && !validateEmail(values.account)) {
errors.account = '请输入正确的手机号或邮箱地址'
}
values.veriCode.toString().length !== 6 && (errors.veriCode = '验证码格式不正确')
return errors
},
handleSubmit(values, {props}) {
let account, address
if (validateEmail(values.account)) {
......
......@@ -10,6 +10,7 @@ import SetPassword from './setPassword'
import BindingTel from './bindingTel'
import { connect } from "react-redux";
import { compose } from "redux";
import {api} from "@/utils";
import account from './account.png'
import qq from './qq.png'
......@@ -42,7 +43,7 @@ class Passport extends Component {
{
logo: sina,
text: '新浪',
url: `http://passport-test.julyedu.com/mob/sinalogin?redirect_url=${this.redirect_url}`
url: `${api['passport-api']}/mob/sinalogin?redirect_url=${this.redirect_url}`
},
]
}
......@@ -61,7 +62,8 @@ class Passport extends Component {
routeWhenUserLoggedIn = () => {
let {history} = this.props
if (Object.values(this.props.user.data).filter(item => !!item).length) {
let {data} = this.props.user
if (data && Object.values(data).filter(item => !!item).length) {
history.action === 'POP' && history.go(-1)
}
}
......
......@@ -13,6 +13,7 @@ import { compose } from 'redux';
import { isEmpty } from 'lodash'
import { Toast } from 'antd-mobile';
import { validateTel } from "@/utils";
import { HeaderBar } from "@/common";
class Login extends Component {
......@@ -33,7 +34,7 @@ class Login extends Component {
case '微信':
let {from} = location.state || {from: {pathname: '/'}}
const redirectURI = window.location.protocol + '//' + window.location.hostname + from.pathname
const redirectURI = window.location.origin + from.pathname
// alert(redirectURI)
window.location.assign(`https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri=${encodeURIComponent(redirectURI)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`)
......@@ -67,6 +68,7 @@ class Login extends Component {
} = this.props
return (
<div className='login'>
<HeaderBar title={'登录'} arrow={true}/>
<Header/>
<Form className="login-info">
<Field
......
......@@ -3,6 +3,7 @@ import './aist-share.scss'
import withFullSize from '@/HOCs/WithFullSize'
import { http, api, wxShare } from "@/utils";
import { getWXObject } from "@/utils/wechat/base";
import {Link} from "react-router-dom";
class AistShare extends PureComponent {
state = {
......@@ -17,7 +18,6 @@ class AistShare extends PureComponent {
action: 0
},
showShareCover: true,
id: '',
user: {
avatar: '',
name: '',
......@@ -35,7 +35,8 @@ class AistShare extends PureComponent {
course: {
title: data.course_title,
des: data.course_desc,
img: data.image_name
img: data.image_name,
id: data.course_id
},
user: {
avatar: data.avatar,
......@@ -69,15 +70,17 @@ class AistShare extends PureComponent {
<span className="username">{user.name}</span>
<span className="time">{user.time}</span>
</div>
<div className="course">
<div className="course-cover">
<img src={course.img} alt="课程封面"/>
</div>
<div className="course-info">
<div className="title">{course.title}</div>
<div className="des">{course.des}</div>
<Link to={{pathname: '/detail', search: `?id=${this.state.course.id}`}}>
<div className="course">
<div className="course-cover">
<img src={course.img} alt="课程封面"/>
</div>
<div className="course-info">
<div className="title">{course.title}</div>
<div className="des">{course.des}</div>
</div>
</div>
</div>
</Link>
<ul className="progress">
<li>
<div className="title">累计学习</div>
......
......@@ -80,7 +80,7 @@ class MyCourses extends PureComponent {
componentDidMount() {
this.props.switchTab(false)
this.props.fetchCoursesListIfNeeded();
this.props.fetchCoursesListIfNeeded()
}
componentWillUnmount() {
......@@ -89,7 +89,7 @@ class MyCourses extends PureComponent {
loadFunc = debounce(() => {
if (this.props.courseList.length % 10 === 0) {
this.props.fetchCoursesListIfNeeded();
this.props.fetchCoursesListIfNeeded()
}
}, 200)
......
import React, { Component } from 'react';
import React, { Component } from 'react'
import HeaderBar from '@/common/HeaderBar'
import './video.scss'
import { NavLink, Route, Redirect, Switch } from 'react-router-dom';
import { NavLink, Route, Redirect, Switch } from 'react-router-dom'
import { http, api, getParam } from '@/utils'
import Recommendation from './recommendation'
import VideoCatalog from './video-catalog'
import DatumCatalog from './datum-catalog'
import { Toast } from 'antd-mobile';
import { Toast } from 'antd-mobile'
import videojs from 'video.js'
import 'video.js/dist/video-js.min.css'
import { Modal } from "antd-mobile";
import { Modal } from "antd-mobile"
import { Loading } from '@/common'
import { connect } from "react-redux"
import jsCookie from 'js-cookie'
let alert = Modal.alert
function ProgressShareModal(props) {
return (
props.isShow &&
<div className='progress-share-modal-wrapper'>
<div className="progress-share-modal">
<div className="title">每日打卡</div>
<ul className="progress-container">
<li>
<div className="title">累计学习</div>
<div className="number"><span className='num'>{props.data.learn_day_count}</span>天</div>
</li>
<li>
<div className="title">行动力超过</div>
<div className="number"><span className='num'>{parseFloat(props.data.action_power)}</span>%
</div>
</li>
</ul>
<div className="share-container">
<div className="title">分享到</div>
<ul>
<li className='share-icon'>
<div className="icon"><i className='iconfont iconweixinzhifu'></i></div>
<div className='text'>微信好友</div>
</li>
<li className='share-icon'>
<div className="icon"><i className='iconfont iconpengyouquaniconx'></i></div>
<div className='text'>朋友圈</div>
</li>
</ul>
</div>
<i className="iconfont iconiconfront-2 close" onClick={props.closeShareModal}/>
</div>
</div>
)
}
class Video extends Component {
......@@ -22,6 +61,12 @@ class Video extends Component {
courseID
ws //websocket instance
timer
token
count
watchSec
previousPlaybackRate = 1
currentPlaybackRate = 1
reconnect = true
state = {
......@@ -35,7 +80,9 @@ class Video extends Component {
course: null,
salePrice: null,
vCourseId: null,
isLoading: true
isLoading: true,
isShowShareModal: false,
shareData: {}
}
......@@ -44,48 +91,90 @@ class Video extends Component {
this.setState({
courseId: this.courseID
})
this.token = jsCookie.get('token')
this.getVideoList()
this.getDatumCatalog()
this.setupWS()
// this.setupTimer()
}
sendStudyRecord = () => {
}
setupWS = () => {
this.ws = new WebSocket('ws://process-test.julyedu.com:9501');
this.ws.addEventListener('onmessage', event => {
console.log(event.data);
this.ws = new WebSocket('ws://process-test.julyedu.com:9502');
this.ws.addEventListener('error', () => {
this.ws = null
this.setupWS();
})
this.ws.addEventListener('open', () => {
console.log('open');
})
this.ws.addEventListener('error', () => {
console.log('error');
})
this.ws.addEventListener('close', () => {
console.log('close');
if(this.reconnect){
this.ws = null
this.setupWS()
}
clearInterval(this.timer)
})
this.ws.addEventListener('message', e => {
const data = JSON.parse(e.data);
data.code == 4040 && (this.reconnect = false)
})
}
sendMessage = message => {
if(this.player){
this.ws.send(JSON.stringify(message))
}
}
//视频结束请求接口
getShareProgressInfo = () => {
http.get(`${api['base-api']}/m/aist/share_data/${this.courseID}/${this.state.videoList[this.state.activeIndex]['id']}`)
.then(res => {
const {data} = res
if (data.errno == 200) {
this.setState({shareData: data.data, isShowShareModal: true})
}
})
}
//告诉服务端切换视频
countSchedule = () => {
this.sendMessage({
mtype: 'count_schedule',
uid: this.props.user.data.uid,
token: this.token,
platform: 5
})
}
sendWatchTime = (sec, rate) => {
const {videoList, activeIndex, vCourseId} = this.state
this.sendMessage({
mtype: 'watch_time',
rate,
time: sec,
video_id: videoList[activeIndex]['id'],
course_id: this.courseID,
v_course_id: vCourseId,
uid: this.props.user.data.uid,
token: this.token,
platform: 5
})
}
setupTimer = () => {
let count = 0
this.count = 0
this.watchSec = 0
clearInterval(this.timer)
this.timer = setInterval(() => {
if(this.player){
console.log(this.player);
console.log(this.player.paused());
if (this.player && this.player.player()) {
if (this.count === 5) {
this.sendWatchTime(this.watchSec, this.currentPlaybackRate)
this.count = this.watchSec = 0
} else {
!this.player.paused() && this.watchSec++
this.count++
}
}
},1000)
}, 1000)
}
......@@ -98,19 +187,20 @@ class Video extends Component {
textTrackDisplay: false,
posterImage: false,
errorDisplay: false,
playbackRates: ['0.75', '1', '1.5', '2'],
userActions: {
doubleClick: () => {
// this.player.pause()
console.log(this);
}
}
playbackRates: ['0.75', '1', '1.5', '2']
})
this.player.enableTouchActivity()
this.player.on('seeking', function () {
console.log('seeking');
this.player.on('ratechange', () => {
this.currentPlaybackRate = this.player.playbackRate()
this.sendWatchTime(this.watchSec, this.previousPlaybackRate)
this.count = this.watchSec = 0
this.previousPlaybackRate = this.currentPlaybackRate
})
this.player.on('ended', () => {
this.sendWatchTime(this.watchSec, this.currentPlaybackRate)
this.getShareProgressInfo()
clearInterval(this.timer)
})
console.log(this.player);
}
componentWillUnmount() {
......@@ -122,10 +212,20 @@ class Video extends Component {
this.ws = null
}
handleClick = index => {
selectVideo = index => {
if (this.hasAuth()) {
if (index === this.state.activeIndex) {
return
}
this.setPlayerSrc(this.state.videoList[index]['play_url'])
this.playVideo()
clearInterval(this.timer)
if (this.ws) {
this.countSchedule()
this.setupTimer()
}
}
this.setState({
activeIndex: index
......@@ -150,6 +250,10 @@ class Video extends Component {
isLoading: false
}),
() => {
if (this.state.course.is_aist) {
this.setupWS()
this.setupTimer()
}
if (this.lessonAvailable()) {
if (this.hasAuth(this.state.activeIndex)) {
Promise.resolve().then(() => {
......@@ -306,7 +410,7 @@ class Video extends Component {
<Route path={`${match.path}/video`} render={props => {
return <VideoCatalog
activeIndex={this.state.activeIndex}
handleClick={this.handleClick}
selectVideo={this.selectVideo}
videoCatalog={this.state.videoList}
{...props}/>
}}/>
......@@ -318,10 +422,17 @@ class Video extends Component {
return this.state.vCourseId ? <Recommendation {...props} vCourseId={this.state.vCourseId}/>
: null
}}/>
<ProgressShareModal isShow={this.state.isShowShareModal}
closeShareModal={() => this.setState({isShowShareModal: false})}
data={this.state.shareData}
/>
</div>
);
}
}
export default Video;
\ No newline at end of file
export default connect(
state => ({user: state.user}),
null
)(Video);
\ No newline at end of file
import React, { Component } from 'react';
import React, { Component } from 'react'
import './video-catalog.scss'
import classnames from 'classnames'
......@@ -6,7 +6,7 @@ import classnames from 'classnames'
class VideoCatalog extends Component {
handleClick = (i) => {
this.props.handleClick(i)
this.props.selectVideo(i)
}
render() {
......@@ -18,15 +18,24 @@ class VideoCatalog extends Component {
return (
<li key={item.id}
className={classnames({active: this.props.activeIndex === index})}
onClick={this.handleClick.bind(this, index)}
>
<span className="title">{item.name}</span>
<span className='duration'>{item.duration}</span>
<i className={classnames(`iconfont`,
[item.video_auth === 0
? 'iconiconfront-74'
: 'iconiconfront-35'],
)}/>
<div className="video-title" onClick={this.handleClick.bind(this, index)}>
<span className="title">{item.name}</span>
<span className='duration'>{item.duration}</span>
<i className={classnames(`iconfont`,
[item.video_auth === 0
? 'iconiconfront-74'
: 'iconplay_hovericon'],
)}/>
</div>
{
(item.practice && item.practice.qid) ? <div className="exercise">
课后练习:{item.practice.title}
<i className={classnames('iconfont', item.practice.is_tested ? 'iconiconfront-3' : 'iconiconfront-74')}/>
{/*<i className='iconfont iconiconfront-74'/>*/}
</div>
: null
}
</li>
)
})
......
.video-catalog {
& li:first-child{
border-top: 1px solid #E7EAF1;
}
li {
height: 44px;
padding: 0 15px;
line-height: 44px;
border-top: 1px solid #E7EAF1;
border-bottom: 1px solid #E7EAF1;
padding: 0 15px;
&.active {
background-color: #F5FBFF;
.title, .duration{
.title, .duration {
color: $active;
}
.video-title {
background-color: #F5FBFF;
}
.exercise{
border-top: 1px solid #E7EAF1;
}
}
.video-title {
height: 44px;
margin: 0 -15px;
padding: 0 15px;
.iconfont{
font-size: 22px;
}
}
.exercise {
padding-left: 15px;
height: 35px;
background: #F5FBFF;
margin-bottom: 15px;
line-height: 35px;
color: #000;
border-top: 1px solid transparent;
.iconfont {
font-size: 18px;
//font-weight: bold;
}
}
}
......
......@@ -36,7 +36,7 @@ $tabHeight: 44px;
margin-bottom: 20px;
}
@mixin button{
@mixin button {
display: block;
-webkit-appearance: none;
outline: none;
......@@ -47,6 +47,7 @@ $tabHeight: 44px;
font-size: 13px;
padding: 0 9px;
}
.btns {
width: 100%;
padding: 0 60px;
......@@ -54,12 +55,13 @@ $tabHeight: 44px;
justify-content: space-around;
}
.purchase-class{
.purchase-class {
@include button;
background-color: $white;
color: $color_FF4000;
}
.purchase-episode{
.purchase-episode {
@include button;
background-color: $bg_FF4000;
color: $white;
......@@ -90,6 +92,10 @@ $tabHeight: 44px;
display: inline-block;
height: $tabHeight;
font-size: $font_16;
border-bottom: 1px solid transparent;
&.active{
border-bottom: 1px solid $active;
}
}
}
......@@ -101,4 +107,125 @@ $tabHeight: 44px;
}
}
.progress-share-modal {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 290px;
height: 332px;
padding: 18px 15px;
background: url("./images/progress-share-bg.png");
background-size: contain;
& > .title {
font-size: 21px;
color: #00656F;
line-height: 30px;
text-align: center;
margin-bottom: 20px;
}
.progress-container {
display: flex;
justify-content: space-between;
margin-bottom: 20px;
li {
flex: 1;
.title {
font-size: 14px;
color: #00838F;
line-height: 20px;
text-align: center;
flex: 1;
margin-bottom: 10px;
}
.number {
font-size: 15px;
color: #00656F;
text-align: center;
.num {
font-size: 33px;
color: #00656F;
}
}
}
}
.share-container {
.title {
position: relative;
text-align: center;
font-size: 14px;
color: #00838F;
margin-bottom: 25px;
&::before {
position: absolute;
top: 50%;
left: 30px;
transform: translateY(-50%);
content: '';
display: block;
width: 70px;
height: 1px;
background: #77c4bf;
}
&::after {
position: absolute;
top: 50%;
right: 30px;
transform: translateY(-50%);
content: '';
display: block;
width: 70px;
height: 1px;
background: #77c4bf;
}
}
ul {
display: flex;
justify-content: space-around;
padding: 0 20px;
text-align: center;
li {
font-size: 12px;
color: #00838F;
.iconfont {
font-size: 40px;
color: #00838f;
}
}
}
}
.close {
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: -63px;
color: #fff;
font-size: 30px;
}
&-wrapper {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
touch-action: none;
z-index: 100;
}
}
}
\ No newline at end of file
......@@ -12,33 +12,23 @@ function RouteMiddlePage(props) {
useEffect(() => {
let {user, location, history} = props
if (history.action === 'POP') {
history.goBack();
return
}
if (!isLoading) {
return
}
if (!user.isFetching) {
if (user.hasError) {
history.replace('/passport', {from: location})
setLoadingState(false)
} else {
let {data} = user || {
data: {
username: '',
avatar: '',
isVip: false,
token: '',
email: '',
uid: ''
}
}
if (Object.values(data).every(item => !!item).length !== 0) {
let {data} = user || {data: {}}
if (data && Object.values(data).every(item => !!item)) {
history.replace(location.pathname)
setLoadingState(false)
}else{
history.replace('/passport', {from: location})
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment