You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
educoder/public/react/src/modules/courses/signin/component/Detailss.js

204 lines
5.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import React, {Component} from "react";
import '../css/signincdi.css';
import {Progress, message} from 'antd';
import QRCode from 'qrcode.react';
import axios from 'axios';
function clearSlct() {
if ("getSelection" in window) {
window.getSelection().removeAllRanges();
} else {
document.selection.empty();
}
;
}
function jsCopy(s) {
clearSlct();
const copyEle = document.getElementById(s);
copyEle.select();
const copyStatus = document.execCommand("Copy");
// 对成功与否定进行提示
copyStatuss(copyStatus)
}
function copyStatuss(copyStatus) {
if (copyStatus) {
message.success('复制成功');
} else {
message.error('复制失败');
}
}
//条目
class Detailss extends Component {
//条目组件
constructor(props) {
super(props);
this.state = {}
}
componentDidMount() {
}
componentDidUpdate = (prevProps) => {
}
render() {
const isAdmin = this.props.isAdmin();
let item = this.props.headdata;
let defaultActiveKey = this.props.defaultActiveKey;
let jdt;
try {
jdt = item.normal_count / item.all_count * 100;
} catch (e) {
jdt = 100;
}
return (
<React.Fragment>
<div className="ws100s edu-back-white sortinxdirection" style={{
position: "relative"
}}>
<div className="ws100s teacherentrydiv ">
<div className="ws100s sortinxdirection">
<p className="sortinxdirection" onClick={()=>this.props.qiandaoxiangq(false)}>
<i style={{color:'#BBBBBB'}} className="iconfont icon-zuojiantou1 posiivsiconmyss mr5 colorbluesigin xiaoshou font-14" onClick={()=>this.props.qiandaoxiangq(false)}></i>
</p>
<p className="ws100s teachedivp ymaxnamewidthdivp86">
{item && item.name}
</p>
</div>
<div className="ws100s sortinxdirection mt17">
<div className="teachedivps">
签到人数
</div>
<div className="progressivps">
<Progress percent={jdt} showInfo={false} strokeColor="#1890ff"/>
</div>
<div className="progressivpss h28s">
已签到 {item && item.normal_count ? item.normal_count : 0} /
应签到 {item && item.all_count ? item.all_count : 0}
</div>
</div>
<div className="ws100s sortinxdirection mt5">
<div className="ws75s sortinxdirection">
<div className="teachedivps h40s">
签到发起人
</div>
<div className="teachedivpsy ymaxnamewidth60 h40s">
{item && item.author.user_name}
</div>
<div className="teachedivps ml20 h40s">
签到方式
</div>
<div className="teachedivpsy ymaxnamewidth80 h40s">
{item && item.mode ?
item.mode === "QRCODE" ?
"二维码签到"
: item.mode === "NUMBER" ?
"数字签到"
: item.mode === "QUICK" ?
"快捷签到"
: ""
: ""}
</div>
<div className="teachedivps ml20 h40s">
开始结束时间
</div>
<div className="teachedivpsy h40s">
{item && item.attendance_date} {item && item.start_time}-{item && item.end_time}
</div>
</div>
{
defaultActiveKey === "1" ?
<div className="ws25s" style={item && item.mode === "NUMBER"?{
position: "relative",
overflow: 'hidden',
}:{
position: "relative",
}}>
{
item && item.mode === "NUMBER" ?
<div className="ws100s xaxisreverseorder ">
<p className="h40s font-16 xiaoshou" style={{
color: "#1890FF"
}} onClick={() => {
jsCopy("file_path" + 1)
}}>
复制签到码
</p>
<p className="h40s font-16" style={{
color: "#333333",
marginRight: "10px",
}}>
{item&&item.code}
</p>
<p className="h40s font-16" style={{
color: "#909399"
}}>签到码</p>
<div style={{
overflow: 'hidden',
height: "1px",
width: "1px",
position: "absolute",
right: "-200px",
}}>
<input id={"file_path" + 1} className="file_path_input" value={item&&item.code}/>
</div>
</div>
:
item && item.mode === "QRCODE" ?
<div style={{
position: "absolute",
bottom: "-11px",
right: "0px",
}}>
<QRCode
value={item&&item.code} //value参数为生成二维码的链接
size={84} //二维码的宽高尺寸
fgColor="#000000" //二维码的颜色
/>
<div className="font-14" style={{
width: "84px",
textAlign: "center",
color: "#333333"
}}>
扫码签到
</div>
</div>
: ""
}
</div>
:
""
}
</div>
</div>
</div>
</React.Fragment>
)
}
}
export default Detailss;