forked from Gitlink/forgeplus-react
Merge branch 'dev_military_competition' of http://106.75.45.236:3000/tongChong/forgeplus-react into competition
This commit is contained in:
commit
4b31ec629a
|
@ -1,4 +1,4 @@
|
|||
import fetch from './fetch';
|
||||
import fetch,{main_web_site_url} from './fetch';
|
||||
import { notification } from 'antd';
|
||||
|
||||
// 专家列表查询
|
||||
|
@ -18,6 +18,14 @@ export async function expertList(params) {
|
|||
}
|
||||
}
|
||||
|
||||
//删除专家
|
||||
export function deleteExpert(expertId) {
|
||||
return fetch({
|
||||
url: `/api/experts/${expertId}?isDelete=1`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
|
||||
// 获取用户信息
|
||||
export function getUserInfo() {
|
||||
return fetch({
|
||||
|
@ -82,6 +90,14 @@ export function getExpertTasks(params) {
|
|||
});
|
||||
}
|
||||
|
||||
// 获取竞赛作品列表
|
||||
export function getCompetition(id) {
|
||||
return fetch({
|
||||
url: `${main_web_site_url}/api/v1/competitions/${id}/works`,
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
|
||||
// 查看竞赛/任务的评分细则
|
||||
export function getScoringDetails(params) {
|
||||
return fetch({
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import React, { useState, useMemo, useEffect } from "react";
|
||||
import { Input, Select, Button, Form, Table, Upload, Modal } from 'antd';
|
||||
import { Input, Select, Button, Form, Table, Upload, Modal, Popconfirm, message } from 'antd';
|
||||
import cookie from 'react-cookies';
|
||||
import { exportExcel } from '../components/exportExcel.js';
|
||||
import Paginationtable from "../../components/paginationTable";
|
||||
import { Info } from '../../components/ModalFun';
|
||||
import { expertList } from "../api";
|
||||
import { expertList, deleteExpert } from "../api";
|
||||
import { professionalType, reviewArea } from "../static";
|
||||
import { httpUrl } from '../fetch';
|
||||
|
||||
|
@ -38,12 +38,14 @@ function RegisterList({ showNotification }) {
|
|||
return [{
|
||||
title: '姓名',
|
||||
dataIndex: 'expertName',
|
||||
width: 75,
|
||||
width: 85,
|
||||
key: 'expertName',
|
||||
fixed: 'left',
|
||||
// render: (text, record) => {
|
||||
// return record.user ? record.user.nickname || record.user.login : ''
|
||||
// }
|
||||
},
|
||||
{
|
||||
title: '手机号码',
|
||||
dataIndex: 'phone',
|
||||
key: 'phone',
|
||||
},
|
||||
{
|
||||
title: '最高学历',
|
||||
|
@ -52,9 +54,13 @@ function RegisterList({ showNotification }) {
|
|||
width: 80,
|
||||
},
|
||||
{
|
||||
title: '手机号码',
|
||||
dataIndex: 'phone',
|
||||
key: 'phone',
|
||||
title: '专家评估',
|
||||
dataIndex: 'expertScore',
|
||||
key: 'expertScore',
|
||||
width: 80,
|
||||
render: (text, record) => {
|
||||
return text || '--'
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '工作单位',
|
||||
|
@ -186,6 +192,15 @@ function RegisterList({ showNotification }) {
|
|||
})
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
dataIndex: 'id',
|
||||
key: 'action',
|
||||
fixed: 'right',
|
||||
render: (text, record)=>{
|
||||
return <Popconfirm placement="bottom" title="你确认要删除此专家吗?" onConfirm={() => { delExpert(text);}} okText="是" cancelText="否"><Button size="small" type="primary">删除</Button></Popconfirm>
|
||||
}
|
||||
}
|
||||
];
|
||||
}, []);
|
||||
|
||||
|
@ -233,6 +248,20 @@ function RegisterList({ showNotification }) {
|
|||
});
|
||||
}, [download]);
|
||||
|
||||
// 删除专家
|
||||
const delExpert=(expertId)=>{
|
||||
setLoading(true);
|
||||
deleteExpert(expertId).then(response=>{
|
||||
if(response && response.message === "删除专家成功"){
|
||||
message.success("删除成功");
|
||||
setReload(Math.random());
|
||||
}else{
|
||||
message.error("删除失败");
|
||||
}
|
||||
}).finally(()=>{
|
||||
setLoading(false);
|
||||
})
|
||||
}
|
||||
|
||||
function beforeUpload(file) {
|
||||
const isExcel = file.type.indexOf('xlsx') || file.type.indexOf('xls') || file.type.indexOf('sheet');
|
||||
|
@ -350,7 +379,6 @@ function RegisterList({ showNotification }) {
|
|||
rowKey={(row) => row.id}
|
||||
/>
|
||||
|
||||
|
||||
<Modal
|
||||
title="上传"
|
||||
visible={visible}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
.center-right-but{
|
||||
flex:auto;
|
||||
justify-content: space-between;
|
||||
margin:0 4em 2em 0;
|
||||
margin-right: 4em;
|
||||
}
|
||||
|
||||
.ant-form-item-control-wrapper{
|
||||
|
|
|
@ -252,7 +252,6 @@ export default Form.create()(({ match, history, showNotification, form, current_
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
return (
|
||||
<div className='register_right'>
|
||||
{
|
||||
|
@ -561,9 +560,10 @@ export default Form.create()(({ match, history, showNotification, form, current_
|
|||
<div className='hint'>提示:个人简介、职称证明、学术成果、荣誉称号都只能上传一个文件,建议上传zip或rar格式的压缩文件</div>
|
||||
</Form>
|
||||
<div className='buts'>
|
||||
<Button className="but41_fill mr20" type="primary" disabled={forbidden} onClick={() => expertRegisterSubmit(true)}>{lastRegister && lastRegister.status === 1 ? '修改' : '提交'}资料</Button>
|
||||
{/* 专家: 修改,非专家: 提交 */}
|
||||
<Button className="but41_fill mr20" type="primary" disabled={forbidden} onClick={() => expertRegisterSubmit(true)}>{current_user.expert ? '修改' : '提交'}资料</Button>
|
||||
{(!lastRegister || lastRegister.status !== 1) && <Button className="but41_border mr20" disabled={forbidden} onClick={draft}>保存资料</Button>}
|
||||
<Button className="butE3_border" onClick={cancel}>取消</Button>
|
||||
<Button className="butE3_border" onClick={cancel}> 取 消 </Button>
|
||||
|
||||
<Modal
|
||||
title={`${lastRegister && lastRegister.status === 1 ? '修改' : '提交'}资料`}
|
||||
|
|
|
@ -85,15 +85,9 @@
|
|||
border: 1px solid #4154f1 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.but41_border {
|
||||
margin-bottom: 0.6em;
|
||||
padding: 0 0.5em;
|
||||
}
|
||||
.ant-cascader-menu-item:hover {
|
||||
background: #f2f3ff;
|
||||
}
|
||||
// }
|
||||
.buts {
|
||||
font-size: 0.7em;
|
||||
padding: 1.5em 2em;
|
||||
|
|
|
@ -4,9 +4,9 @@ import { Link } from "react-router-dom";
|
|||
import Paginationtable from "../../../components/paginationTable";
|
||||
import { Info, Confirm } from '../../../components/ModalFun';
|
||||
import WordsInput from 'military/expert/components/wordsInput';
|
||||
import { getScoringDetails, initScoringDetails, getRules, updateScoringDetails } from "../../api";
|
||||
import { getScoringDetails, initScoringDetails, getRules, updateScoringDetails, getCompetition } from "../../api";
|
||||
import { readyCheckPapers } from "../../../task/api";
|
||||
import { httpUrl } from '../../fetch';
|
||||
import { httpUrl, main_web_site_url } from '../../fetch';
|
||||
|
||||
import './index.scss';
|
||||
import '../../index.scss';
|
||||
|
@ -22,7 +22,7 @@ function ReviewTasks({ showNotification, match, history, current_user }) {
|
|||
const [dataList, setDataList] = useState([]);
|
||||
|
||||
const [taskId, setTaskId] = useState();
|
||||
const [competitionId, setCompetitionId] = useState(461);
|
||||
const [competitionId, setCompetitionId] = useState();
|
||||
|
||||
// 评分规则
|
||||
const [rules, setRules] = useState({});
|
||||
|
@ -61,8 +61,9 @@ function ReviewTasks({ showNotification, match, history, current_user }) {
|
|||
className: 'text-tooltip',
|
||||
render: (text, record) => {
|
||||
return text && text.map(item => {
|
||||
return <Tooltip key={item.id} overlayClassName="expert-tooltip" title={item.fileName} placement="top">
|
||||
<p className="link" onClick={() => { downFile(item.id) }}>{item.fileName}</p>
|
||||
return <Tooltip key={item.id} overlayClassName="expert-tooltip" title={item.fileName} placement="top">
|
||||
<p className="link" onClick={() => { downFile(item) }}>{item.fileName}</p>
|
||||
{/* <a className="link" href={main_web_site_url + item.fileDownPath} download={item.fileName}>{item.fileName}</a> */}
|
||||
</Tooltip>
|
||||
})
|
||||
}
|
||||
|
@ -83,7 +84,7 @@ function ReviewTasks({ showNotification, match, history, current_user }) {
|
|||
return <Tooltip overlayClassName="expert-tooltip" title={text} placement="top">
|
||||
<a className="link" onClick={() => { writeComments(text, index, 'comments') }}>{record.status === 2 ? text ? '编辑' : '填写' : '查看'}意见</a>
|
||||
</Tooltip>
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
];
|
||||
|
@ -204,9 +205,55 @@ function ReviewTasks({ showNotification, match, history, current_user }) {
|
|||
});
|
||||
}, [taskId, disabled, current_user.expertId]);
|
||||
|
||||
function downFile(id) {
|
||||
let url = httpUrl + '/busiAttachments/download/' + id;
|
||||
window.open(url);
|
||||
// 获取竞赛作品列表
|
||||
useEffect(() => {
|
||||
// 没有数据才能去查作品列表,并展示数据
|
||||
!dataList.length && competitionId && current_user.expertId && getCompetition(competitionId).then(res => {
|
||||
let dataArr = [];
|
||||
if (res && Array.isArray(res.data)) {
|
||||
for (const item of res.data) {
|
||||
let fileId = item.work_attachments && item.work_attachments.split('?')[0].split('/')[3];
|
||||
console.log(fileId);
|
||||
dataArr.push({
|
||||
comments: "",
|
||||
expertId: current_user.expertId,
|
||||
gradesAverage: '',
|
||||
gradesFive: '',
|
||||
gradesFour: '',
|
||||
gradesOne: '',
|
||||
gradesThree: '',
|
||||
gradesTwo: '',
|
||||
opsContent: item.works_remark,
|
||||
opsFiles: fileId,
|
||||
opsFilesAttachments: item.work_attachments ? [{ id: fileId, fileName: '作品下载', fileDownPath: item.work_attachments }] : [],
|
||||
opsId: item.id,
|
||||
opsParentId: containerId,
|
||||
opsParentType: containerType,
|
||||
opsType: containerType,
|
||||
status: 2
|
||||
});
|
||||
}
|
||||
}
|
||||
setDataList(dataArr);
|
||||
disabled && setLoading(false);
|
||||
!disabled && dataArr.length && rules && initScoringDetails(dataArr).then(res => {
|
||||
if (res) {
|
||||
setReload(Math.random());
|
||||
setLoading(false);
|
||||
}
|
||||
});
|
||||
});
|
||||
}, [competitionId, disabled, current_user.expertId]);
|
||||
|
||||
|
||||
function downFile(item) {
|
||||
if (containerType == 1) {
|
||||
let url = httpUrl + '/busiAttachments/download/' + item.id;
|
||||
window.open(url);
|
||||
} else {
|
||||
let url = main_web_site_url + item.fileDownPath;
|
||||
window.open(url);
|
||||
}
|
||||
}
|
||||
|
||||
function editGrade(value, index, dataIndex) {
|
||||
|
@ -329,9 +376,9 @@ function ReviewTasks({ showNotification, match, history, current_user }) {
|
|||
typeof item.gradesFour === 'number' && gradesArr.push(item.gradesFour);
|
||||
typeof item.gradesFive === 'number' && gradesArr.push(item.gradesFive);
|
||||
if (gradesArr.length < gradesNum && gradesArr.length) {
|
||||
errorArr.push(index+1);
|
||||
errorArr.push(index + 1);
|
||||
} else if (!item.comments && gradesArr.length) {
|
||||
commentsError.push(index+1);
|
||||
commentsError.push(index + 1);
|
||||
} else if (gradesArr.length) {
|
||||
scoringArr.push(index);
|
||||
}
|
||||
|
@ -378,23 +425,29 @@ function ReviewTasks({ showNotification, match, history, current_user }) {
|
|||
return (
|
||||
<div className='register_right task_detail'>
|
||||
<p className="task-head">
|
||||
创客成果评审
|
||||
{containerType == 1 ? '创客成果' : '竞赛作品'}评审
|
||||
<button className="back-button but41_border" onClick={() => { history.goBack() }}>返回上一页</button>
|
||||
</p>
|
||||
|
||||
<Tabs defaultActiveKey="1" animated={false}>
|
||||
<Tabs defaultActiveKey="0" animated={false}>
|
||||
|
||||
<TabPane tab="评选信息" key="0">
|
||||
<TabPane tab="评审信息" key="0">
|
||||
<div className="task-rules">
|
||||
<div className="rules-box">
|
||||
<p className="rules-head">任务信息</p>
|
||||
<p className="rules-head">{containerType == 1 ? '任务信息' : '赛事信息'}</p>
|
||||
<div className="rules-content">
|
||||
<div className="rules-content-item"><span className="font-w">任务名称</span><span className="ml10">{rules.containerName}</span></div>
|
||||
<div className="rules-content-item"><span className="font-w">任务链接</span><Link className="taskLink ml10" target="_blank" to={`/task/taskDetail/${rules.containerId}`} >{`${window.location.origin}/task/taskDetail/${rules.containerId}`}</Link></div>
|
||||
<div className="rules-content-item">
|
||||
<span className="font-w">{containerType == 1 ? '任务' : '赛事'}名称</span>
|
||||
<span className="ml10">{rules.containerName}</span>
|
||||
</div>
|
||||
<div className="rules-content-item">
|
||||
<span className="font-w">{containerType == 1 ? '任务' : '赛事'}链接</span>
|
||||
{containerType == 1 && <Link className="taskLink ml10" target="_blank" to={`/task/taskDetail/${rules.containerId}`} >{`${window.location.origin}/task/taskDetail/${rules.containerId}`}</Link>}
|
||||
{containerType == 2 && <Link className="taskLink ml10" target="_blank" to={`${main_web_site_url}/competitions/${rules.containerId}/home`} >{`${main_web_site_url}/competitions/${rules.containerId}/home`}</Link>}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div className="rules-box">
|
||||
<p className="rules-head">评审规则</p>
|
||||
<div className="rules-content">{rules.rule}</div>
|
||||
|
|
|
@ -7,4 +7,5 @@ let actionUrl = settings.api_urls && settings.api_urls.expert ? settings.api_url
|
|||
// http://117.50.100.12:8067/
|
||||
const service = javaFetch(actionUrl);
|
||||
export const httpUrl = actionUrl;
|
||||
export const main_web_site_url=settings.main_web_site_url;
|
||||
export default service;
|
|
@ -85,7 +85,7 @@ function SelectExpert(props) {
|
|||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: '专家评分',
|
||||
title: '专家评估',
|
||||
dataIndex: 'expertScore',
|
||||
align: 'center',
|
||||
render:(text,record)=>{
|
||||
|
|
|
@ -41,6 +41,14 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
|||
const [taskList, setTaskList] = useState([]);
|
||||
const [expertReview, setExpertReview] = useState('');
|
||||
|
||||
//查看评审规则、查看选取专家、发布评审任务
|
||||
const [lookRules, setLookRules] = useState(false);
|
||||
const [lookExperts, setLookExperts] = useState(false);
|
||||
const [pulicReview, setPublicReview] = useState(false);
|
||||
const [rules, setRules] = useState(undefined);
|
||||
const [selectedExperts, setSelectedExperts] = useState(undefined);
|
||||
const [publicTaskId, setPublicTaskId] = useState(undefined);
|
||||
|
||||
useEffect(()=>{
|
||||
setCurPage(hashDate(hash) || 1);
|
||||
},[hash])
|
||||
|
@ -127,7 +135,7 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
|||
showArrow
|
||||
defaultValue={text?1:-1}
|
||||
onChange={(key) => { changeExpertReviewStatus(key, record.id) }}
|
||||
disabled={!record.status == 1 || !record.status == 3 || record.assignRuleAndExperts}
|
||||
disabled={record.assignRuleAndExperts || !(record.status == 1 || record.status == 3)}
|
||||
>
|
||||
{
|
||||
expertReviewArr.map(item => {
|
||||
|
@ -238,7 +246,7 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
|||
title: '评审任务',
|
||||
dataIndex: 'expertReview1',
|
||||
render: (text, record) => {
|
||||
return record.assignRuleAndExperts ? <span className='gary_span'>已发布</span> : record.expertReview && record.status < 4 && record.status !== 2 ? <Button size='small' type="primary" onClick={()=>{publishTaskReview(record)}}>发布</Button> : <span className='gary_span'>发布</span>
|
||||
return record.assignRuleAndExperts ? <span className='gary_span'>已发布</span> : record.expertReview && (record.status === 1 || record.status === 3) ? <Button size='small' type="primary" onClick={()=>{publishTaskReview(record)}}>发布</Button> : <span className='gary_span'>发布</span>
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -316,7 +324,7 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
|||
width: 260,
|
||||
},
|
||||
{
|
||||
title: '专家评分',
|
||||
title: '专家评估',
|
||||
dataIndex: 'expertScore',
|
||||
align: 'center',
|
||||
render:(text,record)=>{
|
||||
|
@ -360,16 +368,86 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
|||
});
|
||||
}
|
||||
|
||||
//监听lookRules,lookExperts,pulicReview的变化,弹框
|
||||
useEffect(()=>{
|
||||
|
||||
//评审规则
|
||||
lookRules && rules && Modal.info({
|
||||
className: 'publishReview',
|
||||
title: "评审规则",
|
||||
content:
|
||||
<React.Fragment>
|
||||
<div>{rules && rules.rule}</div>
|
||||
<p>评分标准</p>
|
||||
<div>
|
||||
{rules.criterias.map(item=>{return <p key={Math.random()}>{item}</p>})}
|
||||
</div>
|
||||
<p>评审时间</p>
|
||||
<div>{rules.reviewData}</div>
|
||||
</React.Fragment>
|
||||
,
|
||||
});
|
||||
lookRules && setLookRules(false);
|
||||
|
||||
//已选取评审专家
|
||||
lookExperts && selectedExperts && Modal.info({
|
||||
className: 'publishReview',
|
||||
title: "已选取评审专家",
|
||||
content:
|
||||
<PaginationTable
|
||||
dataSource={selectedExperts}
|
||||
columns={columnsExperts}
|
||||
scroll={{ y: 395 }}/>,
|
||||
});
|
||||
lookExperts && setLookExperts(false);
|
||||
|
||||
//发布评审任务
|
||||
pulicReview && rules && selectedExperts && Modal.confirm({
|
||||
className: 'publishReview',
|
||||
title: "发布评审任务",
|
||||
centered: true,
|
||||
content:
|
||||
<React.Fragment>
|
||||
<div className='tip'>
|
||||
<i className='iconfont icon-erciqueren_icon'></i>
|
||||
<span className='publicTitle'>确定发布此评审任务?确定发布后评审规则与评审专家信息将无法重新编辑</span>
|
||||
</div>
|
||||
<p>评审规则</p>
|
||||
<div>{rules && rules.rule}</div>
|
||||
<p>评分标准</p>
|
||||
<div>
|
||||
{rules.criterias.map(item=>{return <p key={Math.random()}>{item}</p>})}
|
||||
</div>
|
||||
<p>评审时间</p>
|
||||
<div>{rules.reviewData}</div>
|
||||
<p>已选取评审专家</p>
|
||||
<PaginationTable
|
||||
dataSource={selectedExperts}
|
||||
columns={columnsExperts}
|
||||
scroll={{ y: 230 }}/>
|
||||
</React.Fragment>
|
||||
,
|
||||
okText: '确定',
|
||||
cancelText: '取消',
|
||||
onOk() {
|
||||
publishExpertsAndRules(publicTaskId).then(response=>{
|
||||
if(response && response.message==="发布成功"){
|
||||
setReload(Math.random());
|
||||
}
|
||||
})
|
||||
},
|
||||
});
|
||||
pulicReview && setPublicReview(false);
|
||||
},[lookRules,lookExperts,pulicReview])
|
||||
|
||||
//发布评审任务
|
||||
function publishTaskReview(record){
|
||||
if(!record.ruleEditedCount || !record.expertSelectedCount){
|
||||
message.error("请先编辑评审规则以及选取评选专家再发布此任务");
|
||||
}else{
|
||||
let rules = undefined;
|
||||
let selectedExperts = undefined;
|
||||
getRules({containerId: record.id, containerType: 1, statusString: 3}).then(response=>{
|
||||
if(response && response.message === "success"){
|
||||
rules = response.data;
|
||||
setRules(response.data);
|
||||
}
|
||||
})
|
||||
selectExpertList({containerId: record.id, containerType: 1, curPage:curPage, pageSize: 10000, curPage: 1,}).then(response=>{
|
||||
|
@ -379,79 +457,26 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
|||
item.reviewAreas = `${item.reviewAreaOne} ${item.reviewAreaTwo ? `、${item.reviewAreaTwo}`:''} ${item.reviewAreaThree ? `、${item.reviewAreaThree}`:''}`;
|
||||
item.index = (index++) + (curPage > 1 ? (curPage - 1) * 10 : 0);
|
||||
}
|
||||
selectedExperts = response.data.rows
|
||||
setPublicTaskId(record.id);
|
||||
setSelectedExperts(response.data.rows);
|
||||
setPublicReview(true);
|
||||
}
|
||||
});
|
||||
setTimeout(() => {
|
||||
Modal.confirm({
|
||||
className: 'publishReview',
|
||||
title: "发布评审任务",
|
||||
centered: true,
|
||||
content:
|
||||
<React.Fragment>
|
||||
<div className='tip'>
|
||||
<i className='iconfont icon-erciqueren_icon'></i>
|
||||
<span className='publicTitle'>确定发布此评审任务?确定发布后评审规则与评审专家信息将无法重新编辑</span>
|
||||
</div>
|
||||
<p>评审规则</p>
|
||||
<div>{rules && rules.rule}</div>
|
||||
<p>评分标准</p>
|
||||
<div>
|
||||
{rules.criterias.map(item=>{return <p key={Math.random()}>{item}</p>})}
|
||||
</div>
|
||||
<p>评审时间</p>
|
||||
<div>{rules.reviewData}</div>
|
||||
<p>已选取评审专家</p>
|
||||
<PaginationTable
|
||||
dataSource={selectedExperts}
|
||||
columns={columnsExperts}
|
||||
scroll={{ y: 230 }}/>
|
||||
</React.Fragment>
|
||||
,
|
||||
okText: '确定',
|
||||
cancelText: '取消',
|
||||
onOk() {
|
||||
publishExpertsAndRules(record.id).then(response=>{
|
||||
if(response && response.message==="发布成功"){
|
||||
setReload(Math.random());
|
||||
}
|
||||
})
|
||||
},
|
||||
});
|
||||
}, 300);
|
||||
}
|
||||
}
|
||||
|
||||
//已发布任务 查看评审规则
|
||||
function viewRules(record){
|
||||
let rules = undefined;
|
||||
getRules({containerId: record.id, containerType: 1, statusString: '-1,1,2'}).then(response=>{
|
||||
if(response && response.message === "success"){
|
||||
rules = response.data;
|
||||
setRules(response.data);
|
||||
setLookRules(true);
|
||||
}
|
||||
});
|
||||
setTimeout(() => {
|
||||
Modal.info({
|
||||
className: 'publishReview',
|
||||
title: "评审规则",
|
||||
content:
|
||||
<React.Fragment>
|
||||
<div>{rules && rules.rule}</div>
|
||||
<p>评分标准</p>
|
||||
<div>
|
||||
{rules.criterias.map(item=>{return <p key={Math.random()}>{item}</p>})}
|
||||
</div>
|
||||
<p>评审时间</p>
|
||||
<div>{rules.reviewData}</div>
|
||||
</React.Fragment>
|
||||
,
|
||||
});
|
||||
}, 300);
|
||||
}
|
||||
|
||||
//已发布任务 查看已选专家
|
||||
function viewExperts(record){
|
||||
let selectedExperts = undefined;
|
||||
selectExpertList({containerId: record.id, containerType: 1, curPage:curPage, pageSize: 10000, curPage: 1,}).then(response=>{
|
||||
if(response && response.message === "success" && Array.isArray(response.data.rows)){
|
||||
let index = 1;
|
||||
|
@ -459,20 +484,10 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
|||
item.reviewAreas = `${item.reviewAreaOne} ${item.reviewAreaTwo ? `、${item.reviewAreaTwo}`:''} ${item.reviewAreaThree ? `、${item.reviewAreaThree}`:''}`;
|
||||
item.index = (index++) + (curPage > 1 ? (curPage - 1) * 10 : 0);
|
||||
}
|
||||
selectedExperts = response.data.rows
|
||||
setSelectedExperts(response.data.rows);
|
||||
setLookExperts(true);
|
||||
}
|
||||
});
|
||||
setTimeout(() => {
|
||||
Modal.info({
|
||||
className: 'publishReview',
|
||||
title: "已选取评审专家",
|
||||
content:
|
||||
<PaginationTable
|
||||
dataSource={selectedExperts}
|
||||
columns={columnsExperts}
|
||||
scroll={{ y: 395 }}/>,
|
||||
});
|
||||
}, 300);
|
||||
}
|
||||
|
||||
function changeStatus(showUserMode, taskId) {
|
||||
|
|
|
@ -20,10 +20,10 @@ class Shixunauthority extends Component {
|
|||
<p className="font-18 mt40">
|
||||
您可以稍后尝试 <a href="/"
|
||||
className="color-blue">返回首页</a>
|
||||
,或者
|
||||
{/* ,或者
|
||||
<a target="_blank"
|
||||
href="//shang.qq.com/wpa/qunwpa?idkey=2f2043d88c1bd61d182b98bf1e061c6185e23055bec832c07d8148fe11c5a6cd"
|
||||
className="color-blue">QQ反馈>></a>
|
||||
className="color-blue">QQ反馈>></a> */}
|
||||
</p>
|
||||
</div>
|
||||
{/*<div style="clear:both;"></div>*/}
|
||||
|
|
|
@ -41,10 +41,10 @@ class http500 extends Component {
|
|||
<p className="font-18 mt40">
|
||||
您可以稍后尝试 <a href="/"
|
||||
className="color-blue">返回首页</a>
|
||||
,或者
|
||||
{/* ,或者
|
||||
<a target="_blank"
|
||||
href="//shang.qq.com/wpa/qunwpa?idkey=2f2043d88c1bd61d182b98bf1e061c6185e23055bec832c07d8148fe11c5a6cd"
|
||||
className="color-blue">QQ反馈>></a>
|
||||
className="color-blue">QQ反馈>></a> */}
|
||||
</p>
|
||||
</div>
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue