Commit a0a455ba by guomingpang

style: l l l ll l l lcategorySonName

parent c0226200
......@@ -6,25 +6,25 @@
* @Description: 大班直播、互动班课的直播课列表
*/
import User from '@/common/js/user';
import college from '@/common/lottie/college';
import { PageControl, XMTable } from '@/components';
import DownloadLiveModal from '@/components/DownloadLiveModal';
import BaseService from '@/domains/basic-domain/baseService';
import { LIVE_SHARE } from '@/domains/course-domain/constants';
import CourseService from '@/domains/course-domain/CourseService';
import { QuestionCircleOutlined } from '@ant-design/icons';
import { Dropdown, message, Modal, Switch, Tooltip } from 'antd';
import React from 'react';
import { Route, withRouter } from 'react-router-dom';
import _ from 'underscore';
import DataList from '../DataList/DataList';
import ManageCoursewareModal from '../modal/ManageCoursewareModal';
import RelatedPlanModal from '../modal/RelatedPlanModal';
import ShareLiveModal from '../modal/ShareLiveModal';
import './LiveCourseList.less';
import User from '@/common/js/user'
import college from '@/common/lottie/college'
import { PageControl, XMTable } from '@/components'
import DownloadLiveModal from '@/components/DownloadLiveModal'
import BaseService from '@/domains/basic-domain/baseService'
import { LIVE_SHARE } from '@/domains/course-domain/constants'
import CourseService from '@/domains/course-domain/CourseService'
import { QuestionCircleOutlined } from '@ant-design/icons'
import { Dropdown, message, Modal, Switch, Tooltip } from 'antd'
import React from 'react'
import { Route, withRouter } from 'react-router-dom'
import _ from 'underscore'
import DataList from '../DataList/DataList'
import ManageCoursewareModal from '../modal/ManageCoursewareModal'
import RelatedPlanModal from '../modal/RelatedPlanModal'
import ShareLiveModal from '../modal/ShareLiveModal'
import './LiveCourseList.less'
const { confirm } = Modal;
const { confirm } = Modal
const courseStateShow = {
UN_START: {
code: 1,
......@@ -46,33 +46,33 @@ const courseStateShow = {
title: '未成功开课',
color: '#999',
},
};
}
class LiveCourseList extends React.Component {
constructor(props) {
super(props);
super(props)
this.state = {
columns: [],
openDownloadModal: false,
url: '',
RelatedPlanModalVisible: false,
selectPlanList: {},
};
}
}
componentWillMount() {
this.parseColumns();
this.parseColumns()
}
componentDidMount() {
this.getDownloadVersion();
this.getDownloadVersion()
}
// 显示分享弹窗
handleShowShareModal = (item, needStr = false) => {
const { liveCourseId } = item;
const { liveCourseId } = item
const htmlUrl = `${LIVE_SHARE}live_detail/${liveCourseId}?id=${User.getStoreId()}`;
const longUrl = htmlUrl;
console.log('htmlUrl', htmlUrl, longUrl);
const htmlUrl = `${LIVE_SHARE}live_detail/${liveCourseId}?id=${User.getStoreId()}`
const longUrl = htmlUrl
console.log('htmlUrl', htmlUrl, longUrl)
const shareData = { ...item, longUrl };
const shareData = { ...item, longUrl }
const shareLiveModal = (
<ShareLiveModal
needStr={needStr}
......@@ -82,45 +82,45 @@ class LiveCourseList extends React.Component {
close={() => {
this.setState({
shareLiveModal: null,
});
localStorage.setItem('largeLiveCourseItem', '');
})
localStorage.setItem('largeLiveCourseItem', '')
}}
/>
);
)
this.setState({ shareLiveModal });
};
this.setState({ shareLiveModal })
}
//改变上架状态
changeShelfState = (index, item, checked) => {
let _shelfState = checked ? 'YES' : 'NO';
let _shelfState = checked ? 'YES' : 'NO'
const params = {
liveCourseId: item.liveCourseId,
shelfState: _shelfState,
};
}
CourseService.turnOnOrOffLiveCloudCourse(params).then((res) => {
if (res.success) {
if (_shelfState === 'YES') {
message.success('已开启展示');
message.success('已开启展示')
} else {
message.success('已取消展示');
message.success('已取消展示')
}
this.props.changeShelfState(index, _shelfState)
}
this.props.changeShelfState(index, _shelfState);
})
}
});
};
// 前往上课数据页面
handleLinkToClassData = (item) => {
const { match } = this.props;
const { match } = this.props
window.RCHistory.push({
pathname: `${match.url}/live-course-data?type=large&id=${item.liveCourseId}`,
});
};
})
}
parseColumns = () => {
let columns;
const userRole = User.getUserRole();
let columns
const userRole = User.getUserRole()
if (userRole !== 'CloudLecturer') {
columns = [
{
......@@ -130,15 +130,15 @@ class LiveCourseList extends React.Component {
fixed: 'left',
dataIndex: 'courseName',
render: (val, record) => {
let hasCover = false;
let hasCover = false
return (
<div className='record__item'>
{record.courseMediaVOS.map((item, index) => {
if (item.contentType === 'COVER') {
hasCover = true;
return <img key={item.mediaContent + index} className='course-cover' src={item.mediaUrl} alt='' />;
hasCover = true
return <img key={item.mediaContent + index} className='course-cover' src={item.mediaUrl} alt='' />
} else {
return null;
return null
}
})}
{!hasCover && <img className='course-cover' src={'https://image.xiaomaiketang.com/xm/Yip2YtFDwH.png'} alt='' />}
......@@ -189,7 +189,7 @@ class LiveCourseList extends React.Component {
<span key={item.adminId + index}>
{item.adminName} {index < record.admins.length - 1 && <span></span>}{' '}
</span>
);
)
})}
</span>
</Tooltip>
......@@ -202,7 +202,7 @@ class LiveCourseList extends React.Component {
<span>
{item.adminName} {index < record.admins.length - 1 && <span></span>}{' '}
</span>
);
)
})}
</span>
</Otherwise>
......@@ -211,7 +211,7 @@ class LiveCourseList extends React.Component {
</div>
</div>
</div>
);
)
},
},
{
......@@ -220,7 +220,7 @@ class LiveCourseList extends React.Component {
key: 'couseCatalog',
dataIndex: 'couseCatalog',
render: (val, item) => {
return <div className='categoryName'>{item.categoryName}</div>;
return <div className='categoryName'>{item.categorySonName}</div>
},
},
{
......@@ -236,11 +236,11 @@ class LiveCourseList extends React.Component {
this.setState({
editData: item,
openCoursewareModal: true,
});
})
}}>
{item.courseDocumentCount}
</span>
);
)
},
},
{
......@@ -253,11 +253,11 @@ class LiveCourseList extends React.Component {
<span
className='iconfont icon quota-icon'
onClick={() => {
this.handleLinkToClassData(item);
this.handleLinkToClassData(item)
}}>
&#xe7d6;
</span>
);
)
},
},
{
......@@ -289,7 +289,7 @@ class LiveCourseList extends React.Component {
defaultChecked={item.shelfState === 'YES' ? true : false}
onChange={(checked) => this.changeShelfState(index, item, checked)}
/>
);
)
},
},
{
......@@ -300,7 +300,7 @@ class LiveCourseList extends React.Component {
sorter: true,
render: (val, item) => {
// -29000:与后端约定 在初始化学院时,创建时间(标志位-29000)默认展示为'-'
return <span style={{ whiteSpace: 'nowrap' }}>{val === -29000 ? '-' : window.formatDate('YYYY-MM-DD H:i', val)}</span>;
return <span style={{ whiteSpace: 'nowrap' }}>{val === -29000 ? '-' : window.formatDate('YYYY-MM-DD H:i', val)}</span>
},
},
{
......@@ -319,7 +319,7 @@ class LiveCourseList extends React.Component {
<span>
{item.planName} {index < record.relatedPlanList.length - 1 && <span></span>}{' '}
</span>
);
)
})}
</Tooltip>
</When>
......@@ -328,7 +328,7 @@ class LiveCourseList extends React.Component {
</Otherwise>
</Choose>
</div>
);
)
},
},
{
......@@ -347,7 +347,7 @@ class LiveCourseList extends React.Component {
key='enter_live_room1'
className='operate__item'
onClick={() => {
this.handleEnterLiveRoom(item);
this.handleEnterLiveRoom(item)
}}>
进入直播间
</div>
......@@ -363,7 +363,7 @@ class LiveCourseList extends React.Component {
key='view_play_back'
className='operate__item'
onClick={() => {
this.handleViewPlayBack(item);
this.handleViewPlayBack(item)
}}>
查看回放
</div>
......@@ -379,7 +379,7 @@ class LiveCourseList extends React.Component {
key='share'
className='operate__item'
onClick={() => {
this.handleShowShareModal(item);
this.handleShowShareModal(item)
}}>
分享
</div>
......@@ -409,10 +409,10 @@ class LiveCourseList extends React.Component {
</div>
)}
</div>
);
)
},
},
];
]
} else {
columns = [
{
......@@ -421,13 +421,13 @@ class LiveCourseList extends React.Component {
key: 'course',
dataIndex: 'courseName',
render: (val, record) => {
let hasCover = false;
let hasCover = false
return (
<div className='record__item'>
{record.courseMediaVOS.map((item, index) => {
if (item.contentType === 'COVER') {
hasCover = true;
return <img className='course-cover' src={item.mediaUrl} alt='' />;
hasCover = true
return <img className='course-cover' src={item.mediaUrl} alt='' />
}
})}
{!hasCover && <img className='course-cover' src={'https://image.xiaomaiketang.com/xm/Yip2YtFDwH.png'} alt='' />}
......@@ -477,7 +477,7 @@ class LiveCourseList extends React.Component {
<span>
{item.adminName} {index < record.admins.length - 1 && <span></span>}{' '}
</span>
);
)
})}
</span>
</Tooltip>
......@@ -490,7 +490,7 @@ class LiveCourseList extends React.Component {
<span>
{item.adminName} {index < record.admins.length - 1 && <span></span>}{' '}
</span>
);
)
})}
</span>
</Otherwise>
......@@ -499,7 +499,7 @@ class LiveCourseList extends React.Component {
</div>
</div>
</div>
);
)
},
},
{
......@@ -508,7 +508,7 @@ class LiveCourseList extends React.Component {
key: 'couseCatalog',
dataIndex: 'couseCatalog',
render: (val, item) => {
return <div className='categoryName'>{item.categoryName}</div>;
return <div className='categoryName'>{item.categorySonName}</div>
},
},
{
......@@ -524,11 +524,11 @@ class LiveCourseList extends React.Component {
this.setState({
editData: item,
openCoursewareModal: true,
});
})
}}>
{item.courseDocumentCount}
</span>
);
)
},
},
{
......@@ -541,11 +541,11 @@ class LiveCourseList extends React.Component {
<span
className='iconfont icon quota-icon'
onClick={() => {
this.handleLinkToClassData(item);
this.handleLinkToClassData(item)
}}>
&#xe7d6;
</span>
);
)
},
},
{
......@@ -555,7 +555,7 @@ class LiveCourseList extends React.Component {
dataIndex: 'created',
sorter: true,
render: (val, item) => {
return <span>{window.formatDate('YYYY-MM-DD H:i', val)}</span>;
return <span>{window.formatDate('YYYY-MM-DD H:i', val)}</span>
},
},
{
......@@ -574,7 +574,7 @@ class LiveCourseList extends React.Component {
<span>
{item.planName} {index < record.relatedPlanList.length - 1 && <span></span>}{' '}
</span>
);
)
})}
</Tooltip>
</When>
......@@ -583,36 +583,36 @@ class LiveCourseList extends React.Component {
</Otherwise>
</Choose>
</div>
);
)
},
},
];
]
}
this.setState({ columns })
}
this.setState({ columns });
};
handleAdminName = (adminArray) => {
let adminStr = '';
let adminStr = ''
adminArray.forEach((item, index) => {
if (index < adminArray.length - 1) {
adminStr = adminStr + item.adminName + '、';
adminStr = adminStr + item.adminName + '、'
} else {
adminStr = adminStr + item.adminName;
adminStr = adminStr + item.adminName
}
})
return adminStr
}
});
return adminStr;
};
handlePlanName = (planArray) => {
let planStr = '';
let planStr = ''
planArray.forEach((item, index) => {
if (index < planArray.length - 1) {
planStr = planStr + item.planName + '、';
planStr = planStr + item.planName + '、'
} else {
planStr = planStr + item.planName;
planStr = planStr + item.planName
}
})
return planStr
}
});
return planStr;
};
renderMoreOperate = (item) => {
return (
......@@ -631,8 +631,8 @@ class LiveCourseList extends React.Component {
</div>
)}
</div>
);
};
)
}
handleDelete = (record) => {
return confirm({
title: '你确定要删除直播课?',
......@@ -644,29 +644,29 @@ class LiveCourseList extends React.Component {
width: 440,
height: 188,
onOk: () => {
this.deleteConfirm(record);
this.deleteConfirm(record)
},
});
};
})
}
deleteConfirm = (item) => {
const params = {
liveCourseId: item.liveCourseId,
};
}
CourseService.delLiveCloudCourse(params).then((res) => {
if (res.success) {
message.success('已删除');
this.props.onChange();
message.success('已删除')
this.props.onChange()
}
})
}
});
};
toEditCoursePage = (item) => {
window.RCHistory.push({
pathname: `/create-live-course?type=edit&id=${item.liveCourseId}`,
});
};
})
}
refreshCourseList = () => {
this.props.onChange(this.props.query);
};
this.props.onChange(this.props.query)
}
//进入直播间
handleEnterLiveRoom = (item) => {
if (item.startTime - Date.now() > 1800000) {
......@@ -679,124 +679,124 @@ class LiveCourseList extends React.Component {
&#xe834;
</span>
),
});
})
} else {
CourseService.getLiveCloudCourseDetail({
liveCourseId: item.liveCourseId,
}).then((res) => {
const url = `xmqx://liveCourseId=${item.liveCourseId}`;
const url = `xmqx://liveCourseId=${item.liveCourseId}`
if (res.result.courseState === 'FINISH') {
Modal.warning({
title: '刷新页面',
icon: <QuestionCircleOutlined />,
content: '课次已结束,请刷新一下',
onOk: () => {
this.refreshCourseList();
this.refreshCourseList()
},
});
})
} else {
this.setState({ url, openDownloadModal: true });
this.setState({ url, openDownloadModal: true })
}
})
}
});
}
};
onShowSizeChange = (current, size) => {
if (current === size) {
return;
return
}
let _query = this.props.query
_query.size = size
this.props.onChange(_query)
}
let _query = this.props.query;
_query.size = size;
this.props.onChange(_query);
};
getDownloadVersion() {
const isMac = /macintosh|mac os x/i.test(navigator.userAgent);
const isMac = /macintosh|mac os x/i.test(navigator.userAgent)
// 判断学员系统
let platform;
let platform
if (!isMac) {
platform = 1;
platform = 1
} else {
platform = 4;
platform = 4
}
BaseService.getLastedVersion({ model: 5, platform }).then((res) => {
const { result = {} } = res;
this.setState({ downloadUrl: result.releaseUrl });
});
const { result = {} } = res
this.setState({ downloadUrl: result.releaseUrl })
})
}
handleViewPlayBack = (item) => {
let htmlUrl;
let htmlUrl
if (item.teacherId === User.getUserId()) {
htmlUrl = `${LIVE_SHARE}replay/${item.liveCourseId}?teacherId=${User.getUserId()}&id=${User.getStoreId()}`;
htmlUrl = `${LIVE_SHARE}replay/${item.liveCourseId}?teacherId=${User.getUserId()}&id=${User.getStoreId()}`
} else if (_.pluck(item.admins, 'adminId').includes(User.getUserId())) {
htmlUrl = `${LIVE_SHARE}replay/${item.liveCourseId}?userId=${User.getUserId()}&id=${User.getStoreId()}`;
htmlUrl = `${LIVE_SHARE}replay/${item.liveCourseId}?userId=${User.getUserId()}&id=${User.getStoreId()}`
} else {
htmlUrl = `${LIVE_SHARE}replay/${item.liveCourseId}?id=${User.getStoreId()}`;
htmlUrl = `${LIVE_SHARE}replay/${item.liveCourseId}?id=${User.getStoreId()}`
}
window.open(htmlUrl)
}
window.open(htmlUrl);
};
handleRelatedModalShow = (item) => {
const selectPlanList = {};
const selectPlanList = {}
if (item.relatedPlanList) {
item.relatedPlanList.map((item, index) => {
selectPlanList[item.planId] = {};
selectPlanList[item.planId].planId = item.planId;
selectPlanList[item.planId].taskBaseVOList = [{ taskId: item.taskId }];
return item;
});
selectPlanList[item.planId] = {}
selectPlanList[item.planId].planId = item.planId
selectPlanList[item.planId].taskBaseVOList = [{ taskId: item.taskId }]
return item
})
}
this.setState({
RelatedPlanModalVisible: true,
selectCourseId: item.liveCourseId,
selectPlanList: selectPlanList,
});
};
})
}
closeRelatedPlanModalVisible = () => {
this.setState({
RelatedPlanModalVisible: false,
});
};
})
}
onChangeSelectPlanList = (selectPlanList) => {
this.setState({
selectPlanList: selectPlanList,
});
};
})
}
onConfirmSelectPlanList = () => {
this.setState(
{
RelatedPlanModalVisible: false,
},
() => {
this.props.onChange();
this.props.onChange()
}
)
}
);
};
handleChangeTable = (pagination, filters, sorter) => {
const { columnKey, order } = sorter;
const { query } = this.props;
let _columnKey;
let _order;
const { columnKey, order } = sorter
const { query } = this.props
let _columnKey
let _order
// 按创建时间升序排序
if (columnKey === 'created' && order === 'ascend') {
_columnKey = 'CREATED';
_order = 'SORT_ASC';
_columnKey = 'CREATED'
_order = 'SORT_ASC'
}
// 按创建时间降序排序
if (columnKey === 'created' && order === 'descend') {
_columnKey = 'CREATED';
_order = 'SORT_DESC';
_columnKey = 'CREATED'
_order = 'SORT_DESC'
}
const _query = {
...query,
sortMap: {},
};
_query.sortMap[_columnKey] = _order;
this.props.onChange(_query);
};
}
_query.sortMap[_columnKey] = _order
this.props.onChange(_query)
}
render() {
const { total, query, courseList, loading } = this.props;
const { current, size } = query;
const { openDownloadModal, downloadUrl, url, columns, openCoursewareModal, editData, RelatedPlanModalVisible, selectCourseId, selectPlanList } = this.state;
const { match } = this.props;
const { total, query, courseList, loading } = this.props
const { current, size } = query
const { openDownloadModal, downloadUrl, url, columns, openCoursewareModal, editData, RelatedPlanModalVisible, selectCourseId, selectPlanList } = this.state
const { match } = this.props
return (
<div className='live-course-list'>
......@@ -822,8 +822,8 @@ class LiveCourseList extends React.Component {
pageSize={size}
total={parseInt(total)}
toPage={(page) => {
const _query = { ...query, current: page + 1 };
this.props.onChange(_query);
const _query = { ...query, current: page + 1 }
this.props.onChange(_query)
}}
onShowSizeChange={this.onShowSizeChange}
/>
......@@ -834,8 +834,8 @@ class LiveCourseList extends React.Component {
<ManageCoursewareModal
data={editData}
onCancel={() => {
this.props.onChange();
this.setState({ openCoursewareModal: false });
this.props.onChange()
this.setState({ openCoursewareModal: false })
}}
/>
)}
......@@ -846,7 +846,7 @@ class LiveCourseList extends React.Component {
this.setState({
url: '',
openDownloadModal: false,
});
})
}}
/>
)}
......@@ -863,8 +863,8 @@ class LiveCourseList extends React.Component {
<iframe src={url} style={{ display: 'none' }} title='navigation' />
<Route path={`${match.url}/live-course-data`} component={DataList} />
</div>
);
)
}
}
export default withRouter(LiveCourseList);
export default withRouter(LiveCourseList)
......@@ -101,7 +101,7 @@ class GraphicsCourseList extends React.Component {
dataIndex: 'categoryName',
width: 120,
render: (val, record) => {
return <div className='record__item'>{record.categoryName}</div>
return <div className='record__item'>{record.categorySonName}</div>
},
},
{
......
......@@ -115,7 +115,7 @@ class OfflineCourseList extends React.Component {
dataIndex: 'categoryName',
width: 120,
render: (val, record) => {
return <div className='record__item'>{record.categoryName}</div>
return <div className='record__item'>{record.categorySonName}</div>
},
},
{
......
......@@ -97,7 +97,7 @@ class VideoCourseList extends React.Component {
dataIndex: 'categoryName',
width: 150,
render: (val, record) => {
return <div className='record__item'>{record.categoryName}</div>
return <div className='record__item'>{record.categorySonName}</div>
},
},
{
......
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