2021-01-16 11:29:42 +08:00
|
|
|
|
import React, { useEffect, useState } from 'react';
|
|
|
|
|
import { Button, Table, Tabs, Space, Progress, Radio, Input, Checkbox, Select, Modal, Pagination, Spin, Form, message, Upload } from 'antd';
|
|
|
|
|
import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, findPriceScoreList, getEval } from './service';
|
2020-12-23 11:14:35 +08:00
|
|
|
|
import '@/assets/ld_style.less'
|
2021-01-16 11:29:42 +08:00
|
|
|
|
import FirstTrialTableDetailed from '../BidDetailedManager/module/FirstTrialTableDetailed';
|
|
|
|
|
import { getSessionProjectData, getSessionUserData, getRoomId } from '@/utils/session';
|
|
|
|
|
import FileDown from '@/utils/Download';
|
|
|
|
|
import { getURLInformation } from '@/utils/CommonUtils';
|
|
|
|
|
import { Link } from 'umi';
|
2020-12-23 11:14:35 +08:00
|
|
|
|
|
|
|
|
|
const { TabPane } = Tabs;
|
|
|
|
|
const { Option } = Select;
|
2021-01-16 11:29:42 +08:00
|
|
|
|
const { TextArea } = Input;
|
|
|
|
|
const CheckboxGroup = Checkbox.Group;
|
2020-12-23 11:14:35 +08:00
|
|
|
|
|
2021-01-16 11:29:42 +08:00
|
|
|
|
let assessRoomId: any, reviewTurnId: any, reviewType: any, bidEvalId: any
|
2020-12-23 11:14:35 +08:00
|
|
|
|
|
|
|
|
|
const Index: React.FC<{}> = () => {
|
|
|
|
|
const [detailVisible, setDetailVisible] = useState<boolean>(false); // 详审记录表
|
|
|
|
|
const [tabList, setTabList] = useState<any>([]); // tab
|
2021-01-16 11:29:42 +08:00
|
|
|
|
const [typeId, setTypeId] = useState<any>(); // tabId
|
|
|
|
|
const [tabListName, setTabListName] = useState<any>(); // tab名称
|
|
|
|
|
const [typeCategory, setTypeCategory] = useState<any>(); // tab类型
|
2020-12-23 11:14:35 +08:00
|
|
|
|
const [process, setProcess] = useState<any>(); // 我的进度
|
2021-01-16 11:29:42 +08:00
|
|
|
|
const [totalSupplier, setTotalSupplier] = useState<any>([]); // 总供应商列头
|
2020-12-23 11:14:35 +08:00
|
|
|
|
const [dataSource, setDataSource] = useState<any>([]); // 初审项配置
|
|
|
|
|
const [supplierColumns, setSupplierColumns] = useState<any>([]); // 当前显示供应商列头
|
2021-01-16 11:29:42 +08:00
|
|
|
|
const [current, setCurrent] = useState<number>(1); // 当前页码
|
2020-12-23 11:14:35 +08:00
|
|
|
|
const [total, setTotal] = useState<number>(1); // 共多少数据
|
2021-01-16 11:29:42 +08:00
|
|
|
|
const [bidEvalDetailDTOList, setBidEvalDetailDTOList] = useState<any>([]); // 提交数组
|
|
|
|
|
const [subId, setSubId] = useState<any>(); // 提交id
|
|
|
|
|
const [spinVisible, setSpinVisible] = useState<boolean>(false); // 加载中
|
|
|
|
|
const [remarkVisible, setRemarkVisible] = useState<boolean>(false); // 备注弹窗
|
|
|
|
|
const [remarksVal, setRemarksVal] = useState<any>(); // 备注
|
|
|
|
|
const [remarkForm] = Form.useForm(); // 备注表单
|
|
|
|
|
const [isDisabled, setIsDisabled] = useState<boolean>(false); // 是否可编辑
|
|
|
|
|
const [offerSource, setOfferSource] = useState<any>([]); // 报价总数据
|
|
|
|
|
const [offerTotalSource, setOfferTotalSource] = useState<any>([]); // 报价数据
|
|
|
|
|
const [offerCurrent, setOfferCurrent] = useState<number>(1); // 当前页码
|
|
|
|
|
const [offerTotal, setOfferTotal] = useState<number>(1); // 共多少数据
|
|
|
|
|
const [isDisabledOffer, setIsDisabledOffer] = useState<boolean>(false); // 报价是否可编辑
|
|
|
|
|
let projectName = getSessionProjectData().projectName
|
|
|
|
|
//祥审记录表
|
|
|
|
|
const [firstTrialTableDetailedTable, setFirstTrialTableDetailedTable] = useState<any>();
|
2020-12-23 11:14:35 +08:00
|
|
|
|
|
2021-01-16 11:29:42 +08:00
|
|
|
|
const columns: any[] = [ // 详审表头
|
2020-12-23 11:14:35 +08:00
|
|
|
|
{
|
|
|
|
|
title: '详审项',
|
|
|
|
|
dataIndex: 'scoreItem',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '评分标准',
|
|
|
|
|
dataIndex: 'rvwStandard',
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
2021-01-16 11:29:42 +08:00
|
|
|
|
const offerColumns: any[] = [ // 报价表头
|
|
|
|
|
{
|
|
|
|
|
title: '排序',
|
|
|
|
|
render: (text: any, record: any, index: any) => `${index + 1}`
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '投标人姓名',
|
|
|
|
|
dataIndex: 'supplierRegisterName',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '投标人报价',
|
|
|
|
|
dataIndex: 'bidContent',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '查看报价文件',
|
|
|
|
|
render: (text: any, record: any, index: any) => {
|
|
|
|
|
return (
|
|
|
|
|
<Button type="link" danger>查看</Button>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '报价分录入',
|
|
|
|
|
render: (text: any, record: any, index: any) => {
|
|
|
|
|
if (record.judgesStatus == '2') {
|
|
|
|
|
disabledOffer = true
|
|
|
|
|
}
|
|
|
|
|
if (record.priceScore) {
|
|
|
|
|
return (
|
|
|
|
|
<Input
|
|
|
|
|
disabled={disabledOffer}
|
|
|
|
|
onFocus={e => offerValueChange(e, record)}
|
|
|
|
|
onChange={e => offerSourceChange(e, record)}
|
|
|
|
|
value={record.priceScore} style={{ width: 160 }} />
|
|
|
|
|
)
|
|
|
|
|
} else {
|
|
|
|
|
return (
|
|
|
|
|
<Input disabled={disabledOffer} onChange={e => offerSourceChange(e, record)} value={record.priceScore} style={{ width: 160 }} />
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
const saveSorce = () => { // 保存
|
|
|
|
|
console.log(bidEvalDetailDTOList)
|
|
|
|
|
if (bidEvalDetailDTOList.length > 0) {
|
|
|
|
|
setSpinVisible(true)
|
|
|
|
|
let date = {
|
|
|
|
|
id: subId,
|
|
|
|
|
bidEvalId: bidEvalId,
|
|
|
|
|
categoryId: typeId,
|
|
|
|
|
category: typeCategory,
|
|
|
|
|
judgesStatus: '1',
|
|
|
|
|
bidEvalDetailDTOList: bidEvalDetailDTOList
|
|
|
|
|
}
|
|
|
|
|
submitDetail({ ...date }).then((res) => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
setSpinVisible(false)
|
|
|
|
|
setBidEvalDetailDTOList([])
|
|
|
|
|
if (tabListName == '报价') {
|
|
|
|
|
myProcess(typeId)
|
|
|
|
|
// changeOffer(offerCurrent, typeId, offerTotalSource)
|
|
|
|
|
} else {
|
|
|
|
|
// ratingData(typeId)
|
|
|
|
|
// changePagination(current, typeId, totalSupplier)
|
|
|
|
|
myProcess(typeId)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const submitApi = () => { // 提交接口
|
|
|
|
|
setSpinVisible(true)
|
|
|
|
|
let date = {
|
|
|
|
|
categoryId: typeId,
|
|
|
|
|
judgesStatus: '2',
|
|
|
|
|
}
|
|
|
|
|
updateJudgesStatus({ ...date }).then((res) => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
message.success('提交成功!');
|
|
|
|
|
setSpinVisible(false)
|
|
|
|
|
if (tabListName != '报价') {
|
|
|
|
|
// ratingData(typeId)
|
|
|
|
|
setIsDisabled(true)
|
|
|
|
|
supplierTab(typeId) // 防止提交成功禁用按钮不生效
|
|
|
|
|
} else {
|
|
|
|
|
setIsDisabledOffer(true)
|
|
|
|
|
offerList(typeId)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const submit = () => { // 提交
|
|
|
|
|
if (bidEvalDetailDTOList.length > 0) {
|
|
|
|
|
let date = {
|
|
|
|
|
id: subId,
|
|
|
|
|
bidEvalId: bidEvalId,
|
|
|
|
|
categoryId: typeId,
|
|
|
|
|
category: typeCategory,
|
|
|
|
|
judgesStatus: '1',
|
|
|
|
|
bidEvalDetailDTOList: bidEvalDetailDTOList
|
|
|
|
|
}
|
|
|
|
|
submitDetail({ ...date }).then((res) => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
setSpinVisible(false)
|
|
|
|
|
setBidEvalDetailDTOList([])
|
|
|
|
|
submitApi()
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
submitApi()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-12-23 11:14:35 +08:00
|
|
|
|
const getTabId = (key: any) => { // tab切换获取当前tab的key
|
2021-01-16 11:29:42 +08:00
|
|
|
|
setTypeId(tabList[key].id)
|
|
|
|
|
setTypeCategory(tabList[key].category)
|
|
|
|
|
setTabListName(tabList[key].name)
|
|
|
|
|
myProcess(tabList[key].id)
|
|
|
|
|
if (tabList[key].name == '报价') {
|
|
|
|
|
offerList(tabList[key].id)
|
|
|
|
|
} else {
|
|
|
|
|
changePagination(1, tabList[key].id, totalSupplier)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let disabledOffer: any = false
|
|
|
|
|
const offerList = (id: any) => { // 报价数据
|
|
|
|
|
let date = {
|
|
|
|
|
reviewType: reviewType,
|
|
|
|
|
reviewTurnId: reviewTurnId,
|
|
|
|
|
categoryId: id
|
|
|
|
|
}
|
|
|
|
|
findPriceScoreList({ ...date }).then((res) => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
if (res.data.judgesStatus == '2') {
|
|
|
|
|
disabledOffer = true
|
|
|
|
|
setIsDisabledOffer(true)
|
|
|
|
|
} else {
|
|
|
|
|
disabledOffer = false
|
|
|
|
|
setIsDisabledOffer(false)
|
|
|
|
|
}
|
|
|
|
|
setSubId(res.data.id)
|
|
|
|
|
res.data.priceScoreMap.dataList.map((item: any) => {
|
|
|
|
|
item.judgesStatus = res.data.judgesStatus
|
|
|
|
|
})
|
|
|
|
|
setOfferTotalSource(res.data.priceScoreMap.dataList) // 报价总数据
|
|
|
|
|
setOfferTotal(res.data.priceScoreMap.dataList.length) // 分页
|
|
|
|
|
changeOffer(1, id, res.data.priceScoreMap.dataList) // 分页数据
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const offerSourceChange = (e: any, val: any) => { // 报价分数修改
|
|
|
|
|
offerSource.map((item: any) => {
|
|
|
|
|
if (item.supplierRegisterId == val.supplierRegisterId && item.detailId == val.detailId) {
|
|
|
|
|
item.priceScore = e.target.value
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
let x = false;
|
|
|
|
|
bidEvalDetailDTOList.map((item: any) => {
|
|
|
|
|
if (item.supplierRegisterId == val.supplierRegisterId && item.detailId == val.detailId) {
|
|
|
|
|
item.resultValue = e.target.value
|
|
|
|
|
x = true
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
if (!x) {
|
|
|
|
|
if (val.id) {
|
|
|
|
|
bidEvalDetailDTOList.push({ 'resultValue': e.target.value, 'id': val.id, 'supplierRegisterId': val.supplierRegisterId, 'detailId': val.detailId });
|
|
|
|
|
} else {
|
|
|
|
|
bidEvalDetailDTOList.push({ 'resultValue': e.target.value, 'id': '', 'supplierRegisterId': val.supplierRegisterId, 'detailId': val.detailId });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
setOfferSource([...offerSource])
|
|
|
|
|
console.log(bidEvalDetailDTOList)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const offerValueChange = (e: any, val: any) => { // 报价分数获取焦点
|
|
|
|
|
offerSource.map((item: any, index: any) => {
|
|
|
|
|
if (item.id && item.id == val.id) {
|
|
|
|
|
item.priceScore = ''
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
setOfferSource([...offerSource])
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const changeOffer = (page: any, id: any, totalSource: any) => { // 报价数据分页
|
|
|
|
|
if (bidEvalDetailDTOList.length > 0) {
|
|
|
|
|
saveSorce() // 保存
|
|
|
|
|
}
|
|
|
|
|
setOfferCurrent(page)
|
|
|
|
|
let currentDate = (page - 1) * 3
|
|
|
|
|
setOfferSource(totalSource.slice(currentDate, currentDate + 3))
|
2020-12-23 11:14:35 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const myProcess = (id: any) => { // 我的进度
|
|
|
|
|
let date = {
|
2021-01-16 11:29:42 +08:00
|
|
|
|
bidEvalId: bidEvalId,
|
|
|
|
|
reviewTurnId: reviewTurnId,
|
2020-12-23 11:14:35 +08:00
|
|
|
|
categoryId: id
|
|
|
|
|
}
|
|
|
|
|
getProgress({ ...date }).then((res) => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
setProcess(res.data)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
2021-01-16 11:29:42 +08:00
|
|
|
|
const getRemark = (val: any, id: any) => { // 备注
|
|
|
|
|
if (val.remarks) {
|
|
|
|
|
remarkForm.setFieldsValue({ remarks: val.remarks })
|
|
|
|
|
} else {
|
|
|
|
|
remarkForm.setFieldsValue({ remarks: '' })
|
|
|
|
|
}
|
|
|
|
|
if (val.detailId) {
|
|
|
|
|
setRemarksVal({ 'id': val.id, 'supplierRegisterId': id, 'detailId': val.detailId, 'resultValue': val.resultValue, 'remarks': val.remarks })
|
|
|
|
|
} else {
|
|
|
|
|
setRemarksVal({ 'id': '', 'supplierRegisterId': id, 'detailId': val.id, 'resultValue': '', 'remarks': '' })
|
|
|
|
|
}
|
|
|
|
|
setRemarkVisible(true)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const closeRemarks = () => { // 关闭备注
|
|
|
|
|
if (!isDisabled) {
|
|
|
|
|
let x = false;
|
|
|
|
|
bidEvalDetailDTOList.map((item: any) => {
|
|
|
|
|
if (item.supplierRegisterId == remarksVal.supplierRegisterId && item.detailId == remarksVal.detailId) {
|
|
|
|
|
item.remarks = remarkForm.getFieldsValue().remarks
|
|
|
|
|
x = true
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
if (!x) {
|
|
|
|
|
if (remarksVal.resultValue != '') {
|
|
|
|
|
dataSource.map((item: any) => {
|
|
|
|
|
if (remarksVal.detailId) {
|
|
|
|
|
if (remarksVal.detailId == item.id && item.scoreMap[remarksVal.supplierRegisterId] && item.scoreMap[remarksVal.supplierRegisterId].remarks != remarkForm.getFieldsValue().remarks) {
|
|
|
|
|
bidEvalDetailDTOList.push({ 'id': remarksVal.id, 'supplierRegisterId': remarksVal.supplierRegisterId, 'detailId': remarksVal.detailId, 'resultValue': remarksVal.resultValue, 'remarks': remarkForm.getFieldsValue().remarks });
|
|
|
|
|
item.scoreMap[remarksVal.supplierRegisterId].remarks = remarkForm.getFieldsValue().remarks
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (remarkForm.getFieldsValue().remarks != '') {
|
|
|
|
|
bidEvalDetailDTOList.push({ 'id': '', 'supplierRegisterId': remarksVal.supplierRegisterId, 'detailId': remarksVal.detailId, 'resultValue': remarksVal.resultValue, 'remarks': remarkForm.getFieldsValue().remarks });
|
|
|
|
|
item.scoreMap[remarksVal.supplierRegisterId] = { 'remarks': remarkForm.getFieldsValue().remarks }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
setDataSource([...dataSource])
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
setRemarkVisible(false)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const supplierTab = (id: any) => { // 供应商列头接口
|
2020-12-23 11:14:35 +08:00
|
|
|
|
let date = {
|
2021-01-16 11:29:42 +08:00
|
|
|
|
assessRoomId: assessRoomId,
|
|
|
|
|
reviewTurnId: reviewTurnId
|
2020-12-23 11:14:35 +08:00
|
|
|
|
}
|
|
|
|
|
getRegister({ ...date }).then((res) => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
setTotal(res.data.length)
|
2021-01-16 11:29:42 +08:00
|
|
|
|
setTotalSupplier(res.data)
|
|
|
|
|
changePagination(1, id, res.data)
|
|
|
|
|
getFirstTrialTableDetailed(res.data, date);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let supplierId: any = [] // 供应商数组id
|
|
|
|
|
const changePagination = (page: any, id: any, totalSupplierColumns: any) => { // 供应商列头
|
|
|
|
|
if (bidEvalDetailDTOList.length > 0) {
|
|
|
|
|
saveSorce() // 保存
|
|
|
|
|
}
|
|
|
|
|
setCurrent(page)
|
|
|
|
|
let currentDate = (page - 1) * 3
|
|
|
|
|
let newColumns = [...columns];
|
|
|
|
|
totalSupplierColumns.slice(currentDate, currentDate + 3).map((item: any) => {
|
|
|
|
|
supplierId.push(item.supplierRegisterId)
|
|
|
|
|
newColumns.push({
|
|
|
|
|
title: item.supplierRegisterName,
|
|
|
|
|
dataIndex: item.supplierRegisterId,
|
|
|
|
|
editable: true,
|
|
|
|
|
render: (text: any, record: any) => {
|
|
|
|
|
if (record.scoreMethod == '0') { // 单选
|
|
|
|
|
const radioOptions: any[] = [];
|
|
|
|
|
record.standardList.map((item: any) => {
|
|
|
|
|
radioOptions.push({ label: item.standardName + '(' + item.standardDetailScore + '分)' + item.id, value: item.standardDetailScore + '-' + item.id })
|
|
|
|
|
})
|
|
|
|
|
if (record.scoreMap && record.scoreMap[item.supplierRegisterId]) {
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<Radio.Group
|
|
|
|
|
disabled={disabled}
|
|
|
|
|
value={record.scoreMap[item.supplierRegisterId].resultValue + '-' + record.scoreMap[item.supplierRegisterId].standardId}
|
|
|
|
|
options={radioOptions}
|
|
|
|
|
onChange={e => onChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}
|
|
|
|
|
/><br />
|
|
|
|
|
<Button onClick={() => getRemark(record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)} type="link" danger>备注</Button>
|
|
|
|
|
<Button type="link" danger>
|
|
|
|
|
<Link to={`/viewOfTenderDocumentsSecond?id=${record.id}&supplierId=${item.supplierRegisterId}`}>查看应答文件</Link>
|
|
|
|
|
</Button>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
} else {
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<Radio.Group
|
|
|
|
|
value={''}
|
|
|
|
|
options={radioOptions}
|
|
|
|
|
onChange={e => onChange(e, record, item.supplierRegisterId)}
|
|
|
|
|
/><br />
|
|
|
|
|
<Button onClick={() => getRemark(record, item.supplierRegisterId)} type="link" danger>备注</Button>
|
|
|
|
|
<Button type="link" danger>
|
|
|
|
|
<Link to={`/viewOfTenderDocumentsSecond?id=${record.id}&supplierId=${item.supplierRegisterId}`}>查看应答文件</Link>
|
|
|
|
|
</Button>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
} else if (record.scoreMethod == '1') {// 多选
|
|
|
|
|
const checkboxOptions: any[] = [];
|
|
|
|
|
record.standardList.map((item: any) => {
|
|
|
|
|
checkboxOptions.push({ label: item.standardName + '(' + item.standardDetailScore + '分)' + item.id, value: item.standardDetailScore + '-' + item.id })
|
|
|
|
|
})
|
|
|
|
|
if (record.scoreMap && record.scoreMap[item.supplierRegisterId]) {
|
|
|
|
|
let defaultArr = record.scoreMap[item.supplierRegisterId].standardId.split(",")
|
|
|
|
|
let defaultValue: any = []
|
|
|
|
|
record.standardList.map((item: any) => {
|
|
|
|
|
defaultArr.map((val: any) => {
|
|
|
|
|
if (item.id == val) {
|
|
|
|
|
defaultValue.push(item.standardDetailScore + '-' + item.id)
|
|
|
|
|
}
|
2020-12-23 11:14:35 +08:00
|
|
|
|
})
|
2021-01-16 11:29:42 +08:00
|
|
|
|
})
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<CheckboxGroup
|
|
|
|
|
disabled={disabled}
|
|
|
|
|
options={checkboxOptions}
|
|
|
|
|
value={defaultValue}
|
|
|
|
|
onChange={e => checkChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}
|
|
|
|
|
/><br />
|
|
|
|
|
<Button type="link" danger onClick={() => getRemark(record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}>备注</Button>
|
|
|
|
|
<Button type="link" danger>
|
|
|
|
|
<Link to={`/viewOfTenderDocumentsSecond?id=${record.id}&supplierId=${item.supplierRegisterId}`}>查看应答文件</Link>
|
|
|
|
|
</Button>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
} else {
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<CheckboxGroup
|
|
|
|
|
options={checkboxOptions}
|
|
|
|
|
value={[]}
|
|
|
|
|
onChange={e => checkChange(e, record, item.supplierRegisterId)}
|
|
|
|
|
/><br />
|
|
|
|
|
<Button type="link" danger onClick={() => getRemark(record, item.supplierRegisterId)}>备注</Button>
|
|
|
|
|
<Button type="link" danger>
|
|
|
|
|
<Link to={`/viewOfTenderDocumentsSecond?id=${record.id}&supplierId=${item.supplierRegisterId}`}>查看应答文件</Link>
|
|
|
|
|
</Button>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
2020-12-23 11:14:35 +08:00
|
|
|
|
}
|
2021-01-16 11:29:42 +08:00
|
|
|
|
} else if (record.scoreMethod == '2') { // 人工
|
|
|
|
|
if (record.scoreMap && record.scoreMap[item.supplierRegisterId]) {
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<Input
|
|
|
|
|
disabled={disabled}
|
|
|
|
|
value={record.scoreMap[item.supplierRegisterId].resultValue}
|
|
|
|
|
style={{ width: 160 }}
|
|
|
|
|
onChange={e => inputChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}
|
|
|
|
|
onFocus={e => inputFocus(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}
|
|
|
|
|
/>
|
|
|
|
|
<br />
|
|
|
|
|
<Button type="link" danger onClick={() => getRemark(record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}>备注</Button>
|
|
|
|
|
<Button type="link" danger>
|
|
|
|
|
<Link to={`/viewOfTenderDocumentsSecond?id=${record.id}&supplierId=${item.supplierRegisterId}`}>查看应答文件</Link>
|
|
|
|
|
</Button>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
} else {
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<Input onChange={e => inputChange(e, record, item.supplierRegisterId)} style={{ width: 160 }} /><br />
|
|
|
|
|
<Button type="link" danger onClick={() => getRemark(record, item.supplierRegisterId)}>备注</Button>
|
|
|
|
|
<Button type="link" danger><Link to={`/viewOfTenderDocumentsSecond?id=${record.id}&supplierId=${item.supplierRegisterId}`}>查看应答文件</Link></Button>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
} else if (record.scoreMethod == '4') { // 步长
|
|
|
|
|
let optionLength = record.highScore / record.lowScore
|
|
|
|
|
let optionArr: any = []
|
|
|
|
|
for (let i = 1; i <= optionLength; i++) {
|
|
|
|
|
optionArr.push(record.lowScore * i)
|
|
|
|
|
}
|
|
|
|
|
if (record.scoreMap && record.scoreMap[item.supplierRegisterId]) {
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<Select
|
|
|
|
|
disabled={disabled}
|
|
|
|
|
value={record.scoreMap[item.supplierRegisterId].resultValue}
|
|
|
|
|
style={{ width: 160 }}
|
|
|
|
|
onChange={e => handleChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}
|
|
|
|
|
>
|
|
|
|
|
{
|
|
|
|
|
optionArr.map((item: any) => {
|
|
|
|
|
return (
|
|
|
|
|
<Option value={item}>{item}</Option>
|
|
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
</Select><br />
|
|
|
|
|
<Button type="link" danger onClick={() => getRemark(record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}>备注</Button>
|
|
|
|
|
<Button type="link" danger><Link to={`/viewOfTenderDocumentsSecond?id=${record.id}&supplierId=${item.supplierRegisterId}`}>查看应答文件</Link></Button>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
} else {
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<Select value="" style={{ width: 160 }} onChange={e => handleChange(e, record, item.supplierRegisterId)}>>
|
|
|
|
|
{
|
|
|
|
|
optionArr.map((item: any) => {
|
|
|
|
|
return (
|
|
|
|
|
<Option value={item}>{item}</Option>
|
|
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
</Select><br />
|
|
|
|
|
<Button type="link" danger onClick={() => getRemark(record, item.supplierRegisterId)}>备注</Button>
|
|
|
|
|
<Button type="link" danger><Link to={`/viewOfTenderDocumentsSecond?id=${record.id}&supplierId=${item.supplierRegisterId}`}>查看应答文件</Link></Button>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
})
|
2020-12-23 11:14:35 +08:00
|
|
|
|
})
|
2021-01-16 11:29:42 +08:00
|
|
|
|
setSupplierColumns([...newColumns])
|
|
|
|
|
ratingData(id)
|
2020-12-23 11:14:35 +08:00
|
|
|
|
}
|
|
|
|
|
|
2021-01-16 11:29:42 +08:00
|
|
|
|
let disabled: any = false
|
|
|
|
|
let totalQualified: any = []
|
2020-12-23 11:14:35 +08:00
|
|
|
|
const ratingData = async (id: any) => { // 评分数据
|
|
|
|
|
let query = {
|
2021-01-16 11:29:42 +08:00
|
|
|
|
bidEvalId: bidEvalId,
|
2020-12-23 11:14:35 +08:00
|
|
|
|
categoryId: id,
|
2021-01-16 11:29:42 +08:00
|
|
|
|
supplierRegisterIds: supplierId
|
2020-12-23 11:14:35 +08:00
|
|
|
|
}
|
|
|
|
|
await getScoreDetail({ ...query }).then((res) => { // 评分数据
|
|
|
|
|
if (res.code == 200) {
|
2021-01-16 11:29:42 +08:00
|
|
|
|
if (res.data.judgesStatus == '2') {
|
|
|
|
|
disabled = true
|
|
|
|
|
setIsDisabled(true)
|
|
|
|
|
} else {
|
|
|
|
|
disabled = false
|
|
|
|
|
setIsDisabled(false)
|
|
|
|
|
}
|
|
|
|
|
setSubId(res.data.id)
|
2020-12-23 11:14:35 +08:00
|
|
|
|
setDataSource(res.data.detailList)
|
2021-01-16 11:29:42 +08:00
|
|
|
|
totalQualified = res.data.detailList
|
2020-12-23 11:14:35 +08:00
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
2021-01-16 11:29:42 +08:00
|
|
|
|
const onChange = (e: any, val: any, id: any) => { // 单选框操作
|
|
|
|
|
let detailValue = e.target.value.split("-")[0]
|
|
|
|
|
let standardId = e.target.value.split("-")[1]
|
|
|
|
|
totalQualified.map((item: any) => {
|
|
|
|
|
if (val.detailId) {
|
|
|
|
|
if (val.detailId == item.id) {
|
|
|
|
|
for (let i = 0; i < supplierId.length; i++) {
|
|
|
|
|
if (id == supplierId[i]) {
|
|
|
|
|
item.scoreMap[supplierId[i]].resultValue = detailValue
|
|
|
|
|
item.scoreMap[supplierId[i]].detailValue = detailValue
|
|
|
|
|
item.scoreMap[supplierId[i]].standardId = standardId
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (val.id == item.id) {
|
|
|
|
|
for (let i = 0; i < supplierId.length; i++) {
|
|
|
|
|
if (id == supplierId[i]) {
|
|
|
|
|
if (item.scoreMap == null) {
|
|
|
|
|
item.scoreMap = []
|
|
|
|
|
}
|
|
|
|
|
item.scoreMap[supplierId[i]] = { 'detailValue': detailValue, 'resultValue': detailValue, 'standardId': standardId, 'id': '', 'supplierRegisterId': supplierId[i], 'detailId': val.id, 'remarks': '' }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
let x = false;
|
|
|
|
|
if (val.detailId) {
|
|
|
|
|
bidEvalDetailDTOList.map((item: any) => {
|
|
|
|
|
if (item.supplierRegisterId == id && item.detailId == val.detailId) {
|
|
|
|
|
item.resultValue = detailValue
|
|
|
|
|
item.detailValue = detailValue
|
|
|
|
|
item.standardId = standardId
|
|
|
|
|
x = true
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
if (!x) {
|
|
|
|
|
if (val.detailId) {
|
|
|
|
|
bidEvalDetailDTOList.push({ 'detailValue': detailValue, 'resultValue': detailValue, 'standardId': standardId, 'id': val.id, 'supplierRegisterId': val.supplierRegisterId, 'detailId': val.detailId, 'remarks': val.remarks });
|
|
|
|
|
} else {
|
|
|
|
|
bidEvalDetailDTOList.push({ 'detailValue': detailValue, 'resultValue': detailValue, 'standardId': standardId, 'id': '', 'supplierRegisterId': id, 'detailId': val.id, 'remarks': '' });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
setDataSource([...totalQualified])
|
|
|
|
|
console.log(bidEvalDetailDTOList)
|
|
|
|
|
}
|
2020-12-23 11:14:35 +08:00
|
|
|
|
|
2021-01-16 11:29:42 +08:00
|
|
|
|
const checkChange = (list: any, val: any, id: any) => { // 复选框操作
|
|
|
|
|
let detailValue: any, resultValue: any = 0, standardId: any
|
|
|
|
|
let detailValueArr: any = []
|
|
|
|
|
let standardIdArr: any = []
|
|
|
|
|
if (val.detailId) {
|
|
|
|
|
for (let i = 0; i < list.length; i++) {
|
|
|
|
|
detailValueArr.push(list[i].split("-")[0])
|
|
|
|
|
standardIdArr.push(list[i].split("-")[1])
|
|
|
|
|
resultValue += Number(list[i].split("-")[0])
|
|
|
|
|
}
|
|
|
|
|
detailValue = detailValueArr.toString()
|
|
|
|
|
standardId = standardIdArr.toString()
|
|
|
|
|
} else {
|
|
|
|
|
detailValue = list[0].split("-")[0]
|
|
|
|
|
resultValue = list[0].split("-")[0]
|
|
|
|
|
standardId = list[0].split("-")[1]
|
|
|
|
|
}
|
|
|
|
|
totalQualified.map((item: any) => { // 处理页面回显
|
|
|
|
|
if (val.detailId) {
|
|
|
|
|
if (val.detailId == item.id) {
|
|
|
|
|
for (let i = 0; i < supplierId.length; i++) {
|
|
|
|
|
if (id == supplierId[i]) {
|
|
|
|
|
item.scoreMap[supplierId[i]].resultValue = resultValue
|
|
|
|
|
item.scoreMap[supplierId[i]].detailValue = detailValue
|
|
|
|
|
item.scoreMap[supplierId[i]].standardId = standardId
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (val.id == item.id) {
|
|
|
|
|
for (let i = 0; i < supplierId.length; i++) {
|
|
|
|
|
if (id == supplierId[i]) {
|
|
|
|
|
if (item.scoreMap == null) {
|
|
|
|
|
item.scoreMap = []
|
|
|
|
|
}
|
|
|
|
|
item.scoreMap[supplierId[i]] = { 'detailValue': detailValue, 'resultValue': resultValue, 'standardId': standardId, 'id': '', 'supplierRegisterId': id, 'detailId': val.id, 'remarks': '' }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
let x = false;
|
|
|
|
|
if (val.detailId) { // 处理数据选中
|
|
|
|
|
bidEvalDetailDTOList.map((item: any) => {
|
|
|
|
|
if (item.supplierRegisterId == id && item.detailId == val.detailId) {
|
|
|
|
|
item.resultValue = resultValue
|
|
|
|
|
item.detailValue = detailValue
|
|
|
|
|
item.standardId = standardId
|
|
|
|
|
x = true
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
if (!x) { // 向保存数组添加数据
|
|
|
|
|
if (val.detailId) {
|
|
|
|
|
bidEvalDetailDTOList.push({ 'detailValue': detailValue, 'resultValue': resultValue, 'standardId': standardId, 'id': val.id, 'supplierRegisterId': val.supplierRegisterId, 'detailId': val.detailId, 'remarks': val.remarks });
|
|
|
|
|
} else {
|
|
|
|
|
bidEvalDetailDTOList.push({ 'detailValue': detailValue, 'resultValue': resultValue, 'standardId': standardId, 'id': '', 'supplierRegisterId': id, 'detailId': val.id, 'remarks': '' });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
setDataSource([...totalQualified])
|
|
|
|
|
console.log(bidEvalDetailDTOList)
|
2020-12-23 11:14:35 +08:00
|
|
|
|
}
|
|
|
|
|
|
2021-01-16 11:29:42 +08:00
|
|
|
|
const handleChange = (e: any, val: any, id: any) => { // 下拉框操作
|
|
|
|
|
totalQualified.map((item: any) => { // 处理页面回显
|
|
|
|
|
if (val.detailId) {
|
|
|
|
|
if (val.detailId == item.id) {
|
|
|
|
|
for (let i = 0; i < supplierId.length; i++) {
|
|
|
|
|
if (id == supplierId[i]) {
|
|
|
|
|
item.scoreMap[supplierId[i]].resultValue = e
|
|
|
|
|
item.scoreMap[supplierId[i]].detailValue = e
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (val.id == item.id) {
|
|
|
|
|
for (let i = 0; i < supplierId.length; i++) {
|
|
|
|
|
if (id == supplierId[i]) {
|
|
|
|
|
if (item.scoreMap == null) {
|
|
|
|
|
item.scoreMap = []
|
|
|
|
|
}
|
|
|
|
|
item.scoreMap[supplierId[i]] = { 'detailValue': e, 'resultValue': e, 'id': '', 'supplierRegisterId': id, 'detailId': val.id, 'remarks': '' }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
let x = false;
|
|
|
|
|
if (val.detailId) {
|
|
|
|
|
bidEvalDetailDTOList.map((item: any) => {
|
|
|
|
|
if (item.supplierRegisterId == id && item.detailId == val.detailId) {
|
|
|
|
|
item.resultValue = e
|
|
|
|
|
item.detailValue = e
|
|
|
|
|
x = true
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
if (!x) {
|
|
|
|
|
if (val.detailId) {
|
|
|
|
|
bidEvalDetailDTOList.push({ 'detailValue': e, 'resultValue': e, 'id': val.id, 'supplierRegisterId': val.supplierRegisterId, 'detailId': val.detailId, 'remarks': val.remarks });
|
|
|
|
|
} else {
|
|
|
|
|
bidEvalDetailDTOList.push({ 'detailValue': e, 'resultValue': e, 'id': '', 'supplierRegisterId': id, 'detailId': val.id, 'remarks': '' });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
setDataSource([...totalQualified])
|
|
|
|
|
console.log(bidEvalDetailDTOList)
|
2020-12-23 11:14:35 +08:00
|
|
|
|
}
|
|
|
|
|
|
2021-01-16 11:29:42 +08:00
|
|
|
|
const inputChange = (e: any, val: any, id: any) => { // 输入框操作
|
|
|
|
|
totalQualified.map((item: any) => { // 处理页面回显
|
|
|
|
|
if (val.detailId) {
|
|
|
|
|
if (val.detailId == item.id) {
|
|
|
|
|
for (let i = 0; i < supplierId.length; i++) {
|
|
|
|
|
if (id == supplierId[i]) {
|
|
|
|
|
item.scoreMap[supplierId[i]].resultValue = e.target.value
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (val.id == item.id) {
|
|
|
|
|
for (let i = 0; i < supplierId.length; i++) {
|
|
|
|
|
if (id == supplierId[i]) {
|
|
|
|
|
if (item.scoreMap == null) {
|
|
|
|
|
item.scoreMap = []
|
|
|
|
|
}
|
|
|
|
|
item.scoreMap[supplierId[i]] = { 'detailValue': e.target.value, 'resultValue': e.target.value, 'id': '', 'supplierRegisterId': id, 'detailId': val.id, 'remarks': '' }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
let x = false;
|
|
|
|
|
if (val.detailId) {
|
|
|
|
|
bidEvalDetailDTOList.map((item: any) => {
|
|
|
|
|
if (item.supplierRegisterId == id && item.detailId == val.detailId) {
|
|
|
|
|
item.resultValue = e.target.value
|
|
|
|
|
item.detailValue = e.target.value
|
|
|
|
|
x = true
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
if (!x) {
|
|
|
|
|
if (val.detailId) {
|
|
|
|
|
bidEvalDetailDTOList.push({ 'detailValue': e.target.value, 'resultValue': e.target.value, 'id': val.id, 'supplierRegisterId': val.supplierRegisterId, 'detailId': val.detailId, 'remarks': val.remarks });
|
|
|
|
|
} else {
|
|
|
|
|
bidEvalDetailDTOList.push({ 'detailValue': e.target.value, 'resultValue': e.target.value, 'id': '', 'supplierRegisterId': id, 'detailId': val.id, 'remarks': '' });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
setDataSource([...totalQualified])
|
|
|
|
|
console.log(bidEvalDetailDTOList)
|
2020-12-23 11:14:35 +08:00
|
|
|
|
}
|
|
|
|
|
|
2021-01-16 11:29:42 +08:00
|
|
|
|
const inputFocus = (e: any, val: any, id: any) => { // 手动输入框获取焦点
|
|
|
|
|
totalQualified.map((item: any) => { // 处理页面回显
|
|
|
|
|
if (val.detailId == item.id) {
|
|
|
|
|
for (let i = 0; i < supplierId.length; i++) {
|
|
|
|
|
if (id == supplierId[i]) {
|
|
|
|
|
item.scoreMap[supplierId[i]].resultValue = ''
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
setDataSource([...totalQualified])
|
2020-12-23 11:14:35 +08:00
|
|
|
|
}
|
|
|
|
|
|
2021-01-16 11:29:42 +08:00
|
|
|
|
const gettabList = () => { // tab
|
|
|
|
|
let date = {
|
|
|
|
|
assessRoomId: assessRoomId,
|
|
|
|
|
reviewTurnId: reviewTurnId,
|
|
|
|
|
rvwType: reviewType
|
2020-12-23 11:14:35 +08:00
|
|
|
|
}
|
2021-01-16 11:29:42 +08:00
|
|
|
|
getTabList({ ...date }).then((res) => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
if (res.data.length > 0) {
|
|
|
|
|
setTabList(res.data) // tab数据
|
|
|
|
|
myProcess(res.data[0].id) // 进度
|
|
|
|
|
setTypeId(res.data[0].id) // 设置类别id
|
|
|
|
|
setTypeCategory(res.data[0].category) // 设置类别
|
|
|
|
|
supplierTab(res.data[0].id) // 供应商列头
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
2020-12-23 11:14:35 +08:00
|
|
|
|
}
|
|
|
|
|
|
2021-01-16 11:29:42 +08:00
|
|
|
|
/**
|
|
|
|
|
* 获取祥审记录表数据
|
|
|
|
|
* @param defaultSupplierData
|
|
|
|
|
* @param findScoreRecordParams
|
|
|
|
|
*/
|
|
|
|
|
const getFirstTrialTableDetailed = (defaultSupplierData: any, findScoreRecordParams: any) => {
|
|
|
|
|
setFirstTrialTableDetailedTable(
|
|
|
|
|
<FirstTrialTableDetailed
|
|
|
|
|
defaultNumber={3}
|
|
|
|
|
defaultSupplierData={defaultSupplierData}
|
|
|
|
|
supplierParams={null}
|
|
|
|
|
findScoreRecordParams={{ ...findScoreRecordParams, reviewType: "2" }}
|
|
|
|
|
/>)
|
2020-12-23 11:14:35 +08:00
|
|
|
|
}
|
|
|
|
|
|
2021-01-16 11:29:42 +08:00
|
|
|
|
// const getWord = () => { // 初审摘录表导出
|
|
|
|
|
// let projectName = getSessionProjectData().projectName
|
|
|
|
|
// window.open('http://125.32.114.204:8760/api/biz-service-ebtp-rsms/v1/abstract/getJuryAbstracet?reviewTurnId=1331563852545916928&reviewType=2&projectName=' + projectName)
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
let JwtToken = getSessionUserData().userId
|
|
|
|
|
const props = { // 初审摘录表导入
|
|
|
|
|
name: 'file',
|
|
|
|
|
data: {
|
|
|
|
|
// reviewTurnId: getURLInformation("turnId"),
|
|
|
|
|
assessRoomId: getRoomId(),
|
|
|
|
|
reviewType: '2'
|
|
|
|
|
},
|
|
|
|
|
showUploadList: false,
|
|
|
|
|
accept: 'application/vnd.ms-application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
|
|
|
action: 'http://125.32.114.204:8760/api/biz-service-ebtp-rsms/v1/abstract/upload',
|
|
|
|
|
headers: {
|
|
|
|
|
authorization: 'authorization-text',
|
|
|
|
|
JwtToken: JwtToken
|
|
|
|
|
},
|
|
|
|
|
onChange(info: any) {
|
|
|
|
|
if (info.file.status !== 'uploading') {
|
|
|
|
|
console.log(info.file, info.fileList);
|
|
|
|
|
}
|
|
|
|
|
if (info.file.status === 'done') {
|
|
|
|
|
message.success('初审摘录表导入成功');
|
|
|
|
|
myProcess(typeId)
|
|
|
|
|
changePagination(1, typeId, totalSupplier)
|
|
|
|
|
} else if (info.file.status === 'error') {
|
|
|
|
|
message.error('初审摘录表导入失败');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
2020-12-23 11:14:35 +08:00
|
|
|
|
useEffect(() => {
|
|
|
|
|
let date = {
|
2021-01-16 11:29:42 +08:00
|
|
|
|
reviewTurnId: getURLInformation("turnId"),
|
|
|
|
|
reviewType: '2',
|
2020-12-23 11:14:35 +08:00
|
|
|
|
}
|
2021-01-16 11:29:42 +08:00
|
|
|
|
getEval({ ...date }).then((res) => {
|
2020-12-23 11:14:35 +08:00
|
|
|
|
if (res.code == 200) {
|
2021-01-16 11:29:42 +08:00
|
|
|
|
assessRoomId = res.data.assessRoomId
|
|
|
|
|
reviewTurnId = res.data.reviewTurnId
|
|
|
|
|
reviewType = res.data.reviewType
|
|
|
|
|
bidEvalId = res.data.id
|
|
|
|
|
gettabList()
|
2020-12-23 11:14:35 +08:00
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<>
|
2021-01-16 11:29:42 +08:00
|
|
|
|
<Spin spinning={spinVisible}>
|
|
|
|
|
<div className="bidContent">
|
|
|
|
|
{/* <h3 className="name">项目名称:测试项目<span>标段名称:标包1</span></h3> */}
|
|
|
|
|
<div>
|
|
|
|
|
<Space>
|
|
|
|
|
{/* <Button onClick={() => getWord()} type="primary" size="small">初审摘录表导出</Button> */}
|
|
|
|
|
<FileDown apiUrl={`/api/biz-service-ebtp-rsms/v1/abstract/getJuryAbstracet?reviewTurnId=${getURLInformation("turnId")}&reviewType=2&projectName=${projectName}`} fileName='详审摘录表' type='xlsx' method='GET' btnName='详审摘录表导出' />
|
|
|
|
|
<Upload {...props}>
|
|
|
|
|
<Button type="primary">详审摘录表导入</Button>
|
|
|
|
|
</Upload>
|
|
|
|
|
</Space>
|
|
|
|
|
</div>
|
|
|
|
|
<Tabs defaultActiveKey="0" onChange={getTabId}>
|
|
|
|
|
{
|
|
|
|
|
tabList.map((item: any, index: any) => {
|
|
|
|
|
if (item.name == '报价') {
|
|
|
|
|
return (
|
|
|
|
|
<TabPane tab={item.name} key={index}>
|
|
|
|
|
<div className="p10 mb20">
|
|
|
|
|
<div className="process">我的进度:<Progress percent={process} /></div>
|
|
|
|
|
<div className="block">
|
|
|
|
|
<Space>
|
|
|
|
|
{
|
|
|
|
|
isDisabledOffer ? null : <Button onClick={() => saveSorce()} type="primary" danger>保存</Button>
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
(process > 100 || process == 100) && !isDisabledOffer ? <Button onClick={() => submit()} type="primary" danger>提交</Button> : null
|
|
|
|
|
}
|
|
|
|
|
</Space>
|
|
|
|
|
</div>
|
|
|
|
|
<Table className="labelTable" pagination={false} columns={offerColumns} dataSource={offerSource} />
|
|
|
|
|
<Pagination
|
|
|
|
|
defaultCurrent={offerCurrent}
|
|
|
|
|
total={offerTotal}
|
|
|
|
|
defaultPageSize={3}
|
|
|
|
|
showSizeChanger={false}
|
|
|
|
|
onChange={(e) => changeOffer(e, typeId, offerTotalSource)}
|
|
|
|
|
/>
|
2020-12-23 11:14:35 +08:00
|
|
|
|
</div>
|
2021-01-16 11:29:42 +08:00
|
|
|
|
</TabPane>
|
|
|
|
|
)
|
|
|
|
|
} else {
|
|
|
|
|
return (
|
|
|
|
|
<TabPane tab={item.name} key={index}>
|
|
|
|
|
<div className="p10">
|
|
|
|
|
<div className="mb20">
|
|
|
|
|
<div className="process">我的进度:<Progress percent={process} /></div>
|
|
|
|
|
<div className="block">
|
|
|
|
|
<Space>
|
|
|
|
|
{
|
|
|
|
|
isDisabled ? null : <Button onClick={() => saveSorce()} type="primary" danger>保存</Button>
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
(process > 100 || process == 100) && !isDisabled ? <Button onClick={() => submit()} type="primary" danger>提交</Button> : null
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
isDisabled ? <Button onClick={() => setDetailVisible(true)} type="primary" danger>详审记录表</Button> : null
|
|
|
|
|
}
|
|
|
|
|
</Space>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<Pagination
|
|
|
|
|
defaultCurrent={current}
|
|
|
|
|
total={total}
|
|
|
|
|
defaultPageSize={3}
|
|
|
|
|
showSizeChanger={false}
|
|
|
|
|
onChange={(e) => changePagination(e, typeId, totalSupplier)}
|
|
|
|
|
/>
|
|
|
|
|
<Table className="labelTable" pagination={false} columns={supplierColumns} dataSource={dataSource} />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</TabPane>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
</Tabs>
|
|
|
|
|
</div>
|
|
|
|
|
<Modal // 备注
|
|
|
|
|
title="备注"
|
|
|
|
|
width={600}
|
|
|
|
|
visible={remarkVisible}
|
|
|
|
|
onCancel={() => closeRemarks()}
|
|
|
|
|
onOk={() => closeRemarks()}
|
2020-12-23 11:14:35 +08:00
|
|
|
|
>
|
2021-01-16 11:29:42 +08:00
|
|
|
|
<Form form={remarkForm}>
|
|
|
|
|
<Form.Item name='remarks'>
|
|
|
|
|
<TextArea disabled={isDisabled} rows={4} />
|
|
|
|
|
</Form.Item>
|
|
|
|
|
</Form>
|
|
|
|
|
</Modal>
|
|
|
|
|
<Modal // 详审记录表
|
|
|
|
|
width={800}
|
|
|
|
|
title="详审记录表"
|
|
|
|
|
visible={detailVisible}
|
|
|
|
|
onCancel={() => setDetailVisible(false)}
|
|
|
|
|
footer={null}
|
|
|
|
|
>
|
|
|
|
|
{firstTrialTableDetailedTable}
|
|
|
|
|
</Modal>
|
|
|
|
|
</Spin>
|
2020-12-23 11:14:35 +08:00
|
|
|
|
</>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
export default Index
|