Merge branches 'PCqiandao' and 'dev_aliyun' of https://bdgit.educoder.net/Hjqreturn/educoder into dev_aliyun

PCqiandao
杨树明 5 years ago
commit a5071cd445

@ -9,6 +9,7 @@ import {
Axis,
Tooltip,
} from "bizcharts";
import LoadingSpin from "../../../../common/LoadingSpin";
const { Option } = Select;
class Signinstatistics extends Component {
@ -17,10 +18,14 @@ class Signinstatistics extends Component {
this.state={
datas:null,
newlist:[],
course_groups:[{id:"全部",name:"全部"}]
course_groups:[{id:"全部",name:"全部"}],
spal:false,
}
}
getdata=(group_id)=>{
this.setState({
spal:true
})
const coursesId=this.props.match.params.coursesId;
let url=`/weapps/courses/${coursesId}/attendances.json`
axios.get(url,{params:{
@ -60,7 +65,15 @@ class Signinstatistics extends Component {
}
}
})
this.setState({
spal:false
})
}).catch((error) => {
this.setState({
spal:false
})
})
}
componentDidMount() {
@ -84,7 +97,7 @@ class Signinstatistics extends Component {
}
render() {
let {datas,newlist,course_groups}=this.state;
let {datas,newlist,course_groups,spal}=this.state;
const cols = {
month: {
@ -95,11 +108,22 @@ class Signinstatistics extends Component {
return(
<React.Fragment >
<div>
{
spal===true?
<div style={{
minHeight:"500px",
}}>
<LoadingSpin></LoadingSpin>
</div>
<Row type="flex" justify="space-between" className={"mt20"}>
<style>
{
`
:
<div>
<Row type="flex" justify="space-between" className={"mt20"}>
<style>
{
`
.lishiqiandao{
background-image: url(${getImageUrl(`images/qiandao/lishi.png`)});
}
@ -113,108 +137,112 @@ class Signinstatistics extends Component {
background-image: url(${getImageUrl(`images/qiandao/qingjia.png`)});
}
`
}
</style>
<Col span={6}>
<Card style={{ width: 209 }} className={"gutterrowbox lishiqiandao"}>
<div className={"gutterrowboxcontent ml5"}>{datas&&datas.all_history_count}</div>
</Card>
</Col>
<Col span={6}>
<Card style={{ width: 209 }} className={"ml8 gutterrowbox daokeqiandao"}>
<div className={"gutterrowboxcontent ml5"}>{datas?(datas&&datas.avg_normal_rate*100).toFixed(0)+"%":""}</div>
</Card>
</Col>
<Col span={6}>
<Card style={{ width: 209 }} className={"ml14 gutterrowbox kuangkeqiandao"}>
<div className={"gutterrowboxcontent ml5"}>{datas?(datas&&datas.avg_absence_rate*100).toFixed(0)+"%":""}</div>
</Card>
</Col>
<Col span={6} >
<Card style={{ width: 209 }} className={"ml20 gutterrowbox qingjiaqiandao"}>
<div className={"gutterrowboxcontent ml5"}>{datas?(datas&&datas.avg_leave_rate*100).toFixed(0)+"%":""}</div>
</Card>
</Col>
</Row>
<div className={"SigninstatisticsChart mt20"}>
<div className={"pd30"}>
<Row>
<Col span={14}>
<Row type="flex" justify="start">
<Col span={5}>
<Row>
<Col span={12} className={"mindaoke mr5"}></Col>
<Col>到课率</Col>
</Row>
</Col>
<Col span={5}>
<Row>
<Col span={12} className={"minkuangke mr5"}></Col>
<Col>旷课率</Col>
</Row>
</Col>
<Col span={5}>
<Row>
<Col span={12} className={"minqingjia mr5"}></Col>
<Col>请假率</Col>
</Row>
</Col>
</Row>
</Col>
<Col span={10}><Row type="flex" justify="end">
<Col span={8} className={"Signinstatisticsfont"}>显示最近十次签到</Col>
<Col span={10}>
<Select defaultValue={"全部"} onChange={(e)=>this.handleChange(e)} style={{width:"130px"}}>
{course_groups&&course_groups.map((item,key)=>{
return(
<Option value={item.id} title={item.name} >{item.name}</Option>
)
})}
</Select>
</Col>
</Row></Col>
</Row>
</div>
<div className={"padding03000"}>
<Chart height={400} data={newlist} scale={cols} forceFit>
{/*<Legend />*/}
<Axis name="month" />
<Axis
name="temperature"
label={{
formatter: val => `${val}%`
}}
/>
<Tooltip
crosshairs={{
type: "y"
}}
/>
<Geom
type="line"
position="month*temperature"
size={2}
// color={"city"}
shape={"smooth"}
color={["city", ["#26C7C9", "#FF835C","#EDBA6F"]]}
/>
<Geom
type="point"
position="month*temperature"
size={4}
shape={"circle"}
color={["city", ["#26C7C9", "#FF835C","#EDBA6F"]]}
style={{
stroke: "#fff",
lineWidth: 1
}}
/>
</Chart>
</div>
</div>
}
</style>
<Col span={6}>
<Card style={{ width: 209 }} className={"gutterrowbox lishiqiandao"}>
<div className={"gutterrowboxcontent ml5"}>{datas&&datas.all_history_count}</div>
</Card>
</Col>
<Col span={6}>
<Card style={{ width: 209 }} className={"ml8 gutterrowbox daokeqiandao"}>
<div className={"gutterrowboxcontent ml5"}>{datas?(datas&&datas.avg_normal_rate*100).toFixed(0)+"%":""}</div>
</Card>
</Col>
<Col span={6}>
<Card style={{ width: 209 }} className={"ml14 gutterrowbox kuangkeqiandao"}>
<div className={"gutterrowboxcontent ml5"}>{datas?(datas&&datas.avg_absence_rate*100).toFixed(0)+"%":""}</div>
</Card>
</Col>
<Col span={6} >
<Card style={{ width: 209 }} className={"ml20 gutterrowbox qingjiaqiandao"}>
<div className={"gutterrowboxcontent ml5"}>{datas?(datas&&datas.avg_leave_rate*100).toFixed(0)+"%":""}</div>
</Card>
</Col>
</Row>
<div className={"SigninstatisticsChart mt20"}>
<div className={"pd30"}>
<Row>
<Col span={14}>
<Row type="flex" justify="start">
<Col span={5}>
<Row>
<Col span={12} className={"mindaoke mr5"}></Col>
<Col>到课率</Col>
</Row>
</Col>
<Col span={5}>
<Row>
<Col span={12} className={"minkuangke mr5"}></Col>
<Col>旷课率</Col>
</Row>
</Col>
<Col span={5}>
<Row>
<Col span={12} className={"minqingjia mr5"}></Col>
<Col>请假率</Col>
</Row>
</Col>
</Row>
</Col>
<Col span={10}><Row type="flex" justify="end">
<Col span={8} className={"Signinstatisticsfont"}>显示最近十次签到</Col>
<Col span={10}>
<Select defaultValue={"全部"} onChange={(e)=>this.handleChange(e)} style={{width:"130px"}}>
{course_groups&&course_groups.map((item,key)=>{
return(
<Option value={item.id} title={item.name} >{item.name}</Option>
)
})}
</Select>
</Col>
</Row></Col>
</Row>
</div>
<div className={"padding03000"}>
<Chart height={400} data={newlist} scale={cols} forceFit>
{/*<Legend />*/}
<Axis name="month" />
<Axis
name="temperature"
label={{
formatter: val => `${val}%`
}}
/>
<Tooltip
crosshairs={{
type: "y"
}}
/>
<Geom
type="line"
position="month*temperature"
size={2}
// color={"city"}
shape={"smooth"}
color={["city", ["#26C7C9", "#FF835C","#EDBA6F"]]}
/>
<Geom
type="point"
position="month*temperature"
size={4}
shape={"circle"}
color={["city", ["#26C7C9", "#FF835C","#EDBA6F"]]}
style={{
stroke: "#fff",
lineWidth: 1
}}
/>
</Chart>
</div>
</div>
</div>
}
</div>
</React.Fragment>
)
@ -227,4 +255,4 @@ class Signinstatistics extends Component {
export default Signinstatistics;
export default Signinstatistics;

@ -3,6 +3,7 @@ import React,{ Component } from "react";
import { Row, Col,Select,Table,Pagination } from 'antd';
import axios from 'axios';
import LoadingSpin from "../../../../common/LoadingSpin";
import NoneDatas from "../component/NoneDatas";
const { Option } = Select;
class Signedinlist extends Component {
@ -85,10 +86,13 @@ class Signedinlist extends Component {
this.setState({
member_attendances:response.data.member_attendances,
members_count:response.data.members_count,
loading:false
})
}
this.setState({
loading:false
})
}).catch((error) => {
that.setState({
loading:false
@ -304,12 +308,21 @@ class Signedinlist extends Component {
</Row>
<div className={"backfff mt10"}>
{
this.state.loading===true?
<div style={{
minHeight:"400px",
}}>
<LoadingSpin></LoadingSpin>
</div>
:
member_attendances&&member_attendances.length===0?
<div style={{
minHeight:"400px",
}}>
<LoadingSpin></LoadingSpin>
{/*<LoadingSpin></LoadingSpin>*/}
<NoneDatas></NoneDatas>
</div>
:
// loading={this.state.loading}
<Table columns={columns} dataSource={member_attendances} pagination={false} />
@ -319,9 +332,14 @@ class Signedinlist extends Component {
</div>
<div className="mb30 clearfix educontent mt40 intermediatecenter">
<Pagination showQuickJumper current={this.state.page} onChange={this.paginationonChange}
pageSize={this.state.limit}
total={this.state.members_count}></Pagination>
{
member_attendances&&member_attendances.length>0?
<Pagination showQuickJumper current={this.state.page} onChange={this.paginationonChange}
pageSize={this.state.limit}
total={this.state.members_count}></Pagination>
:""
}
</div>
</React.Fragment>

Loading…
Cancel
Save