Merge branch 'dev_aliyun' of https://bdgit.educoder.net/Hjqreturn/educoder into dev_Ysl

dev_cs_new
杨树明 6 years ago
commit 409a2f31fb

@ -54,7 +54,7 @@ class ProjectPackages::SaveService < ApplicationService
raise Error, '验证码不能为空' if params[:code].blank?
code = VerificationCode.where(phone: params[:contact_phone], code_type: 9, code: params[:code]).last
raise Error, '无效的验证码' if code.blank? || !code.valid_code?
raise Error, '无效的验证码' if code.blank? || !code.effective?
end
def deal_attachments

@ -10,33 +10,50 @@ class Clappr extends Component{
this.state={
}
}
componentWillUnmount() {
this['player'+this.props.id] && this['player'+this.props.id].destroy()
}
componentDidMount() {
const source = this.props.source || "http://your.video/here.mp4"
const { id } = this.props
const { id, type } = this.props
const _id = `#_player${id}`
if (window['Clappr']) {
const player = new window.Clappr.Player({
if (!window['Clappr'] && window['ClapprLoading'] == true) {
setTimeout(() => {
this.componentDidMount()
}, 300)
return;
}
// && window['clappr-playback-rate-plugin']
if (window['Clappr'] ) {
// http://clappr.github.io/classes/Player.html#method_mute
this['player'+id] = new window.Clappr.Player({
source: source, parentId: _id,
plugins: {
'core': [window.Clappr.MediaControl, window.Clappr.Playback]
}
height: type == 'mp3' ? 60 : 360,
hideMediaControl: type == 'mp3' ? false : true,
// plugins: {
// 'core': [window.Clappr.MediaControl, window['clappr-playback-rate-plugin'].default]
// }
});
} else {
window['ClapprLoading'] = true;
$.getScript(
`${_url_origin}/javascripts/media/clappr.min.js`,
(data, textStatus, jqxhr) => {
window.clappr = window.Clappr
$.getScript(
`${_url_origin}/javascripts/media/clappr-playback-rate-plugin.min.js`,
(data, textStatus, jqxhr) => {
const player = new window.Clappr.Player({
// $.getScript(
// `${_url_origin}/javascripts/media/clappr-playback-rate-plugin.min.js`,
// (data, textStatus, jqxhr) => {
this['player'+id] = new window.Clappr.Player({
source: source, parentId: _id,
plugins: {
'core': [window.Clappr.MediaControl, window['clappr-playback-rate-plugin'].default]
}
height: type == 'mp3' ? 60 : 360,
hideMediaControl: type == 'mp3' ? false : true,
// plugins: {
// 'core': [window.Clappr.MediaControl, window['clappr-playback-rate-plugin'].default]
// }
});
})
// })
});
@ -62,7 +79,7 @@ class Clappr extends Component{
render(){
let { source, id, className } = this.props;
let { source, id, className, type } = this.props;
const _id = `_player${id}`
return(
<React.Fragment>
@ -71,7 +88,7 @@ class Clappr extends Component{
margin-right: 16px;
}
`}</style>
<div id={_id} className={className}></div>
<div id={_id} className={className + ' ' + type}></div>
</React.Fragment>
)
}

@ -1,4 +1,6 @@
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import { Redirect } from 'react-router';
import PropTypes from 'prop-types';
@ -29,7 +31,11 @@ class EvaluateSuccessEffectDisplay extends Component {
}
}
hidepicture = () => {
window.$('#picture_display').hide();
const dom = document.getElementById('picture_display');
ReactDOM.unmountComponentAtNode(dom)
// window.$('#picture_display').hide();
window.$('.data-tip-right').hide()
}
renderContent = () => {
// qrcode
@ -107,11 +113,11 @@ class EvaluateSuccessEffectDisplay extends Component {
<EffectDisplayContent
typeName="音频"
content1={ orignal_file[0] && orignal_file[0].file_url
? <Clappr source={orignal_file[0].file_url} id="1" className="clappr"></Clappr> : null }
? <Clappr source={orignal_file[0].file_url} id="1" className="clappr" type="mp3"></Clappr> : null }
content2={ user_file[0] && user_file[0].file_url
? <Clappr source={user_file[0].file_url} id="2" className="clappr"></Clappr> : null }
? <Clappr source={user_file[0].file_url} id="2" className="clappr" type="mp3"></Clappr> : null }
content3={ answer_file[0] && answer_file[0].file_url
? <Clappr source={answer_file[0].file_url} id="3" className="clappr"></Clappr> : null }
? <Clappr source={answer_file[0].file_url} id="3" className="clappr" type="mp3"></Clappr> : null }
></EffectDisplayContent>
)
} else if (type == 'mp4') {
@ -119,11 +125,11 @@ class EvaluateSuccessEffectDisplay extends Component {
<EffectDisplayContent
typeName="视频"
content1={ orignal_file[0] && orignal_file[0].file_url
? <Clappr source={orignal_file[0].file_url} id="1" className="clappr"></Clappr> : null }
? <Clappr source={orignal_file[0].file_url} id="1" className="clappr" type="mp4"></Clappr> : null }
content2={ user_file[0] && user_file[0].file_url
? <Clappr source={user_file[0].file_url} id="2" className="clappr"></Clappr> : null }
? <Clappr source={user_file[0].file_url} id="2" className="clappr" type="mp4"></Clappr> : null }
content3={ answer_file[0] && answer_file[0].file_url
? <Clappr source={answer_file[0].file_url} id="3" className="clappr"></Clappr> : null }
? <Clappr source={answer_file[0].file_url} id="3" className="clappr" type="mp4"></Clappr> : null }
></EffectDisplayContent>
)
}

@ -294,7 +294,7 @@ class PackageConcent extends Component {
<div className=" item-head-blank"></div>
<div className=" item-head-price">
<div className=" item-head-price mtf12">
{item.min_price===null?"":<span>{item.min_price}</span>}
{item.max_price===null||item.min_price===null?"":<span>~</span>}
{item.max_price===null?"":<span>{item.max_price}</span>}

@ -313,7 +313,7 @@ class PackageIndexNEITaskDetails extends Component {
</span>
</div>
<div className=" item-head-price mtf7">
<div className=" item-head-price mt2">
{data&&data.min_price===null?"":<span><span className={"font-24"}>{data&&data.min_price}</span></span>}
{data&&data.max_price===null||data&&data.min_price===null?"":<span>~</span>}
{data&&data.max_price===null?"":<span><span className={"font-24"}>{data&&data.max_price}</span></span>}

@ -362,4 +362,8 @@
*, *::before, *::after {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.mtf12{
margin-top: -12px;
}

@ -176,7 +176,7 @@ class InfosPackage extends Component{
<div className="item-head-tags">
</div>
<div className="item-head-blank"></div>
<div className="item-head-price">
<div className="item-head-price mtf15">
{item.min_price===null?"":<span>{item.min_price}</span>}
{item.max_price===null||item.min_price===null?"":<span>~</span>}
{item.max_price===null?"":<span>{item.max_price}</span>}
@ -199,8 +199,9 @@ class InfosPackage extends Component{
<span className="item-group-icon"><i className="fa fa-user"></i></span>
<span className="item-group-text">{item.bidding_users_count}人竞标</span>
</div>
<div className="item-group item-other-publish-at">
发布于{moment(item.published_at).format("YYYY-MM-DD HH:mm")}
<div className="item-group item-other-publish-at">
{item.published_at===null?<span className="item-group-text">更新于{moment(item.updated_at).format("YYYY-MM-DD HH:mm")} </span>:
<span className=" item-group-text">发布于{moment(item.published_at).format("YYYY-MM-DD HH:mm")} </span>}
</div>
</div>
</div>

@ -1,93 +1,97 @@
.navInfo{
border:none!important;
position: absolute;
width: 100%;
bottom: -8px;
}
.navInfo li {
float: left;
margin: 0px 40px;
padding:0px;
height: 45px;
line-height: 40px;
font-size: 16px;
position: relative;
}
.navInfo li.active::after{
position: absolute;
left: 0px;
height: 2px;
width: 100%;
content: '';
bottom: 0px;
background: #05101A!important;
color: #666!important;
}
.navInfo li,.navInfo li.ant-menu-item-active{
border-bottom: none!important;
color: #666!important;
}
.navInfo li.ant-menu-item-selected{
border-bottom: 2px solid #05101A!important;
color: #05101A!important;
}
.navInfo ul.ant-menu{float: left!important;border:none!important;}
.substancenenew{
width: 236px;
height: 206px;
background: rgba(248,248,248,1);
border: 2px dotted rgba(225,225,225,1);
opacity: 1;
border-radius: 4px;
padding-top: 50px;
position: inherit;
}
.substancepad{
padding: 20px 20px 0px 20px;
border-bottom: 1px solid transparent;
}
.substancefont{
height:24px;
font-size:18px;
font-family:Microsoft YaHei;
font-weight:400;
line-height:21px;
color:rgba(153,153,153,1);
opacity:1;
margin-top: -8px;
}
.topten{
width: 1px;
height: 100px;
border: 2px soild rgba(225,225,225,1);
background: rgba(225,225,225,1);
border: 1px solid rgba(225,225,225,1);
margin: 0 auto;
}
.leftten{
width: 100px;
height: 1px;
background: rgba(225,225,225,1);
border: 1px solid rgba(225,225,225,1);
margin: 0px auto;
position: absolute;
top: 120px;
left: 88px;
}
.squarebox{
position: absolute;
top: 0px;
left: 0px;
}
/*题库的标签--和资源标签样式相似*/
.bankTag{max-height: 82px;overflow-y: auto}
.bankTag #sourceTag li{margin-left: 0px;margin-right: 5px;}
.bank_list_Tag{cursor: default}
/*资源标签*/
#sourceTag li,.bank_list_Tag{font-size: 12px;color: #4E7A9B;background-color: #E5F3FF;padding: 0px 4px;height: 20px;line-height: 20px; margin-left: 5px;display: inline-block;cursor: pointer;margin-bottom: 5px;}
#sourceTag li a{color: #4e7a9b!important;}
#sourceTag li.active{background-color: #4CACFF;color: #fff;}
#sourceTag li.active a{background-color: #4CACFF;color: #fff!important;}
.navInfo{
border:none!important;
position: absolute;
width: 100%;
bottom: -8px;
}
.navInfo li {
float: left;
margin: 0px 40px;
padding:0px;
height: 45px;
line-height: 40px;
font-size: 16px;
position: relative;
}
.navInfo li.active::after{
position: absolute;
left: 0px;
height: 2px;
width: 100%;
content: '';
bottom: 0px;
background: #05101A!important;
color: #666!important;
}
.navInfo li,.navInfo li.ant-menu-item-active{
border-bottom: none!important;
color: #666!important;
}
.navInfo li.ant-menu-item-selected{
border-bottom: 2px solid #05101A!important;
color: #05101A!important;
}
.navInfo ul.ant-menu{float: left!important;border:none!important;}
.substancenenew{
width: 236px;
height: 206px;
background: rgba(248,248,248,1);
border: 2px dotted rgba(225,225,225,1);
opacity: 1;
border-radius: 4px;
padding-top: 50px;
position: inherit;
}
.substancepad{
padding: 20px 20px 0px 20px;
border-bottom: 1px solid transparent;
}
.substancefont{
height:24px;
font-size:18px;
font-family:Microsoft YaHei;
font-weight:400;
line-height:21px;
color:rgba(153,153,153,1);
opacity:1;
margin-top: -8px;
}
.topten{
width: 1px;
height: 100px;
border: 2px soild rgba(225,225,225,1);
background: rgba(225,225,225,1);
border: 1px solid rgba(225,225,225,1);
margin: 0 auto;
}
.leftten{
width: 100px;
height: 1px;
background: rgba(225,225,225,1);
border: 1px solid rgba(225,225,225,1);
margin: 0px auto;
position: absolute;
top: 120px;
left: 88px;
}
.squarebox{
position: absolute;
top: 0px;
left: 0px;
}
/*题库的标签--和资源标签样式相似*/
.bankTag{max-height: 82px;overflow-y: auto}
.bankTag #sourceTag li{margin-left: 0px;margin-right: 5px;}
.bank_list_Tag{cursor: default}
/*资源标签*/
#sourceTag li,.bank_list_Tag{font-size: 12px;color: #4E7A9B;background-color: #E5F3FF;padding: 0px 4px;height: 20px;line-height: 20px; margin-left: 5px;display: inline-block;cursor: pointer;margin-bottom: 5px;}
#sourceTag li a{color: #4e7a9b!important;}
#sourceTag li.active{background-color: #4CACFF;color: #fff;}
#sourceTag li.active a{background-color: #4CACFF;color: #fff!important;}
.mtf15{
margin-top:-15px;
}
Loading…
Cancel
Save