diff --git a/config/router.config.ts b/config/router.config.ts
index d826d9d..377e129 100644
--- a/config/router.config.ts
+++ b/config/router.config.ts
@@ -160,7 +160,7 @@ export default [
icon: 'form',
path: '/Project/EntrustAssign',
routes: [
- {//管理员-代理
+ {//管理员-代理 采购经理(查看委托记录)
name: 'manager',
path: '/Project/EntrustAssign/Manager',
component: './Project/EntrustAssign/manager',
diff --git a/config/router_transfer.ts b/config/router_transfer.ts
index fe00262..8b49935 100644
--- a/config/router_transfer.ts
+++ b/config/router_transfer.ts
@@ -70,6 +70,16 @@ export default [
path: '/ToHomePage',
component: './LoadingPage/MiddleLoading/ToHomePage',
},
+ //审批单跳转公共页
+ {
+ path: '/CommonApproval',
+ component: './LoadingPage/MiddleLoading/CommonApproval',
+ },
+ //2.0和3.0选择页
+ {
+ path: '/ChoiceLogin',
+ component: './LoadingPage/MiddleLoading/ChoiceLogin',
+ },
//跨工程跳转中间页结束
{
name: 'index_1',
diff --git a/src/assets/choiceLogin/chionceLoginPic01.png b/src/assets/choiceLogin/chionceLoginPic01.png
new file mode 100644
index 0000000..793e4e7
Binary files /dev/null and b/src/assets/choiceLogin/chionceLoginPic01.png differ
diff --git a/src/assets/choiceLogin/chionceLoginPic02.png b/src/assets/choiceLogin/chionceLoginPic02.png
new file mode 100644
index 0000000..8173789
Binary files /dev/null and b/src/assets/choiceLogin/chionceLoginPic02.png differ
diff --git a/src/assets/choiceLogin/choiceLoginBg.jpg b/src/assets/choiceLogin/choiceLoginBg.jpg
new file mode 100644
index 0000000..a28cf6d
Binary files /dev/null and b/src/assets/choiceLogin/choiceLoginBg.jpg differ
diff --git a/src/assets/zjl_style.less b/src/assets/zjl_style.less
index 1c9b6b0..08166e2 100644
--- a/src/assets/zjl_style.less
+++ b/src/assets/zjl_style.less
@@ -264,5 +264,94 @@
/* CSS3属性 */
}
}
+}
+.choiceLoginContent-common {
+ float: left;
+ width: 385px;
+ height: 400px;
+ background-color: rgba(255, 255, 255, 0.8);
+ text-align: center;
+ padding: 24px;
+ cursor: pointer;
+ transition: all .5s;
+
+ &:hover {
+ box-shadow: 0 6px 16px -8px #ffffff14, 0 9px 28px #ffffff0d, 0 12px 48px 16px #ffffff08;
+ background-color: rgba(255, 255, 255, 0.9);
+ }
+}
+
+.choiceLoginBody {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ border: 0;
+ text-decoration: none;
+ font-family: 'Microsoft YaHei UI';
+ background-image: url("~@/assets/choiceLogin/choiceLoginBg.jpg");
+ background-size: 100% 100%;
+ background-repeat: no-repeat;
+ height: 100%;
+
+ .choiceLoginBlock {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+
+ .choiceLoginContent {
+ width: 778px;
+ height: 400px;
+ }
+
+ .contentLeft {
+ .choiceLoginContent-common;
+ border-top-left-radius: 10px;
+ border-bottom-left-radius: 10px;
+ margin-right: 4px;
+ }
+
+ .contentLeft img {
+ margin-bottom: 9px
+ }
+
+ .contentRight {
+ .choiceLoginContent-common;
+ border-top-right-radius: 10px;
+ border-bottom-right-radius: 10px;
+ margin-left: 4px;
+ }
+
+ .contentLeft h4,
+ .contentRight h4 {
+ font-size: 22px;
+ color: #333;
+ line-height: 32px;
+ font-weight: normal;
+ }
+
+ .loginMassage {
+ width: 778px;
+ margin-top: 16px;
+
+ &>p:first-child {
+ text-indent: 0;
+ }
+
+ &>p {
+ font-size: 18px;
+ color: #eaeaea;
+ line-height: 32px;
+ text-indent: 2em;
+ margin-top: 0;
+ margin-bottom: 0;
+
+ &>span {
+ color: #ffde52;
+ font-weight: bold;
+ }
+ }
+ }
+ }
}
\ No newline at end of file
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 (
)
}
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;
diff --git a/src/pages/Evaluation/BidEnd/BidEndAdjust/index.tsx b/src/pages/Evaluation/BidEnd/BidEndAdjust/index.tsx
index 0d3c781..4b9b0c5 100644
--- a/src/pages/Evaluation/BidEnd/BidEndAdjust/index.tsx
+++ b/src/pages/Evaluation/BidEnd/BidEndAdjust/index.tsx
@@ -3,7 +3,7 @@ import { Table, Button, Space, Form, Radio, Select, Input, InputNumber, Upload,
import { TableListItem } from './data';
import ExtendUpload from "@/utils/ExtendUpload";
import '@/assets/ld_style.less';
-import { findArithmeticError, getList, getRoomType, savePrice } from './service';
+import { findArithmeticError, getList, getResponseTitle, getRoomType, savePrice } from './service';
import { getProMethod, getRoomId, getSessionRoleData, getSessionUserData } from '@/utils/session';
import ProTable from '@ant-design/pro-table';
@@ -45,6 +45,7 @@ const Index: React.FC<{}> = () => {
let roomId = getRoomId();//sessionStorage.getItem('roomId');//sessionStorage.getItem('roomId')
var roleId = getSessionUserData().roleIds;//操作员角色
const [dateList, setDateList] = useState([]);
+ const [dataListTitle, setDataListTitle] = useState("");
const [adjustForm] = Form.useForm();
const [whetherReadonly, setWhetherReadonly] = useState(false);
const [editState, setEditState] = useState(false);
@@ -66,7 +67,7 @@ const Index: React.FC<{}> = () => {
}
const columns: any[] = [ // 列表数据
{ title: `${showNameT.tbr}名称`, dataIndex: 'tendererName', key: 'tendererName' },
- { title: '最新不含税总价', dataIndex: 'evaluatingContent', key: 'evaluatingContent' },
+ { title: dataListTitle, dataIndex: 'evaluatingContent', key: 'evaluatingContent' },
{
title: '调整类别', dataIndex: 'type', key: 'type', render: (text: any, record: any, index: any) => {
let a = "";
@@ -142,7 +143,12 @@ const Index: React.FC<{}> = () => {
}
}
})
-
+ await getResponseTitle(roomId).then(res => {
+ if (res.success == true) {
+ const data = res?.data;
+ setDataListTitle(data?.name);
+ }
+ })
}
const setSelectChange = async (list: any) => {
diff --git a/src/pages/Evaluation/BidEnd/BidEndAdjust/service.ts b/src/pages/Evaluation/BidEnd/BidEndAdjust/service.ts
index 5846918..ace62af 100644
--- a/src/pages/Evaluation/BidEnd/BidEndAdjust/service.ts
+++ b/src/pages/Evaluation/BidEnd/BidEndAdjust/service.ts
@@ -3,18 +3,25 @@ import request from '@/utils/request';
export async function getList(assessRoomId: any) { // 算数错误报价调整
return request('/api/biz-service-ebtp-resps/v1/tfiletendererprice/getlist', {
method: 'post',
- data: {"assessRoomId": assessRoomId}
+ data: { "assessRoomId": assessRoomId }
+ });
+}
+
+export async function getResponseTitle(assessRoomId: any) { // 算数错误报价调整-获取应答格式报价项名称
+ return request('/api/biz-service-ebtp-resps/v1/tfiletendererprice/getTitle', {
+ method: 'post',
+ data: { "assessRoomId": assessRoomId }
});
}
export async function getRoomType(assessRoomId: any) { // 查询评审室数据
- return request('/api/biz-service-ebtp-process/v1/bizassessroom/'+`${assessRoomId}`, {
+ return request('/api/biz-service-ebtp-process/v1/bizassessroom/' + `${assessRoomId}`, {
method: 'get',
});
}
export async function findArithmeticError(assessRoomId: any) { // 查询评审室数据
- return request('/api/biz-service-ebtp-rsms/v1/review/config/findArithmeticError/'+`${assessRoomId}`, {
+ return request('/api/biz-service-ebtp-rsms/v1/review/config/findArithmeticError/' + `${assessRoomId}`, {
method: 'get',
});
}
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