From 2f5b0a3bb4f1f9b08a9295cd583eeeff5403932a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E5=B8=85?= Date: Tue, 23 Aug 2022 17:32:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E7=9B=91=E7=9D=A3=E3=80=81?= =?UTF-8?q?=E4=BA=8B=E5=90=8E=E7=9B=91=E7=9D=A3=E5=BC=80=E5=8F=91=E5=9F=BA?= =?UTF-8?q?=E6=9C=AC=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Online/components/OnlineSupervision.tsx | 19 +- .../Online/components/ReservedItems.tsx | 12 +- src/pages/VideoMonitor/Online/service.ts | 11 ++ src/pages/VideoMonitor/Post/index.tsx | 10 +- src/pages/VideoMonitor/ViewModal.tsx | 186 +++++++++++------- src/pages/VideoMonitor/service.ts | 22 ++- 6 files changed, 165 insertions(+), 95 deletions(-) create mode 100644 src/pages/VideoMonitor/Online/service.ts diff --git a/src/pages/VideoMonitor/Online/components/OnlineSupervision.tsx b/src/pages/VideoMonitor/Online/components/OnlineSupervision.tsx index c10aea3..c922bcf 100644 --- a/src/pages/VideoMonitor/Online/components/OnlineSupervision.tsx +++ b/src/pages/VideoMonitor/Online/components/OnlineSupervision.tsx @@ -1,18 +1,11 @@ import { isNotEmpty } from '@/utils/CommonUtils'; -import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table'; +import ProTable, { ProColumns } from '@ant-design/pro-table'; import { Button, Spin, message } from 'antd'; import React, { useRef, useState } from 'react'; import { useHistory } from 'umi'; import ViewModal from '../../ViewModal'; import { getPage } from '../../service'; -interface ViewDetailsProps { - entity?: { - projectName?:string|null, - projectNumber?:string|null, - } | null, - visibleDefault?:boolean| false, -} /** * 在线监督列表 * @returns @@ -20,21 +13,18 @@ interface ViewDetailsProps { const OnlineSupervision: React.FC<{}> = () => { const [spin, spinSet] = useState(false); const [visible, setVisible] = useState(false); - const [record, setRecord] = useState([]); //查询分页数据 const [pageData, pageDataSet] = useState({ pageNo: 1, pageSize: 10 }); const history = useHistory(); - const ref = useRef(); - + const viewModalRef = useRef(null); //查看详情 const viewDetails = (record: any) => { setVisible(true); - setRecord(record); + viewModalRef.current?.InitData(record.id); } - //关闭 const closeViewDetails = () => { setVisible(false); @@ -157,7 +147,6 @@ const OnlineSupervision: React.FC<{}> = () => { options={false} bordered={false} size='small' - actionRef={ref} search={{ labelWidth: 'auto', span: 6 }} loading={false} request={async (params) => { @@ -195,7 +184,7 @@ const OnlineSupervision: React.FC<{}> = () => { rowKey={"id"} /> - closeViewDetails()} data = {record}/> + closeViewDetails()} ref = {viewModalRef}/> ) } diff --git a/src/pages/VideoMonitor/Online/components/ReservedItems.tsx b/src/pages/VideoMonitor/Online/components/ReservedItems.tsx index 4a40b4e..5a52e23 100644 --- a/src/pages/VideoMonitor/Online/components/ReservedItems.tsx +++ b/src/pages/VideoMonitor/Online/components/ReservedItems.tsx @@ -1,6 +1,6 @@ import { isNotEmpty } from '@/utils/CommonUtils'; -import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table'; -import { Button, Spin, Modal } from 'antd'; +import ProTable, { ProColumns } from '@ant-design/pro-table'; +import { Button, Spin } from 'antd'; import React, { useRef, useState } from 'react'; import { useHistory } from 'umi'; import ViewModal from '../../ViewModal'; @@ -14,19 +14,18 @@ const ReservedItems: React.FC<{}> = () => { const [spin, spinSet] = useState(false); const [visible, setVisible] = useState(false); - const [record, setRecord] = useState([]); //查询分页数据 const [pageData, pageDataSet] = useState({ pageNo: 1, pageSize: 10 }); const history = useHistory(); - const ref = useRef(); + const viewModalRef = useRef(null); //查看详情 const viewDetails = (record: any) => { setVisible(true); - setRecord(record); + viewModalRef.current?.InitData(record.id); } //关闭 @@ -137,7 +136,6 @@ const ReservedItems: React.FC<{}> = () => { options={false} bordered={false} size='small' - actionRef={ref} search={{ labelWidth: 'auto', span: 6 }} loading={false} request={async (params) => { @@ -175,7 +173,7 @@ const ReservedItems: React.FC<{}> = () => { rowKey={"id"} /> - closeViewDetails()} data = {record}/> + closeViewDetails()} ref = {viewModalRef}/> ) } diff --git a/src/pages/VideoMonitor/Online/service.ts b/src/pages/VideoMonitor/Online/service.ts new file mode 100644 index 0000000..1777360 --- /dev/null +++ b/src/pages/VideoMonitor/Online/service.ts @@ -0,0 +1,11 @@ +import request from '@/utils/request'; +/** + * 查询数据并分页 + * @param params + */ +export async function getPage(params?: any) { + return request('/api/biz-service-ebtp-evaluation//v1/eval/room/reserve/supervise/list', { + method: 'POST', + data: params, + }); +} \ No newline at end of file diff --git a/src/pages/VideoMonitor/Post/index.tsx b/src/pages/VideoMonitor/Post/index.tsx index cf854b9..cdf1089 100644 --- a/src/pages/VideoMonitor/Post/index.tsx +++ b/src/pages/VideoMonitor/Post/index.tsx @@ -1,5 +1,5 @@ import { isNotEmpty } from '@/utils/CommonUtils'; -import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table'; +import ProTable, { ProColumns } from '@ant-design/pro-table'; import { Button, Spin, message } from 'antd'; import React, { useRef, useState } from 'react'; import { useHistory } from 'umi'; @@ -13,19 +13,18 @@ import { getPage } from '../service'; const PostSupervision: React.FC<{}> = () => { const [spin, spinSet] = useState(false); const [visible, setVisible] = useState(false); - const [record, setRecord] = useState([]); //查询分页数据 const [pageData, pageDataSet] = useState({ pageNo: 1, pageSize: 10 }); const history = useHistory(); - const ref = useRef(); + const viewModalRef = useRef(null); //查看详情 const viewDetails = (record: any) => { setVisible(true); - setRecord(record); + viewModalRef.current?.InitData(record.id); } //关闭 @@ -150,7 +149,6 @@ const PostSupervision: React.FC<{}> = () => { options={false} bordered={false} size='small' - actionRef={ref} search={{ labelWidth: 'auto', span: 6 }} loading={false} request={async (params) => { @@ -188,7 +186,7 @@ const PostSupervision: React.FC<{}> = () => { rowKey={"id"} /> - closeViewDetails()} data = {record}/> + closeViewDetails()} ref = {viewModalRef}/> ) } diff --git a/src/pages/VideoMonitor/ViewModal.tsx b/src/pages/VideoMonitor/ViewModal.tsx index cc7da17..38f8f5b 100644 --- a/src/pages/VideoMonitor/ViewModal.tsx +++ b/src/pages/VideoMonitor/ViewModal.tsx @@ -1,18 +1,38 @@ -import { Spin, Modal, Descriptions, Table } from 'antd'; +import { Spin, Modal, Descriptions, Table, message } from 'antd'; import type { ColumnsType } from 'antd/es/table'; -import React, { useState } from 'react'; +import React, { useState, useImperativeHandle, forwardRef } from 'react'; +import { getReservationInfo, getReportInfo } from './service'; interface ViewDetailsProps { modalVisible: boolean; //开启关闭控制 onCancel: () => void; //关闭方法传入 - data: any //数据传入 +} + +interface ReportInfo { + expertAmount ?: string; + purchaseExpertAmount ?: string; + manageAmount ?: string; + userList ?: DataType[]; } interface DataType { - key: string; - userName: string; - reportStatus: string; - reportTime: string; + key ?: string; + userName ?: string; + status: number; + reportStatus ?: string; + signDate ?: string; +} + +interface ReservationInfo { + projectName ?: string; + projectNum ?: string; + packageNames ?: string; + areaName ?: string; + reserveStartDate ?: string; + reserveEndDate ?: string; + status: number; + realStartDate ?: string; + realEndDate ?: string; } const columns: ColumnsType = [ @@ -33,8 +53,8 @@ const columns: ColumnsType = [ }, { title: '报到时间', - dataIndex: 'reportTime', - key: 'reportTime', + dataIndex: 'signDate', + key: 'signDate', }, ]; @@ -42,53 +62,87 @@ const columns: ColumnsType = [ * 详情弹出层 * @returns */ - const ViewDetails: React.FC = (props) => { - const {modalVisible, onCancel, data} = props; - const [spin, spinSet] = useState(false); - const repostData :DataType[] = [ - { - key: '1', - userName: '1(0001)', - reportStatus: '已报道', - reportTime: '2022-07-02 15:22', - }, - { - key: '2', - userName: '2(0002)', - reportStatus: '已报道', - reportTime: '2022-07-02 15:22', - }, - { - key: '3', - userName: '3(0003)', - reportStatus: '已报道', - reportTime: '2022-07-02 15:22', - }, - { - key: '4', - userName: '4(0004)', - reportStatus: '未报道', - reportTime: '2022-07-02 15:22', - }, - { - key: '5', - userName: '5(0005)', - reportStatus: '已报道', - reportTime: '2022-07-02 15:22', - }, - ]; - const getStateName = (state:any) => { - let result = null; + const ViewDetails: React.FC = forwardRef((props,ref) => { + const {modalVisible, onCancel} = props; + const [initReservationInfo, setInitReservationInfo] = useState(false); + const [initReportInfo, setInitReportInfo] = useState(false); + const [reservationInfo, setReservationInfo] = useState(); + const [reportInfo, setReportInfo] = useState(); + const InitData = (id:string) => { + setInitReservationInfo(true); + setInitReportInfo(true); + //获取预约信息 + getReservationInfo(id) + .then((res) => { + if (res.code == 200) { + setReservationInfo(res.data); + }else{ + message.error(res.message); + } + }) + .catch(res => { + message.error(res.message); + }) + .finally(() => { + setInitReservationInfo(false); + }); + //获取报道信息 + getReportInfo(id) + .then((res) => { + if (res.code == 200) { + let _data: DataType[] = res.data.userList; + _data?.forEach((item, index) =>{ + item.key = (index + 1).toString(); + item.reportStatus = getReportStatus(item.status); + }) + setReportInfo(res.data); + }else{ + message.error(res.message); + } + }) + .catch(res => { + message.error(res.message); + }) + .finally(() => { + setInitReportInfo(false); + }) + } + useImperativeHandle(ref, () => ({ + InitData, + })); + const getStatus = (state: number) => { + let result = ''; switch(state){ - case 0: - result = '未开始'; + case -1: + result = '待确认'; break; - case 1: - result = '评标中'; + case 0: + result = '未开启'; break; - case 2: + case 1: + result = '进行中'; + break; + case 2: result = '已结束'; break; + case 3: + result = '已取消'; + break; + case 4: + result = '结束为使用'; + break; + } + return result; + } + const getReportStatus = (state:number) => { + let result = ''; + switch(state){ + case 0: + result = '未报道'; + break; + case 1: + result = '已报道'; + break; } return result; } @@ -98,30 +152,30 @@ const columns: ColumnsType = [ onCancel = {() => {onCancel()}} title={
详情 - {data?.projectName} + {reservationInfo?.projectName}
} footer={null} width={1000} > - + - {data?.projectNumber} - {data?.sectionName} - {data?.areaRoomName} - {getStateName(data?.state)} - {data?.startTime} - {data?.endTime} - 2022-07-13 12:30 - 2022-07-15 15:00 - 5人 - 2人 - 1人 + {reservationInfo?.projectNum} + {reservationInfo?.packageNames} + {reservationInfo?.areaName} + {reservationInfo?getStatus(reservationInfo?.status):''} + {reservationInfo?.reserveStartDate} + {reservationInfo?.reserveEndDate} + {reservationInfo?.realStartDate} + {reservationInfo?.realEndDate} + {reportInfo?.expertAmount}人 + {reportInfo?.purchaseExpertAmount}人 + {reportInfo?.manageAmount}人

报道信息

- +
) -} +}) export default ViewDetails; diff --git a/src/pages/VideoMonitor/service.ts b/src/pages/VideoMonitor/service.ts index 1777360..0f62e29 100644 --- a/src/pages/VideoMonitor/service.ts +++ b/src/pages/VideoMonitor/service.ts @@ -4,8 +4,28 @@ import request from '@/utils/request'; * @param params */ export async function getPage(params?: any) { - return request('/api/biz-service-ebtp-evaluation//v1/eval/room/reserve/supervise/list', { + return request('/api/biz-service-ebtp-evaluation/v1/eval/room/reserve/supervise/list', { method: 'POST', data: params, }); +} + +/** + * 查询预约信息 + * @param params + */ + export async function getReservationInfo(params?: string) { + return request('/api/biz-service-ebtp-evaluation/v1/eval/room/reserve/' + params, { + method: 'GET' + }); +} + +/** + * 查询报道信息 + * @param params + */ + export async function getReportInfo(params?: string) { + return request('/api/biz-service-ebtp-evaluation/v1/eleceval/user/number/report/' + params, { + method: 'GET' + }); } \ No newline at end of file