Commit e8ae7a18 by zhujian

fix:rtyuiop

parents d8339d76 3999cd76
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: yuananting * @Author: yuananting
* @Date: 2021-08-06 17:35:35 * @Date: 2021-08-06 17:35:35
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-08-14 15:15:07 * @LastEditTime: 2021-08-16 20:52:16
* @Description: 任务中心接口 * @Description: 任务中心接口
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
...@@ -56,3 +56,11 @@ export function getTrainingCourseAutoCancel(params: object) { ...@@ -56,3 +56,11 @@ export function getTrainingCourseAutoCancel(params: object) {
export function delTaskCancelContent(params: object) { export function delTaskCancelContent(params: object) {
return Service.Hades('public/hades/delTaskCancelContent', params); return Service.Hades('public/hades/delTaskCancelContent', params);
} }
export function getStoreTaskAll(params: object) {
return Service.Hades('public/hades/getStoreTaskAll', params);
}
export function relatedCourseToTask(params: object) {
return Service.Hades('public/hades/relatedCourseToTask', params);
}
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: yuananting * @Author: yuananting
* @Date: 2021-08-06 17:32:41 * @Date: 2021-08-06 17:32:41
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-08-14 15:16:12 * @LastEditTime: 2021-08-16 20:56:36
* @Description: 任务中心-培训任务接口 * @Description: 任务中心-培训任务接口
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
...@@ -20,6 +20,8 @@ import { ...@@ -20,6 +20,8 @@ import {
updateTrainingTaskAssign, updateTrainingTaskAssign,
getTrainingCourseAutoCancel, getTrainingCourseAutoCancel,
delTaskCancelContent, delTaskCancelContent,
getStoreTaskAll,
relatedCourseToTask,
} from '@/data-source/taskCenter/request-apis'; } from '@/data-source/taskCenter/request-apis';
export default class TaskCenterService { export default class TaskCenterService {
...@@ -82,4 +84,14 @@ export default class TaskCenterService { ...@@ -82,4 +84,14 @@ export default class TaskCenterService {
static delTaskCancelContent(params: any) { static delTaskCancelContent(params: any) {
return delTaskCancelContent(params); return delTaskCancelContent(params);
} }
// 获取培训任务学习基本信息
static getStoreTaskAll(params: any) {
return getStoreTaskAll(params);
}
// 课程关联培训任务
static relatedCourseToTask(params: any) {
return relatedCourseToTask(params);
}
} }
...@@ -2,7 +2,7 @@ import User from '@/common/js/user'; ...@@ -2,7 +2,7 @@ import User from '@/common/js/user';
import college from '@/common/lottie/college'; import college from '@/common/lottie/college';
import { PageControl, XMTable } from '@/components'; import { PageControl, XMTable } from '@/components';
import CourseService from '@/domains/course-domain/CourseService'; import CourseService from '@/domains/course-domain/CourseService';
import PlanService from '@/domains/plan-domain/planService'; import TaskCenterService from '@/domains/task-center-domain/TaskCenterService';
import { Input, Modal, Tooltip } from 'antd'; import { Input, Modal, Tooltip } from 'antd';
import React from 'react'; import React from 'react';
import _ from 'underscore'; import _ from 'underscore';
...@@ -33,7 +33,7 @@ class RelatedPlanModal extends React.Component { ...@@ -33,7 +33,7 @@ class RelatedPlanModal extends React.Component {
size, size,
storeId: User.getStoreId(), storeId: User.getStoreId(),
}; };
PlanService.getStorePlanAll(params).then((res) => { TaskCenterService.getStoreTaskAll(params).then((res) => {
const { result = {} } = res; const { result = {} } = res;
const { records = [], total = 0 } = result; const { records = [], total = 0 } = result;
this.setState({ this.setState({
...@@ -66,20 +66,24 @@ class RelatedPlanModal extends React.Component { ...@@ -66,20 +66,24 @@ class RelatedPlanModal extends React.Component {
}; };
renderTitle = () => { renderTitle = () => {
return <div className="tip-title"> return (
<p>为了不影响学员学习,系统已对数据进行筛选</p> <div className='tip-title'>
<p>1、课程不能直接关联「已发布」的培训任务筛选;</p> <p>为了不影响学员学习,系统已对数据进行筛选</p>
<p>2、一个课程不能重复出现在同一培训任务中</p> <p>1、课程不能直接关联「已发布」的培训任务筛选;</p>
</div> <p>2、一个课程不能重复出现在同一培训任务中</p>
} </div>
);
};
renderTableTitle = ()=> { renderTableTitle = () => {
return <div> return (
<Tooltip title={this.renderTitle()} overlayClassName="table-title-tooltip"> <div>
培训任务<span className='icon iconfont table-title'>&#xe6f2;</span> <Tooltip title={this.renderTitle()} overlayClassName='table-title-tooltip'>
</Tooltip> 培训任务<span className='icon iconfont table-title'>&#xe6f2;</span>
</div> </Tooltip>
} </div>
);
};
// 请求表头 // 请求表头
parsePlanColumns = () => { parsePlanColumns = () => {
...@@ -89,9 +93,7 @@ class RelatedPlanModal extends React.Component { ...@@ -89,9 +93,7 @@ class RelatedPlanModal extends React.Component {
key: 'planName', key: 'planName',
dataIndex: 'planName', dataIndex: 'planName',
render: (val, record) => { render: (val, record) => {
return <span>{val} return <span>{val}</span>;
</span>;
}, },
}, },
]; ];
...@@ -111,38 +113,38 @@ class RelatedPlanModal extends React.Component { ...@@ -111,38 +113,38 @@ class RelatedPlanModal extends React.Component {
]; ];
return columns; return columns;
}; };
selectPlanList = (record, selected, planId) => { selectPlanList = (record, selected, taskId) => {
const { selectPlanList } = this.props; const { selectPlanList } = this.props;
let _selectPlanList = { ...selectPlanList }; let _selectPlanList = { ...selectPlanList };
if (selected) { if (selected) {
if (!_selectPlanList[planId]) { if (!_selectPlanList[taskId]) {
_selectPlanList[planId] = {}; _selectPlanList[taskId] = {};
} }
_selectPlanList[planId].taskBaseVOList = []; _selectPlanList[taskId].taskBaseVOList = [];
_selectPlanList[planId].planId = planId; _selectPlanList[taskId].taskId = taskId;
_selectPlanList[planId].taskBaseVOList.push(record); _selectPlanList[taskId].taskBaseVOList.push(record);
} else { } else {
if (!_selectPlanList[planId]) { console.log(_selectPlanList[taskId]);
_selectPlanList[planId] = {}; if (!_selectPlanList[taskId]) {
_selectPlanList[taskId] = {};
} }
_selectPlanList[planId].taskBaseVOList = []; _selectPlanList[taskId].taskBaseVOList = [];
_selectPlanList[planId].planId = planId; _selectPlanList[taskId].taskId = taskId;
} }
this.props.onChange(_selectPlanList); this.props.onChange(_selectPlanList);
// this.setState({selectPlanList:_selectPlanList});
}; };
handleSelectPlanListData(selectPlanList) { handleSelectPlanListData(selectPlanList) {
let _selectPlanList = []; let _selectPlanList = [];
for (let key in selectPlanList) { for (let key in selectPlanList) {
let item = {}; let item = {};
if (selectPlanList[key].taskBaseVOList) { if (selectPlanList[key].taskBaseVOList) {
item.planId = selectPlanList[key].planId; item.taskId = selectPlanList[key].taskId;
if (selectPlanList[key].taskBaseVOList[0]) { if (selectPlanList[key].taskBaseVOList[0]) {
item.taskId = selectPlanList[key].taskBaseVOList[0].taskId; item.stageId = selectPlanList[key].taskBaseVOList[0].taskId;
} }
} }
if (item.taskId) { if (item.stageId) {
_selectPlanList.push(item); _selectPlanList.push(item);
} }
} }
...@@ -152,10 +154,10 @@ class RelatedPlanModal extends React.Component { ...@@ -152,10 +154,10 @@ class RelatedPlanModal extends React.Component {
const { selectPlanList } = this.props; const { selectPlanList } = this.props;
const params = { const params = {
courseId: this.props.selectCourseId, courseId: this.props.selectCourseId,
relatedPlanList: this.handleSelectPlanListData(selectPlanList), relatedTaskList: this.handleSelectPlanListData(selectPlanList),
storeId: User.getStoreId(), storeId: User.getStoreId(),
}; };
CourseService.relatedCourseToPlan(params).then((res) => { TaskCenterService.relatedCourseToTask(params).then((res) => {
this.props.onConfirm(); this.props.onConfirm();
}); });
}; };
...@@ -175,6 +177,7 @@ class RelatedPlanModal extends React.Component { ...@@ -175,6 +177,7 @@ class RelatedPlanModal extends React.Component {
render() { render() {
const { size, dataSource, totalCount, query } = this.state; const { size, dataSource, totalCount, query } = this.state;
const { visible, selectPlanList } = this.props; const { visible, selectPlanList } = this.props;
console.log('selectPlanListselectPlanListselectPlanListselectPlanListselectPlanList', selectPlanList);
return ( return (
<Modal <Modal
title='关联培训任务' title='关联培训任务'
...@@ -218,7 +221,7 @@ class RelatedPlanModal extends React.Component { ...@@ -218,7 +221,7 @@ class RelatedPlanModal extends React.Component {
image: college, image: college,
description: '暂无数据', description: '暂无数据',
}} }}
rowKey={(record) => record.planId} rowKey={(record) => record.taskId}
className='plan-table' className='plan-table'
dataSource={dataSource} dataSource={dataSource}
columns={this.parsePlanColumns()} columns={this.parsePlanColumns()}
...@@ -228,12 +231,14 @@ class RelatedPlanModal extends React.Component { ...@@ -228,12 +231,14 @@ class RelatedPlanModal extends React.Component {
return; return;
} }
if (_record.taskBaseVOList.length !== 0) { if (_record.taskBaseVOList.length !== 0) {
const selectPlan = selectPlanList[_record.planId]; const selectPlan = selectPlanList[_record.taskId];
let taskBaseVOList = []; let taskBaseVOList = [];
if (selectPlan) { if (selectPlan) {
taskBaseVOList = selectPlan.taskBaseVOList; taskBaseVOList = selectPlan.taskBaseVOList;
} }
console.log('selectPlan==============taskBaseVOList:', taskBaseVOList);
return ( return (
<div> <div>
<XMTable <XMTable
...@@ -250,7 +255,7 @@ class RelatedPlanModal extends React.Component { ...@@ -250,7 +255,7 @@ class RelatedPlanModal extends React.Component {
type: 'checkbox', type: 'checkbox',
selectedRowKeys: _.pluck(taskBaseVOList, 'taskId'), selectedRowKeys: _.pluck(taskBaseVOList, 'taskId'),
onSelect: (record, selected) => { onSelect: (record, selected) => {
this.selectPlanList(record, selected, _record.planId); this.selectPlanList(record, selected, _record.taskId);
}, },
onSelectAll: (selected, _selectedRows, changeRows) => {}, onSelectAll: (selected, _selectedRows, changeRows) => {},
}} }}
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: yuananting * @Author: yuananting
* @Date: 2021-08-16 17:35:15 * @Date: 2021-08-16 17:35:15
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-08-16 19:54:39 * @LastEditTime: 2021-08-16 22:06:40
* @Description: 描述一下咯 * @Description: 描述一下咯
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
...@@ -15,10 +15,10 @@ import ENUM from '../../enum'; ...@@ -15,10 +15,10 @@ import ENUM from '../../enum';
import './course.less'; import './course.less';
function CourseTable(props: any) { function CourseTable(props: any) {
const taskId = props.match.params.taskId.replace(/\?.+/, '');
const IndexText = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十']; const IndexText = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十'];
const [list, setList] = useState<any[]>([]); const [list, setList] = useState<any[]>([]);
useEffect(() => { useEffect(() => {
console.log(props.info, 'rtyuio');
setList(props.info.trainingStageList || []); setList(props.info.trainingStageList || []);
}, [props.info.trainingStageList]); }, [props.info.trainingStageList]);
...@@ -68,11 +68,7 @@ function CourseTable(props: any) { ...@@ -68,11 +68,7 @@ function CourseTable(props: any) {
})} })}
</div> </div>
<div className='expired'> <div className='expired'>
<div className='title'>失效课程</div> <ExpiredCourseList taskId={taskId} />
<div className='list'>
<ExpiredCourseList />
</div>
</div> </div>
</div> </div>
); );
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
text-align: center; text-align: center;
margin-left: 24px; margin-left: 24px;
position: relative; position: relative;
top: 4px; top: 2px;
height: 20px; height: 20px;
} }
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: yuananting * @Author: yuananting
* @Date: 2021-08-03 10:47:59 * @Date: 2021-08-03 10:47:59
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-08-16 19:48:44 * @LastEditTime: 2021-08-16 22:04:31
* @Description: 编辑培训任务-失效课程 * @Description: 编辑培训任务-失效课程
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
...@@ -14,20 +14,16 @@ import ENUM from '../../enum'; ...@@ -14,20 +14,16 @@ import ENUM from '../../enum';
import moment from 'moment'; import moment from 'moment';
import TaskCenterService from '@/domains/task-center-domain/TaskCenterService'; import TaskCenterService from '@/domains/task-center-domain/TaskCenterService';
function ExpiredCourseList() { function ExpiredCourseList(props) {
const taskId = window.getParameterByName('taskId');
const type = window.getParameterByName('type');
const [expiredCourseList, setExpiredCourseList] = useState([]); // 失效课程 const [expiredCourseList, setExpiredCourseList] = useState([]); // 失效课程
useEffect(() => { useEffect(() => {
if (type === 'edit') { getTrainingCourseAutoCancel();
getTrainingCourseAutoCancel();
}
}, []); }, []);
// 获取培训任务失效的课程 // 获取培训任务失效的课程
function getTrainingCourseAutoCancel() { function getTrainingCourseAutoCancel() {
TaskCenterService.getTrainingCourseAutoCancel({ taskId }).then((res) => { TaskCenterService.getTrainingCourseAutoCancel({ taskId: props.taskId }).then((res) => {
setExpiredCourseList(res.result); setExpiredCourseList(res.result);
}); });
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: yuananting * @Author: yuananting
* @Date: 2021-07-30 16:33:58 * @Date: 2021-07-30 16:33:58
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-08-16 19:50:01 * @LastEditTime: 2021-08-16 22:10:08
* @Description: 任务中心-培训任务-新建-培训内容 * @Description: 任务中心-培训任务-新建-培训内容
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
...@@ -58,11 +58,12 @@ class TrainContent extends Component { ...@@ -58,11 +58,12 @@ class TrainContent extends Component {
showCourseDrawer: false, showCourseDrawer: false,
showExamDrawer: false, showExamDrawer: false,
selectedStageIndex: 0, selectedStageIndex: 0,
type: window.getParameterByName('type'),
showStandardDetail: false, // 是否展开高级设置 showStandardDetail: false, // 是否展开高级设置
}; };
} }
componentDidMount() {} componentDidMount() { }
setTrianTypeOption = (index) => { setTrianTypeOption = (index) => {
return ( return (
...@@ -460,6 +461,8 @@ class TrainContent extends Component { ...@@ -460,6 +461,8 @@ class TrainContent extends Component {
const { startCheck } = this.props; const { startCheck } = this.props;
const taskId = window.getParameterByName('taskId');
return ( return (
<div className='train-content-page'> <div className='train-content-page'>
<div className='train-content__warp'> <div className='train-content__warp'>
...@@ -484,7 +487,10 @@ class TrainContent extends Component { ...@@ -484,7 +487,10 @@ class TrainContent extends Component {
{showExamDrawer && <RelatedExamDrawer basicInfo={basicInfo} stageList={stageList} onClose={this.onCloseExamDrawer} onSave={this.confirmCreateExam} />} {showExamDrawer && <RelatedExamDrawer basicInfo={basicInfo} stageList={stageList} onClose={this.onCloseExamDrawer} onSave={this.confirmCreateExam} />}
</div> </div>
<ExpiredCourseList /> {
this.state.type === 'edit' && <ExpiredCourseList taskId={taskId} />
}
<div className='finish-standard__warp'> <div className='finish-standard__warp'>
<div <div
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: yuananting * @Author: yuananting
* @Date: 2021-07-28 14:56:52 * @Date: 2021-07-28 14:56:52
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-08-16 09:57:42 * @LastEditTime: 2021-08-16 22:08:57
* @Description: 描述一下咯 * @Description: 描述一下咯
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
...@@ -235,7 +235,6 @@ function TrainList(props) { ...@@ -235,7 +235,6 @@ function TrainList(props) {
width: '12%', width: '12%',
key: 'cultureCustomerNum', key: 'cultureCustomerNum',
dataIndex: 'cultureCustomerNum', dataIndex: 'cultureCustomerNum',
sorter: true,
render: (val, record) => { render: (val, record) => {
return ( return (
<Tooltip <Tooltip
...@@ -279,7 +278,6 @@ function TrainList(props) { ...@@ -279,7 +278,6 @@ function TrainList(props) {
width: '11.5%', width: '11.5%',
key: 'finishPercent', key: 'finishPercent',
dataIndex: 'finishPercent', dataIndex: 'finishPercent',
sorter: true,
render: (val) => { render: (val) => {
return <span>{val}%</span>; return <span>{val}%</span>;
}, },
...@@ -387,28 +385,6 @@ function TrainList(props) { ...@@ -387,28 +385,6 @@ function TrainList(props) {
let _columnKey; let _columnKey;
let _order; let _order;
if (columnKey == 'cultureCustomerNum' && order === 'ascend') {
// 按学习人数升序排序
_columnKey = 'CUSTOMER_NUM';
_order = 'SORT_ASC';
}
if (columnKey == 'cultureCustomerNum' && order === 'descend') {
// 按学习人数降序排序
_columnKey = 'CUSTOMER_NUM';
_order = 'SORT_DESC';
}
if (columnKey == 'finishPercent' && order === 'ascend') {
// 按完成率升序排序
_columnKey = 'FINISH_PERCENT';
_order = 'SORT_ASC';
}
if (columnKey == 'finishPercent' && order === 'descend') {
// 按完成率降序排序
_columnKey = 'FINISH_PERCENT';
_order = 'SORT_DESC';
}
if (columnKey === 'created' && order === 'ascend') { if (columnKey === 'created' && order === 'ascend') {
// 按创建时间升序排序 // 按创建时间升序排序
_columnKey = 'CREATED'; _columnKey = 'CREATED';
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: yuananting * @Author: yuananting
* @Date: 2021-08-05 17:09:36 * @Date: 2021-08-05 17:09:36
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-08-16 20:30:31 * @LastEditTime: 2021-08-16 20:35:24
* @Description: 新建培训任务-选择指派对象 * @Description: 新建培训任务-选择指派对象
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
...@@ -56,6 +56,9 @@ function ChooseAssignorModal(props) { ...@@ -56,6 +56,9 @@ function ChooseAssignorModal(props) {
useEffect(() => { useEffect(() => {
setQueryName(''); // 切换tab时搜索置空 setQueryName(''); // 切换tab时搜索置空
setDepartmentUserVOList([]);
setDepartmentVOList([]);
setSubLevelDepartmentVOList([]);
setStructureData([]); setStructureData([]);
getStructureData(); getStructureData();
}, [activeKey]); }, [activeKey]);
......
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