Merge branch 'master' of https://bdgit.educoder.net/Hjqreturn/educoder
commit
e1f190a775
@ -1,204 +1,204 @@
|
|||||||
import React,{ Component } from "react";
|
import React,{ Component } from "react";
|
||||||
import {Menu} from "antd";
|
import {Menu} from "antd";
|
||||||
|
|
||||||
|
|
||||||
import CoursesListType from '../coursesPublic/CoursesListType';
|
import CoursesListType from '../coursesPublic/CoursesListType';
|
||||||
import { WordsBtn } from 'educoder'
|
import { WordsBtn } from 'educoder'
|
||||||
import PollTabFirst from './PollDetailTabFirst'
|
import PollTabFirst from './PollDetailTabFirst'
|
||||||
import PollTabSecond from './PollDetailTabSecond'
|
import PollTabSecond from './PollDetailTabSecond'
|
||||||
import PollTabThird from './PollDetailTabThird'
|
import PollTabThird from './PollDetailTabThird'
|
||||||
import PollTabForth from './PollDetailTabForth'
|
import PollTabForth from './PollDetailTabForth'
|
||||||
|
|
||||||
import DownloadMessage from '../../modals/DownloadMessage';
|
import DownloadMessage from '../../modals/DownloadMessage';
|
||||||
|
|
||||||
import ImmediatelyPublish from './pollPublicBtn/ImmediatelyPublish'
|
import ImmediatelyPublish from './pollPublicBtn/ImmediatelyPublish'
|
||||||
import ImmediatelyEnd from './pollPublicBtn/ImmediatelyEnd'
|
import ImmediatelyEnd from './pollPublicBtn/ImmediatelyEnd'
|
||||||
import CancelPublish from './pollPublicBtn/CancelPublish'
|
import CancelPublish from './pollPublicBtn/CancelPublish'
|
||||||
|
|
||||||
import '../css/members.css'
|
import '../css/members.css'
|
||||||
import '../css/busyWork.css'
|
import '../css/busyWork.css'
|
||||||
|
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
|
|
||||||
const map={1:"未发布",2:"提交中",3:"已截止"}
|
const map={1:"未发布",2:"提交中",3:"已截止",4:"已结束"}
|
||||||
class PollDetailIndex extends Component{
|
class PollDetailIndex extends Component{
|
||||||
constructor(props){
|
constructor(props){
|
||||||
super(props);
|
super(props);
|
||||||
this.state={
|
this.state={
|
||||||
tab:["0"],
|
tab:["0"],
|
||||||
pollDetail:undefined,
|
pollDetail:undefined,
|
||||||
user_permission:undefined
|
user_permission:undefined
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
getPollInfo=()=>{
|
getPollInfo=()=>{
|
||||||
console.log(this.props);
|
console.log(this.props);
|
||||||
let pollId=this.props.match.params.pollId;
|
let pollId=this.props.match.params.pollId;
|
||||||
let url=`/polls/${pollId}/common_header.json`
|
let url=`/polls/${pollId}/common_header.json`
|
||||||
axios.get(url).then((result)=>{
|
axios.get(url).then((result)=>{
|
||||||
if(result.status==200){
|
if(result.status==200){
|
||||||
this.setState({
|
this.setState({
|
||||||
pollDetail:result.data,
|
pollDetail:result.data,
|
||||||
user_permission:result.data.user_permission
|
user_permission:result.data.user_permission
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}).catch((error)=>{
|
}).catch((error)=>{
|
||||||
console.log(error);
|
console.log(error);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount(){
|
componentDidMount(){
|
||||||
const query =this.props.location.search;
|
const query =this.props.location.search;
|
||||||
if(query.indexOf("?")!=-1){
|
if(query.indexOf("?")!=-1){
|
||||||
const type = query.split('?');
|
const type = query.split('?');
|
||||||
let name = type[1].split("tab=");
|
let name = type[1].split("tab=");
|
||||||
name = String(name).split(",");
|
name = String(name).split(",");
|
||||||
name = decodeURI(name[1]);
|
name = decodeURI(name[1]);
|
||||||
if(name!=undefined && name!="" && name!="undefined"){
|
if(name!=undefined && name!="" && name!="undefined"){
|
||||||
this.setState({
|
this.setState({
|
||||||
tab:[name]
|
tab:[name]
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.getPollInfo();
|
this.getPollInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
//切换tab
|
//切换tab
|
||||||
changeTab=(e)=>{
|
changeTab=(e)=>{
|
||||||
this.setState({
|
this.setState({
|
||||||
tab:e.key
|
tab:e.key
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
confirmysl(url){
|
confirmysl(url){
|
||||||
this.refs.DownloadMessage.confirmysl(url);
|
this.refs.DownloadMessage.confirmysl(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
render(){
|
render(){
|
||||||
let {tab,pollDetail,user_permission}=this.state;
|
let {tab,pollDetail,user_permission}=this.state;
|
||||||
|
|
||||||
const isAdmin =this.props.isAdmin();
|
const isAdmin =this.props.isAdmin();
|
||||||
const isStudent = this.props.isStudent();
|
const isStudent = this.props.isStudent();
|
||||||
return(
|
return(
|
||||||
<div className="newMain">
|
<div className="newMain">
|
||||||
<DownloadMessage {...this.props} ref="DownloadMessage" />
|
<DownloadMessage {...this.props} ref="DownloadMessage" />
|
||||||
<div className="educontent mt10 mb50">
|
<div className="educontent mt10 mb50">
|
||||||
<p className="clearfix mb20">
|
<p className="clearfix mb20">
|
||||||
<WordsBtn style="grey" className="fl" to={`/courses/${this.props.match.params.coursesId}/students`}>{this.props.coursedata.name}</WordsBtn>
|
<WordsBtn style="grey" className="fl" to={`/courses/${this.props.match.params.coursesId}/students`}>{this.props.coursedata.name}</WordsBtn>
|
||||||
<span className="color-grey-9 fl ml3 mr3">></span>
|
<span className="color-grey-9 fl ml3 mr3">></span>
|
||||||
<WordsBtn style="grey" className="fl" to={`/courses/${this.props.match.params.coursesId}/polls/${user_permission && user_permission.left_banner_id}`}>问卷</WordsBtn>
|
<WordsBtn style="grey" className="fl" to={`/courses/${this.props.match.params.coursesId}/polls/${user_permission && user_permission.left_banner_id}`}>问卷</WordsBtn>
|
||||||
<span className="color-grey-9 fl ml3 mr3">></span>
|
<span className="color-grey-9 fl ml3 mr3">></span>
|
||||||
<span>问卷详情</span>
|
<span>问卷详情</span>
|
||||||
</p>
|
</p>
|
||||||
<p className="clearfix mb20 lineh-25">
|
<p className="clearfix mb20 lineh-25">
|
||||||
<span className="color-grey-3 font-24 fl task-hide break-word" style={{maxWidth:"900px",lineHeight:"25px"}} title={`${pollDetail && pollDetail.polls_name}`}>{pollDetail && pollDetail.polls_name}</span>
|
<span className="color-grey-3 font-24 fl task-hide break-word" style={{maxWidth:"900px",lineHeight:"25px"}} title={`${pollDetail && pollDetail.polls_name}`}>{pollDetail && pollDetail.polls_name}</span>
|
||||||
<span className="mt3 fl" style={{height:"25px"}}>
|
<span className="mt3 fl" style={{height:"25px"}}>
|
||||||
<CoursesListType typelist={[`${map[pollDetail && pollDetail.polls_status]}`]} typesylename={""} />
|
<CoursesListType typelist={[`${map[pollDetail && pollDetail.polls_status]}`]} typesylename={""} />
|
||||||
</span>
|
</span>
|
||||||
<WordsBtn className="fr font-16 mt2" style="grey" onClick={()=>this.props.history.goBack()}>返回</WordsBtn>
|
<WordsBtn className="fr font-16 mt2" style="grey" onClick={()=>this.props.history.goBack()}>返回</WordsBtn>
|
||||||
</p>
|
</p>
|
||||||
<div>
|
<div>
|
||||||
<div className="clearfix edu-back-white pl30 pr30 bor-bottom-greyE">
|
<div className="clearfix edu-back-white pl30 pr30 bor-bottom-greyE">
|
||||||
<div className="fl task_menu_ul">
|
<div className="fl task_menu_ul">
|
||||||
<Menu mode="horizontal" selectedKeys={tab} onClick={this.changeTab}>
|
<Menu mode="horizontal" selectedKeys={tab} onClick={this.changeTab}>
|
||||||
<Menu.Item key="0">答题列表</Menu.Item>
|
<Menu.Item key="0">答题列表</Menu.Item>
|
||||||
{
|
{
|
||||||
(isAdmin || (isStudent && pollDetail && pollDetail.show_result == 1 && pollDetail.polls_status == 3 && user_permission && user_permission.current_status==1)) && <Menu.Item key="1">统计结果</Menu.Item>
|
(isAdmin || (isStudent && pollDetail && pollDetail.show_result == 1 && pollDetail.polls_status == 3 && user_permission && user_permission.current_status==1)) && <Menu.Item key="1">统计结果</Menu.Item>
|
||||||
}
|
}
|
||||||
{ isAdmin && <Menu.Item key="2">问卷预览</Menu.Item> }
|
{ isAdmin && <Menu.Item key="2">问卷预览</Menu.Item> }
|
||||||
<Menu.Item key="3">设置</Menu.Item>
|
<Menu.Item key="3">设置</Menu.Item>
|
||||||
</Menu>
|
</Menu>
|
||||||
</div>
|
</div>
|
||||||
{
|
{
|
||||||
isAdmin &&
|
isAdmin &&
|
||||||
<span className="fr mt22">
|
<span className="fr mt22">
|
||||||
<WordsBtn style="blue" to={`/courses/${this.props.match.params.coursesId}/polls/${this.props.match.params.pollId}/edit`} className="fl mr20 font-16">编辑问卷</WordsBtn>
|
<WordsBtn style="blue" to={`/courses/${this.props.match.params.coursesId}/polls/${this.props.match.params.pollId}/edit`} className="fl mr20 font-16">编辑问卷</WordsBtn>
|
||||||
{/* 立即发布 */}
|
{/* 立即发布 */}
|
||||||
{
|
{
|
||||||
user_permission && user_permission.poll_unpublish_count > 0 ?
|
user_permission && user_permission.poll_unpublish_count > 0 ?
|
||||||
<li className="fl mr20">
|
<li className="fl mr20">
|
||||||
<ImmediatelyPublish
|
<ImmediatelyPublish
|
||||||
{...this.props}
|
{...this.props}
|
||||||
{...this.state}
|
{...this.state}
|
||||||
style="blue"
|
style="blue"
|
||||||
className={"font-16"}
|
className={"font-16"}
|
||||||
checkBoxValues={[this.props.match.params.pollId]}
|
checkBoxValues={[this.props.match.params.pollId]}
|
||||||
action={this.getPollInfo}
|
action={this.getPollInfo}
|
||||||
single={true}
|
single={true}
|
||||||
></ImmediatelyPublish>
|
></ImmediatelyPublish>
|
||||||
</li>
|
</li>
|
||||||
:""
|
:""
|
||||||
}
|
}
|
||||||
{/* 立即截止、撤销发布 */}
|
{/* 立即截止、撤销发布 */}
|
||||||
{
|
{
|
||||||
user_permission && user_permission.poll_publish_count > 0 ?
|
user_permission && user_permission.poll_publish_count > 0 ?
|
||||||
<li className="fl mr20">
|
<li className="fl mr20">
|
||||||
<ImmediatelyEnd
|
<ImmediatelyEnd
|
||||||
{...this.props}
|
{...this.props}
|
||||||
{...this.state}
|
{...this.state}
|
||||||
style="blue"
|
style="blue"
|
||||||
className={"font-16"}
|
className={"font-16"}
|
||||||
checkBoxValues={[this.props.match.params.pollId]}
|
checkBoxValues={[this.props.match.params.pollId]}
|
||||||
action={this.getPollInfo}
|
action={this.getPollInfo}
|
||||||
single={true}
|
single={true}
|
||||||
></ImmediatelyEnd>
|
></ImmediatelyEnd>
|
||||||
</li>
|
</li>
|
||||||
:""
|
:""
|
||||||
}
|
}
|
||||||
{/* {
|
{/* {
|
||||||
user_permission && user_permission.poll_publish_count>0 ?
|
user_permission && user_permission.poll_publish_count>0 ?
|
||||||
<li className="fl mr20">
|
<li className="fl mr20">
|
||||||
<CancelPublish
|
<CancelPublish
|
||||||
{...this.props}
|
{...this.props}
|
||||||
{...this.state}
|
{...this.state}
|
||||||
style="blue"
|
style="blue"
|
||||||
checkBoxValues={[this.props.match.params.pollId]}
|
checkBoxValues={[this.props.match.params.pollId]}
|
||||||
action={this.getPollInfo}
|
action={this.getPollInfo}
|
||||||
></CancelPublish>
|
></CancelPublish>
|
||||||
</li>
|
</li>
|
||||||
:""
|
:""
|
||||||
} */}
|
} */}
|
||||||
<a className="fl color-blue font-16" onClick={()=>this.confirmysl("/polls/"+this.props.match.params.pollId+"/commit_result.xlsx")} href="javascript:void(0);">导出统计</a>
|
<a className="fl color-blue font-16" onClick={()=>this.confirmysl("/polls/"+this.props.match.params.pollId+"/commit_result.xlsx")} href="javascript:void(0);">导出统计</a>
|
||||||
</span>
|
</span>
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
isStudent &&
|
isStudent &&
|
||||||
<span className="fr mt22 font-16">
|
<span className="fr mt22 font-16">
|
||||||
{
|
{
|
||||||
user_permission && user_permission.current_status!=3 ?
|
user_permission && user_permission.current_status!=3 ?
|
||||||
<WordsBtn style="blue" to={`/courses/${this.props.match.params.coursesId}/polls/${this.props.match.params.pollId}/users/${this.props.current_user.login}`}>
|
<WordsBtn style="blue" to={`/courses/${this.props.match.params.coursesId}/polls/${this.props.match.params.pollId}/users/${this.props.current_user.login}`}>
|
||||||
{ user_permission && user_permission.current_status ==0 ? "继续答题" : user_permission.current_status == 1 ? "查看答题" : "开始答题" }
|
{ user_permission && user_permission.current_status ==0 ? "继续答题" : user_permission.current_status == 1 ? "查看答题" : "开始答题" }
|
||||||
</WordsBtn>
|
</WordsBtn>
|
||||||
:""
|
:""
|
||||||
}
|
}
|
||||||
</span>
|
</span>
|
||||||
}
|
}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{
|
{
|
||||||
// 答题列表
|
// 答题列表
|
||||||
parseInt(tab[0])==0 && <PollTabFirst {...this.props} {...this.state}></PollTabFirst>
|
parseInt(tab[0])==0 && <PollTabFirst {...this.props} {...this.state}></PollTabFirst>
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// 统计结果
|
// 统计结果
|
||||||
parseInt(tab[0])==1 && <PollTabSecond {...this.props} {...this.state}></PollTabSecond>
|
parseInt(tab[0])==1 && <PollTabSecond {...this.props} {...this.state}></PollTabSecond>
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
//问卷预览
|
//问卷预览
|
||||||
parseInt(tab[0])==2 && <PollTabThird {...this.props} {...this.state}></PollTabThird>
|
parseInt(tab[0])==2 && <PollTabThird {...this.props} {...this.state}></PollTabThird>
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
//设置
|
//设置
|
||||||
parseInt(tab[0])==3 && <PollTabForth {...this.props} {...this.state} user_permission={user_permission} getPollInfo={this.getPollInfo}></PollTabForth>
|
parseInt(tab[0])==3 && <PollTabForth {...this.props} {...this.state} user_permission={user_permission} getPollInfo={this.getPollInfo}></PollTabForth>
|
||||||
}
|
}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default PollDetailIndex
|
export default PollDetailIndex
|
@ -1,163 +1,163 @@
|
|||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
import {getImageUrl} from 'educoder';
|
import {getImageUrl} from 'educoder';
|
||||||
import '../../paths/ShixunPaths.css';
|
import '../../paths/ShixunPaths.css';
|
||||||
import DetailCardsEditAndAdd from './DetailCardsEditAndAdd';
|
import DetailCardsEditAndAdd from './DetailCardsEditAndAdd';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
|
||||||
import { DragDropContext, Droppable, Draggable } from "react-beautiful-dnd";
|
import { DragDropContext, Droppable, Draggable } from "react-beautiful-dnd";
|
||||||
|
|
||||||
const reorder = (list, startIndex, endIndex) => {
|
const reorder = (list, startIndex, endIndex) => {
|
||||||
const result = Array.from(list);
|
const result = Array.from(list);
|
||||||
const [removed] = result.splice(startIndex, 1);
|
const [removed] = result.splice(startIndex, 1);
|
||||||
result.splice(endIndex, 0, removed);
|
result.splice(endIndex, 0, removed);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
const $ = window.$
|
const $ = window.$
|
||||||
class DetailCards extends Component{
|
class DetailCards extends Component{
|
||||||
constructor(props){
|
constructor(props){
|
||||||
super(props)
|
super(props)
|
||||||
this.state={
|
this.state={
|
||||||
pathCardsList:undefined
|
pathCardsList:undefined
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
getPathCardsList(){
|
getPathCardsList(){
|
||||||
let pathid = this.props.match.params.PathId
|
let pathid = this.props.match.params.PathId
|
||||||
// let pathid= 28;
|
// let pathid= 28;
|
||||||
let url=`/stages.json?subject_id=`+pathid;
|
let url=`/stages.json?subject_id=`+pathid;
|
||||||
axios.get(url).then((result)=>{
|
axios.get(url).then((result)=>{
|
||||||
if(result.status===200){
|
if(result.status===200){
|
||||||
this.setState({
|
this.setState({
|
||||||
pathCardsList:result.data.stages
|
pathCardsList:result.data.stages
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}).catch((error)=>{
|
}).catch((error)=>{
|
||||||
console.log(error);
|
console.log(error);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for_paragraph = (index) =>{
|
for_paragraph = (index) =>{
|
||||||
$("#detail_for_paragraph_"+index).slideToggle(500);
|
$("#detail_for_paragraph_"+index).slideToggle(500);
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount(){
|
componentDidMount(){
|
||||||
this.getPathCardsList();
|
this.getPathCardsList();
|
||||||
}
|
}
|
||||||
onDragEnd = (result, shixunIndex) => {
|
onDragEnd = (result, shixunIndex) => {
|
||||||
console.log(result)
|
// console.log(result)
|
||||||
|
|
||||||
// dropped outside the list
|
// dropped outside the list
|
||||||
if (!result.destination) {
|
if (!result.destination) {
|
||||||
console.log('dropped outside the list')
|
console.log('dropped outside the list')
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (result.destination.index === result.source.index) {
|
if (result.destination.index === result.source.index) {
|
||||||
console.log('the same')
|
console.log('the same')
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// TODO exchange axios request
|
// TODO exchange axios request
|
||||||
|
|
||||||
const shixuns_list = reorder(
|
const shixuns_list = reorder(
|
||||||
this.state.pathCardsList[shixunIndex].shixuns_list,
|
this.state.pathCardsList[shixunIndex].shixuns_list,
|
||||||
result.source.index,
|
result.source.index,
|
||||||
result.destination.index
|
result.destination.index
|
||||||
);
|
);
|
||||||
const pathCardsList = this.state.pathCardsList
|
const pathCardsList = this.state.pathCardsList
|
||||||
pathCardsList[shixunIndex].shixuns_list = shixuns_list;
|
pathCardsList[shixunIndex].shixuns_list = shixuns_list;
|
||||||
this.setState({
|
this.setState({
|
||||||
pathCardsList
|
pathCardsList
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
render(){
|
render(){
|
||||||
let { pathCardsList }=this.state;
|
let { pathCardsList }=this.state;
|
||||||
return(
|
return(
|
||||||
<div>
|
<div>
|
||||||
<div className="lesson-saved-list">
|
<div className="lesson-saved-list">
|
||||||
{
|
{
|
||||||
pathCardsList && pathCardsList.map((item,key)=>{
|
pathCardsList && pathCardsList.map((item,key)=>{
|
||||||
return(
|
return(
|
||||||
<div className="lesson-saved-list-item" id={"stage_div_"+key}>
|
<div className="lesson-saved-list-item" id={"stage_div_"+key}>
|
||||||
<p className="clearfix title-line">
|
<p className="clearfix title-line">
|
||||||
<a className="fl ring-blue mr10 mt2">
|
<a className="fl ring-blue mr10 mt2">
|
||||||
<img src={getImageUrl("images/educoder/icon/charpter-white.svg")} className="fl ml3 mt3"/>
|
<img src={getImageUrl("images/educoder/icon/charpter-white.svg")} className="fl ml3 mt3"/>
|
||||||
</a>
|
</a>
|
||||||
<span className="font-18 font-bd">{item.stage_name}</span>
|
<span className="font-18 font-bd">{item.stage_name}</span>
|
||||||
<a className="fr mtf3">
|
<a className="fr mtf3">
|
||||||
<i className="iconfont icon-bianjidaibeijing font-22 color-green" data-tip-down="编辑"></i>
|
<i className="iconfont icon-bianjidaibeijing font-22 color-green" data-tip-down="编辑"></i>
|
||||||
</a>
|
</a>
|
||||||
<a href="" className="fr ring-op-green mr20">
|
<a href="" className="fr ring-op-green mr20">
|
||||||
<img src={getImageUrl("images/educoder/icon/movedown.svg")} data-tip-down="向下移动" className="fl mt2 ml4"/>
|
<img src={getImageUrl("images/educoder/icon/movedown.svg")} data-tip-down="向下移动" className="fl mt2 ml4"/>
|
||||||
</a>
|
</a>
|
||||||
<a href="" className="fr ring-op-green mr20">
|
<a href="" className="fr ring-op-green mr20">
|
||||||
<img src={getImageUrl("images/educoder/icon/moveup.svg")} data-tip-down="向上移动" className="fl mt2 ml4"/>
|
<img src={getImageUrl("images/educoder/icon/moveup.svg")} data-tip-down="向上移动" className="fl mt2 ml4"/>
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
<div className="detail_for_paragraph clearfix" id={"detail_for_paragraph_"+key}>
|
<div className="detail_for_paragraph clearfix" id={"detail_for_paragraph_"+key}>
|
||||||
<p className="color-dark-grey mt20 mb25 ml20 mr20 pl28 justify font-15">{item.stage_description}</p>
|
<p className="color-dark-grey mt20 mb25 ml20 mr20 pl28 justify font-15">{item.stage_description}</p>
|
||||||
|
|
||||||
{/*
|
{/*
|
||||||
两个 ref={provided.innerRef}
|
两个 ref={provided.innerRef}
|
||||||
item 加 {...provided.draggableProps}
|
item 加 {...provided.draggableProps}
|
||||||
handler 加 {...provided.dragHandleProps}
|
handler 加 {...provided.dragHandleProps}
|
||||||
*/}
|
*/}
|
||||||
<DragDropContext onDragEnd={(result) => this.onDragEnd(result, key)}>
|
<DragDropContext onDragEnd={(result) => this.onDragEnd(result, key)}>
|
||||||
<Droppable droppableId="droppable">
|
<Droppable droppableId="droppable">
|
||||||
{(provided, snapshot) => (
|
{(provided, snapshot) => (
|
||||||
<div ref={provided.innerRef}>
|
<div ref={provided.innerRef}>
|
||||||
{
|
{
|
||||||
item.shixuns_list && item.shixuns_list.map((line,index)=>{
|
item.shixuns_list && item.shixuns_list.map((line,index)=>{
|
||||||
return(
|
return(
|
||||||
<Draggable key={line.identifier} draggableId={line.identifier} index={index}>
|
<Draggable key={line.identifier} draggableId={line.identifier} index={index}>
|
||||||
{(provided, snapshot) => (
|
{(provided, snapshot) => (
|
||||||
<div className="clearfix paragraph lineh-30" ref={provided.innerRef} {...provided.draggableProps}>
|
<div className="clearfix paragraph lineh-30" ref={provided.innerRef} {...provided.draggableProps}>
|
||||||
<li className="fl li-width63">
|
<li className="fl li-width63">
|
||||||
<span className="progressRing mr10">
|
<span className="progressRing mr10">
|
||||||
{
|
{
|
||||||
line.complete_status === 1 ?<i className="iconfont icon-wancheng progressRing-over font-18 mt10"></i>
|
line.complete_status === 1 ?<i className="iconfont icon-wancheng progressRing-over font-18 mt10"></i>
|
||||||
:<i className="iconfont icon-bofang progressRing-part font-18 mt10"></i>
|
:<i className="iconfont icon-bofang progressRing-part font-18 mt10"></i>
|
||||||
}
|
}
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
<span className="paragraph_name color-grey3"><span className="subject_stage_shixun_index">{key+1}</span>-{index+1} {line.shixun_name}</span>
|
<span className="paragraph_name color-grey3"><span className="subject_stage_shixun_index">{key+1}</span>-{index+1} {line.shixun_name}</span>
|
||||||
</li>
|
</li>
|
||||||
{
|
{
|
||||||
line.shixun_status==="暂未公开"?
|
line.shixun_status==="暂未公开"?
|
||||||
<li className="fr status_li"><span className="fr color-grey-9">暂未公开</span></li>
|
<li className="fr status_li"><span className="fr color-grey-9">暂未公开</span></li>
|
||||||
:
|
:
|
||||||
|
|
||||||
<li className="fr status_li" >
|
<li className="fr status_li" >
|
||||||
<a href={"javascript:void(0)"} {...provided.dragHandleProps}
|
<a href={"javascript:void(0)"} {...provided.dragHandleProps}
|
||||||
className="mr30 color-blue_4C shixun_detail pointer fl none" target="_blank">drag</a>
|
className="mr30 color-blue_4C shixun_detail pointer fl none" target="_blank">drag</a>
|
||||||
|
|
||||||
<a href={line.shixun_path} className="mr30 color-blue_4C shixun_detail pointer fl none" target="_blank">查看详情</a>
|
<a href={line.shixun_path} className="mr30 color-blue_4C shixun_detail pointer fl none" target="_blank">查看详情</a>
|
||||||
<a href={line.tpi_path} className="btn_auto user_bluebg_btn fl none" id="shixun_operation" target="_blank">开始实战</a>
|
<a href={line.tpi_path} className="btn_auto user_bluebg_btn fl none" id="shixun_operation" target="_blank">开始实战</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</Draggable>
|
</Draggable>
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
</Droppable>
|
</Droppable>
|
||||||
</DragDropContext>
|
</DragDropContext>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<DetailCardsEditAndAdd></DetailCardsEditAndAdd>
|
<DetailCardsEditAndAdd></DetailCardsEditAndAdd>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default DetailCards;
|
export default DetailCards;
|
Loading…
Reference in new issue