9.15 大屏详情页改造

This commit is contained in:
jl-zhoujl2
2022-09-15 15:26:49 +08:00
parent e27b34d2bc
commit e4aa7d9ffb
7 changed files with 189 additions and 86 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -229,7 +229,8 @@ const BidEvalAppointment: React.FC<BidEvalAppointmentProps> = (props) => {
columns={columns} columns={columns}
actionRef={actionRef} actionRef={actionRef}
bordered={false} bordered={false}
request={async (params: any) => { params={{ areaType: "eval_room" }}
request={async (params) => {
return await getBidEvalRoom(params).then(res => { return await getBidEvalRoom(params).then(res => {
if (res?.code == 200) { if (res?.code == 200) {
return { return {

View File

@ -220,7 +220,7 @@ const GraphChart = (props: { type: string, chartData: any[] }) => {
target = chartData[i].value; target = chartData[i].value;
} }
} }
let v = ((target / total) * 100).toFixed(0); let v = total == 0 ? 0 : ((target / total) * 100).toFixed(0);
return `${name} ${target}个,占比${v}%`; return `${name} ${target}个,占比${v}%`;
}, },
}, },
@ -666,14 +666,14 @@ export default () => {
<Radio.Button value="2"> </Radio.Button> <Radio.Button value="2"> </Radio.Button>
</Radio.Group>} </Radio.Group>}
</div> </div>
<div className='screen-graph-chart' style={{ display: 'flex' }}> <div className='screen-graph-chart'>
<div style={{ flex: 1 }}> <div className='screen-graph-layout'>
<PieChart data={evalApplData?.reserveNumber} title="已预约" /> <PieChart data={evalApplData?.reserveNumber} title="已预约" />
</div> </div>
<div style={{ flex: 1 }}> <div className='screen-graph-layout'>
<PieChart data={evalApplData?.ingNumber} title="评审中" /> <PieChart data={evalApplData?.ingNumber} title="评审中" />
</div> </div>
<div style={{ flex: 1 }}> <div className='screen-graph-layout'>
<PieChart data={evalApplData?.endNumber} title="评审结束" /> <PieChart data={evalApplData?.endNumber} title="评审结束" />
</div> </div>
</div> </div>

View File

@ -139,19 +139,25 @@
font-size: 0.875rem; font-size: 0.875rem;
line-height: 0.875rem; line-height: 0.875rem;
position: absolute; position: absolute;
bottom: 0.5rem; bottom: 4%;
width: 100%; width: 33.33333333%;
// padding-top: 0.75rem; // padding-top: 0.75rem;
.screen-graph-title { .screen-graph-title {
display: inline-block; display: inline-block;
width: 20%; width: 60%;
text-align: center; text-align: center;
} }
} }
.screen-graph-chart { .screen-graph-chart {
height: 100%; height: 100%;
.screen-graph-layout {
display: inline-block;
width: 33.33333333%;
height: 100%;
}
} }
// .screen-graph-end { // .screen-graph-end {

View File

@ -413,7 +413,8 @@
// border: none; // border: none;
background: none; background: none;
border: 1px solid #8de3f3; border: 1px solid #8de3f3;
margin-right: 0.5rem; // margin-right: 0.5rem;
margin: 0 0.5rem 0 0;
&>a { &>a {
color: #8de3f3; color: #8de3f3;

View File

@ -332,15 +332,16 @@ export default (props: any) => {
<Row> <Row>
<Col span={6}> <Col span={6}>
<div className="left-content-g"> <div className="left-content-g">
<p>{bidMethodObj?.[basicInfo?.procurementMode]}</p> {/* <p>{bidMethodObj?.[basicInfo?.procurementMode]}</p> */}
<p>{basicInfo?.projectName}</p> <p className="left-content-title">{bidMethodObj?.[basicInfo?.procurementMode]}</p>
<p>{basicInfo?.projectNum}</p> <p><span className="left-content-label"></span>{basicInfo?.projectName}</p>
<p>{basicInfo?.sectionName}</p> <p><span className="left-content-label"></span>{basicInfo?.projectNum}</p>
<p>{basicInfo?.startDate} {basicInfo?.endDate}</p> <p><span className="left-content-label"></span>{basicInfo?.sectionName}</p>
<p>{basicInfo?.appManagerName}</p> <p><span className="left-content-label"></span>{basicInfo?.startDate} {basicInfo?.endDate}</p>
<p>{basicInfo?.peopleNumber}</p> <p><span className="left-content-label"></span>{basicInfo?.appManagerName}</p>
<p><span className="left-content-label"></span>{basicInfo?.peopleNumber}</p>
<div className="left-content-people"> <div className="left-content-people">
<span><Tag color="rgba(2,125,180,1)"></Tag>{basicInfo?.manager} {basicInfo?.purchaseExpert} {basicInfo?.expert}</span> <span><span className="people-title"></span>&nbsp;&nbsp;&nbsp;<span className="left-content-label"></span>{basicInfo?.manager}&nbsp;&nbsp;&nbsp;<span className="left-content-label"></span>{basicInfo?.purchaseExpert}&nbsp;&nbsp;&nbsp;<span className="left-content-label"></span>{basicInfo?.expert}</span>
</div> </div>
</div> </div>
</Col> </Col>
@ -349,7 +350,7 @@ export default (props: any) => {
<div className="top-title-global"> <div className="top-title-global">
<div className="top-title-left"></div> <div className="top-title-left"></div>
<div className="top-title-center"><span>{basicInfo?.areaName}</span></div> <div className="top-title-center"><span>{basicInfo?.areaName}</span></div>
<div className="top-title-right"><span>{bidStatusMap[basicInfo?.status]}</span></div> <div className="top-title-right"><div className={basicInfo?.status == "1" ? "ing-status" : "end-status"}>{bidStatusMap[basicInfo?.status]}</div></div>
</div> </div>
<div><a className="top-back" onClick={() => previousClick()}></a></div> <div><a className="top-back" onClick={() => previousClick()}></a></div>
</Col> </Col>
@ -376,8 +377,9 @@ export default (props: any) => {
<Row> <Row>
<Col span={17}> <Col span={17}>
<div className="left-monitor"> <div className="left-monitor">
<div className="left-monitor-title"><div><span></span></div></div>
<div className="left-monitor-content">
<div className="left-menu"> <div className="left-menu">
<div className="left-menu-title"></div>
<div className="left-menu-content"> <div className="left-menu-content">
{caremaList.map(item => <div className={cameraSelect == item.id ? "left-menu-btn left-menu-btn-select" : "left-menu-btn"} onClick={() => onCaremaPlay(item)} key={item.id}>{item.deviceName}</div>)} {caremaList.map(item => <div className={cameraSelect == item.id ? "left-menu-btn left-menu-btn-select" : "left-menu-btn"} onClick={() => onCaremaPlay(item)} key={item.id}>{item.deviceName}</div>)}
</div> </div>
@ -386,6 +388,7 @@ export default (props: any) => {
{cameraParams && <ScreenVideoPlay videoRef={videoRef} cameraParams={cameraParams} status={basicInfo?.status == "2" ? 1 : 0} />} {cameraParams && <ScreenVideoPlay videoRef={videoRef} cameraParams={cameraParams} status={basicInfo?.status == "2" ? 1 : 0} />}
</div> </div>
</div> </div>
</div>
</Col> </Col>
<Col span={7}> <Col span={7}>
<div className="right-warn-list"> <div className="right-warn-list">
@ -400,7 +403,7 @@ export default (props: any) => {
? backStrangerList.slice(0, 5).map((item: any, index: any) => ( ? backStrangerList.slice(0, 5).map((item: any, index: any) => (
<div className="stranger-list-card" key={index}> <div className="stranger-list-card" key={index}>
<div> <div>
<p>{item.createDate}</p> <p><span></span>{item.createDate}</p>
</div> </div>
<div> <div>
<Image src={pictureDisplayPath + "?filePath=" + item.details[0].filePath} preview={{ getContainer: "null" }} height={"100%"} onClick={() => drawerClick(item.details[0].filePath)} /> <Image src={pictureDisplayPath + "?filePath=" + item.details[0].filePath} preview={{ getContainer: "null" }} height={"100%"} onClick={() => drawerClick(item.details[0].filePath)} />
@ -410,8 +413,8 @@ export default (props: any) => {
: earlyWarnData?.strangerDetails?.map((item: any, index: any) => ( : earlyWarnData?.strangerDetails?.map((item: any, index: any) => (
<div className="stranger-list-card" key={index}> <div className="stranger-list-card" key={index}>
<div> <div>
<p>{item.eventTime}</p> <p><span></span>{item.eventTime}</p>
<p>{item.describeStranger}</p> <p><span></span>{item.describeStranger}</p>
</div> </div>
<div> <div>
<Image src={pictureDisplayPath + "?filePath=" + item.filePath} preview={{ getContainer: "null" }} height={"100%"} onClick={() => drawerClick(item.filePath)} /> <Image src={pictureDisplayPath + "?filePath=" + item.filePath} preview={{ getContainer: "null" }} height={"100%"} onClick={() => drawerClick(item.filePath)} />

View File

@ -14,21 +14,41 @@
width: 100%; width: 100%;
&>p { &>p {
color: #94edf7; color: #99f6ff;
margin-bottom: 0; margin-bottom: 0;
line-height: 1.6;
width: 100%; width: 100%;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
&:first-child { &:first-child {
color: #F59A23; color: #FFCC00;
margin-bottom: 2px;
} }
} }
.left-content-people { .left-content-title {
background-image: url('@{screen-img-url}/content_title_bg.jpg');
background-repeat: no-repeat;
background-size: 100% 100%;
width: 7.5rem;
padding-left: 0.75rem;
line-height: 1.625rem;
font-size: 0.9rem;
}
.left-content-label {
color: #fff; color: #fff;
margin-top: 8px; }
.left-content-people {
color: #99f6ff;
// margin-top: 8px;
.people-title {
color: #FFCC00;
}
} }
} }
@ -48,24 +68,44 @@
&>span { &>span {
font-size: 22px; font-size: 22px;
line-height: 22px; line-height: 24px;
} }
} }
.top-title-right { .top-title-right {
.screen-flex-center; .screen-flex-center;
flex: 1; flex: 1;
color: #facd91;
justify-content: center; justify-content: center;
&>div {
border-radius: 2px;
padding: 0.2rem 0.7rem;
line-height: 1.375rem;
}
.ing-status {
border: 1px solid #FFCC00;
color: #FFCC00;
}
.end-status {
border: 1px solid #ee6666;
color: #ee6666;
}
} }
} }
.right-warn-title { .right-warn-title {
font-size: 20px; background-image: url('@{screen-img-url}/content_title_bg.jpg');
line-height: 20px; background-repeat: no-repeat;
color: #ee6766; background-size: 100% 100%;
padding-bottom: 1rem; width: 7.8rem;
line-height: 1.725rem;
text-align: center;
color: #FFCC00;
font-size: 1rem;
margin-bottom: 1rem;
} }
.right-warn-content { .right-warn-content {
@ -78,18 +118,18 @@
} }
.answer-supplier { .answer-supplier {
margin: 8px 0; margin: 10px 0 8px;
&>span { &>span {
color: #fff; color: #fff;
margin-bottom: 0; margin-bottom: 0;
&:first-child { &:first-child {
color: #81d3f8; color: #FFCC00;
} }
&>a { &>a {
color: #00e1ff; color: #99f6ff;
margin-left: 8px; margin-left: 8px;
} }
} }
@ -107,7 +147,7 @@
.left-monitor, .left-monitor,
.right-warn-list { .right-warn-list {
height: 83vh; height: 82.6vh;
} }
} }
@ -115,7 +155,7 @@
.left-monitor, .left-monitor,
.right-warn-list { .right-warn-list {
height: 80.2vh; height: 79.6vh;
} }
} }
@ -123,7 +163,7 @@
.left-monitor, .left-monitor,
.right-warn-list { .right-warn-list {
height: 76vh; height: 75.6vh;
} }
} }
@ -131,7 +171,7 @@
.left-monitor, .left-monitor,
.right-warn-list { .right-warn-list {
height: 70vh; height: 69.6vh;
} }
} }
@ -144,33 +184,59 @@
} }
.left-monitor { .left-monitor {
border: 1px solid #fff; border: 1px solid #5c6aa2;
margin-right: 4px; border-radius: 4px;
padding: 12px; margin-right: 8px;
.left-monitor-title {
display: flex;
justify-content: center;
&>div {
width: 375px;
height: 36px;
background-image: url('@{screen-img-url}/title_bg.png');
background-repeat: no-repeat;
background-size: 100% 100%;
text-align: center;
}
&>div>span {
color: #ffcd00;
line-height: 36px;
font-size: 1rem;
}
}
.left-monitor-content {
padding: 8px 12px;
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
height: calc(100% - 36px);
.left-menu { .left-menu {
color: #fff; color: #72c1dd;
width: 15%; width: 12%;
.left-menu-title {
font-size: 18px;
padding-bottom: 16px;
}
.left-menu-content { .left-menu-content {
.left-menu-btn { .left-menu-btn {
height: 40px; height: 36px;
width: 100%; width: 100%;
line-height: 40px; line-height: 36px;
text-align: center; text-align: center;
cursor: pointer; cursor: pointer;
background: none; background: none;
border-top-left-radius: 2px;
border-bottom-left-radius: 2px;
border: 1px solid #72c1dd;
border-right: none;
margin-bottom: 1rem;
transition: color 0.3s, background 0.3s, border-color 0.3s, box-shadow 0.3s
} }
.left-menu-btn-select { .left-menu-btn-select {
background-color: #81d3f8; background-color: #72c1dd;
color: #fff;
} }
} }
} }
@ -178,27 +244,37 @@
.right-content-c { .right-content-c {
width: 100%; width: 100%;
height: 100%; height: 100%;
border: 1px solid #fff; position: relative;
left: -1px;
top: -1px;
}
} }
} }
.right-warn-list { .right-warn-list {
border: 1px solid #fff; border: 1px solid #5c6aa2;
margin-left: 4px; border-radius: 4px;
margin-left: 8px;
padding: 12px; padding: 12px;
text-align: center;
.stranger-list { .stranger-list {
height: calc(100% - 76px); height: calc(100% - 76px);
.stranger-list-card { .stranger-list-card {
border: 1px solid #2B5093; // border: 1px solid #2B5093;
background-color: #051666; // background-color: #051666;
border-bottom: 1px solid #5c6aa2;
height: 20%; height: 20%;
margin-top: 8px; margin-top: 8px;
padding: 8px; padding: 8px;
color: #fff; color: #99f6ff;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
&>div>p>span {
color: #fff;
}
} }
} }
@ -241,25 +317,41 @@
} }
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) { .ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {
background: #02A7F0; background: #72c1dd;
border-color: #02A7F0; border-color: #72c1dd;
&:hover { &:hover {
background: #02A7F0; background: #72c1dd;
border-color: #02A7F0; border-color: #72c1dd;
} }
} }
.ant-radio-button-wrapper-checked:not([class*=' ant-radio-button-wrapper-disabled']).ant-radio-button-wrapper:first-child { .ant-radio-button-wrapper-checked:not([class*=' ant-radio-button-wrapper-disabled']).ant-radio-button-wrapper:first-child {
border-right-color: #02A7F0; border-right-color: #72c1dd;
} }
.ant-radio-button-wrapper:hover { .ant-radio-button-wrapper:hover {
color: #02A7F0; color: #72c1dd;
}
.ant-radio-button-wrapper {
color: #72c1dd;
border: 1px solid #72c1dd;
border-left-width: 0;
border-top-width: 1.02px;
background: none;
}
.ant-radio-button-wrapper:first-child {
border-left: 1px solid #72c1dd;
}
.ant-radio-button-wrapper:not(:first-child)::before {
background-color: #72c1dd;
} }
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before, .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before,
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover::before { .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover::before {
background-color: #02A7F0; background-color: #72c1dd;
} }
} }