Commit 763f0af7 by yuananting

Merge branch 'feature/yuananting/20210801/task-center' into dev

parents 83992a8b 31a08f4f
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
* @Author: yuananting * @Author: yuananting
* @Date: 2021-07-29 13:57:03 * @Date: 2021-07-29 13:57:03
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-08-17 19:14:55 * @LastEditTime: 2021-08-18 10:53:45
* @Description: 任务中心-培训任务-新建页面 * @Description: 任务中心-培训任务-新建页面
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import React, { useEffect, useState, useRef } from 'react'; import React, { useEffect, useState, useRef } from 'react';
import { Button, message } from 'antd'; import { Button, message, Modal } from 'antd';
import ShowTips from '@/components/ShowTips'; import ShowTips from '@/components/ShowTips';
import Breadcrumbs from '@/components/Breadcrumbs'; import Breadcrumbs from '@/components/Breadcrumbs';
import BasicInfo from './components/BasicInfo'; import BasicInfo from './components/BasicInfo';
...@@ -37,7 +37,7 @@ function AddTrainTask() { ...@@ -37,7 +37,7 @@ function AddTrainTask() {
helpStoreUserIds: [ helpStoreUserIds: [
{ {
checkedId: User.getStoreUserId(), checkedId: User.getStoreUserId(),
checkedName: User.getStoreUserName() checkedName: User.getStoreUserName(),
}, },
], // 指定协同者id ], // 指定协同者id
timeType: 'FOREVER', // 培训时间,默认永久有效 timeType: 'FOREVER', // 培训时间,默认永久有效
...@@ -58,6 +58,15 @@ function AddTrainTask() { ...@@ -58,6 +58,15 @@ function AddTrainTask() {
}, },
]; ];
const DEFAULT_ORIGIN_STAGE_LIST = [
{
stageName: '阶段一',
contentList: [],
check: false,
sequence: 1,
},
];
const [activeStep, setActiveStep] = useState('BASIC_INFO'); const [activeStep, setActiveStep] = useState('BASIC_INFO');
const [basicInfo, setBasicInfo] = useState(DEFAULT_BASIC_INFO); const [basicInfo, setBasicInfo] = useState(DEFAULT_BASIC_INFO);
const [stageList, setStageList] = useState(DEFAULT_STAGE_LIST); const [stageList, setStageList] = useState(DEFAULT_STAGE_LIST);
...@@ -67,6 +76,14 @@ function AddTrainTask() { ...@@ -67,6 +76,14 @@ function AddTrainTask() {
const [startCheck, setStartCheck] = useState(false); // 是否启动校验 const [startCheck, setStartCheck] = useState(false); // 是否启动校验
const basicInfoRef = useRef(null); const basicInfoRef = useRef(null);
const [originBasicInfo, setOriginBasicInfo] = useState(DEFAULT_BASIC_INFO);
const [originStageList, setOriginStageList] = useState(DEFAULT_ORIGIN_STAGE_LIST);
const [originPercentCompleteLive, setOriginPercentCompleteLive] = useState(80); // 完成百分比
const [originPercentCompleteVideo, setOriginPercentCompleteVideo] = useState(80); // 完成百分比
const [originPercentCompletePicture, setOriginPercentCompletePicture] = useState(80); // 完成百分比
useEffect(() => { useEffect(() => {
basicInfoRef.current = basicInfo; basicInfoRef.current = basicInfo;
}, [basicInfo]); }, [basicInfo]);
...@@ -137,13 +154,19 @@ function AddTrainTask() { ...@@ -137,13 +154,19 @@ function AddTrainTask() {
return item; return item;
}); });
const _originStageList = _stageList.map((item) => Object.assign({}, item));
const introduceInfo = courseMediaVOS.filter((item) => item.contentType === 'INTRO')[0]; const introduceInfo = courseMediaVOS.filter((item) => item.contentType === 'INTRO')[0];
setBasicInfo({ ...basicInfoRef.current, ...ITEM_BASIC_INFO, loadintroduce: !introduceInfo }); setBasicInfo({ ...basicInfoRef.current, ...ITEM_BASIC_INFO, loadintroduce: !introduceInfo });
setOriginBasicInfo({ ...basicInfoRef.current, ...ITEM_BASIC_INFO, loadintroduce: !introduceInfo });
setPercentCompleteLive(percentCompleteLive); setPercentCompleteLive(percentCompleteLive);
setPercentCompleteVideo(percentCompleteVideo); setPercentCompleteVideo(percentCompleteVideo);
setPercentCompletePicture(percentCompletePicture); setPercentCompletePicture(percentCompletePicture);
setOriginPercentCompleteLive(percentCompleteLive);
setOriginPercentCompleteVideo(percentCompleteVideo);
setOriginPercentCompletePicture(percentCompletePicture);
setStageList(_stageList); setStageList(_stageList);
setOriginStageList(_originStageList);
introduceInfo && getTextDetail('introduce', introduceInfo); introduceInfo && getTextDetail('introduce', introduceInfo);
}); });
...@@ -165,6 +188,11 @@ function AddTrainTask() { ...@@ -165,6 +188,11 @@ function AddTrainTask() {
[key]: res, [key]: res,
[`load${key}`]: true, [`load${key}`]: true,
}); });
setOriginBasicInfo({
...basicInfoRef.current,
[key]: res,
[`load${key}`]: true,
});
}, },
}); });
} else if (info.mediaType === 'TEXT') { } else if (info.mediaType === 'TEXT') {
...@@ -173,6 +201,11 @@ function AddTrainTask() { ...@@ -173,6 +201,11 @@ function AddTrainTask() {
[key]: info.mediaContent, [key]: info.mediaContent,
[`load${key}`]: true, [`load${key}`]: true,
}); });
setOriginBasicInfo({
...basicInfoRef.current,
[key]: info.mediaContent,
[`load${key}`]: true,
});
} }
} }
...@@ -348,9 +381,41 @@ function AddTrainTask() { ...@@ -348,9 +381,41 @@ function AddTrainTask() {
} }
} }
// 判断基本信息是否修改
function isEqualBasicInfo() {
return Object.entries(originBasicInfo).toString() === Object.entries(basicInfo).toString();
}
// 判断培训内容是否修改
function isEqualStageList() {
return JSON.stringify(originStageList) === JSON.stringify(stageList);
}
// 判断完成标准是否修改
function isFinishedStandard() {
return (
percentCompleteLive === originPercentCompleteLive &&
percentCompleteVideo === originPercentCompleteVideo &&
percentCompletePicture === originPercentCompletePicture
);
}
// 返回、取消 // 返回、取消
function handleGoBack() { function handleGoBack() {
window.RCHistory.goBack(); if (!isEqualBasicInfo() || !isEqualStageList() || !isFinishedStandard()) {
Modal.confirm({
title: '确认要返回吗?',
content: '返回后,本次编辑的内容将不被保存。',
okText: '确认返回',
cancelText: '留在本页',
icon: <span className='icon iconfont default-confirm-icon'>&#xe6f4;</span>,
onOk: () => {
window.RCHistory.goBack();
},
});
} else {
window.RCHistory.goBack();
}
} }
function handleChangeBasicInfo(field, value) { function handleChangeBasicInfo(field, value) {
......
...@@ -71,6 +71,11 @@ ...@@ -71,6 +71,11 @@
cursor: pointer; cursor: pointer;
} }
} }
.disabled {
color: #ccc !important;
cursor: not-allowed !important;
pointer-events: none !important;
}
} }
.tip { .tip {
......
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