forked from Gitlink/forgeplus-react
发布评审任务
This commit is contained in:
parent
26d81ab2bf
commit
11701869a1
|
@ -1,8 +1,8 @@
|
|||
@font-face {
|
||||
font-family: "iconfont"; /* Project id 2340181 */
|
||||
src: url('iconfont.woff2?t=1639537334021') format('woff2'),
|
||||
url('iconfont.woff?t=1639537334021') format('woff'),
|
||||
url('iconfont.ttf?t=1639537334021') format('truetype');
|
||||
src: url('iconfont.woff2?t=1641524827252') format('woff2'),
|
||||
url('iconfont.woff?t=1641524827252') format('woff'),
|
||||
url('iconfont.ttf?t=1641524827252') format('truetype');
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
|
@ -13,6 +13,22 @@
|
|||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-ioon:before {
|
||||
content: "\e90e";
|
||||
}
|
||||
|
||||
.icon-shanchu_tc_icon1:before {
|
||||
content: "\e90c";
|
||||
}
|
||||
|
||||
.icon-zhuanjiaicon:before {
|
||||
content: "\e90d";
|
||||
}
|
||||
|
||||
.icon-shengming:before {
|
||||
content: "\e90b";
|
||||
}
|
||||
|
||||
.icon-chenggong1:before {
|
||||
content: "\e907";
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -5,6 +5,34 @@
|
|||
"css_prefix_text": "icon-",
|
||||
"description": "",
|
||||
"glyphs": [
|
||||
{
|
||||
"icon_id": "27041503",
|
||||
"name": "ioon",
|
||||
"font_class": "ioon",
|
||||
"unicode": "e90e",
|
||||
"unicode_decimal": 59662
|
||||
},
|
||||
{
|
||||
"icon_id": "26470602",
|
||||
"name": "shanchu_tc_icon",
|
||||
"font_class": "shanchu_tc_icon1",
|
||||
"unicode": "e90c",
|
||||
"unicode_decimal": 59660
|
||||
},
|
||||
{
|
||||
"icon_id": "26470603",
|
||||
"name": "专家icon",
|
||||
"font_class": "zhuanjiaicon",
|
||||
"unicode": "e90d",
|
||||
"unicode_decimal": 59661
|
||||
},
|
||||
{
|
||||
"icon_id": "12505154",
|
||||
"name": "声明",
|
||||
"font_class": "shengming",
|
||||
"unicode": "e90b",
|
||||
"unicode_decimal": 59659
|
||||
},
|
||||
{
|
||||
"icon_id": "26470597",
|
||||
"name": "成功",
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -43,7 +43,6 @@ const Expert = (propsTransmit) => {
|
|||
}, []);
|
||||
let propsF = { ...propsTransmit };
|
||||
propsF.current_user = currentUser;
|
||||
console.log(currentUser);
|
||||
|
||||
return (
|
||||
<div className="newMain clearfix">
|
||||
|
|
|
@ -109,14 +109,24 @@ export function updateScoringDetails(data){
|
|||
});
|
||||
}
|
||||
|
||||
//编辑评审规则
|
||||
//获取创客任务评审规则
|
||||
export function getRules(params){
|
||||
return fetch({
|
||||
export async function getRules(params){
|
||||
let response = await fetch({
|
||||
url: `/api/taskRuleCriteria/getRuleAndCriteria`,
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
});
|
||||
if(response && response.message === "success"){
|
||||
let criterias = [];
|
||||
response.data.criteriaOne && (criterias[criterias.length] = (criterias.length+1)+"、"+response.data.criteriaOne);
|
||||
response.data.criteriaTwo && (criterias[criterias.length] = (criterias.length+1)+"、"+response.data.criteriaTwo);
|
||||
response.data.criteriaThree && (criterias[criterias.length] = (criterias.length+1)+"、"+response.data.criteriaThree);
|
||||
response.data.criteriaFour && (criterias[criterias.length] = (criterias.length+1)+"、"+response.data.criteriaFour);
|
||||
response.data.criteriaFive && (criterias[criterias.length] = (criterias.length+1)+"、"+response.data.criteriaFive);
|
||||
response.data.criterias = criterias;
|
||||
response.data.reviewData = response.data.reviewStartOn.substring(0,response.data.reviewStartOn.length-3) + " ~ " + response.data.reviewEndOn.substring(0,response.data.reviewEndOn.length-3)
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
//编辑评审规则(第一次)
|
||||
|
|
|
@ -1,10 +1,23 @@
|
|||
import React from "react";
|
||||
import Link from "react-router-dom/Link";
|
||||
import './index.scss';
|
||||
import '../index.scss';
|
||||
import paginationTable from "src/military/components/paginationTable";
|
||||
|
||||
function ReviewResult() {
|
||||
function ReviewResult({ location, history }) {
|
||||
const { taskRecord } = location && location.state;
|
||||
return (
|
||||
<div className="expert_review_system centerbox">
|
||||
aaa
|
||||
<div className="head_title mb20">
|
||||
<div className="df pb10 pt10">
|
||||
<span className="font-16 font-w">评审结果</span>
|
||||
<button className="but41_border goback_but" onClick={()=>{history.goBack()}}>返回创客任务列表</button>
|
||||
</div>
|
||||
<p className="mt10"><span className="font-w">任务名称</span><span className="ml10">{taskRecord.name}</span></p>
|
||||
<p className="mt10 pb20"><span className="font-w">任务链接</span><Link className="taskLink ml10" target="_blank" to={`/task/taskDetail/${taskRecord.id}`} >{`/task/taskDetail/${taskRecord.id}`}</Link></p>
|
||||
</div>
|
||||
<p className="font-16 font-w">应征者排名</p>
|
||||
<paginationTable></paginationTable>
|
||||
</div>)
|
||||
}
|
||||
export default ReviewResult;
|
|
@ -0,0 +1,14 @@
|
|||
.expert_review_system.centerbox{
|
||||
background: white;
|
||||
font-family: 'PingFangSC-Semibold';
|
||||
padding: 0 1.5em;
|
||||
.font-w{
|
||||
font-weight: bold;
|
||||
}
|
||||
.df{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
.mt10.pb20{border-bottom: 1px solid #eeeeee;}
|
||||
}
|
|
@ -15,6 +15,15 @@ function ReviewRules({ location, form, history }) {
|
|||
//是否有初始值
|
||||
const [ initValue, setInitValue] = useState(false);
|
||||
|
||||
const disabledDate = (current) =>{
|
||||
if(taskRecord.status === 1){
|
||||
return current && current < moment(taskRecord.createdAt).endOf('day');
|
||||
}else if(taskRecord.status === 3){
|
||||
const endDate = new Date((new Date(taskRecord.collectingEndTime)/1000 + 86400*taskRecord.collectingDays)*1000);
|
||||
return current && current < moment(taskRecord.collectingEndTime).endOf('day') || current > moment(endDate).endOf('day');
|
||||
}
|
||||
}
|
||||
|
||||
useEffect(()=>{
|
||||
//获取评审规则
|
||||
const params = {
|
||||
|
@ -75,7 +84,7 @@ function ReviewRules({ location, form, history }) {
|
|||
<div className="head_title mb20">
|
||||
<div className="-layout pb10">
|
||||
<span className="font-16">任务信息</span>
|
||||
<button className="but41_border" onClick={()=>{history.goBack()}}>返回上一页</button>
|
||||
<button className="but41_border goback_but" onClick={()=>{history.goBack()}}>返回创客任务列表</button>
|
||||
</div>
|
||||
<p className="mt10">任务名称<span className="ml10">{taskRecord.name}</span></p>
|
||||
<p className="mt10 pb20">任务链接<Link className="taskLink ml10" target="_blank" to={`/task/taskDetail/${taskRecord.id}`} >{`/task/taskDetail/${taskRecord.id}`}</Link></p>
|
||||
|
@ -149,7 +158,7 @@ function ReviewRules({ location, form, history }) {
|
|||
showTime={{ format: 'HH:mm' }}
|
||||
format="YYYY-MM-DD HH:mm"
|
||||
placeholder={['开始时间', '结束时间']}
|
||||
|
||||
disabledDate={disabledDate}
|
||||
/>,
|
||||
)}
|
||||
</Form.Item>
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
.but41_fill, .but41_border, .butE3_border{
|
||||
width: 6.5em;
|
||||
}
|
||||
.goback_but{width: 9.5em;}
|
||||
.but41_border{padding: 0;}
|
||||
.rules_bar{
|
||||
margin: 25px -2em;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import React, { useState, useEffect, useMemo } from "react";
|
||||
import { Tabs, Input, Select, Button, Modal, Form, message } from 'antd';
|
||||
import { Tabs, Input, Select, Button, Modal, Form, message, Popconfirm } from 'antd';
|
||||
import { professionalType, reviewArea } from '../static.js';
|
||||
import { assignExperts, deleteExperts, expertList, selectExpertList } from "../api.js";
|
||||
import Paginationtable from "../../components/paginationTable";
|
||||
|
@ -97,7 +97,7 @@ function SelectExpert(props) {
|
|||
render: (text, record) => {
|
||||
return <React.Fragment>
|
||||
{activeKey == "1" && (record.isExpertTask ? <span className="selected">已添加</span> : <a className="select" onClick={()=>{SelectExperts([record.id])}}>添加</a>)}
|
||||
{activeKey == "0" && <Button className="mr5 font-12" type="danger" size="small" onClick={() => { deleteExpert(record.taskExpertId, record.id) }}>删除</Button>}
|
||||
{activeKey == "0" && <Popconfirm placement="bottom" title="你确认要删除此专家吗?" onConfirm={() => { deleteExpert(record.taskExpertId, record.id)}} okText="是" cancelText="否"><Button className="mr5 font-12" type="danger" size="small">删除</Button></Popconfirm>}
|
||||
</React.Fragment>
|
||||
}
|
||||
}
|
||||
|
@ -215,6 +215,8 @@ function SelectExpert(props) {
|
|||
setRandomErrorMessage('请输入随机抽取的专家数量!');
|
||||
}else if(isNaN(randomCount)){
|
||||
setRandomErrorMessage('请输入数字!');
|
||||
}else if(randomCount.indexOf('.')!==-1){
|
||||
setRandomErrorMessage('请输入整数!');
|
||||
}else{
|
||||
let params = {
|
||||
searchInput,
|
||||
|
@ -275,10 +277,12 @@ function SelectExpert(props) {
|
|||
})
|
||||
}
|
||||
|
||||
|
||||
return (
|
||||
<div className="centerbox select_expert">
|
||||
<p className="title_one font-16">评审专家选取</p>
|
||||
<div className="df">
|
||||
<p className="title_one font-16">评审专家选取</p>
|
||||
<button className="but41_border goback_but mr25" onClick={()=>{history.goBack()}}>返回创客任务列表</button>
|
||||
</div>
|
||||
<Tabs defaultActiveKey="0" type="card" onChange={(activeKey)=>{setActiveKey(activeKey);setSelectedRowKeys([]);setCurPage(1);}}>
|
||||
<TabPane tab="已选专家" key="0">
|
||||
<div>
|
||||
|
@ -327,7 +331,7 @@ function SelectExpert(props) {
|
|||
<p className="font-16">添加评审专家</p>
|
||||
<div>
|
||||
<button className="but41_fill" onClick={() => {selectedRowKeys && selectedRowKeys.length>0 && setOkConfirmExps(true)}}>批量添加</button>
|
||||
<button className="but41_fill ml20" onClick={() => setOkConfirmExtract(true)}>随机抽取</button>
|
||||
{allSelectedExpertsId && allSelectedExpertsId.size === total ? <button className="invalid_extraction butE3_border ml20">随机抽取</button> : <button className="but41_fill ml20" onClick={() => setOkConfirmExtract(true)}>随机抽取</button>}
|
||||
<Modal
|
||||
title="批量添加"
|
||||
visible={okConfirmExps}
|
||||
|
|
|
@ -73,6 +73,9 @@
|
|||
border-bottom: 1px solid #4154F1;
|
||||
}
|
||||
}
|
||||
.invalid_extraction{
|
||||
background: #F8F8F8;
|
||||
}
|
||||
}
|
||||
.expert_modal.extract{
|
||||
.ant-modal-content {
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1641461455018" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="50275" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M949.696 266.304a34.88 34.88 0 0 0-49.6 0L512 654.4 123.904 266.304a34.88 34.88 0 0 0-49.6 0 34.88 34.88 0 0 0 0 49.6l412.928 412.864c13.696 13.76 35.84 13.76 49.536 0l412.928-412.864a34.944 34.944 0 0 0 0-49.6z" fill="#bfbfbf" p-id="50276"></path></svg>
|
After Width: | Height: | Size: 632 B |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1641461401607" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="25602" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M761.6 489.6l-432-435.2c-9.6-9.6-25.6-9.6-35.2 0-9.6 9.6-9.6 25.6 0 35.2l416 416-416 425.6c-9.6 9.6-9.6 25.6 0 35.2s25.6 9.6 35.2 0l432-441.6C771.2 515.2 771.2 499.2 761.6 489.6z" p-id="25603" fill="#bfbfbf"></path></svg>
|
After Width: | Height: | Size: 599 B |
|
@ -126,7 +126,7 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
|||
showArrow
|
||||
defaultValue={text?1:-1}
|
||||
onChange={(key) => { changeExpertReviewStatus(key, record.id) }}
|
||||
disabled={!(record.status < 4) || record.assignRuleAndExperts}
|
||||
disabled={!(record.status < 4 && record.status !== 2) || record.assignRuleAndExperts}
|
||||
>
|
||||
{
|
||||
expertReviewArr.map(item => {
|
||||
|
@ -223,28 +223,28 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
|||
title: '评审规则',
|
||||
dataIndex: 'ruleEditedCount',
|
||||
render: (text, record) => {
|
||||
return record.expertReview && (record.status < 4) && !record.assignRuleAndExperts ? <Link className="line_1 primary-link" to={{ pathname:'/expert/admin/task/review/rules', state: { 'taskRecord': record}}}>编辑</Link>:''
|
||||
return record.assignRuleAndExperts ? <Button size='small' type="primary" onClick={()=>{viewRules(record)}}>查看</Button> : record.expertReview && (record.status === 1 || record.status === 3) ? <Link className="line_1 primary-link" to={{ pathname:'/expert/admin/task/review/rules', state: { 'taskRecord': record}}}>编辑</Link> : <span className='gary_span'>编辑</span>
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '专家选取',
|
||||
dataIndex: 'expertSelectedCount',
|
||||
render: (text, record) => {
|
||||
return record.expertReview && (record.status < 4) && !record.assignRuleAndExperts ? <Link className="line_1 primary-link" to={{ pathname: '/expert/admin/task/review/select', state: { 'taskRecord': record } }}>选择</Link>:''
|
||||
return record.assignRuleAndExperts ? <Button size='small' type="primary" onClick={()=>{viewExperts(record)}}>查看</Button> : record.expertReview && (record.status === 1 || record.status === 3) ? <Link className="line_1 primary-link" to={{ pathname: '/expert/admin/task/review/select', state: { 'taskRecord': record } }}>选择</Link> : <span className='gary_span'>编辑</span>
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '评审任务',
|
||||
dataIndex: 'expertReview1',
|
||||
render: (text, record) => {
|
||||
return record.expertReview && (record.status < 4) ? !record.assignRuleAndExperts?<Button size='small' onClick={()=>{publishTaskReview(record)}}>发布</Button> : '已发布' :''
|
||||
return record.expertReview && record.status < 4 && record.status !== 2 ? !record.assignRuleAndExperts ? <Button size='small' type="primary" onClick={()=>{publishTaskReview(record)}}>发布</Button> : <span className='gary_span'>已发布</span> :<span className='gary_span'>发布</span>
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '评审结果',
|
||||
dataIndex: 'expertReview2',
|
||||
render: (text, record) => {
|
||||
return record.assignRuleAndExperts && <Link className="line_1 primary-link" to='/expert/admin/task/review/results'>查看</Link>
|
||||
return record.assignRuleAndExperts ? <Link className="line_1 primary-link" to={{ pathname: '/expert/admin/task/review/results', state: { 'taskRecord': record } }}>查看</Link>:<span className='gary_span'>查看</span>
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -357,6 +357,7 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
|||
});
|
||||
}
|
||||
|
||||
//发布评审任务
|
||||
function publishTaskReview(record){
|
||||
if(!record.ruleEditedCount || !record.expertSelectedCount){
|
||||
message.error("请先编辑评审规则以及选取评选专家再发布此任务");
|
||||
|
@ -365,13 +366,6 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
|||
let selectedExperts = undefined;
|
||||
getRules({containerId: record.id, containerType: 1, statusString: 3}).then(response=>{
|
||||
if(response && response.message === "success"){
|
||||
let criterias = [];
|
||||
response.data.criteriaOne && (criterias[criterias.length] = (criterias.length+1)+"、"+response.data.criteriaOne);
|
||||
response.data.criteriaTwo && (criterias[criterias.length] = (criterias.length+1)+"、"+response.data.criteriaTwo);
|
||||
response.data.criteriaThree && (criterias[criterias.length] = (criterias.length+1)+"、"+response.data.criteriaThree);
|
||||
response.data.criteriaFour && (criterias[criterias.length] = (criterias.length+1)+"、"+response.data.criteriaFour);
|
||||
response.data.criteriaFive && (criterias[criterias.length] = (criterias.length+1)+"、"+response.data.criteriaFive);
|
||||
response.data.criterias = criterias;
|
||||
rules = response.data;
|
||||
}
|
||||
})
|
||||
|
@ -388,6 +382,47 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
|||
setTimeout(() => {
|
||||
Modal.confirm({
|
||||
className: 'publishReview',
|
||||
title: "评审规则",
|
||||
content:
|
||||
<React.Fragment>
|
||||
<div>{rules && rules.rule}</div>
|
||||
<p>评分标准</p>
|
||||
<div>
|
||||
{rules.criterias.map(item=>{return <p>{item}</p>})}
|
||||
</div>
|
||||
<p>评审时间</p>
|
||||
<div>{rules.reviewData}</div>
|
||||
<p>已选取评审专家</p>
|
||||
<PaginationTable
|
||||
dataSource={selectedExperts}
|
||||
columns={columnsExperts}/>
|
||||
</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'}).then(response=>{
|
||||
if(response && response.message === "success"){
|
||||
rules = response.data;
|
||||
}
|
||||
});
|
||||
setTimeout(() => {
|
||||
Modal.info({
|
||||
className: 'publishReview',
|
||||
title: "评审规则",
|
||||
content:
|
||||
<React.Fragment>
|
||||
|
@ -397,25 +432,36 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
|||
{rules.criterias.map(item=>{return <p>{item}</p>})}
|
||||
</div>
|
||||
<p>评审时间</p>
|
||||
<div>{rules.reviewStartOn}~{rules.reviewEndOn}</div>
|
||||
<p>已选取评审专家</p>
|
||||
<PaginationTable
|
||||
dataSource={selectedExperts}
|
||||
columns={columnsExperts}/>
|
||||
<div>{rules.reviewData}</div>
|
||||
</React.Fragment>
|
||||
,
|
||||
okText: '确定',
|
||||
cancelText: '取消',
|
||||
onOk() {
|
||||
publishExpertsAndRules(record.id).then(response=>{
|
||||
if(response && response.message==="发布成功"){
|
||||
setReload(Math.random());
|
||||
}
|
||||
})
|
||||
},
|
||||
});
|
||||
}, 300);
|
||||
}
|
||||
}, 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;
|
||||
for (const item of response.data.rows) {
|
||||
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
|
||||
}
|
||||
});
|
||||
setTimeout(() => {
|
||||
Modal.info({
|
||||
className: 'publishReview',
|
||||
title: "已选取评审专家",
|
||||
content:
|
||||
<PaginationTable
|
||||
dataSource={selectedExperts}
|
||||
columns={columnsExperts}/>,
|
||||
});
|
||||
}, 300);
|
||||
}
|
||||
|
||||
function changeStatus(showUserMode, taskId) {
|
||||
|
|
|
@ -62,6 +62,10 @@
|
|||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
// .ant-table-row-collapsed::after, .ant-table-row-expanded::after {
|
||||
// content: url('./image/down.svg');
|
||||
// }
|
||||
}
|
||||
|
||||
.inline-form {
|
||||
|
@ -83,12 +87,17 @@
|
|||
color: #29bd8b;
|
||||
}
|
||||
|
||||
.gary_span{
|
||||
color: rgba(176, 176, 176, 1);
|
||||
}
|
||||
|
||||
// 发布评审任务弹框样式
|
||||
.publishReview{
|
||||
width: 1050px !important;
|
||||
.ant-modal-confirm-title{
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
padding-bottom: 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.ant-modal-confirm-body > .anticon{
|
||||
display: none;
|
||||
|
@ -102,12 +111,13 @@
|
|||
color: rgba(51, 51, 51, 1);
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
padding: 10px 0;
|
||||
font-weight: bold;
|
||||
}
|
||||
&>div{
|
||||
padding: 10px;
|
||||
}
|
||||
}
|
||||
.ant-table-tbody > tr > td{
|
||||
.pagination-table .ant-table-tbody > tr > td{
|
||||
padding: 1px 16px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ import { getTaskDetail, getTaskCategory, getTaskPaper, makePublic, addPaper, get
|
|||
import { taskModeIdArr, applyStatusArr, applyStatusAllArr, agreementContent, paperCheckTextArr } from '../static';
|
||||
import { httpUrl } from '../fetch';
|
||||
import './index.scss';
|
||||
import { getRules } from 'src/military/expert/api';
|
||||
const { TextArea } = Input;
|
||||
|
||||
|
||||
|
@ -52,6 +53,8 @@ export default Form.create()(
|
|||
const [relaodChildList, setRelaodChildList] = useState(0);
|
||||
|
||||
const [visibleProofs, setVisibleProofs] = useState(false);
|
||||
// 已发布评审任务 评审规则
|
||||
const [publishedReviewRules, setPublishedReviewRules] = useState(undefined);
|
||||
|
||||
// 获取任务领域配置数据
|
||||
useEffect(() => {
|
||||
|
@ -73,6 +76,11 @@ export default Form.create()(
|
|||
history.push('/task');
|
||||
}
|
||||
setDetailData(data || {});
|
||||
if(data && data.assignRuleAndExperts){
|
||||
getRules({ containerId: data.id, containerType: 1, statusString: '-1,1', }).then(response=>{
|
||||
response && setPublishedReviewRules(response.data || undefined);
|
||||
})
|
||||
}
|
||||
});
|
||||
}, [id, reload]);
|
||||
|
||||
|
@ -451,6 +459,14 @@ export default Form.create()(
|
|||
<p className="color-grey-6 lineh-20 padding10-15 mb10">
|
||||
应征者提交的稿件必须是设计作品,广告等无效交稿一律不采用!
|
||||
</p>
|
||||
{publishedReviewRules && <React.Fragment>
|
||||
<div className="font-16 font-bd">评审规则:</div>
|
||||
<p className="color-grey-6 lineh-20 padding10-15 mb10">{publishedReviewRules.rule}</p>
|
||||
<div className="font-16 font-bd">评分标准:</div>
|
||||
<p className="color-grey-6 lineh-20 padding10-15 mb10">{publishedReviewRules.criterias.map(item=>{return <p>{item}</p>})}</p>
|
||||
<div className="font-16 font-bd">评审时间:</div>
|
||||
<p className="color-grey-6 lineh-20 padding10-15 mb10">{publishedReviewRules.reviewData}</p>
|
||||
</React.Fragment>}
|
||||
</div>
|
||||
|
||||
{!current_user.enterpriseCertification && <div className="edu-back-white padding30 mt20 font-16 text-center mb50">
|
||||
|
@ -469,7 +485,7 @@ export default Form.create()(
|
|||
{dataList.length > 0 && taskLimit && <a className="line_1 color-blue fr ml20" onClick={() => { window.open(`${httpUrl}/api/paper/papers/download/${id}`) }}>一键导出成果物 >></a>}
|
||||
{(!detailData.showUserStatus) && taskLimit && <a className="fr color-orange ml20" onClick={showUser}>应征者名单公示 >></a>}
|
||||
{/* [添加专家评审流程]按钮入口,仅管理员可见 */}
|
||||
{taskLimit && !detailData.expertReview && <a className="fr color-orange ml20" onClick={addExpertReviewModal}>添加专家评审流程</a>}
|
||||
{taskLimit && !detailData.expertReview && detailData.status<4 && <a className="fr color-orange ml20" onClick={addExpertReviewModal}>添加专家评审流程</a>}
|
||||
</div>
|
||||
<StatusNav
|
||||
key={'applyStatus'}
|
||||
|
|
|
@ -772,7 +772,7 @@ class NewHeader extends Component {
|
|||
{this.props.user && this.props.user.login &&
|
||||
<div className='mr30'>
|
||||
<a href={current_user.isExpert ? '/expert/user/tasks' : current_user.expertDraft ? '/expert/user/register' : '/expert'}>
|
||||
<i className="iconfont icon-xiaoxilingdang color-grey-6"></i>
|
||||
<i className={`iconfont icon-ioon ${activeIndex?'color-home':'color-grey-9'} font-22`}></i>
|
||||
</a>
|
||||
</div>
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue