风险点展示-评标现场异常情况

This commit is contained in:
zhangqinbin
2022-08-25 16:46:28 +08:00
parent c060f3fa23
commit 75446426b7
4 changed files with 429 additions and 2 deletions

View File

@ -0,0 +1,158 @@
import React, { useEffect,useState } from 'react';
import { Tabs,Collapse,Form, Input, Modal,Col,Row,Divider, Table, Button, Empty ,message,Spin,Card,} from 'antd';
import {saveUpdateEvalRoom} from '../service';
import {} from '@/utils/CommonUtils'
import ProTable, { ProColumns } from "@ant-design/pro-table";
import { getProMethod, getRoomId, getSessionRoleData } from '@/utils/session';
import ExtendUpload from "@/utils/ExtendUpload";
interface alarmDataObj {
tilte:string;//标题
id:string;//告警id
reserveId:string;//预约id
tpName:string;//项目名称
tpNumber:string;//项目编号
bsName:string;//标段名称
placeName:string; //评标室名称
startDate:string; //开始时间
endDate:string; //结束时间
status:string;//处理状态0未处理1已处理',
roomStatus:string;//评标室状态 0-未开启 1-进行中 2-已结束
pNumber:string;//人数信息
remark:string;//处理说明
attachment:string;//附件id
}
interface ViewEvalAlarmUpdateModalProps {
alarmData: alarmDataObj;
detail:boolean;
isLookType:boolean;
onCancel:any;
onOk:any;
}
const ViewEvalAlarmUpdateModal: React.FC<ViewEvalAlarmUpdateModalProps> = (props) => {
const {alarmData,detail,isLookType,onCancel,onOk}= props;
const { TextArea } = Input;//文本域
const [orderSpin, orderSpinSet] = useState<boolean>(false);//订单页加载中
const [uploadProps, setUploadProps] = useState<any>(false);
const [form] = Form.useForm();
var roleId = getSessionRoleData().roleCode;
useEffect(() => {
setUploadProps(alarmData.status=="1"||isLookType);
},[])
const saveUpdate = async () =>{
orderSpinSet(true);
form.validateFields().then(res => {
console.log( form.getFieldValue("remark"));
const fromData = {
id: alarmData.id,
remark: form.getFieldValue("remark"),
attachment: form.getFieldValue("attachment"),
};
console.log(fromData);
saveUpdateEvalRoom(fromData).then((res) => {
if (res.success == true) {
onOk();
} else {
message.error('系统异常:获取告警数据失败')
}
})
})
orderSpinSet(false);
}
//0-未开启 1-进行中 2-已结束
function getStautsValue(key:any){
let val = "";
//setUploadProps(false);
if(key=="0"){
val = "未开启"
}else if(key=="1"){
val = "正在评标"
//setUploadProps(true);
}else if(key=="2"){
val = "已结束"
}
return val;
}
return (
<>(
<Modal
visible={detail}
width={"1000px"}
centered
title={"异常信息:"+alarmData.tilte}//+alarmData.tilte
onCancel={() => { onCancel(); }}
onOk={() => {onOk();}}
bodyStyle={{ maxHeight: "500px", overflow: "auto", zIndex: 1 }}
footer={[
<Button key="back" onClick={() => {
onCancel();
}}></Button>,
<Button
key="submit"
type="primary"
onClick={() => saveUpdate()}
loading={orderSpin}
hidden={isLookType}
></Button>
]}
>
<Spin spinning={orderSpin}>
<Card>
<Form labelCol={{ span: 8 }} wrapperCol={{ span: 16 }} form={form}>
<Row>
<Col span={12}><Form.Item label="项目名称">{alarmData.tpName}</Form.Item></Col>
<Col span={12}><Form.Item label="项目编号">{alarmData.tpNumber}</Form.Item></Col>
</Row>
<Row>
<Col span={12}><Form.Item label="标段名称">{alarmData.bsName}</Form.Item></Col>
<Col span={12}><Form.Item label="评标室名称">{alarmData.placeName}</Form.Item></Col>
</Row>
<Row>
<Col span={12}><Form.Item label="评标开始时间">{alarmData.startDate}</Form.Item></Col>
<Col span={12}><Form.Item label="评标结束时间">{alarmData.endDate}</Form.Item></Col>
</Row>
<Row>
<Col span={12}><Form.Item label="评标状态">{getStautsValue(alarmData.roomStatus)}</Form.Item></Col>
<Col span={12}></Col>
</Row>
<Row hidden={alarmData.pNumber==null||alarmData.pNumber==""}>
<Col span={2}></Col>
<Col span={16}>{(alarmData.pNumber)}</Col>
</Row>
<Row>
<Col span={12}><Form.Item label="告警详情"><a></a></Form.Item></Col>
<Col span={12}></Col>
</Row>
<Row>
<Col span={12}><Form.Item label="处理说明" name="remark">{isLookType?alarmData.remark:
<TextArea rows={4} style={{ resize: 'vertical' }} placeholder="请填写备注" value={alarmData.remark} />}</Form.Item></Col>
</Row>
<Row>
<Col span={12}><Form.Item label="附件" name="attachment">
<ExtendUpload bid={alarmData.attachment} uploadProps={{ disabled: uploadProps }}>
</ExtendUpload>
</Form.Item></Col>
<Col span={12}></Col>
</Row>
</Form>
</Card>
</Spin>
</Modal>
)
</>
);
};
export default ViewEvalAlarmUpdateModal;

View File

@ -0,0 +1,232 @@
import React, { useEffect,useState } from 'react';
import { Tabs,Collapse,Form, Input, Modal,Col,Row,Divider, Table, Button, Empty ,message} from 'antd';
import { getEvalRoomByAssessId, getEvalRoomPage, saveUpdateEvalRoom} from '../service';
import {} from '@/utils/CommonUtils'
import ProTable, { ProColumns } from "@ant-design/pro-table";
import { getProMethod, getRoomId, getSessionRoleData } from '@/utils/session';
import ViewEvalAlarmUpdateModal from './ViewEvalAlarmUpdateModal';
interface ViewEvalFormModalProps {
modalVisible: boolean;
values: any;
onCancel:any;
}
interface alarmData {
tilte:string;//标题
id:string;//告警id
reserveId:string;//预约id
tpName:string;//项目名称
tpNumber:string;//项目编号
bsName:string;//标段名称
placeName:string; //评标室名称
startDate:string; //开始时间
endDate:string; //结束时间
status:string;//处理状态0未处理1已处理',
roomStatus:string;//评标室状态 0-未开启 1-进行中 2-已结束
pNumber:string;//人数信息
remark:string;//处理说明
attachment:string;//附件id
}
const ViewEvalFormModal: React.FC<ViewEvalFormModalProps> = (props) => {
const alarm:alarmData ={
tilte: "测试",
id: '',
reserveId: '',
tpName: '',
tpNumber: '',
bsName: '',
placeName: '',
startDate: '',
endDate: '',
status: '',
roomStatus: '',
pNumber: '',
remark: '',
attachment: ''
}
const [alarmData, setAlarmData] = useState<alarmData>(alarm);
const [alarmList, setAlarmList] = useState([]);
const [juryTableShow, setJuryTableShow] = useState<boolean>(true);//
const [alarmNumber, setAlarmNumber] = useState<any>({});
const [evalAlarmUpdateDetail, setEvalAlarmUpdateDetail] = useState<boolean>(false);
const [isLookType, setIsLookType] = useState<boolean>(false);
var roleId = getSessionRoleData().roleCode;
let roomId=getRoomId();//getRoomId();//sessionStorage.getItem('roomId');//sessionStorage.getItem('roomId')
useEffect(() => {
// if(roleId==="ebtp-expert"){
// setJuryTableShow(false);
// }
setAlarmNumber("0");
getReserveIdFunction();
},[])
const columns: any[] =[
{ title: '序号', dataIndex: 'num', width: 60, render: (text: any, record: any, index: any) => `${index + 1}` },
{
title: '告警设备类型',
dataIndex: 'deviceType',
render: (_: any, record: any) => {
let a;
if (record.deviceType === "door") {
a = "门禁点";
}else if(record.deviceType === "camera"){
a = "监控点";
}else if(record.deviceType === "nvr"){
a = "nvr";
}else if(record.deviceType === "encodeDevice"){
a = "编码设备";
}else if(record.deviceType === "oneMachine"){
a = "一体机";
}
return a;
}
}, {
title: '告警设备编号',
dataIndex: 'deviceCode',
}, {
title: '告警信息',
dataIndex: 'type',
render: (_: any, record: any) => {
return getTypeValue(record.type);
}
}, {
title: '处理状态',
dataIndex: 'status',
render: (_: any, record: any) => {
let a;
if (record.status === "0") {
a = <p style={{color:'red'}}>{"未处理"}</p>;
}else if(record.status === "1"){
a = "已处理";
}
return a;
}
},
{
title: '操作',
dataIndex: 'operation',
render: (_: any, record: any) => {
return <>
{record.status === "0"?<a key="1" onClick={() => toUpdate(record)} >
</a>:<a key="1" onClick={() => toLook(record)} >
</a>}
</>
},
},
]
function getTypeValue(key:any){
let val = "";
if (key === "2") {
val = "人员数量异常";
}else if(key === "3"){
val = "陌生人告警";
}else{
val = key;
}
return val;
}
const getDate = (record: any) => {
alarm.tilte=getTypeValue(record.type);
alarm.tpName=record.projectName;
alarm.tpNumber=record.projectNum;
alarm.bsName=record.sectionName;
alarm.id=record.id;
alarm.reserveId=record.reserveId;
alarm.placeName=record.areaName;
alarm.startDate=record.startDate;
alarm.endDate=record.endDate;
alarm.pNumber=record.pnumber;
alarm.status=record.status;
alarm.remark=record.remark;
alarm.attachment=record.attachment;
setAlarmData(alarm);
}
const toUpdate = (record: any) => { // 去处理
setIsLookType(false);
getDate(record);
setEvalAlarmUpdateDetail(true)
}
const toLook = (record: any) => { // 去处理
setIsLookType(true);
getDate(record);
setEvalAlarmUpdateDetail(true)
}
const getReserveIdFunction = async () => {
await getEvalRoomByAssessId(roomId).then((res) => {
if (res.success == true) {
getEvalRoomPageFunction(res.data);
} else {
message.error('获取评标室预约id失败:显示测试数据-uat专用')
getEvalRoomPageFunction("1523557937760681984");
}
})
}
const getEvalRoomPageFunction = async (reserveId:any) => {
var params={};
params["reserveId"]= reserveId;
params["types"]= [2,3];
params["pageNo"]=1;
params["pageSize"]=999;
await getEvalRoomPage(params).then((res) => {
if (res.success == true) {
//setAlarmNumber(res.data.length);
setAlarmList(res.data.records);
} else {
message.error('系统异常:获取告警数据失败')
}
})
}
function callback(key: any) {
}
return (
<>
{juryTableShow?
<Collapse onChange={callback}>
<Collapse.Panel header={"评标现场异常情况"} key="2">
<Table
columns={columns}
dataSource={alarmList}
//pagination={false}//分页
>
</Table>
</Collapse.Panel>
</Collapse>:null}
{evalAlarmUpdateDetail ? (
<ViewEvalAlarmUpdateModal
alarmData={alarmData}
detail={evalAlarmUpdateDetail}
isLookType={isLookType}
onCancel={() => setEvalAlarmUpdateDetail(false)}
onOk={() => {
getReserveIdFunction();
setEvalAlarmUpdateDetail(false);
}}
>
</ViewEvalAlarmUpdateModal>
) : null
}
</>
);
};
export default ViewEvalFormModal;

View File

@ -7,7 +7,7 @@ import ViewJuryScoringRemindFormModal from './components/ViewJuryScoringRemindFo
import ViewJuryScoringAnalysisFormModal from './components/ViewJuryScoringAnalysisFormModal';
import ViewRiskSupplierModal from './components/ViewRiskSupplierModal';
import BidDocSmartCheckFormModal from './components/BidDocSmartCheckFormModal';
import ViewEvalFormModal from './components/ViewEvalFormModal';
const Sing: React.FC<{}> = () => {
//ip mac
@ -48,6 +48,11 @@ const Sing: React.FC<{}> = () => {
const [BidDocSmartCheckFormVisible, setBidDocSmartCheckFormVisible] = useState<any>(false);
//查看详情窗口record
const [BidDocSmartCheckValues, setBidDocSmartCheckValues] = useState<any>({});
//投标文件智能审查
const [ViewEvalFormVisible, setViewEvalFormVisible] = useState<any>(false);
//查看详情窗口record
const [ViewEvalCheckValues, setViewEvalCheckValues] = useState<any>({});
return (
<>
{
@ -155,6 +160,19 @@ const Sing: React.FC<{}> = () => {
</ViewRiskSupplierModal>
) : null
}
{
ViewEvalFormModal ? (
<ViewEvalFormModal
modalVisible={ViewEvalFormVisible}
values={ViewEvalCheckValues}
onCancel={() => {
setViewEvalFormVisible(!ViewEvalFormVisible);
setViewEvalCheckValues({});
}}
>
</ViewEvalFormModal>
) : null
}
</>
)
}

View File

@ -131,5 +131,24 @@ export async function getRiskSupplierList(projectId: any, assessRoomId: any) {
});
}
export async function getEvalRoomByAssessId(id: any) { // 评标室告警信息-查询评标室id
return request('/api/biz-service-ebtp-evaluation/v1/screen/getEvalRoomByAssessId/?assessId='+`${id}`, {
method: 'get'
});
}
export async function getEvalRoomPage(params: any) { // 评标室告警信息-查询告警
return request('/api/biz-service-ebtp-evaluation/v1/eval/room/alarm/getRiskPointPage', {
method: 'post',
data: {...params}
});
}
export async function saveUpdateEvalRoom(params: any) { // 评标室告警信息-处理告警
return request('/api/biz-service-ebtp-evaluation/v1/eval/room/alarm/update/status', {
method: 'post',
data: {...params}
});
}