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.
 
 
 
 
 

103 lines
4.5 KiB

import React, { useState, useEffect, useRef } from "react";
import { connect } from "react-redux";
import { DatePicker, Toast, ToastFactory, Space } from '@douyinfe/semi-ui';
import './videoPlay.less';
import moment from "moment";
const timeFormat = 'YYYY-MM-DD HH:mm:ss'
const VideoOperationHistroyTime = ({ close, histroyTime, setHistroyTime, setProcessDisX }) => {
const [selectedTimeRange, setSelectedTimeRange] = useState(histroyTime)
useEffect(() => {
if (!selectedTimeRange.length) {
setSelectedTimeRange([moment().subtract(72, 'hours').format(timeFormat), moment().format(timeFormat)])
}
}, [])
const ToastInCustomContainer = ToastFactory.create({
getPopupContainer: () => document.getElementById('vcmp_videoplay'),
});
return (
<div style={{
position: 'absolute', top: 'calc(50% - 90px)', left: 'calc(50% - 260px)',
width: 520, height: 180, backgroundColor: '#000000A5', padding: '40px 30px',
display: 'flex', flexDirection: 'column', justifyContent: 'space-between'
}}>
<div style={{ display: 'flex', justifyContent: 'center' }}>
<DatePicker
density='compact'
type="dateTimeRange"
value={selectedTimeRange}
onChange={(t, timeRange) => {
setSelectedTimeRange(timeRange)
}}
style={{ width: '100%' }}
// disabledDate={(date, options) => {
// const { rangeStart, rangeEnd } = options;
// // console.log(date, options);
// if (!rangeStart && !rangeEnd) {
// return false
// }
// if (rangeStart) {
// return Math.abs(moment(date).diff(moment(rangeStart), 'days')) > 3
// }
// if (rangeEnd) {
// return Math.abs(moment(date).diff(moment(rangeEnd), 'days')) > 3
// }
// }}
// disabledTime={(date, type) => {
// console.log(date, type);
// }}
/>
</div>
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', }}>
<span style={{ color: '#FF7100' }}>
<img src={`/assets/images/background/warning.png`} height={14} style={{ position: 'relative', top: 2, marginRight: 2 }} />
最长时间跨度不超过72小时
</span>
<span>
<Space>
<div
onClick={() => {
close()
}}
style={{
cursor: 'pointer', height: 32, width: 56, lineHeight: '32px', borderRadius: 2,
textAlign: 'center', background: '#fff', color: 'rgba(0, 0, 0, 0.65)'
}}
>取消</div>
<div
onClick={() => {
if (selectedTimeRange.length == 2 && selectedTimeRange.every(t => t)) {
if (Math.abs(moment(selectedTimeRange[0]).diff(moment(selectedTimeRange[1]), 'hours')) > 72) {
ToastInCustomContainer.destroyAll()
return ToastInCustomContainer.error('所选时间超过 72 小时')
}
setHistroyTime(selectedTimeRange)
playBackTime.current = selectedTimeRange
setProcessDisX(0)
close()
}
}}
style={{
cursor: 'pointer', height: 32, width: 56, lineHeight: '32px', borderRadius: 2,
textAlign: 'center', background: '#1859C1', color: '#fff'
}}
>播放</div>
</Space>
</span>
</div>
</div>
)
}
function mapStateToProps (state) {
const { auth } = state;
return {
user: auth.user,
};
}
export default connect(mapStateToProps)(VideoOperationHistroyTime);