Files
fe_service_ebtp_frontend/src/pages/Evaluation/BidDetailed/BidDetailedReview/index.tsx

931 lines
36 KiB
TypeScript
Raw Normal View History

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