Commit 92688bbd by chenshu

feat:初始化

parent 92a4c2c1
...@@ -19,6 +19,7 @@ import { ...@@ -19,6 +19,7 @@ import {
Switch, Switch,
TimePicker, TimePicker,
InputNumber, InputNumber,
Tooltip,
} from 'antd'; } from 'antd';
import $ from 'jquery'; import $ from 'jquery';
...@@ -86,7 +87,7 @@ class AddOfflineCourse extends React.Component { ...@@ -86,7 +87,7 @@ class AddOfflineCourse extends React.Component {
nickName:null nickName:null
}, },
calendarTime: [], calendarTime: [],
offlineCourseType: 'ANY_DAY_POFFLINE', offlineCourseType: 'ALL_DAY_OFFLINE',
signInType: 'START_AGO', signInType: 'START_AGO',
signOutType: 'START_LATER', signOutType: 'START_LATER',
oldQuta: null, oldQuta: null,
...@@ -993,10 +994,10 @@ class AddOfflineCourse extends React.Component { ...@@ -993,10 +994,10 @@ class AddOfflineCourse extends React.Component {
className="mt5" className="mt5"
disabled={isEditDisablie} disabled={isEditDisablie}
> >
<Radio value="ANY_DAY_POFFLINE" className="mr-16"> <Radio value="ALL_DAY_OFFLINE" className="mr-16">
<span style={{ color: "#333" }}>所选日期都要上课</span> <span style={{ color: "#333" }}>所选日期都要上课</span>
</Radio> </Radio>
<Radio value="ALL_DAY_OFFLINE" className="mr-16"> <Radio value="ANY_DAY_POFFLINE" className="mr-16">
<span style={{ color: "#333" }}>选择任意1天上课</span> <span style={{ color: "#333" }}>选择任意1天上课</span>
</Radio> </Radio>
</Radio.Group> </Radio.Group>
...@@ -1025,7 +1026,13 @@ class AddOfflineCourse extends React.Component { ...@@ -1025,7 +1026,13 @@ class AddOfflineCourse extends React.Component {
/> />
</div>} </div>}
{whetherSetApply === 'YES' && <div className="switch-item" key="3"> {whetherSetApply === 'YES' && <div className="switch-item" key="3">
<span className="switch-label">报名人数:最多</span> <span className="switch-label">
报名人数
<Tooltip title="报名一旦开始,报名人数不支持减少">
<span style={{ margin: '0 4px', color: '#999' }} className="icon iconfont">&#xe7c4;</span>
</Tooltip>
:最多
</span>
<InputNumber <InputNumber
value={quota} value={quota}
min={oldQuta || 1} min={oldQuta || 1}
......
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
import React from 'react'; import React from 'react';
import { Table, Modal, message , Tooltip,Switch,Dropdown} from 'antd'; import { Table, Modal, message , Tooltip,Switch,Dropdown} from 'antd';
import { Route, withRouter } from 'react-router-dom'; import { Route, withRouter } from 'react-router-dom';
import moment from 'moment';
import $ from 'jquery';
import { PageControl } from "@/components"; import { PageControl } from "@/components";
import { appId, shareUrl, LIVE_SHARE } from '@/domains/course-domain/constants'; import { appId, shareUrl, LIVE_SHARE } from '@/domains/course-domain/constants';
import OfflineCourseData from '@/modules/course-manage/offline-course/OfflineCourseData'; import OfflineCourseData from '@/modules/course-manage/offline-course/OfflineCourseData';
...@@ -21,7 +23,6 @@ import ENUM from "../../../knowledge-base/ENUM.js"; ...@@ -21,7 +23,6 @@ import ENUM from "../../../knowledge-base/ENUM.js";
import User from '@/common/js/user' import User from '@/common/js/user'
import QRCodeModal from '../modal/QRCodeModal'; import QRCodeModal from '../modal/QRCodeModal';
import './OfflineCourseList.less'; import './OfflineCourseList.less';
import moment from 'moment';
const ENV = process.env.DEPLOY_ENV || 'dev'; const ENV = process.env.DEPLOY_ENV || 'dev';
const defaultCoverUrl = 'https://image.xiaomaiketang.com/xm/YNfi45JwFA.png'; const defaultCoverUrl = 'https://image.xiaomaiketang.com/xm/YNfi45JwFA.png';
...@@ -122,7 +123,10 @@ class OfflineCourseList extends React.Component { ...@@ -122,7 +123,10 @@ class OfflineCourseList extends React.Component {
dataIndex: "courseware", dataIndex: "courseware",
render: (val, item, index) => { render: (val, item, index) => {
return ( return (
<Switch defaultChecked={item.shelfState === "YES"} onChange={() => this.changeShelfState(item)}/> <Switch
defaultChecked={item.shelfState === "YES"}
onChange={() => this.changeShelfState(item)}
/>
) )
}, },
}, },
...@@ -140,8 +144,8 @@ class OfflineCourseList extends React.Component { ...@@ -140,8 +144,8 @@ class OfflineCourseList extends React.Component {
{ {
title: '报名时间', title: '报名时间',
width: 181, width: 181,
key: 'updated', key: 'apply',
dataIndex: 'updated', dataIndex: 'apply',
sorter: true, sorter: true,
render: (val, item) => { render: (val, item) => {
return item.startTimeApply ? `${formatDate('MM-DD H:i', item.startTimeApply)} ~ ${formatDate('MM-DD H:i', item.endTimeApply)}` : '-' return item.startTimeApply ? `${formatDate('MM-DD H:i', item.startTimeApply)} ~ ${formatDate('MM-DD H:i', item.endTimeApply)}` : '-'
...@@ -192,36 +196,63 @@ class OfflineCourseList extends React.Component { ...@@ -192,36 +196,63 @@ class OfflineCourseList extends React.Component {
// 显示预览弹窗 // 显示预览弹窗
handleShowPreviewModal = (query) => { handleShowPreviewModal = (query) => {
const { const {
coverUrl,
courseName, courseName,
startTime, startTime,
endTime, endTime,
introduce,
categoryName, categoryName,
offlinePlace, offlinePlace,
courseMediaVOS,
} = query; } = query;
let coverUrl = '';
courseMediaVOS.map((item) => {
switch (item.contentType){
case "COVER":
coverUrl = item.mediaUrl;
break;
case "INTRO":
this.getTextDetail('introduce', item.mediaUrl);
break;
default:
break;
}
return item;
})
setTimeout(() => {
const { introduce } = this.state;
const data = {
coverUrl,
courseName,
startTime,
endTime,
categoryName,
introduce,
offlinePlace,
}
const previewOfflineModal = (
<PreviewOfflineModal
data={data}
close={() => {
this.setState({
previewOfflineModal: null
})
}}
/>
);
this.setState({ previewOfflineModal });
}, 500)
}
const data = { getTextDetail = (key, url) => {
coverUrl, $.ajax({
courseName, data: {},
startTime, type: 'GET',
endTime, url,
categoryName, contentType:'application/x-www-form-urlencoded; charset=UTF-8',
introduce, success: (res) => {
offlinePlace, this.setState({ [key]: res, [`load${key}`]: true });
} }
const previewOfflineModal = ( })
<PreviewOfflineModal
data={data}
close={() => {
this.setState({
previewOfflineModal: null
})
}}
/>
);
this.setState({ previewOfflineModal });
} }
renderMoreOperate = (item) => { renderMoreOperate = (item) => {
...@@ -367,8 +398,10 @@ class OfflineCourseList extends React.Component { ...@@ -367,8 +398,10 @@ class OfflineCourseList extends React.Component {
let _columnKey; let _columnKey;
let _order; let _order;
// 按创建时间升序排序 // 按创建时间升序排序
if (columnKey === 'apply' && order === 'ascend') {_columnKey="START_APPLY_DESC"; _order = 'SORT_ASC'; }
if (columnKey === 'created' && order === 'ascend') {_columnKey="CREATED"; _order = 'SORT_ASC'; } if (columnKey === 'created' && order === 'ascend') {_columnKey="CREATED"; _order = 'SORT_ASC'; }
// 按创建时间降序排序 // 按创建时间降序排序
if (columnKey === 'apply' && order === 'descend') { _columnKey="START_APPLY_DESC"; _order = 'SORT_DESC';}
if (columnKey === 'created' && order === 'descend') { _columnKey="CREATED"; _order = 'SORT_DESC';} if (columnKey === 'created' && order === 'descend') { _columnKey="CREATED"; _order = 'SORT_DESC';}
const _query = { const _query = {
...query, ...query,
......
...@@ -100,20 +100,20 @@ export default class QRCodeModal extends React.Component { ...@@ -100,20 +100,20 @@ export default class QRCodeModal extends React.Component {
render() { render() {
const { visible, onCancel } = this.props; const { visible, onCancel } = this.props;
const { selectedDate, data = {} } = this.state; const { selectedDate, data = {} } = this.state;
const { startTime, endTime, courseName, whetherSetSignIn, whetherSetSignOut, signInType, signOutType } = data; const { courseName, whetherSetSignIn, whetherSetSignOut } = data;
const date = moment(selectedDate).format('YYYY-MM-DD'); const date = moment(selectedDate).format('YYYY-MM-DD');
const unit = (data.signInTimeUnit || '').toLocaleLowerCase() + 's'; const unit = (data.signInTimeUnit || '').toLocaleLowerCase() + 's';
const time = moment(data.signInType == 'START_AGO' ? data.startTime : data.endTime).subtract(data.signInTimeNum, unit); const time = moment(`${date} ${moment(data.signInType == 'START_AGO' ? data.startTime : data.endTime).format('HH:mm')}`).subtract(data.signInTimeNum, unit);
const signInTime = data.signInType == 'START_AGO' ? `${date} ${moment(time).format('HH:mm')} ~ ${date} ${moment(data.startTime).format('HH:mm')}` : `${date} ${moment(data.startTime).format('HH:mm')} ~ ${date} ${moment(time).format('HH:mm')}`; const signInTime = `${moment(time).format('YYYY-MM-DD HH:mm')} ~ ${moment(data.signInType == 'START_AGO' ? data.startTime : data.endTime).format('YYYY-MM-DD HH:mm')}`;
const endUnit = (data.signOutEndTimeUnit || '').toLocaleLowerCase() + 's'; const endUnit = (data.signOutEndTimeUnit || '').toLocaleLowerCase() + 's';
const end = moment(data.endTime).add(data.signOutEndTimeNum, endUnit); const end = moment(`${date} ${moment(data.endTime).format('HH:mm')}`).add(data.signOutEndTimeNum, endUnit);
let startUnit = ''; let startUnit = '';
let start = ''; let start = '';
if (data.signOutType === 'START_LATER') { if (data.signOutType === 'START_LATER') {
startUnit = (data.signOutStartTimeUnit || '').toLocaleLowerCase() + 's'; startUnit = (data.signOutStartTimeUnit || '').toLocaleLowerCase() + 's';
start = moment(data.startTime).add(data.signOutStartTimeNum, startUnit); start = moment(`${date} ${moment(data.startTime).format('HH:mm')}`).add(data.signOutStartTimeNum, startUnit);
} }
const signOutTime = data.signOutType === 'START_LATER' ? `${date} ${moment(start).format('HH:mm')} ~ ${date} ${moment(end).format('HH:mm')}` : `${date} ${moment(data.endTime).format('HH:mm')} ~ ${date} ${moment(end).format('HH:mm')}`; const signOutTime = data.signOutType === 'START_LATER' ? `${moment(start).format('YYYY-MM-DD HH:mm')} ~ ${moment(end).format('YYYY-MM-DD HH:mm')}` : `${moment(data.endTime).format('YYYY-MM-DD HH:mm')} ~ ${moment(end).format('YYYY-MM-DD HH:mm')}`;
return ( return (
<Modal <Modal
title="考勤二维码" title="考勤二维码"
......
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