Commit cc0d1193 by yanglang123

修改

parent a86074d6
.common-footer-daying {
width: 100%;
height: 100px;
position: relative;
padding-top: 49px;
background-color: #f4f4f4;
}
.common-footer-daying .footer-line {
width: 340px;
height: 2px;
background-color: #ddd;
margin: 0 auto;
}
.common-footer-daying .footer-text {
font-size: 24px;
color: #929292;
height: 36px;
position: absolute;
top: 32px;
background-color: #f4f4f4;
left: 42%;
padding-left: 20px;
padding-right: 20px;
}
......@@ -17,7 +17,7 @@
position: absolute;
top: 32px;
background-color: #f4f4f4;
left: 50%;
left: 42%;
padding-left: 20px;
padding-right: 20px;
}
......
......@@ -28,7 +28,8 @@ class AllDescribe extends Component {
}
render() {
let { id, type } = this.props.location.query;
let { id, bizType } = this.props.location.query;
let type = bizType == 2 ? "投票" : "问卷";
const { list } = this.state;
return (
<div className="describe-out">
......@@ -63,7 +64,7 @@ class AllDescribe extends Component {
<div
className="describe-btn"
onClick={() => {
this.handleTo(id, type, list);
this.handleTo(id, bizType, list);
}}
>
立即{type}
......@@ -75,21 +76,17 @@ class AllDescribe extends Component {
// 跳转到投票
handleTo = (id, type, list) => {
//pageMode(呈现样式:1逐题呈现 2整页呈现,3,投票单选)
if (type == "投票") {
if (list.pageMode == 1) {
if (type == 2) {
hashHistory.push({
pathname: func.routerBefore() + "/SurveyDetails",
pathname: func.routerBefore() + "/vote",
query: { id: id },
});
}
if (list.pageMode == 3) {
} else {
hashHistory.push({
pathname: func.routerBefore() + "/vote",
pathname: func.routerBefore() + "/SurveyDetails",
query: { id: id },
});
}
}
};
}
const mapStateToProps = (state) => {
......
......@@ -65,7 +65,7 @@ class ContributeDetail extends Component {
ossPicUrl: JSON.stringify(imgs),
ossVideoUrl: JSON.stringify(videos),
remark: this.state.remark,
targetFrom: this.state.targetFrom ? this.state.targetFrom : "意见建议",//来信目的
targetFrom: this.state.targetFrom ? this.state.targetFrom : "意见建议", //来信目的
anonymousFlag: this.state.anonymousFlag, //是否匿名:1是,0否
};
if (!this.state.titleValue) {
......@@ -78,7 +78,7 @@ class ContributeDetail extends Component {
return Toast.info("请输入期望结果");
}
if (location.hash.indexOf("committeeMailbox") != -1) {
this.props.systemMailboxApi(params, (response) => {
this.props.dwsystemMailboxApi(params, (response) => {
console.log(response);
if (response.code == 1000) {
Toast.info("提交成功");
......@@ -88,7 +88,7 @@ class ContributeDetail extends Component {
}
});
} else {
this.props.dwsystemMailboxApi(params, (response) => {
this.props.systemMailboxApi(params, (response) => {
if (response.code == 1000) {
Toast.info("提交成功");
setTimeout(() => {
......
import React, {Component} from "react";
import {List,Input,Icon} from 'antd';
import {Tabs, Accordion, Flex,Button, InputItem,Modal,ListView,WhiteSpace} from "antd-mobile";
import CommentInput from "../../common/commentinput/commentinput";
import {hashHistory} from 'react-router';
import FontAwesome from 'react-fontawesome';
import React, { Component } from "react";
import { Tabs, ListView, TextareaItem } from "antd-mobile";
import "./index.less";
import trainComment from '../../../image/train-comment.png'
import moment from 'moment';
import {connect} from 'react-redux';
import * as TrainingStepsAction from './TrainingStepsAction';
const TabPane = Tabs.TabPane;
import func from '../../../util/commonFunc'
import SecListView from '../../common/listview/secListView'
import placeImg from '../../../image/my.png'
import zan from '../../../image/zan.png'
import alreadyzan from '../../../image/alreadyzan.png'
import myIcon from '../../../image/my.png';
import trainComment from "./comment-icon.jpg";
import trainSend from "./send-icon.png";
import moment from "moment";
import { connect } from "react-redux";
import * as TrainingStepsAction from "./TrainingStepsAction";
import SecListView from "../../common/listview/secListView";
import placeImg from "../../../image/my.png";
import zan from "../../../image/zan.png";
import alreadyzan from "../../../image/alreadyzan.png";
import myIcon from "../../../image/my.png";
import intl, { init } from "react-intl-universal";
class TrainReviewList extends Component {
constructor(props) {
super(props);
const ds = new ListView.DataSource({ rowHasChanged: (r1, r2) => r1 !== r2 });
const ds = new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2,
});
this.state = {
isLoading:false,
dataSource:ds,
lauStatu:0,
total:0
}
isLoading: false,
dataSource: ds,
lauStatu: 0,
total: 0,
commitContent: "",
};
}
componentDidMount(){
let {commentId}=this.props.location.query;
let params={
commentId:commentId
componentDidMount() {
let { commentId } = this.props.location.query;
let params = {
commentId: commentId,
};
let _this = this;
this.props.reviewReplyList({...params, pageNo:1,pageSize:10},()=>{
this.setState({total:_this.props.total,isLoading:false,dataSource:this.state.dataSource.cloneWithRows(this.props.listData)});
this.props.reviewReplyList({ ...params, pageNo: 1, pageSize: 10 }, () => {
this.setState({
total: _this.props.total,
isLoading: false,
dataSource: this.state.dataSource.cloneWithRows(this.props.listData),
});
const {headsrc,title,time,content,lauNumber} = this.props.location.query;
});
const { headsrc, title, time, content, lauNumber } =
this.props.location.query;
this.state.lauStatu = lauNumber;
}
onEndReached=()=>{
if(this.state.isLoading){
onEndReached = () => {
if (this.state.isLoading) {
return;
}
// this.state.isLoading = true;坑人的写法!
this.setState ({
this.setState({
isLoading: true,
});
let {commentId}=this.props.location.query;
let params={
commentId:commentId
let { commentId } = this.props.location.query;
let params = {
commentId: commentId,
};
console.log(this.props.page);
this.props.reviewReplyList({...params, pageNo:this.props.page.pageNo+1,pageSize:10},()=>{
this.setState({isLoading:false,dataSource:this.state.dataSource.cloneWithRows(this.props.listData)});
this.props.reviewReplyList(
{ ...params, pageNo: this.props.page.pageNo + 1, pageSize: 10 },
() => {
this.setState({
isLoading: false,
dataSource: this.state.dataSource.cloneWithRows(this.props.listData),
});
}
commitVerb=(commitContent,callback)=>{
let {targeId,commentId}=this.props.location.query;
let param = {trainingProjectId:targeId,tpCommentId:commentId,content:commitContent};
);
};
commitVerb = () => {
let { targeId, commentId } = this.props.location.query;
let { commitContent } = this.state;
let param = {
trainingProjectId: targeId,
tpCommentId: commentId,
content: commitContent,
};
this.props.reviewReplyCommit(param, () => {
let { commentId } = this.props.location.query;
let params = {
commentId: commentId
commentId: commentId,
};
this.props.reviewReplyList({ ...params, pageNo: 1, pageSize: 10 }, () => {
this.setState({ isLoading: false, dataSource: this.state.dataSource.cloneWithRows(this.props.listData) });
this.setState({
isLoading: false,
dataSource: this.state.dataSource.cloneWithRows(this.props.listData),
});
});
if(callback){
callback();
}
});
}
laudClick=()=>{
let {commentId}=this.props.location.query;
let params={
tpCommentId:commentId
};
laudClick = () => {
let { commentId } = this.props.location.query;
let params = {
tpCommentId: commentId,
};
let _this = this;
if(this.props.location.query.status=="0"){
this.props.laudSaveEnrollEvent(params,()=>{
let zanNumber = Number(_this.props.location.query.lauNumber)+1;
if (this.props.location.query.status == "0") {
this.props.laudSaveEnrollEvent(params, () => {
let zanNumber = Number(_this.props.location.query.lauNumber) + 1;
_this.props.location.query.lauNumber = String(zanNumber);
_this.props.location.query.status = "1";
_this.setState({lauStatu:1});
_this.setState({ lauStatu: 1 });
});
}else{
} else {
// this.props.TrainingStepsReducer.reviewListData[index].thumbsUps--;
// item.thumbsUps--;
this.props.laudDeleEnrollEvent(params,()=>{
let zanNumber = Number(_this.props.location.query.lauNumber)-1;
this.props.laudDeleEnrollEvent(params, () => {
let zanNumber = Number(_this.props.location.query.lauNumber) - 1;
_this.props.location.query.lauNumber = String(zanNumber);
_this.props.location.query.status = "0";
_this.setState({lauStatu:0});
_this.setState({ lauStatu: 0 });
});
}
};
render(){
render() {
let row = (item, index) => {
let imgsrc = item.userAvatar == "" ? myIcon : item.userAvatar;
let time = moment(item.createTime).format('YYYY-MM-DD HH:mm');
let time = moment(item.createTime).format("YYYY-MM-DD HH:mm");
const imageStyle = {
backgroundImage: `url(${imgsrc})`,
backgroundPosition: "center",
backgroundRepeat: "no-repeat",
backgroundSize: "contain"
}
backgroundSize: "contain",
};
return (
<div className="list-item-div">
<div className="list-item-img-box">
<div className="list-item-img" style={imageStyle}>
</div>
<div className="list-item-img" style={imageStyle}></div>
</div>
<div className="list-item-content">
<h2 className="item-title-style">{item.createByName}</h2>
<p className="item-text-style" dangerouslySetInnerHTML={{ __html: item.content.replace(/\r?\n/g,"</br>") }}></p>
<p
className="item-text-style"
dangerouslySetInnerHTML={{
__html: item.content.replace(/\r?\n/g, "</br>"),
}}
></p>
<div className="item-footer-box">
<p >{time.length > 16 ? time.substring(0, 16) :time} </p>
<p>{time.length > 16 ? time.substring(0, 16) : time} </p>
</div>
</div>
</div>)
}
</div>
);
};
/*点赞xml
<button className={item.replys<=0 ? "item-btn-style" :"item-btn-style-active"} onClick={()=>{this.reviewDetail(item)}} >{`${item.replys <= 0 ? "" : item.replys} 回复`}</button>
<button className="item-zhan-style" onClick={()=>this.laudClick(item)}>
<FontAwesome name=""className={String(item.status)==="1"? "item-zhan-icon-active":"item-zhan-icon"} style={{fontSize: "0.3rem"}} name="thumbs-up" />{item.thumbsUps}
</button> */
const {headsrc,title,time,content} = this.props.location.query;
const { headsrc, title, time, content } = this.props.location.query;
let item = this.props.location.query;
let headerimg = headsrc?headsrc:placeImg;
console.log(headsrc,title,time,content);
let headerimg = headsrc ? headsrc : placeImg;
console.log(headsrc, title, time, content);
const imageStyle = {
backgroundImage: `url(${headerimg})`,
backgroundPosition: "center",
backgroundRepeat: "no-repeat",
backgroundSize: "contain"
}
backgroundSize: "contain",
};
return (
<div className="train-review" style={{backgroundColor:'#fff'}}>
<div className="train-review" style={{ backgroundColor: "#fff" }}>
<div className="header">
<div className="header-img" style={imageStyle}>
</div>
<div className="header-img" style={imageStyle}></div>
<div className="header-contain">
<p className="header-title">{title}</p>
<p className="review-text-style" dangerouslySetInnerHTML={{ __html: content.replace(/\r?\n/g,"</br>") }}></p>
<p
className="review-text-style"
dangerouslySetInnerHTML={{
__html: content.replace(/\r?\n/g, "</br>"),
}}
></p>
<div className="item-header-box">
<p className="item-time-style">{time} </p>
<span className="item-zhan-style" onClick={() => this.laudClick()} style={{fontSize:24}}>
{item.lauNumber}<img src={String(item.status) === "1"?alreadyzan:zan} alt="" style={{height:'0.28rem',width:'auto',paddingLeft:'10px',marginTop:-12}} />
<span
className="item-zhan-style"
onClick={() => this.laudClick()}
style={{ fontSize: 24 }}
>
{item.lauNumber}
<img
src={String(item.status) === "1" ? alreadyzan : zan}
alt=""
style={{
height: "0.28rem",
width: "auto",
paddingLeft: "10px",
marginTop: -12,
}}
/>
</span>
</div>
</div>
</div>
<p style={{ padding: '0.3rem 0.2rem', fontSize: '0.3rem' }}>{intl.get("AllReply")||"全部回复"}({this.state.total})</p>
<p style={{ padding: "0.3rem 0.2rem", fontSize: "0.3rem" }}>
{intl.get("AllReply") || "全部回复"}({this.state.total})
</p>
<SecListView
dataSource={this.state.dataSource}
listStyle={{ height: (document.documentElement.clientHeight) + "px", overflowX: 'hidden', overflowY: 'auto', backgrounColor: 'rgb(233, 233, 233)' }}
listStyle={{
height: '100%',
overflowX: "hidden",
overflowY: "auto",
backgrounColor: "rgb(233, 233, 233)",
}}
renderRow={row}
onEndReached={this.onEndReached}
isLoading={this.state.isLoading}
page={this.props.page}
footText={intl.get('PublishKey47')||'没有更多了'}
/>
<div className="train-footer-box">
<CommentInput
publish={this.commitVerb}
canFocusToggle={true}
<img src={trainComment} className="cell-left-icon" alt="" />
<div className="comment-body">
<TextareaItem
maxLength={800}
placeholder="欢迎发表你的观点"
rows={1}
value={this.state.commitContent}
style={{ width: "90%", backgroundColor: "clear" }}
onChange={(txt) => {
let value = txt;
if (value.length > 800) {
value = value.slice(0, 800);
}
this.setState({ commitContent: value });
}}
ref={(el) => (this.autoFocusInst = el)}
/>
</div>
<img
src={trainSend}
className="cell-left-icon"
alt=""
onClick={this.commitVerb}
/>
</div>
{/*<div className="train-footer-box">*/}
{/*<div>*/}
{/*<Input prefix={<Icon type="edit" style={{ fontSize: 32 }} />} onPressEnter={this.commitVerb} value={this.state.commitContent} onChange={(e) => this.setState({ commitContent: e.nativeEvent.target.value })} placeholder="写评论" />*/}
{/*</div>*/}
{/*<Button style={{ backgroundColor: 'white', color: 'rgb(177,177,177)',borderColor:'white',width:'1.5rem' }} onClick={this.commitVerb}>发布</Button>*/}
{/*</div>*/}
</div>)
</div>
);
}
}
export default connect(state => {
export default connect((state) => {
let { TrainingStepsReducer } = state;
return {
page: TrainingStepsReducer.reviewReplyPage,
listData: TrainingStepsReducer.reviewReplyListData,
total:TrainingStepsReducer.reviewListTotle
}
total: TrainingStepsReducer.reviewListTotle,
};
}, TrainingStepsAction)(TrainReviewList);
......@@ -15,6 +15,7 @@ import MediaDisplay from "../../../common/mediaDisplay/index";
import blackPage from "../../../common/mediaDisplay/black-bg.png";
import trainComment from "./comment-icon.jpg";
import trainSend from "./send-icon.png";
import trainCommentReplay from "../../../image/train-comment.png";
import intl, { init } from "react-intl-universal";
......@@ -41,7 +42,7 @@ class TrainingSteps extends Component {
const ds = new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2,
});
this.locationRef = React.createRef();
this.state = {
displayProgress: false,
courseInfo:
......@@ -83,6 +84,7 @@ class TrainingSteps extends Component {
}
componentWillMount() {
document.removeEventListener("keydown", this.handleKeyDown);
const { tabkey } = this.props.location.query;
this.setState({
......@@ -91,6 +93,7 @@ class TrainingSteps extends Component {
}
componentDidMount() {
document.addEventListener("keydown", this.handleKeyDown);
let _this = this;
if (parseInt(terminalMp) == 0 || parseInt(terminalMp) == 1) {
console.log("原生", terminalMp);
......@@ -187,17 +190,12 @@ class TrainingSteps extends Component {
}
);
};
showInputView = () => {
console.log("出现");
this.setState({ showEnroll: 0 });
};
hiddenInputView = () => {
if (this.state.commitContent == "") {
this.setState({ showEnroll: 1 });
handleKeyDown = (e) => {
if (e.key === "Enter" && !e.shiftKey) {
e.preventDefault();
this.trainCommitVerb();
}
};
//提交评论
trainCommitVerb = () => {
if (!this.state.commitContent) {
......@@ -226,45 +224,15 @@ class TrainingSteps extends Component {
);
});
this.setState({ showEnroll: 1, showComment: false });
} else if (this.state.commentType == 2) {
let { id } = this.props.location.query;
let param = {
trainingProjectId: id,
tpCommentId: this.state.replyCommentTypeId,
content: this.state.commitContent,
};
this.props.reviewReplyCommit(param, () => {
this.setState({ commitContent: "" });
let params = {
id: id,
};
this.props.reviewListData(
{ ...params, pageNo: 1, pageSize: 10 },
false,
() => {
this.setState({
isLoading: false,
});
}
);
Toast.info(intl.get("CommentSuccess") || "评论成功");
});
this.setState({ showEnroll: 1, showComment: false });
}
};
renderContent = (hasFinished) => {
let {
introductionVo = {},
hasEnrolled,
contentVo,
reviewListData,
isMore,
reviewListTotle,
progressVo,
} = this.props.TrainingStepsReducer;
let { activityStateCode } = this.state;
let loadMore = isMore ? (
<button className="load-more" onClick={() => this.onLoadMore()}>
{intl.get("PublishKey74") || "点击加载更多"}
......@@ -352,7 +320,7 @@ class TrainingSteps extends Component {
)}
</div>
</div>
<div style={{ width: "100%", marginTop: 0 }}>
<div style={{ width: "100%", marginTop: 0, position: "relative" }}>
<StickyContainer>{this.renderContent(hasFinished)}</StickyContainer>
</div>
{activityStateCode != "5" && activityStateCode != "6" ? (
......@@ -483,7 +451,10 @@ class TrainingSteps extends Component {
!introductionVo.description.trim() ? null : (
<div>
<div className="product-info-view">
<div className="train-info-view" style={{borderRadius:'12px'}}>
<div
className="train-info-view"
style={{ borderRadius: "12px" }}
>
<div
style={{
marginBottom: "20px",
......@@ -494,7 +465,6 @@ class TrainingSteps extends Component {
style={{
fontSize: "40px",
fontWeight: "bold",
paddingLeft: "40px",
paddingTop: "15px",
paddingBottom: "20px",
color: "#353535",
......@@ -507,7 +477,6 @@ class TrainingSteps extends Component {
<List className="train-info-contain">
<List.Item>
<MediaDisplay
width={document.body.clientWidth - 80}
content={introductionVo.description}
/>
</List.Item>
......@@ -519,7 +488,6 @@ class TrainingSteps extends Component {
style={{
width: "100%",
height: "350px",
paddingLeft: "40px",
paddingRight: "40px",
}}
>
......@@ -532,12 +500,12 @@ class TrainingSteps extends Component {
/>
</div>
) : (
introductionVo.detailsImage.map((item) => {
introductionVo.detailsImage.map((item, index) => {
return (
<div
key={index}
style={{
width: "100%",
paddingLeft: "40px",
paddingRight: "15px",
marginBottom: "10px",
}}
......@@ -561,7 +529,6 @@ class TrainingSteps extends Component {
<p
style={{
fontWeight: "bold",
paddingLeft: "40px",
paddingBottom: "20px",
color: "#353535",
fontSize: "40px",
......@@ -572,7 +539,6 @@ class TrainingSteps extends Component {
<div
style={{
fontSize: "28px",
paddingLeft: "40px",
color: "#659EFE",
textDecoration: "underline",
}}
......@@ -621,8 +587,18 @@ class TrainingSteps extends Component {
</div>
);
};
handleInputFocus = () => {
const targetDiv = this.locationRef.current;
if (targetDiv) {
const targetTop = targetDiv.offsetTop;
window.scrollTo({
top: targetTop,
behavior: "smooth",
});
}
};
//评论
renderComment = (reviewListData, loadMore) => {
renderComment = () => {
let { reviewPageNo, reviewListTotle } = this.props.TrainingStepsReducer;
let row = (item, section, row) => {
......@@ -711,16 +687,34 @@ class TrainingSteps extends Component {
className="train-comment"
style={{ paddingBottom: "1rem", backgroundColor: "#F4F4F4" }}
>
<div className="train-comment-contain">
<div className="train-comment-contain" style={{zIndex:'99999'}}>
<img src={trainComment} className="cell-left-icon" alt="" />
<div className="comment-slider" onClick={() => this.commentShow(1)}>
{" "}
{intl.get("PublishKey85") || "说点什么吧~"}
<div className="comment-body">
<TextareaItem
maxLength={800}
placeholder="欢迎发表你的观点"
rows={1}
value={this.state.commitContent}
style={{ backgroundColor: "clear" }}
onChange={(txt) => {
let value = txt;
if (value.length > 800) {
value = value.slice(0, 800);
}
this.setState({ commitContent: value });
}}
onFocus={this.handleInputFocus}
ref={(el) => (this.autoFocusInst = el)}
/>
</div>
<img src={trainSend} className="cell-left-icon" alt="" onClick={this.trainCommitVerb} />
</div>
<p style={{ padding: "0.3rem 0.2rem", fontSize: "0.3rem" }}>
<div
ref={this.locationRef}
style={{ padding: "0.3rem 0.2rem", fontSize: "0.3rem" }}
>
{intl.get("all_comment") || "全部评论"}
</p>
</div>
{/* */}
<SecListView
key={this.state.refreshTrainComment}
......@@ -734,67 +728,11 @@ class TrainingSteps extends Component {
pageNo: reviewPageNo,
pageSize: 10,
}}
// footText={intl.get("PublishKey47") || "没有更多了"}
/>
<Modal
title={intl.get("Comment") || "评论"}
visible={this.state.showComment}
transparent
maskClosable={false}
className={"train-comment-input"}
onClose={this.commentHidden}
footer={[
{
text: intl.get("Cancel") || "取消",
onPress: () => {
this.commentHidden();
},
},
{
text: intl.get("Yes") || "确定",
onPress: () => {
this.trainCommitVerb(1, 0);
},
},
]}
>
<div className="comment-body">
<TextareaItem
maxLength={800}
placeholder={intl.get("WriteComment") || "写评论"}
rows={4}
value={this.state.commitContent}
style={{ backgroundColor: "clear" }}
onChange={(txt) => {
let value = txt;
if (value.length > 800) {
value = value.slice(0, 800);
}
this.setState({ commitContent: value });
}}
ref={(el) => (this.autoFocusInst = el)}
/>
</div>
</Modal>
</div>
);
};
reachEnd = () => {};
commentShow = (type, id) => {
//type=1为项目评论,2为项目评论回复
this.setState({
showComment: true,
commentType: type,
replyCommentTypeId: id,
});
};
commentHidden = () => {
this.setState({
showComment: false,
commitContent: "",
});
};
baomingHidden = () => {
this.setState({
baomingModal: false,
......
......@@ -12,7 +12,7 @@
}
.train-info-view {
background-color: #fff;
padding: 15px 0;
padding: 15px 30px;
}
.train-info-view .tp-icon {
width: 24px !important;
......@@ -251,6 +251,7 @@
}
.train-footer-box {
display: flex;
align-items: center;
border-top: solid 1px #dddddd;
position: fixed;
left: 0;
......@@ -261,45 +262,12 @@
overflow: hidden;
z-index: 999;
}
.train-footer-box div {
height: 0.6rem;
-webkit-box-flex: 6;
-webkit-flex: 6;
-ms-flex: 6;
flex: 6;
}
.train-footer-box input {
margin: auto;
height: 0.6rem;
background-color: #f5f5f5;
border-radius: 0.3rem;
display: inline-block;
border: none;
padding-left: 0.3rem !important;
font-size: 0.25rem;
color: #333333;
}
.train-footer-box .enroll-submit {
-webkit-box-flex: 2;
-webkit-flex: 2;
-ms-flex: 2;
flex: 2;
border: 0;
border-radius: 0;
font-size: 0.25rem;
}
.train-footer-box .enroll-submitInfo {
-webkit-box-flex: 3;
-webkit-flex: 3;
-ms-flex: 3;
flex: 3;
color: white;
font-size: 0.28rem;
border-radius: 0;
border: 0;
background-color: #4285f4;
padding: 0;
margin: 0;
.train-footer-box .cell-left-icon {
height: 43px;
margin-left: 9px;
margin-right: 15px;
width: auto;
margin-top: 5px;
}
.header {
display: flex;
......@@ -399,7 +367,6 @@
margin: 0 auto;
border-radius: 12px;
padding-top: 30px;
padding-bottom: 30px;
}
.train-up-info {
font-size: 0.31rem;
......@@ -490,7 +457,6 @@
display: flex;
flex-direction: column;
justify-content: space-between;
padding-left: 40px;
}
.train-info p {
color: #fff;
......@@ -533,6 +499,11 @@
padding: 0 !important;
color: #4a4a4a !important;
}
.train-info .train-info-contain span {
font-size: 30px !important;
padding: 0 !important;
color: #4a4a4a !important;
}
.product-rule {
padding: 0.2rem 0.4rem;
}
......@@ -689,21 +660,24 @@
flex-direction: column;
width: 92%;
margin: 0 auto;
transform: translateY(-80px);
}
.train-comment > p {
background-color: white;
}
.train-comment .train-comment-contain {
position: fixed;
bottom: 0;
left: 0;
background-color: white;
height: 162px;
padding: 58px 54px 58px 26px;
padding: 20px 40px;
display: flex;
align-items: center;
border-bottom: solid 1px #e4e4e4;
width: 100%;
}
.train-comment .train-comment-contain .cell-left-icon {
height: 43px;
margin-left: 9px;
margin-right: 15px;
width: auto;
margin-top: 5px;
}
......@@ -721,11 +695,21 @@
float: right;
}
.comment-body {
height: 2.5rem;
border-top: 2px solid #eee;
overflow: scroll;
background-color: #f4f4f4;
border-radius: 2px;
width: 90%;
margin-left: 15px;
margin-right: 15px;
background: #fff;
height: 60px !important;
}
.comment-body .am-list-item {
border-radius: 10px;
min-height: 60px !important;
}
.comment-body .am-textarea-control {
padding: 0 !important;
}
.comment-body .am-textarea-control textarea {
font-size: 28px !important;
}
.signup-button {
display: block;
......
......@@ -9,7 +9,7 @@
}
.train-info-view {
background-color: #fff;
padding: 15px 0;
padding: 15px 30px;
.tp-icon {
width: 24px !important;
height: 24px;
......@@ -390,6 +390,7 @@
.train-footer-box {
display: flex;
align-items: center;
border-top: solid 1px rgb(221, 221, 221);
position: fixed;
left: 0;
......@@ -399,49 +400,12 @@
background-color: #fff;
overflow: hidden;
z-index: 999;
div {
height: 0.6rem;
-webkit-box-flex: 6;
-webkit-flex: 6;
-ms-flex: 6;
flex: 6;
}
input {
margin: auto;
height: 0.6rem;
background-color: rgb(245, 245, 245);
border-radius: 0.3rem;
display: inline-block;
border: none;
padding-left: 0.3rem !important;
font-size: 0.25rem;
color: #333333;
}
.enroll-submit {
-webkit-box-flex: 2;
-webkit-flex: 2;
-ms-flex: 2;
flex: 2;
border: 0;
border-radius: 0;
font-size: 0.25rem;
}
.enroll-submitInfo {
-webkit-box-flex: 3;
-webkit-flex: 3;
-ms-flex: 3;
flex: 3;
color: white;
font-size: 0.28rem;
border-radius: 0;
border: 0;
background-color: @themeColor;
padding: 0;
margin: 0;
.cell-left-icon {
height: 43px;
margin-left: 9px;
margin-right: 15px;
width: auto;
margin-top: 5px;
}
}
......@@ -559,11 +523,6 @@
margin: 0 auto;
border-radius: 12px;
padding-top: 30px;
padding-bottom: 30px;
.video-my-play {
// height: 350px !important;
// padding-top: 0% !important;
}
}
.train-up-info {
font-size: 0.31rem;
......@@ -634,7 +593,6 @@
display: flex;
flex-direction: column;
justify-content: space-between;
padding-left: 40px;
p {
color: #fff;
......@@ -675,6 +633,11 @@
padding: 0 !important;
color: #4a4a4a !important;
}
span {
font-size: 30px !important;
padding: 0 !important;
color: #4a4a4a !important;
}
}
}
......@@ -858,21 +821,23 @@
flex-direction: column;
width: 92%;
margin: 0 auto;
transform: translateY(-80px);
> p {
background-color: white;
}
.train-comment-contain {
position: fixed;
bottom: 0;
left: 0;
background-color: white;
height: 162px;
padding: 58px 54px 58px 26px;
padding: 20px 40px;
display: flex;
align-items: center;
border-bottom: solid 1px #e4e4e4;
width: 100%;
.cell-left-icon {
height: 43px;
margin-left: 9px;
margin-right: 15px;
width: auto;
margin-top: 5px;
}
......@@ -894,11 +859,22 @@
}
.comment-body {
height: 2.5rem;
border-top: 2px solid #eee;
overflow: scroll;
background-color: #f4f4f4;
border-radius: 2px;
width: 90%;
margin-left: 15px;
margin-right: 15px;
background: #fff;
height: 60px !important;
.am-list-item {
border-radius: 10px;
min-height: 60px !important;
}
.am-textarea-control {
padding: 0 !important;
}
.am-textarea-control textarea {
font-size: 28px !important;
}
}
.signup-button {
......
......@@ -53,10 +53,8 @@ export default class SecListView extends Component {
willreceiveprops(props){
console.log('list是否有状态变化',props);
}
render() {
const { dataSource, renderRow, isLoading, secHeader,renderHeader,footText,hasMore,className } = this.props;
console.log(footText);
let page = this.props.page,listStyle = this.props.listStyle;
/*
dataSource: ListView.dataSource数据
......
......@@ -171,7 +171,7 @@ class MyExam extends Component {
},
{
key: "2",
title: <span className="tabspan"></span>,
title: <span className="tabspan"></span>,
},
];
......
......@@ -111,7 +111,7 @@ class ShowAnswer extends Component {
);
return (
<div className="exam-question">
<div className="top-header1" style={{ marginTop: "-40px" }}>
<div className="top-header1">
<div className="finish-answer-header1">
<div
className="paperName"
......
.train-index-container {
width: 100%;
height: 100%;
overflow-x: hidden;
overflow-y: auto;
}
.train-index-container .train-container {
flex: 1;
......@@ -51,13 +49,13 @@
white-space: nowrap;
overflow: hidden;
font-size: 0.28rem;
color: #4A4A4A;
color: #4a4a4a;
}
.train-index-container .train-container .train-item-card-time {
margin-top: 0.1rem;
height: 0.32rem;
margin-left: 0.16rem;
color: #9B9B9B;
color: #9b9b9b;
}
.train-index-container .train-container .train-item-cardt {
margin-left: 0.3rem;
......@@ -72,7 +70,7 @@
.train-index-container .train-container .moreBtn {
width: 100%;
height: 0.4rem;
font-Size: 0.12rem;
font-size: 0.12rem;
background-color: #00aaff;
color: #fff;
}
......@@ -11,8 +11,7 @@ import func from "../../util/commonFunc";
//列表卡片
import { connect } from "react-redux";
import * as MenuTrainAction from "./MenuTrainAction";
import moment from "moment";
import "./style.less";
import "./../newsList/style.less";
import "./MenuTrain.less";
import TaskCalendar from "./TaskCalendar/index";
import intl from "react-intl-universal";
......@@ -37,7 +36,7 @@ class MenuTrain extends Component {
refreshList: "",
activeId: "",
activeList: [],
taskList:[],
taskList: [],
nowData: "",
};
}
......@@ -68,7 +67,7 @@ class MenuTrain extends Component {
this.setState({
isLoading: true,
});
this.props.trainListData(params, false, () => {
this.props.trainListData(params, () => {
const { MenuTrainReducer } = _this.props;
_this.setState({
isLoading: false,
......@@ -89,7 +88,6 @@ class MenuTrain extends Component {
);
};
newsClassifyClick = (data) => {
console.log(data, "点击情况~~~~~~~~~");
const { activeId } = this.state;
let _this = this;
if (activeId != data.activityType) {
......@@ -116,7 +114,7 @@ class MenuTrain extends Component {
activityName: intl.get("AllActive"),
});
}
this.setState({ activeList: allClassify,taskList:taskList });
this.setState({ activeList: allClassify, taskList: taskList });
});
};
//更改日期,每次更改日期去获取新的任务列表,默认打开课程,第一页
......@@ -182,19 +180,27 @@ class MenuTrain extends Component {
return thisMonth;
};
render() {
let { trainDataList,taskList, isLoading, refreshList, activeList, activeId } =
this.state;
let {
trainDataList,
taskList,
isLoading,
refreshList,
activeList,
activeId,
} = this.state;
return (
<div className="train-index-container" onScroll={this.listScroll}>
<div className="train-container" id="train-scroll-listen-container">
{/* 滚动页签 */}
<div>
<div className="news-list-page-container">
<div className="news-list-page-scroll-container ">
<NewsClassifyList
list={activeList}
activeId={activeId}
onClick={this.newsClassifyClick}
/>
</div>
</div>
{/* 日历 */}
<div className="taskView" style={{ backgroundColor: "#fff" }}>
<div className={"taskCalendarView moveDown"} id="taskCalendarView">
......@@ -208,7 +214,7 @@ class MenuTrain extends Component {
</div>
</div>
{/* 数据列表 */}
<div style={{marginTop:'20px'}}>
<div style={{ marginTop: "20px" }}>
<TrainIndexList
key={refreshList}
list={trainDataList}
......@@ -256,7 +262,6 @@ export default connect((state) => {
const NewsClassifyList = ({ list, activeId, onClick }) => {
return (
<div className="news-classify-list-container">
<div className="news-classify-list-container-bg"></div>
<div
className="news-classify-list-scroll-container"
id={"news-classify-list-scroll-id"}
......@@ -279,9 +284,7 @@ const NewsClassifyItem = ({ data, isActive, onClick }) => {
return (
<div className="news-classify-item-container" onClick={onClick}>
{isActive ? <span>{data.activityName}</span> : data.activityName}
{
isActive ? <div className="active"></div> :''
}
{isActive ? <div className="active"></div> : ""}
</div>
);
};
.train-index-container {
width: 100%;
height: 100%;
overflow-x: hidden;
overflow-y: auto;
.train-container {
flex: 1;
width: 100%;
......@@ -12,7 +9,7 @@
padding: 0;
}
overflow-y:auto;
overflow-y: auto;
.my-carousel {
.slider-frame {
......@@ -20,7 +17,6 @@
}
}
.am-list-view-scrollview-content {
position: static !important;
}
......@@ -43,8 +39,8 @@
}
.train-item-card {
margin-left: 0.20rem;
height: 3.20rem;
margin-left: 0.2rem;
height: 3.2rem;
width: 45.333%;
float: left;
}
......@@ -63,20 +59,20 @@
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
font-size: .28rem;
color: #4A4A4A;
font-size: 0.28rem;
color: #4a4a4a;
}
.train-item-card-time {
margin-top: 0.10rem;
margin-top: 0.1rem;
height: 0.32rem;
margin-left: 0.16rem;
color: #9B9B9B;
color: #9b9b9b;
}
.train-item-cardt {
margin-left: 0.30rem;
height: 3.20rem;
margin-left: 0.3rem;
height: 3.2rem;
width: 45.333%;
float: left;
}
......@@ -89,12 +85,9 @@
.moreBtn {
width: 100%;
height: 0.4rem;
font-Size: 0.12rem;
font-size: 0.12rem;
background-color: #00aaff;
color: #fff;
}
}
}
.singleLineOverflow {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: break-all;
}
.news-banner-carsouel-container {
width: 100%;
padding: 24px 30px;
}
.news-classify-list-container {
width: 100%;
height: 90px;
background-color: #fff;
overflow-y: hidden;
overflow-x: auto;
}
.news-classify-list-container .news-classify-list-container-bg {
width: 100%;
height: 90px;
position: absolute;
left: 0;
top: 0;
background-color: #d23a29;
z-index: 1;
}
.news-classify-list-container .news-classify-list-scroll-container {
width: max-content;
height: 90px;
position: relative;
z-index: 2;
padding: 0 10px;
}
.news-classify-list-container .news-classify-list-scroll-container .news-classify-item-container {
max-width: 364px;
height: 90px;
line-height: 90px;
text-align: center;
margin: 0 25px;
display: inline-block;
vertical-align: middle;
font-size: 32px;
color: #fff;
font-weight: 400;
}
.news-classify-list-container .news-classify-list-scroll-container .news-classify-item-container span {
padding-bottom: 12px;
font-size: 36px;
}
.news-classify-list-container .news-classify-list-scroll-container .news-classify-item-container .active {
width: 65%;
margin: 0 auto;
margin-top: -13px;
height: 5px;
background-color: #fff;
border-radius: 5px;
}
.news-classify-list-container .news-third-classify-list-scroll-container {
width: max-content;
height: 60px;
position: relative;
z-index: 2;
padding: 0 10px;
}
.news-classify-list-container .news-third-classify-list-scroll-container .news-third-classify-item-container {
max-width: 324px;
height: 60px;
line-height: 60px;
text-align: center;
margin: 0 25px;
display: inline-block;
vertical-align: middle;
font-size: 30px;
color: #666;
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: break-all;
}
.news-classify-list-container .news-third-classify-list-scroll-container .news-third-classify-item-container span {
color: #4285f4;
}
.news-item-list-container {
width: 100%;
}
@import "../../static/theme.less";
.news-banner-carsouel-container {
width: 100%;
padding: 24px 30px;
}
.news-classify-list-container {
width: 100%;
height: 90px;
background-color: #fff;
overflow-y: hidden;
overflow-x: auto;
.news-classify-list-container-bg {
width: 100%;
height: 90px;
position: absolute;
left: 0;
top: 0;
background-color: #d23a29;
z-index: 1;
}
.news-classify-list-scroll-container {
width: max-content;
height: 90px;
position: relative;
z-index: 2;
padding: 0 10px;
.news-classify-item-container {
max-width: 364px;
height: 90px;
line-height: 90px;
text-align: center;
margin: 0 25px;
display: inline-block;
vertical-align: middle;
font-size: 32px;
color: #fff;
font-weight: 400;
span {
padding-bottom: 12px;
font-size: 36px;
}
.active {
width: 65%;
margin: 0 auto;
margin-top: -13px;
height: 5px;
background-color: #fff;
border-radius: 5px;
}
}
}
.news-third-classify-list-scroll-container {
width: max-content;
height: 60px;
position: relative;
z-index: 2;
padding: 0 10px;
.news-third-classify-item-container {
max-width: 324px;
height: 60px;
line-height: 60px;
text-align: center;
margin: 0 25px;
display: inline-block;
vertical-align: middle;
font-size: 30px;
color: #666;
font-weight: 400;
.singleLineOverflow;
span {
color: @themeColor;
}
}
}
}
.news-item-list-container {
width: 100%;
}
......@@ -61,6 +61,9 @@ class MyLeaveMessage extends Component {
}
if (!this.state.contentValue) {
return Toast.info("请输入问题或建议");
}1
if (this.state.contentValue.length<10) {
return Toast.info("最少输入10字或以上内容");
}
let params = {
name: this.state.titleValue,
......@@ -118,7 +121,7 @@ class MyLeaveMessage extends Component {
<div className="contribute-detail-box">
<div className="top-tit">
问题或建议<span className="red-star">*</span>
<span>(10-500字)</span>
<span>(10-500字)</span>
</div>
<TextArea
value={this.state.contentValue}
......@@ -127,6 +130,7 @@ class MyLeaveMessage extends Component {
}
placeholder="请填写您的问题或建议"
rows={8}
maxLength={500}
/>
</div>
<div className="contribute-detail-box">
......
......@@ -61,8 +61,14 @@ class ContributeDetail extends Component {
if (!this.state.titleValue) {
return Toast.info("请输入标题");
}
if (imgs.length == 0) {
return Toast.info("请上传图片或视频");
if (!this.state.contentValue) {
return Toast.info("请输入内容");
}
if (!this.state.authValue) {
return Toast.info("请输入作者");
}
if (!this.state.delValue) {
return Toast.info("请输入支部和部室");
}
this.props.commitContributeApi(params, (response) => {
console.log(response);
......@@ -94,7 +100,7 @@ class ContributeDetail extends Component {
/>
</div>
<div className="contribute-detail-box">
<div className="top-tit">正文</div>
<div className="top-tit">正文<span className="red-star">*</span></div>
<TextArea
value={this.state.contentValue}
onChange={(event) =>
......@@ -105,7 +111,7 @@ class ContributeDetail extends Component {
/>
</div>
<div className="contribute-detail-box">
<div className="top-tit">图片或视频上传<span className="red-star">*</span></div>
<div className="top-tit">图片或视频上传</div>
<PostUploadFile
acceptFileType="image/*,video/*"
maxSize={{ image: 10 }}
......@@ -118,7 +124,7 @@ class ContributeDetail extends Component {
<div className="contribute-detail-box">
<div className="user-tit">以下为公开信息,将会在稿件中显示</div>
<div className="userinfo-box">
<div className="userinfo-name">作者</div>
<div className="userinfo-name">作者<span style={{color:'red'}}>*</span></div>
<Input
value={this.state.authValue}
onChange={(event) =>
......@@ -129,7 +135,7 @@ class ContributeDetail extends Component {
/>
</div>
<div className="userinfo-box">
<div className="userinfo-name">支部和部室</div>
<div className="userinfo-name">支部和部室<span style={{color:'red'}}>*</span></div>
<Input
value={this.state.delValue}
onChange={(event) =>
......
......@@ -52,7 +52,7 @@ class Mycontribute extends Component {
_this.setState({
activeId: index,
activeTwoId: null,
typeOne: data.id,
typeOne: data.value,
typeTwo: null,
activeThreeId: null,
typeThree: null,
......@@ -76,7 +76,7 @@ class Mycontribute extends Component {
_this.setState({
activeTwoId: index,
activeThreeId: null,
typeTwo: data.id,
typeTwo: data.value,
typeThree: null,
});
}
......@@ -87,7 +87,7 @@ class Mycontribute extends Component {
if (activeThreeId != index) {
_this.setState({
activeThreeId: index,
typeThree: data.id,
typeThree: data.value,
});
}
};
......
/**
* Created by pis on 2018/6/20.
*/
import React, {Component} from 'react';
import {Icon} from 'antd';
import {
Modal,
Flex,
ListView
} from 'antd-mobile';
import {connect} from 'react-redux';
import React, { Component } from 'react';
import { Modal, ListView } from 'antd-mobile';
import { connect } from 'react-redux';
import * as detailsAction from './detailsAction';
import AnswerItem from '../../components/exam/question/AnswerItem/AnswerItem';
import Card from '../../components/exam/question/card/card';
import '../../components/exam/less/examquestion.less';
const alert = Modal.alert;
import DongAnswer from '../../components/mysurvey/Grade/DongAnswer'
import moment from "moment/moment";
import blackBg from "../../common/mediaDisplay/black-bg.png";
import intl from "react-intl-universal";
import './less/examquestion.less';
class SurveyAnswer extends Component {
constructor(props) {
super(props);
this.timer = null;
let dataSource = new ListView.DataSource({rowHasChanged: (row1, row2) => true})
let dataSource = new ListView.DataSource({ rowHasChanged: (row1, row2) => true })
let {id, answerId}=this.props.location.query;
let { id, answerId } = this.props.location.query;
let data = 1;
this.state = {
questions: dataSource,
......@@ -46,14 +38,14 @@ class SurveyAnswer extends Component {
this.setState({
startTime: new Date()
})
let {examId, isExam, answerId}=this.state;
let { examId, isExam, answerId } = this.state;
let params = {
examId: examId,
pageNo: 1,
pageSize: 10
};
if (String(isExam) == 1) {
this.props.examQuestionListData({...params, answerId: answerId}, false, isExam);
this.props.examQuestionListData({ ...params, answerId: answerId }, false, isExam);
}
}
......@@ -69,16 +61,9 @@ class SurveyAnswer extends Component {
this.props.questionIntialReducer();
this._timer && clearInterval(this._timer);
}
timeDuration=(time)=>{
let h=this.addZero(Number.parseInt(time/3600%24));
let m=this.addZero(Number.parseInt(time/60%60));
let s=this.addZero(Number.parseInt(time%60));
return h+":"+m+":"+s;
};
addZero=(n)=> n<10? '0'+n : n;
render() {
let {questions, height}=this.state;
let {isMore}=this.props.DetailReducer;
let { questions, height } = this.state;
let { isMore } = this.props.DetailReducer;
let separator = (sectionID, rowID) => (
<div
className="separator"
......@@ -86,22 +71,18 @@ class SurveyAnswer extends Component {
/>
);
return (
<div className="exam-question">
<div className="top-header">
<div className="finish-answer-header">
<div className="exam-question1">
<div className="top-header">
<div className="header"
style={{borderBottom: '5px'}}>{intl.get("Research") || "调研"}</div>
</div>
</div>
调研结果
</div>
<div className='answer-list'>
<ListView
ref="questionRef"
dataSource={questions}
renderFooter={() => (<div style={{padding: 30, textAlign: 'center'}}>
{isMore ? intl.get("PublishKey23")||'加载中...' : intl.get("PublishKey30")||'没有更多数据'}
renderFooter={() => (<div style={{ padding: 30, textAlign: 'center',color:'#fff' }}>
{isMore ? '加载中...' : '没有更多数据'}
</div>)}
style={{width: "100%", height: height, overflow: "auto"}}
style={{ width: "92%", margin: '0 auto' }}
pageSize={1}
renderRow={(rowData, sectionID, rowID) => this.questionItem(rowData, sectionID, rowID)}
renderSeparator={separator}
......@@ -109,52 +90,14 @@ class SurveyAnswer extends Component {
onEndReached={() => this.onEndReached()}
onEndReachedThreshold={10}
/>
{/* <Flex className="commonBtn">
<Flex.Item className="flex-item-style" onClick={() => this.showCard()}>
<button className="questionCard">
<Icon type="calendar" style={{fontSize: '.28rem', color: '#4285f4', marginRight: '.2rem'}}/>答题卡
</button>
</Flex.Item>
<Flex.Item className="flex-item-btn">
<button className={JSON.stringify(questionsKey.epList) !== "[]" ? "active-submit" : "submit"}
onClick={() => this.submitPaper()}>交卷
</button>
</Flex.Item>
</Flex>*
<Modal popup
visible={this.state.card}
style={{height: '50%', bottom: 0, position: 'fixed'}}
onClose={() => this.closeCard()}
animationType="slide-up"
>
<div className="card-title">点击序号可快速定位到当前题目</div>
<Card flags={pageIndex} clickCircle={(index) => this.clickCircle(index)} choose={this.answerids}/>
<div className="close-card" onClick={() => this.closeCard()}>关闭</div>
</Modal>*/}
</div>
);
}
clickCircle = (index) => {
let block = document.getElementsByClassName('question-block');
this.refs.questionRef.scrollTo(0, block[index].offsetTop)
};
submitPaper = () => {
let {questionsKey, questionSum, needAnswerArr ,duration}=this.props.DetailReducer;
if (JSON.stringify(questionsKey.epList) !== "[]") {
let len = questionsKey.epList.length;
let now = needAnswerArr.length - len > 0 ? `${intl.get("Also")||"还有"}${needAnswerArr.length - len}${intl.get("PublishKey14")||"道题未答,确认提交"}?` : intl.get("PublishKey170")||"确认提交";
alert(now, '', [
{text: intl.get("Cancel")||'取消', onPress: () => false},
{text: intl.get("Submit")||'提交', onPress: () => this.submitBtn(questionsKey.keyData)},
])
} else {
return false;
</div>
);
}
};
onEndReached = () => {
let {examId, isExam}=this.state;
let {pageNo}=this.props.DetailReducer;
let { examId, isExam } = this.state;
let { pageNo } = this.props.DetailReducer;
let params = {
examId: examId,
pageNo: pageNo,
......@@ -162,32 +105,6 @@ class SurveyAnswer extends Component {
};
// this.props.examQuestionListData(params, true, isExam);
};
submitBtn = (questionsKey) => {
let {id}=this.props.location.state;
this.setState({
isUpMount: false
});
let params = {
researchId: id, //问题id
startTime: moment(this.state.startTime).format("YYYY-MM-DD HH:mm:SS"), //开始时间
submitTime: moment(new Date()).format("YYYY-MM-DD HH:mm:SS"),//提交时间
terminalType: 1,//客户端类型
questions: questionsKey
}
this.props.submitEaxmQuestion(params);
};
//显示答题卡
showCard = () => {
this.setState({
card: true
})
};
closeCard = () => {
this.setState({
card: false
})
};
renderExamMedia(mediaUrl) {
var mediaType = mediaUrl.split(".")[mediaUrl.split(".").length - 1];
switch (mediaType) {
......@@ -195,11 +112,11 @@ class SurveyAnswer extends Component {
case "jpeg":
case "png":
case "gif":
return <img src={mediaUrl} alt=""/>;
return <img src={mediaUrl} alt="" />;
case "mp4":
return <video src={mediaUrl} poster={blackBg} style={{marginBottom:0,}} controls preload/>;
return <video src={mediaUrl} poster={blackBg} style={{ marginBottom: 0, }} controls preload />;
case "mp3":
return <audio src={mediaUrl} style={{marginBottom:'.2rem'}} controls preload/>;
return <audio src={mediaUrl} style={{ marginBottom: '.2rem' }} controls preload />;
default:
return "";
}
......@@ -210,26 +127,26 @@ class SurveyAnswer extends Component {
<div className="question-topic">
<h4><span
className="item-type">{item.needAnswer == 1 ?
<i style={{color: 'red', 'font-style': 'normal'}}>*</i> : null}{this.itemType(item.type)}</span>{` ${item.content}`}</h4>
<i style={{ color: 'red', 'font-style': 'normal' }}>*</i> : null}{this.itemType(item.type)}</span>{` ${item.content}`}</h4>
</div>
<div className="exam-media">
{this.renderExamMedia(item.contentAppendixUrl)}
</div>
<DongAnswer data={item} isType={item.type}
answerItemClick={((optionIndex, txt) => this.answerItemClick(rowId, optionIndex, txt, item.needAnswer))}/>
answerItemClick={((optionIndex, txt) => this.answerItemClick(rowId, optionIndex, txt, item.needAnswer))} />
</div>
);
};
itemType = (isType) => {
switch (Number.parseInt(isType)) {
case 1:
return intl.get("SingleChoice")||"单选题";
return intl.get("SingleChoice") || "单选题";
case 2:
return intl.get("MultipleChoice")||'多选题';
return intl.get("MultipleChoice") || '多选题';
case 3:
return intl.get("Essay")||'问答题';
return intl.get("Essay") || '问答题';
case 4:
return intl.get("ReaserchTypeRating")||'打分题';
return intl.get("ReaserchTypeRating") || '打分题';
default:
return '';
}
......@@ -242,7 +159,7 @@ class SurveyAnswer extends Component {
}
export default connect(state => {
let {DetailReducer}=state;
let { DetailReducer } = state;
return {
DetailReducer
}
......
.exam-question1 {
width: 100%;
height: 100%;
background: linear-gradient(0deg, #ff9286 0%, #d23a29), linear-gradient(180deg, rgba(255, 255, 255, 0) 59%, #f5f5f5 100%), linear-gradient(0deg, rgba(210, 58, 41, 0) 0%, #d23a29);
}
.exam-question1 .top-header {
width: 100%;
text-align: center;
height: 88px;
line-height: 88px;
font-size: 32px;
background: linear-gradient(90deg, rgba(255, 151, 130, 0), #ff9782 53%, rgba(255, 151, 130, 0) 100%);
color: #fff;
}
.answer-list .am-list-body {
border-radius: 30px;
}
.answer-list .question-block {
padding-top: 0 !important;
transform: translateY(0) !important;
}
.question-topic {
width: 100%;
padding: 0.1rem 0.3rem;
position: relative;
display: flex;
justify-content: space-between;
align-items: center;
}
.question-topic h4 {
margin-bottom: 32px;
font-size: 0.34rem;
padding-top: 0.3rem;
color: #030303;
}
@import "config";
.load-more{
border:0;
width:100%;
height:0.7rem;
background-color:#f6f6f6;
color:#999;
font-size:0.26rem;
line-height:0.7rem;
text-align:center;
}
.exam-question{
.exam-question1 {
width: 100%;
.header{
height: 100%;
background: linear-gradient(0deg, #ff9286 0%, #d23a29),
linear-gradient(180deg, rgba(255, 255, 255, 0) 59%, #f5f5f5 100%),
linear-gradient(0deg, rgba(210, 58, 41, 0) 0%, #d23a29);
.top-header {
width: 100%;
height: 44*@len;
position: fixed;
left: 0;
top: 0;
text-align: center;
line-height: 44*@len;
font-size: 15*@len;
color: #4a4a4a;
border-bottom: 1px solid #eee;
z-index: 100;
background: #fff;
span{
color: #000;
height: 88px;
line-height: 88px;
font-size: 32px;
background: linear-gradient(
90deg,
rgba(255, 151, 130, 0),
#ff9782 53%,
rgba(255, 151, 130, 0) 100%
);
color: #fff;
}
}
.answer-list {
.am-list-body {
border-radius: 30px;
}
.count-time{
font-size: 15*@len;
line-height: 44*@len;
color: #dd4457;
height: 44*@len;
position: fixed;
top: 0;
right: 10*@len;
z-index: 101;
.question-block {
padding-top: 0 !important;
transform: translateY(0) !important;
}
.occupy{
}
.question-topic {
width: 100%;
height: 44*@len;
padding: 0.1rem 0.3rem;
// text-align: justify; //bug-15038
position: relative;
display: flex;
justify-content: space-between;
align-items: center;
h4 {
margin-bottom: 32px;
font-size: 0.34rem;
padding-top: 0.3rem;
color: #030303;
}
}
......@@ -73,11 +73,19 @@ class list extends Component {
ref="inEaxmRef"
className="list-view-box"
dataSource={inExamList}
renderHeader={() => (
<div style={{ width: "96%", margin: "0 auto", marginBottom: "60px" }}>
<img style={{ width: "100%" }} src={bannerList.bannerPath} alt="" />
</div>
)}
renderHeader={() => {
if (bannerList?.bannerPath) {
<div
style={{ width: "96%", margin: "0 auto", marginBottom: "60px" }}
>
<img
style={{ width: "100%" }}
src={bannerList.bannerPath}
alt=""
/>
</div>;
}
}}
renderFooter={() => (
<FooterLine
onlyText={true}
......@@ -208,7 +216,7 @@ class list extends Component {
hashHistory.push({
pathname: func.routerBefore() + "/allDescribe",
// pathname:func.routerBefore()+'/InvestigateFinish',
query: { id: item.id, type: "投票" },
query: { id: item.id, bizType: item.bizType},
});
// if (item.finishState != 3 || item.finishState != 0) {
// if (item.finishState == 1) {
......
......@@ -167,7 +167,7 @@
line-height: 48px;
}
.news-item2-content .news-item2-box .title-p {
width: 100%;
width: max-content;
color: #ABABAB;
background-position: center;
background-size: 100%;
......
......@@ -195,7 +195,7 @@
}
.title-p{
width: 100%;
width: max-content;
color: #ABABAB;
background-position: center;
background-size: 100%;
......
......@@ -91,7 +91,7 @@
top: 0.26rem;
}
.list-item-box .smallDian {
background: #D2D2D2;
background: #d2d2d2;
}
.list-item-box .activeDian {
background-color: #4285f4;
......@@ -105,11 +105,11 @@
.list-item-div {
display: flex;
overflow: hidden;
padding: 0.2rem 0.2rem 0.2rem 0;
padding: 0.2rem;
flex-direction: row;
flex: 1;
margin-left: 0.2rem;
border-bottom: solid 1px #F6F6F6;
border-bottom: solid 1px #f6f6f6;
}
.list-item-div .list-item-img-box {
width: 0.6rem;
......@@ -180,7 +180,7 @@
flex-direction: row;
justify-content: center;
align-items: center;
font-Size: 0.24rem;
font-size: 0.24rem;
color: #ccc;
}
.list-item-div .list-item-content .item-header-box .item-zhan-style .item-zhan-icon-active {
......@@ -374,7 +374,7 @@
}
.train-up-info {
font-size: 0.31rem;
color: #9B9B9B;
color: #9b9b9b;
padding: 0.22rem 0.3rem;
width: 100%;
background-color: #fff;
......@@ -393,12 +393,12 @@
overflow: hidden;
/** 隐藏超出的内容 **/
font-size: 24px;
color: #4A4A4A;
color: #4a4a4a;
display: block;
}
.train-info {
font-size: 0.31rem;
color: #9B9B9B;
color: #9b9b9b;
padding: 0.2rem auto;
width: 100%;
padding-left: 40px;
......@@ -421,13 +421,13 @@
overflow: hidden;
/** 隐藏超出的内容 **/
font-size: 40px;
color: #4A4A4A;
color: #4a4a4a;
}
.train-info .descr p {
-webkit-line-clamp: unset;
}
.train-info div {
color: #9B9B9B;
color: #9b9b9b;
font-size: 0.24rem;
}
.train-info .train-info-contain audio {
......@@ -446,7 +446,7 @@
.train-info .train-info-contain p {
font-size: 32px !important;
padding: 0 !important;
color: #4A4A4A !important;
color: #4a4a4a !important;
}
.product-rule {
padding: 0.2rem 0.4rem;
......@@ -473,7 +473,7 @@
width: 100%;
word-wrap: normal;
height: auto;
color: #4A4A4A;
color: #4a4a4a;
}
.train-contain-header div:nth-child(2) {
font-size: 24px !important;
......@@ -502,7 +502,7 @@
.am-accordion-header {
height: auto !important;
line-height: inherit !important;
background-color: #F4F4F4 !important;
background-color: #f4f4f4 !important;
}
.train-content-cell {
width: 100%;
......@@ -513,7 +513,7 @@
padding-right: 0.2rem;
padding-top: 0.1rem;
padding-bottom: 0.1rem;
border-bottom: solid 1px #F6F6F6;
border-bottom: solid 1px #f6f6f6;
height: 1rem;
position: relative;
}
......@@ -541,7 +541,7 @@
width: 32px;
height: 32px;
border-radius: 100%;
background-color: #ECF3FF;
background-color: #ecf3ff;
position: absolute;
top: -14px;
right: 22px;
......@@ -606,21 +606,23 @@
.train-comment > p {
background-color: white;
}
.train-comment .train-comment-contain {
.train-comment-contain {
position: fixed;
bottom: 0px;
background-color: white;
height: 162px;
padding: 58px 54px 58px 26px;
padding: 20px 40px;
display: flex;
align-items: center;
border-bottom: solid 1px #e4e4e4;
width: 100%;
}
.train-comment .train-comment-contain .cell-left-icon {
.train-comment-contain .cell-left-icon {
height: 43px;
margin-left: 9px;
width: auto;
margin-top: 5px;
}
.train-comment .train-comment-contain .comment-slider {
background: #F4F4F4;
.train-comment-contain .comment-slider {
background: #f4f4f4;
border-radius: 23px;
width: 90%;
height: 60px;
......@@ -632,13 +634,6 @@
letter-spacing: 0.1px;
float: right;
}
.comment-body {
height: 2.5rem;
border-top: 2px solid #eee;
overflow: scroll;
background-color: #F4F4F4;
border-radius: 2px;
}
.signup-button {
display: block;
width: 100%;
......@@ -700,7 +695,7 @@
}
.train-comment-replay {
width: 100%;
background-color: #F4F4F4;
background-color: #f4f4f4;
display: flex;
flex-direction: column;
padding: 15px;
......@@ -709,7 +704,7 @@
.train-comment-replay > div:nth-child(1) {
font-family: PingFangSC-Regular;
font-size: 0.21rem;
color: #4A90E2;
color: #4a90e2;
}
.train-comment-replay > div:nth-child(2) {
padding: 10px 0px;
......@@ -737,7 +732,7 @@
flex-direction: row;
justify-content: center;
align-items: center;
font-Size: 0.24rem;
font-size: 0.24rem;
color: #ccc;
}
.item-footer-box .item-zhan-style img {
......@@ -880,15 +875,21 @@
.train-comment-input .am-modal-button-group-h .am-modal-button:first-child {
color: #000;
}
.train-comment-input .comment-body {
.comment-body {
width: 90%;
margin-left: 15px;
background: #fff;
height: 60px !important;
}
.train-comment-input .comment-body .am-list-item {
padding-left: 22px;
padding-right: 22px;
.comment-body .am-list-item {
border-radius: 10px;
min-height: 60px !important;
}
.train-comment-input .comment-body .am-textarea-control textarea {
font-size: 28px;
.comment-body .am-textarea-control {
padding: 0 !important;
}
.comment-body .am-textarea-control textarea {
font-size: 28px !important;
}
.train-contain .am-tabs-tab div div {
padding-bottom: 0px !important;
......
......@@ -4,8 +4,6 @@
import React, { Component, Fragment } from 'react';
import { Tabs, Modal, ListView, Toast, TextareaItem } from 'antd-mobile';
import MediaDisplay from "../../common/mediaDisplay/index";
const TabPane = Tabs.TabPane;
import commonFetch from '../../util/fetchUtil';
import url from '../../util/urlconfig'
import './NewsMessageCss.less'
......@@ -21,6 +19,7 @@ import SecListView from "../common/listview/secListView";
import { hashHistory } from "react-router";
import func from "../../util/commonFunc";
import trainComment from "./comment-icon.jpg";
import trainSend from "./send-icon.png";
import zan from "../../image/zan.png";
import alreadyzan from "../../image/alreadyzan.png";
import myIcon from "../../image/my.png";
......@@ -41,6 +40,7 @@ class NewsMessageResult extends Component {
const ds = new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2,
});
this.locationRef = React.createRef();
this.state = {
isLoading: true,
name: '',
......@@ -48,7 +48,6 @@ class NewsMessageResult extends Component {
pageNo: 1,
number: this.props.location.query.number,
randomKey: "",
dataSource: ds,
isLoading1: false,
commentHasMore: true,
......@@ -65,12 +64,14 @@ class NewsMessageResult extends Component {
}
componentWillMount() {
document.removeEventListener('keydown', this.handleKeyDown);
this.setState({
tmpList: Data
})
}
componentDidMount() {
document.addEventListener('keydown', this.handleKeyDown);
let _this = this;
this.logoHeightListen();
this.props.initailData();
......@@ -120,17 +121,6 @@ class NewsMessageResult extends Component {
trainLogoHeight: document.body.clientWidth * (225 / 375),
});
}
getVideo(src) {
return (
<video width="100%" controls="controls" preload="meta" x-webkit-airplay="true" webkit-playsinline="true"
playsinline="true" x5-video-player-type="h5" x5-video-player-fullscreen="true">
<source src={src} type="video/ogg" />
<source src={src} type="video/mp4" />
Your browser does not support the video tag.
</video>
)
}
onLoadMore = () => {
let { id } = this.props.location.query;
let _this = this;
......@@ -165,7 +155,19 @@ class NewsMessageResult extends Component {
}
);
};
handleKeyDown = (e) => {
if (e.key === 'Enter' && !e.shiftKey) {
e.preventDefault();
this.trainCommitVerb();
}
};
handleCange = (e) => {
let _this = this;
_this.setState({
commitContent: e,
})
console.log(this.state.commitContent,'11111111111')
}
//提交评论
trainCommitVerb = () => {
if (!this.state.commitContent) {
......@@ -195,36 +197,21 @@ class NewsMessageResult extends Component {
);
});
this.setState({ showEnroll: 1, showComment: false });
} else if (this.state.commentType == 2) {
let { id } = this.props.location.query;
let param = {
trainingProjectId: id,
tpCommentId: this.state.replyCommentTypeId,
content: this.state.commitContent,
};
this.props.reviewReplyCommit(param, () => {
this.setState({ commitContent: "" });
let params = {
id: id,
};
this.reviewListData(
{ ...params, pageNo: 1, pageSize: 10 },
false,
() => {
this.setState({
isLoading1: false,
});
}
);
Toast.info(intl.get("CommentSuccess") || "评论成功");
};
handleInputFocus = () => {
const targetDiv = this.locationRef.current;
if (targetDiv) {
const targetTop = targetDiv.offsetTop;
window.scrollTo({
top: targetTop,
behavior: "smooth",
});
this.setState({ showEnroll: 1, showComment: false });
}
};
render() {
const { tmpList } = this.state;
let { reviewListData, isMore,reviewListTotle } = this.props.NewsMessageResultReducer;
let { reviewListData, isMore, reviewListTotle } = this.props.NewsMessageResultReducer;
let loadMore = isMore ? (
<button className="load-more" onClick={() => this.onLoadMore()}>
{intl.get("PublishKey74") || "点击加载更多"}
......@@ -238,25 +225,42 @@ class NewsMessageResult extends Component {
this.props.NewsMessageResultReducer.reviewListData
);
return (
<div style={{ overflowX: "hidden",backgroundColor:"#fff" }}>
<div style={{ height: '100%', position: 'relative' }}>
{this._headerView()}
<div style={{ width: '100%', backgroundColor: "#fff" }}>
<div className="bodyText">
<MediaDisplay key={this.state.randomKey} content={tmpList.content} />
</div>
<div style={{width:'100%',height:'28px',backgroundColor:"#f7f7f7"}}></div>
<div style={{fontSize:'36px'}}>
<span style={{ display:'inline-block',width:'9px',height:'34px',backgroundColor:'#FC5B2B',marginLeft:'5%',marginRight:'1%'}}></span>
评论({ reviewListTotle})</div>
<div style={{ width: '100%', height: '28px', backgroundColor: "#f7f7f7" }}></div>
<div ref={this.locationRef} style={{ fontSize: '36px', paddingTop: '20px', paddingBottom: '20px', paddingLeft: '40px' }}>
当前评论({reviewListTotle})
</div>
<div
className="train-contain"
style={{ backgroundColor: "#f4f4f4", width: "100%", height: "100%" }}
style={{ backgroundColor: "#fff", width: "100%" }}
>
<div style={{ width: "100%", marginTop: 0 }}>
<Fragment>{this.renderComment(reviewListData, loadMore)}</Fragment>
</div>
</div>
</div>
<div className="train-comment-contain">
<img src={trainComment} className="cell-left-icon" alt="" />
<div className="comment-body">
<TextareaItem
maxLength={800}
placeholder='欢迎发表你的观点'
rows={1}
value={this.state.commitContent}
style={{ backgroundColor: "clear" }}
onChange={this.handleCange}
onFocus={this.handleInputFocus}
ref={(el) => (this.autoFocusInst = el)}
/>
</div>
<img src={trainSend} className="cell-left-icon" alt="" onClick={this.trainCommitVerb} />
</div>
</div>
);
}
......@@ -265,7 +269,6 @@ class NewsMessageResult extends Component {
let { reviewPageNo, reviewListTotle } = this.props.NewsMessageResultReducer;
let row = (item, section, row) => {
console.log(item, '222222222~~~~~~~~~~~~~~~')
let imgsrc = item.userAvatar == "" ? myIcon : item.userAvatar;
const imageStyle = {
backgroundImage: `url(${imgsrc})`,
......@@ -350,75 +353,25 @@ class NewsMessageResult extends Component {
className="train-comment"
style={{ paddingBottom: "1rem", backgroundColor: "#F4F4F4" }}
>
<div className="train-comment-contain">
<img src={trainComment} className="cell-left-icon" alt="" />
<div className="comment-slider" onClick={() => this.commentShow(1)}>
{" "}
{intl.get("PublishKey85") || "说点什么吧~"}
</div>
</div>
<SecListView
key={this.state.refreshTrainComment}
dataSource={this.state.dataSource}
renderRow={row.bind(this)}
onEndReached={this.onLoadMore}
listStyle={50}
isLoading={this.state.isLoading}
page={{
pageTotal: reviewListTotle,
pageNo: reviewPageNo,
pageSize: 10,
}}
footText={intl.get("PublishKey47") || "没有更多了"}
/>
<Modal
title={intl.get("Comment") || "评论"}
visible={this.state.showComment}
transparent
maskClosable={false}
className={"train-comment-input"}
onClose={this.commentHidden}
footer={[
{
text: intl.get("Cancel") || "取消",
onPress: () => {
this.commentHidden();
},
},
{
text: intl.get("Yes") || "确定",
onPress: () => {
this.trainCommitVerb(1, 0);
},
},
]}
>
<div className="comment-body">
<TextareaItem
maxLength={800}
placeholder={intl.get("WriteComment") || "写评论"}
rows={4}
value={this.state.commitContent}
style={{ backgroundColor: "clear" }}
onChange={(txt) => {
let value = txt;
if (value.length > 800) {
value = value.slice(0, 800);
}
this.setState({ commitContent: value });
}}
ref={(el) => (this.autoFocusInst = el)}
/>
</div>
</Modal>
</div>
);
};
_headerView() {
const { tmpList } = this.state;
console.log(tmpList)
return (
<div className="news-item2-content">
<div className="news-item2-content" style={{ backgroundColor: '#fff', paddingTop: '20px' }}>
<div className="news-item2-box">
<span className="title-span">{tmpList.fileName}</span>
<p className="title-p">
......@@ -426,31 +379,12 @@ class NewsMessageResult extends Component {
marginRight: "0.15rem",
fontSize: "0.3rem"
}} />{intl.get('PublishKey166') || '发布时间:'}{moment(tmpList.releaseTime).format('YYYY-MM-DD HH:mm')}</span>
{/* <span><img src={Iconlook} style={{
marginRight: "0.15rem",
fontSize: "0.3rem"
}} />{this.state.number}{intl.get('PublishKey165') || '次阅读'}</span> */}
</p>
</div>
</div>
);
}
reachEnd = () => { };
commentShow = (type, id) => {
//type=1为项目评论,2为项目评论回复
this.setState({
showComment: true,
commentType: type,
replyCommentTypeId: id,
});
};
commentHidden = () => {
this.setState({
showComment: false,
commitContent: "",
});
};
reviewDetail = (item) => {
console.log(item);
// let time = moment(item.createTime).format("YYYY-MM-DD HH:hh:SS");
......
......@@ -9,7 +9,7 @@
}
.color-4a() {
color: #4A4A4A;
color: #4a4a4a;
}
.color-666() {
......@@ -17,19 +17,19 @@
}
.font32() {
font-size: .32rem;
font-size: 0.32rem;
}
.font30() {
font-size: .3rem;
font-size: 0.3rem;
}
.font34() {
font-size: .34rem;
font-size: 0.34rem;
}
.font24() {
font-size: .24rem;
font-size: 0.24rem;
}
.BraftEditor-content {
......@@ -50,8 +50,6 @@
/** 隐藏超出的内容 **/
}
;
.am-accordion .am-accordion-item .am-accordion-header {
position: inherit !important;
}
......@@ -62,10 +60,9 @@
background: #fff;
.my-accordion {
padding-left: .82rem;
padding-left: 0.82rem;
.am-accordion-item {
//列表头部
// .am-accordion-header{
// position: absolute;
......@@ -127,12 +124,13 @@
.am-list-item {
padding-left: 0;
.am-list-content {}
.am-list-content {
}
}
.training-done-info {
margin: 0;
line-height: .65rem;
line-height: 0.65rem;
padding-right: 0.15rem;
white-space: nowrap;
text-overflow: ellipsis;
......@@ -140,49 +138,45 @@
max-width: 63%;
.font30;
.color-666;
}
.tip-text {
margin: 0.1rem;
font-size: .2rem;
font-size: 0.2rem;
color: @themeColor;
line-height: .28rem;
border-radius: .3rem;
line-height: 0.28rem;
border-radius: 0.3rem;
border: 1px solid @themeColor;
padding: .05rem .1rem;
padding: 0.05rem 0.1rem;
overflow: visible;
}
.tip-text-green {
margin: 0.1rem;
font-size: .2rem;
font-size: 0.2rem;
color: #559906;
line-height: .28rem;
border-radius: .3rem;
line-height: 0.28rem;
border-radius: 0.3rem;
border: 1px solid #559906;
padding: .05rem .1rem;
padding: 0.05rem 0.1rem;
overflow: visible;
}
.am-list-body div:not(:last-child) .am-list-line:after {
left: -.33rem;
left: -0.33rem;
width: 105%;
}
.am-list-line:after {
left: -.33rem;
left: -0.33rem;
border-bottom: 2px solid #ddd;
}
}
.am-accordion-content-box:after {
left: -.33rem;
left: -0.33rem;
width: 105%;
border-bottom: 2px solid #ddd;
}
}
}
......@@ -199,19 +193,19 @@
i.dom {
position: absolute;
width: .16rem;
height: .16rem;
width: 0.16rem;
height: 0.16rem;
border-radius: 50%;
left: -0.42rem;
top: .26rem;
top: 0.26rem;
}
.smallDian {
background: #D2D2D2;
background: #d2d2d2;
}
.activeDian {
background-color: @themeColor
background-color: @themeColor;
}
}
......@@ -226,12 +220,11 @@
.list-item-div {
display: flex;
overflow: hidden;
padding: 0.2rem 0.2rem 0.2rem 0;
padding: 0.2rem;
flex-direction: row;
flex: 1;
margin-left: 0.2rem;
border-bottom: solid 1px #F6F6F6;
border-bottom: solid 1px #f6f6f6;
.list-item-img-box {
width: 0.6rem;
......@@ -257,7 +250,7 @@
justify-content: space-between;
align-items: center;
>p {
> p {
font-size: 20px;
}
}
......@@ -311,7 +304,7 @@
flex-direction: row;
justify-content: center;
align-items: center;
font-Size: 0.24rem;
font-size: 0.24rem;
color: #ccc;
.item-zhan-icon-active {
......@@ -329,9 +322,7 @@
color: gainsboro;
}
}
}
}
}
......@@ -377,7 +368,6 @@
}
.train-footer-box {
display: flex;
border-top: solid 1px rgb(221, 221, 221);
position: fixed;
......@@ -407,9 +397,6 @@
padding-left: 0.3rem !important;
font-size: 0.25rem;
color: #333333;
}
.enroll-submit {
......@@ -431,15 +418,13 @@
font-size: 0.28rem;
border-radius: 0;
border: 0;
background-color: @themeColor ;
background-color: @themeColor;
padding: 0;
margin: 0;
}
}
.header {
display: flex;
flex-direction: row;
padding: 0.2rem 0;
......@@ -456,7 +441,6 @@
.img {
width: 0.8rem;
height: 0.8rem;
}
}
......@@ -485,12 +469,11 @@
color: gainsboro;
}
>p {
> p {
padding: 5px;
}
>p :nth-child(2) {
> p :nth-child(2) {
font-size: 30px;
color: #333333;
}
......@@ -518,10 +501,9 @@
.header-time {
text-align: left;
width: 80%;
font-size: 0.20rem;
font-size: 0.2rem;
color: rgb(179, 179, 179);
}
}
.about-footer-button {
......@@ -538,17 +520,14 @@
.comment-title {
padding-top: 0.2rem;
background-color: white;
}
.segement-slider {
height: 0.2rem;
background-color: #f5f5f5;
}
.segement {
height: 2px;
background-color: rgb(245, 245, 245);
margin: 0 0.2rem;
......@@ -556,12 +535,12 @@
.train-up-info {
font-size: 0.31rem;
color: #9B9B9B;
color: #9b9b9b;
padding: 0.22rem 0.3rem;
width: 100%;
background-color: #fff;
p {
line-height: .46rem;
line-height: 0.46rem;
.line-hidden;
font-size: 24px;
.color-4a;
......@@ -570,13 +549,11 @@
}
.train-info {
font-size: 0.31rem;
color: #9B9B9B;
color: #9b9b9b;
padding: 0.2rem auto;
width: 100%;
padding-left: 40px;
padding-bottom: 30px;
padding-top: 40px;
......@@ -584,7 +561,7 @@
background-color: #fff;
p {
line-height: .48rem;
line-height: 0.48rem;
.line-hidden;
font-size: 40px;
.color-4a;
......@@ -597,23 +574,20 @@
}
div {
color: #9B9B9B;
font-size: .24rem;
color: #9b9b9b;
font-size: 0.24rem;
}
.train-info-contain {
audio {
width: 100%;
margin-bottom: .6rem !important;
margin-bottom: 0.6rem !important;
}
video {
width: 100%;
height: 5rem;
margin-bottom: .3rem !important;
margin-bottom: 0.3rem !important;
}
a {
......@@ -624,7 +598,7 @@
p {
font-size: 32px !important;
padding: 0 !important;
color: #4A4A4A !important;
color: #4a4a4a !important;
}
}
}
......@@ -641,7 +615,6 @@
padding-right: 0;
}
//UI修改后的新增样式
.train-contain-header {
padding: 0.2rem;
......@@ -659,7 +632,7 @@
width: 100%;
word-wrap: normal;
height: auto;
color: #4A4A4A;
color: #4a4a4a;
}
div:nth-child(2) {
......@@ -688,13 +661,12 @@
right: 0;
bottom: 0;
}
}
.am-accordion-header {
height: auto !important;
line-height: inherit !important;
background-color: #F4F4F4 !important;
background-color: #f4f4f4 !important;
}
.train-content-cell {
......@@ -707,7 +679,7 @@
padding-right: 0.2rem;
padding-top: 0.1rem;
padding-bottom: 0.1rem;
border-bottom: solid 1px #F6F6F6;
border-bottom: solid 1px #f6f6f6;
height: 1rem;
position: relative;
......@@ -736,50 +708,45 @@
width: 32px;
height: 32px;
border-radius: 100%;
background-color: #ECF3FF;
background-color: #ecf3ff;
position: absolute;
top: -14px;
right: 22px;
}
}
}
.tip-text-green {
margin: 0.1rem;
font-size: .2rem;
font-size: 0.2rem;
color: #559906;
line-height: .28rem;
border-radius: .3rem;
line-height: 0.28rem;
border-radius: 0.3rem;
border: 1px solid #559906;
padding: .05rem .1rem;
padding: 0.05rem 0.1rem;
overflow: visible;
}
.tip-text {
font-size: .2rem;
font-size: 0.2rem;
color: #999;
line-height: .28rem;
border-radius: .3rem;
line-height: 0.28rem;
border-radius: 0.3rem;
border: 1px solid #e5e5e5;
padding: .05rem .1rem;
padding: 0.05rem 0.1rem;
overflow: visible;
}
.tip-text-simple {
margin: 0.1rem;
font-size: .2rem;
font-size: 0.2rem;
color: #000;
line-height: .28rem;
border-radius: .3rem;
line-height: 0.28rem;
border-radius: 0.3rem;
border: 1px solid #eee;
padding: .05rem .1rem;
padding: 0.05rem 0.1rem;
overflow: visible;
margin-right: 0;
}
.train-contain-listcell {
......@@ -789,7 +756,7 @@
align-items: center;
padding-left: 0.2rem;
>img {
> img {
max-width: 32px;
max-height: 32px;
display: block;
......@@ -809,35 +776,33 @@
.am-accordion-header {
margin-right: 0px !important;
}
}
.train-comment {
display: flex;
flex-direction: column;
>p {
> p {
background-color: white;
}
.train-comment-contain {
}
.train-comment-contain {
position: fixed;
bottom: 0px;
background-color: white;
height: 162px;
padding: 58px 54px 58px 26px;
padding: 20px 40px;
display: flex;
align-items: center;
border-bottom: solid 1px #e4e4e4;
width: 100%;
.cell-left-icon {
height: 43px;
margin-left: 9px;
width: auto;
margin-top: 5px;
}
.comment-slider {
background: #F4F4F4;
background: #f4f4f4;
border-radius: 23px;
width: 90%;
height: 60px;
......@@ -849,21 +814,7 @@
letter-spacing: 0.1px;
float: right;
}
}
}
.comment-body {
height: 2.5rem;
border-top: 2px solid #eee;
overflow: scroll;
background-color: #F4F4F4;
border-radius: 2px;
}
.signup-button {
display: block;
width: 100%;
......@@ -886,7 +837,6 @@
background-color: #fff;
padding: 0 40px;
box-shadow: 0px -2px 0px 0px rgba(0, 0, 0, 0.05);
.train-pay-button {
......@@ -902,16 +852,16 @@
font-size: 28px;
font-weight: 500;
.train-actualPrice{
.train-actualPrice {
font-size: 40px;
margin-left: 10px;
margin-right: 5px;
}
.train-originalPrice{
.train-originalPrice {
font-size: 24px;
font-weight: 400;
margin-left: 10px;
text-decoration:line-through ;
text-decoration: line-through;
}
}
}
......@@ -928,7 +878,6 @@
display: flex;
padding-top: 0px;
padding-bottom: 0px;
}
i.arrow {
......@@ -938,28 +887,27 @@
.train-comment-replay {
width: 100%;
background-color: #F4F4F4;
background-color: #f4f4f4;
display: flex;
flex-direction: column;
padding: 15px;
margin-top: 12px;
>div:nth-child(1) {
> div:nth-child(1) {
font-family: PingFangSC-Regular;
font-size: 0.21rem;
color: #4A90E2;
color: #4a90e2;
}
>div:nth-child(2) {
> div:nth-child(2) {
padding: 10px 0px;
font-size: 0.21rem;
}
>div:nth-child(3) {
> div:nth-child(3) {
font-family: PingFangSC-Regular;
font-size: 0.17rem;
color: #999999;
}
}
......@@ -969,7 +917,7 @@
justify-content: space-between;
align-items: center;
>p {
> p {
font-size: 20px;
}
......@@ -981,7 +929,7 @@
flex-direction: row;
justify-content: center;
align-items: center;
font-Size: 0.24rem;
font-size: 0.24rem;
color: #ccc;
img {
......@@ -1045,13 +993,13 @@
height: 0.6rem;
align-items: center;
>div>img {
> div > img {
width: 30px;
margin-right: 22px;
margin-top: -15px;
}
>div>span {
> div > span {
font-size: 28px;
}
}
......@@ -1060,7 +1008,6 @@
.train-header {
background-color: white;
padding-bottom: 0.5rem;
}
.train-info .train-info-contain a {
......@@ -1158,24 +1105,24 @@
.am-modal-button-group-h .am-modal-button:first-child {
color: #000;
}
.comment-body {
// margin-top: 50px;
}
.comment-body {
width: 90%;
margin-left: 15px;
background: #fff;
height: 60px !important;
.am-list-item {
padding-left: 22px;
padding-right: 22px;
border-radius: 10px;
min-height: 60px !important;
}
.am-textarea-control textarea {
font-size: 28px;
.am-textarea-control {
padding: 0 !important;
}
.am-textarea-control textarea {
font-size: 28px !important;
}
}
.train-contain {
.am-tabs-tab {
div {
......@@ -1194,7 +1141,6 @@
}
}
.train-review {
.am-list-view-scrollview {
background-color: #f4f4f4 !important;
......
......@@ -99,10 +99,6 @@ export const getReviewListData=(params, isUpData,callBack)=>{
}
NetWork.get(urlParams,
response=>{
console.log('评论');
console.log(response);
try{
if(String(response.code)==="1000"){
let reviewPageNo=Number.parseInt(response.data.current)+1;
......@@ -127,7 +123,7 @@ export const getReviewListData=(params, isUpData,callBack)=>{
})
};
};
//评论
//评论d
export const commitVerb=(params,callBack)=>{
return dispatch=>{
NetWork.post(API.reviewCommit, params, response=>{
......
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