From a4c903da7178c6ee68aee3d9519b118c62d91d27 Mon Sep 17 00:00:00 2001 From: jl-zhoujl2 Date: Mon, 26 Sep 2022 15:39:49 +0800 Subject: [PATCH 01/10] =?UTF-8?q?9.26=20=E5=81=8F=E7=A6=BB=E5=BA=A6?= =?UTF-8?q?=E6=8F=90=E9=86=92=E9=A2=9C=E8=89=B2=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewJuryScoringAnalysisFormModal.tsx | 314 +++++++++--------- 1 file changed, 159 insertions(+), 155 deletions(-) diff --git a/src/pages/Evaluation/BidControl/BidControlManager/components/ViewJuryScoringAnalysisFormModal.tsx b/src/pages/Evaluation/BidControl/BidControlManager/components/ViewJuryScoringAnalysisFormModal.tsx index e58d594..d8c1b5c 100644 --- a/src/pages/Evaluation/BidControl/BidControlManager/components/ViewJuryScoringAnalysisFormModal.tsx +++ b/src/pages/Evaluation/BidControl/BidControlManager/components/ViewJuryScoringAnalysisFormModal.tsx @@ -1,27 +1,27 @@ -import React, { useEffect,useState } from 'react'; -import { Tabs,Collapse,Form, Input, Modal,Col,Row,Divider, Table, message, Button, Empty } from 'antd'; +import React, { useEffect, useState } from 'react'; +import { Tabs, Collapse, Form, Input, Modal, Col, Row, Divider, Table, message, Button, Empty } from 'antd'; import ProTable, { ProColumns } from "@ant-design/pro-table"; -import { deviatedAnalysisListToRR, deviatedAnalysisRRYes, getDeviatedAnalysisList, getList} from '../service'; +import { deviatedAnalysisListToRR, deviatedAnalysisRRYes, getDeviatedAnalysisList, getList } from '../service'; import { getProMethod, getRoomId, getSessionRoleData, getSessionUserData } from '@/utils/session'; interface ViewJuryScoringAnalysisFormModalProps { modalVisible: boolean; values: any; - onCancel:any; + onCancel: any; } - + const ViewJuryScoringAnalysisFormModal: React.FC = (props) => { - + const [juryScoringAnalysisList, setJuryScoringAnalysisList] = useState([]); const [juryYesList, setJuryYesList] = useState([]); const [juryYesVis, setJuryYesVisSet] = useState(false);//专家确认页面 const [juryTableShow, setJuryTableShow] = useState(false);// var roleId = getSessionRoleData().roleCode; - let roomId=getRoomId();//sessionStorage.getItem('roomId');//sessionStorage.getItem('roomId') - - var params={}; - params["assessRoomId"]=roomId; + let roomId = getRoomId();//sessionStorage.getItem('roomId');//sessionStorage.getItem('roomId') + + var params = {}; + params["assessRoomId"] = roomId; let name1 = "投标人"; let proDict = getProMethod(); @@ -33,131 +33,135 @@ const ViewJuryScoringAnalysisFormModal: React.FC { getWarningList(); - if(roleId==="ebtp-expert"){ - params["createBy"]= getSessionUserData().userId; + if (roleId === "ebtp-expert") { + params["createBy"] = getSessionUserData().userId; setJuryTableShow(false); - }else{ - setJuryTableShow(true); + } else { + setJuryTableShow(true); } - },[]) + }, []) function callback(list: any) { //getSessionUserData.roleIds; - + } - function categoryValue(key:any){ + function categoryValue(key: any) { let name = ""; //0:报价;1:商务;2:技术;5:服务 - if(key==="0"){ + if (key === "0") { name = "报价"; - }else if(key==="1"){ + } else if (key === "1") { name = "商务"; - }else if(key==="2"){ + } else if (key === "2") { name = "技术"; - }else if(key==="5"){ + } else if (key === "5") { name = "服务"; } return name; } const juryColumns: ProColumns[] = [ - { title: '序号',render: (text: any, record: any, index: any) => `${index + 1}`}, - { title: '专家名称', dataIndex:"memberName"}, - { title: '确认时间',dataIndex:"updateDate"} + { title: '序号', render: (text: any, record: any, index: any) => `${index + 1}` }, + { title: '专家名称', dataIndex: "memberName" }, + { title: '确认时间', dataIndex: "updateDate" } ]; - - function setDatZjList(dataZjList:any, - length:any, - confirmList:any, - reviewTurnId: any, - turnSort: any, - buttonStatus: undefined, - num:any){ + + function setDatZjList(dataZjList: any, + length: any, + confirmList: any, + reviewTurnId: any, + turnSort: any, + buttonStatus: undefined, + num: any) { const juryTitle: { title: any; dataIndex: string; key: string; children: never[]; }[] = []; dataZjList.map((item: any, index: any) => { - const tbpldzt = {title:item.name,dataIndex:'title',key:'title',children:[]}; - - item.categoryList.map((dfpld: any, index: any) => { - let value = categoryValue(dfpld); - tbpldzt.children.push({title:value,dataIndex:dfpld+item.userId,key:dfpld+item.userId,render: (text: any, record: any, index: any) => { - let a = ""; - - if(text>-30&&text<30){ - a =

{text}

- }else if(text>-50&&text<50){ - a =

{text}

- }else if(text<=-50||text>=50){ - a =

{text}

- }else{ - a = text; - } - return a; - } + const tbpldzt = { title: item.name, dataIndex: 'title', key: 'title', children: [] }; + + item.categoryList.map((dfpld: any, index: any) => { + let value = categoryValue(dfpld); + tbpldzt.children.push({ + title: value, dataIndex: dfpld + item.userId, key: dfpld + item.userId, render: (text: any, record: any, index: any) => { + let a = ""; + if (text > -10 && text < 10) { + a =

{text}

+ } else if (text > -30 && text < 30) { + a =

{text}

+ } else if (text > -50 && text < 50) { + a =

{text}

+ } else if (text <= -50 || text >= 50) { + a =

{text}

+ } else { + a = text; + } + return a; + } }); - }) + }) juryTitle.push(tbpldzt); }) const columns: ProColumns[] = [ - { title: name1, dataIndex: 'name', key:'name',className: 'column-money'}, - { title: '打分偏离度(%)', children:juryTitle,className: 'column-money' + { title: name1, dataIndex: 'name', key: 'name', className: 'column-money' }, + { + title: '打分偏离度(%)', children: juryTitle, className: 'column-money' }, - { title: '操作',render: (text: any, record: any, index: any) => { - const obj = { - children: '', - props: {}, - }; - if(index===0){ - let a = ""; - if(!buttonStatus){ - a = - }else if(buttonStatus){ - if(roleId==="ebtp-agency-project-manager"||roleId==="ebtp-purchase"){ - a = - }else if(roleId==="ebtp-expert"){ - if(confirmList[0].confirmStatus===0){ - a = - }else{ - a = "已确认"; + { + title: '操作', render: (text: any, record: any, index: any) => { + const obj = { + children: '', + props: {}, + }; + if (index === 0) { + let a = ""; + if (!buttonStatus) { + a = + } else if (buttonStatus) { + if (roleId === "ebtp-agency-project-manager" || roleId === "ebtp-purchase") { + a = + } else if (roleId === "ebtp-expert") { + if (confirmList[0].confirmStatus === 0) { + a = + } else { + a = "已确认"; + } + } - } + + obj.children = a; + obj.props.rowSpan = length; } - - obj.children=a; - obj.props.rowSpan = length; - } return obj - } - }, + } + }, ]; return columns; //setJuryScoringAnalysisColumns(columns); } - const getWarningList = async() => { + const getWarningList = async () => { await getDeviatedAnalysisList(params).then((res) => { - if (res.success ==true) { - if(res.data!==null&&res.data.length>0){ - + if (res.success == true) { + if (res.data !== null && res.data.length > 0) { + var list = res.data; - for(var i = 0 ; i < list.length ; i++){ + for (var i = 0; i < list.length; i++) { //获取表头 var zList = list[i].supplierlist; var columnsZ = setDatZjList(list[i].title, zList.length, list[i].confirmList, list[i].reviewTurnId, - list[i].turnSort,list[i].buttonStatus,i); - list[i]["columns"]=columnsZ; - list[i]["zjShow"] = true; - if(roleId==="ebtp-expert"&&!list[i].buttonStatus){ - list[i]["zjShow"] = false; - }else if(roleId==="ebtp-expert"&&list[i].buttonStatus){ - setJuryTableShow(true); - } + list[i].turnSort, list[i].buttonStatus, i); + list[i]["columns"] = columnsZ; + list[i]["zjShow"] = true; + if (roleId === "ebtp-expert" && !list[i].buttonStatus) { + list[i]["zjShow"] = false; + } else if (roleId === "ebtp-expert" && list[i].buttonStatus) { + setJuryTableShow(true); + } } setJuryScoringAnalysisList(list); } @@ -165,26 +169,26 @@ const ViewJuryScoringAnalysisFormModal: React.FC { - await deviatedAnalysisListToRR(assessRoomId,reviewTurnId,reviewTurnSort).then((res) => { - if (res.success ==true) { + const warningToRR = async (assessRoomId: any, reviewTurnId: any, reviewTurnSort: any) => { + await deviatedAnalysisListToRR(assessRoomId, reviewTurnId, reviewTurnSort).then((res) => { + if (res.success == true) { getWarningList(); } }) } - const deviatedRRYes = async(id: any,confirmStatus:any) => { - await deviatedAnalysisRRYes(id,confirmStatus).then((res) => { - if (res.success ==true) { + const deviatedRRYes = async (id: any, confirmStatus: any) => { + await deviatedAnalysisRRYes(id, confirmStatus).then((res) => { + if (res.success == true) { getWarningList(); } }) } - const selectJuryYes = async(num: any) => { + const selectJuryYes = async (num: any) => { await getDeviatedAnalysisList(params).then((res) => { - if (res.success ==true) { - if(res.data!==null&&res.data.length>0){ + if (res.success == true) { + if (res.data !== null && res.data.length > 0) { var juryYesList = res.data[num].confirmList; setJuryYesList(juryYesList); } @@ -195,78 +199,78 @@ const ViewJuryScoringAnalysisFormModal: React.FC {//返回成员modal foot return ( <> - + ) } - - //查看专家 - const selectjuryYes = () => { - return ( - <> - setJuryYesVisSet(false)} - footer={selectjuryYesButton()} + + //查看专家 + const selectjuryYes = () => { + return ( + <> + setJuryYesVisSet(false)} + footer={selectjuryYesButton()} + > + -
-
-
- - ) - } + +
+ + ) + } return ( - <> + <> {juryTableShow ? - - + + {juryScoringAnalysisList?.length == 0 - ? - : (proDict == "procurement_mode_5" || proDict == "procurement_mode_6") ? juryScoringAnalysisList?.map((item: any, index: any)=>{ - if(item.zjShow){ + ? + : (proDict == "procurement_mode_5" || proDict == "procurement_mode_6") ? juryScoringAnalysisList?.map((item: any, index: any) => { + if (item.zjShow) { return ( - - -

{item.turnName}表格主要展示各专家对{name1}打分与所有专家对该{name1}打分平均值的差值百分比,无-表示该专家未参与此部分评分,该表信息仅供参考

-
-
-
+ + +

{item.turnName}表格主要展示各专家对{name1}打分与所有专家对该{name1}打分平均值的差值百分比,无-表示该专家未参与此部分评分,该表信息仅供参考

+
+
+
); - } + } }) : ( <> -

{juryScoringAnalysisList[0].turnName}表格主要展示各专家对{name1}打分与所有专家对该{name1}打分平均值的差值百分比,无-表示该专家未参与此部分评分,该表信息仅供参考

-
+

{juryScoringAnalysisList[0].turnName}表格主要展示各专家对{name1}打分与所有专家对该{name1}打分平均值的差值百分比,无-表示该专家未参与此部分评分,该表信息仅供参考

+
) } {selectjuryYes()} -
-
- :null} - - ); +
+
+ : null} + + ); }; export default ViewJuryScoringAnalysisFormModal; From 2c530cee872e404e4393f6bf6800d4ed228e9c39 Mon Sep 17 00:00:00 2001 From: jl-zhoujl2 Date: Tue, 11 Oct 2022 10:56:04 +0800 Subject: [PATCH 02/10] =?UTF-8?q?10.11=20=E5=A7=94=E6=89=98=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/router.config.ts | 2 +- .../Project/EntrustAssign/manager/index.tsx | 41 +++++++++++-------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/config/router.config.ts b/config/router.config.ts index 46b1726..c401ec1 100644 --- a/config/router.config.ts +++ b/config/router.config.ts @@ -158,7 +158,7 @@ export default [ icon: 'form', path: '/Project/EntrustAssign', routes: [ - {//管理员-代理 + {//管理员-代理 采购经理(查看委托记录) name: 'manager', path: '/Project/EntrustAssign/Manager', component: './Project/EntrustAssign/manager', diff --git a/src/pages/Project/EntrustAssign/manager/index.tsx b/src/pages/Project/EntrustAssign/manager/index.tsx index b21b16d..a0a2cbd 100644 --- a/src/pages/Project/EntrustAssign/manager/index.tsx +++ b/src/pages/Project/EntrustAssign/manager/index.tsx @@ -4,7 +4,7 @@ import ProTable, { ProColumns, ActionType } from '@ant-design/pro-table'; import { multipleTypeTransform, proTableValueEnum, returnDictVal } from '@/utils/CommonUtils'; import { getPage, agreeEntrust, queryEntrust, recallEntrust, refuseEntrust, aginstEntrust, assignEntrust, queryTree } from './service'; import './styles.less'; -import { getDicData, getSessionUserData } from '@/utils/session'; +import { getDicData, getSessionRoleData, getSessionUserData } from '@/utils/session'; import FileDown from '@/utils/Download'; import { btnAuthority } from '@/utils/authority'; import { downloadFile } from '@/utils/DownloadUtils'; @@ -178,6 +178,8 @@ const entrust: React.FC<{}> = () => { pageNo: 1, pageSize: 10 }); + //当前登录人角色 + const roleCode = getSessionRoleData().roleCode; //委托列表 const columns: ProColumns[] = [ @@ -185,7 +187,7 @@ const entrust: React.FC<{}> = () => { { title: '委托方', dataIndex: 'purchaser', width: '10%', search: false }, { title: '项目名称', dataIndex: 'projectName', }, { title: '方案编号', dataIndex: 'projectNumber', width: '10%', search: false }, - { title: '接收时间', dataIndex: 'createDate', width: '10%', valueType: 'dateTime', search: false }, + { title: roleCode == "ebtp-purchase" ? '委托时间' : '接收时间', dataIndex: 'createDate', width: '10%', valueType: 'dateTime', search: false }, { title: '采购方式', dataIndex: 'procurementMode', width: '10%', valueEnum: proTableValueEnum(dictData['procurement_mode=entrust']) }, { title: '标的类型', dataIndex: 'procurementType', width: '10%', hideInTable: typeVisible, search: false, render: (_, record) => multipleTypeTransform(record.procurementType, proTableValueEnum(dictData['procurement_type=entrust'])) }, { @@ -208,6 +210,7 @@ const entrust: React.FC<{}> = () => { { title: '操作', width: '12%', valueType: 'option', + hideInTable: roleCode == "ebtp-purchase",//采购经理无操作列 render: (_, record) => { if (record.status === 1) { return ( @@ -668,7 +671,7 @@ const entrust: React.FC<{}> = () => { } return ( - +
= () => { className='tableSearch' size='small' search={{ labelWidth: 'auto', span: 6 }} - request={(params) => - getPage({ + request={async (params) => { + let params_1 = { ...params, basePageRequest: { pageNo: pageData.pageNo, pageSize: pageData.pageSize }, - agencyCompany: getSessionUserData().organizationId//机构id - }).then((res) => { - const result = { - data: res.data.records, - total: res.data.total, - success: res.success, - pageSize: res.data.size, - current: res.data.current - } - return result; - }) - } + } + if (roleCode == "ebtp-purchase") {//采购经理 + params_1["purchasingManager"] = getSessionUserData().userId;//当前登录账号 + } else if (roleCode == "ebtp-agency-admin") {//代理机构管理员 + params_1["agencyCompany"] = getSessionUserData().organizationId //机构id + } + const res = await getPage(params_1); + const result_1 = { + data: res.data.records, + total: res.data.total, + success: res.success, + pageSize: res.data.size, + current: res.data.current + }; + return result_1; + }} pagination={{ defaultPageSize: 10, showSizeChanger: false, From 53632cf00ebcaefda36620f0cf313dcc2370824b Mon Sep 17 00:00:00 2001 From: jl-zhoujl2 Date: Wed, 12 Oct 2022 10:19:08 +0800 Subject: [PATCH 03/10] =?UTF-8?q?10.11=20=E6=A0=87=E4=B9=A6=E8=B4=B9?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=85=8D=E8=B4=B9=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Bid/CostConfig/index.tsx | 51 ++++++++++++------- .../Finance/Cost/components/Complete.tsx | 13 +++-- .../IParticipate/components/IParticipate.tsx | 2 +- .../IParticipate/components/IParticipate.tsx | 2 +- 4 files changed, 43 insertions(+), 25 deletions(-) diff --git a/src/pages/Bid/CostConfig/index.tsx b/src/pages/Bid/CostConfig/index.tsx index cc4adb5..c7aaf35 100644 --- a/src/pages/Bid/CostConfig/index.tsx +++ b/src/pages/Bid/CostConfig/index.tsx @@ -1,5 +1,5 @@ -import React, { useEffect, useState } from 'react'; -import ProTable, { ProColumns } from '@ant-design/pro-table'; +import React, { useEffect, useRef, useState } from 'react'; +import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table'; import { Button, Descriptions, Form, Input, message, Radio, Spin } from 'antd'; import styles from './indexStyles.less'; import '@/assets/xsy_style.less' @@ -83,25 +83,40 @@ const costConfig: React.FC<{}> = () => { { title: '序号', valueType: 'index', width: 50 }, { title: showName.sec, dataIndex: 'sectionName', }, { - title: showName.bsf + '(元)', dataIndex: 'expenses1Amount', + title: showName.bsf + '(元)', dataIndex: 'expenses1Amount', width: '20%', render: (_, record) => { return (
- - record.expenses1Amount = event.target.value} - /> - + { + const value = event.target.value; + if (value != undefined) { + const data = [...costData]; + const now = data[data.findIndex(item => item.sectionId === record.sectionId)]; + now.expenses1Type = value; + record.expenses1Amount = 0; + setCostData(data); + } + }} value={parseInt(record.expenses1Type)}> + 免费 + 收费 + {parseInt(record.expenses1Type) == 2 ? <> + record.expenses1Amount = event.target.value} + /> + 元 : null} +
) } diff --git a/src/pages/Finance/Cost/components/Complete.tsx b/src/pages/Finance/Cost/components/Complete.tsx index cc489ed..3436be1 100644 --- a/src/pages/Finance/Cost/components/Complete.tsx +++ b/src/pages/Finance/Cost/components/Complete.tsx @@ -43,13 +43,15 @@ const Complete: React.FC<{}> = () => { { title: '费用内容描述', dataIndex: 'commodityDescribe', width: '25%' }, { title: '下单时间', dataIndex: 'createDate', width: '10%', valueType: 'dateTime' }, { title: '支付时间', dataIndex: 'paymentTime', width: '10%', valueType: 'dateTime' }, - { title: '金额(元)', dataIndex: 'amount', width: '4%' }, + { title: '金额(元)', dataIndex: 'amount', width: '6%', render: (_, record) => record.chargeType == "0" ? "免费" : record.amount }, { title: '操作', dataIndex: 'option', - width: '3%', valueType: 'option', render: (_, record) => { + if (record.chargeType == "0") {//免费无需申请发票 + return null; + } if (record.bidInvoice == null) { return