From d9459b13bdd6e5e044a9f1f5142e3ee1698e52ff Mon Sep 17 00:00:00 2001 From: "517612449@qq.com" Date: Wed, 24 Aug 2022 15:14:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/proxy.ts | 22 +- config/router.config.ts | 7 +- src/pages/Device/index.tsx | 315 +++++++++++++++------------- src/pages/Device/service.ts | 17 ++ src/pages/ElecEvalReserve/index.tsx | 1 - 5 files changed, 208 insertions(+), 154 deletions(-) diff --git a/config/proxy.ts b/config/proxy.ts index d7a67ff..e782452 100644 --- a/config/proxy.ts +++ b/config/proxy.ts @@ -17,8 +17,28 @@ export default { // changeOrigin: true, // pathRewrite: { '^': '' }, // }, + '/v1/elec/eval/placearea/list': { // /v1/elec/eval/placearea/uset/list + target: 'http://localhost:18017', //连接天宫的ng + changeOrigin: true, + pathRewrite: { '^': '' }, + }, + '/v1/eval/device/queryPageByParam': { + target: 'http://localhost:18017', //连接天宫的ng + changeOrigin: true, + pathRewrite: { '^': '' }, + }, + '/v1/eval/room/reserve/cancel': { + target: 'http://localhost:18017',//连接本地 + changeOrigin: true, + pathRewrite: { '^': '' }, + }, '/v1/eval/room/reserve/list': { - target: 'http://localhost:18017',//连接天宫的ng + target: 'http://localhost:18017',//连接本地 + changeOrigin: true, + pathRewrite: { '^': '' }, + }, + '/v1/elec/eval/room/list': { + target: 'http://localhost:18017',//连接本地 changeOrigin: true, pathRewrite: { '^': '' }, }, diff --git a/config/router.config.ts b/config/router.config.ts index 2472fa1..279020b 100644 --- a/config/router.config.ts +++ b/config/router.config.ts @@ -109,7 +109,12 @@ export default [ path: '/', redirect: '/userexpert/login', }, - {//委托撤回 + {//设备管理 + name: 'Device', + path: '/Device', + component: './Device', + }, + {//评标室查看预约 name: 'ElecEvalReserve', path: '/ElecEvalReserve', component: './ElecEvalReserve', diff --git a/src/pages/Device/index.tsx b/src/pages/Device/index.tsx index 41f4c18..06076d1 100644 --- a/src/pages/Device/index.tsx +++ b/src/pages/Device/index.tsx @@ -1,62 +1,95 @@ import React, { useState, useRef, useEffect } from 'react'; -import { Button, Tabs, PageHeader,message } from 'antd'; +import { Button, Tabs, Tree} from 'antd'; import ProTable, { ActionType } from '@ant-design/pro-table'; -import { reserveList, roomList, cancelReserve } from './service'; +import { deviceList, getplaceareaList, roomList } from './service'; import '@/assets/ld_style.less'; import { getURLInformation, isNotEmpty } from '@/utils/CommonUtils'; -import { btnAuthority } from '@/utils/authority'; +import ProCard from "@ant-design/pro-card"; -const { TabPane } = Tabs; +const deviceTypeEnum = { + 'resource_door': { text: '门禁点' }, + 'resource_camera': { text: '监控点' }, + 'resource_nvr': { text: 'nvr' }, + 'resource_encodeDevice': { text: '编码设备' }, + 'resource_oneMachine': { text: '门禁一体机' }, + +} +const deviceStatusEnum = { + 'online_0': { text: '离线' }, + 'online_1': { text: '在线' }, + 'online_9': { text: '无此设备' }, +} const Index: React.FC<{}> = () => { const checkRelationRef = useRef(); //操作数据后刷新列表 + const [treeData, setTreeData] = useState(); + const [treeId, setTreeId] = useState(); - const [areaNameList, setAreaNameList] = useState({}); /*拉取数据*/ useEffect(() => { - initAreaNameList(); - }, []); - const initAreaNameList = async () => { - await roomList().then((res) => { - if (res.success ==true) { - // let areaNameList: any[] = []; - // console.log(res.data) - // res.data.forEach((item: { areaName: string; id: string; }) => { - // const tempDetail = { label: '', value: '', }; - // tempDetail.label = item.areaName; - // tempDetail.value = item.id; - // areaNameList.push(tempDetail); - // }) - let areaNameList = {}; - //将拿到的返回值遍历 - res.data.map((item: { id: string | number; areaName: any; })=>{ - //使用接口返回值的id做为 代替原本的0,1 - areaNameList[item.id]={ - //使用接口返回值中的overdueValue属性作为原本的text:后面的值 - text: item.areaName, - } - }) - setAreaNameList(areaNameList) + getplaceareaList().then((res: { code: number; data: any[] | undefined; }) => { + if (res.code == 200) { + let data: any = []; + if (res.data != undefined) { + res.data.map((item: any, index: any) => { + const title1 = item.placeName; + const key1 = item.id; + let children1: any = []; + if (item.roomList != undefined) { + const children = item.roomList.map((item: any, index: any) => { + const title2 = item.areaName; + const key2 = item.id; + + return { title: title2, key: key2} + }); + children1 = children; + } + const first = { title: title1, key: key1, children: children1 } + data.push(first); + }); + } + setTreeData(data); } }) - }; + }, []); + /** - * 取消预约 + * 设备管理 * @param record */ - const cancel = async (record: any) => { - - cancelReserve(record.id).then(res => { - if (res.code == 200 && res.data) { - message.success('预约取消成功'); - } - }); - }; + const cancel = async (record: any) => {}; const current = getURLInformation('current'); + //列表页loading + const [spinLoading, setSpinLoading] = useState(false); + //新建应答格式 + const toCreate = async () => { + // const id = getProId(); + // const param = { + // tpId: id, + // roomType: getURLInformation('roomType'), + // }; + // await getSectionList(param).then((res) => { + // if ((res.code = 200)) { + // if (res.data.length == 0) { + // message.info(`当前项目无可选${sectionName},无法新增`); + // } else { + // setSectionList(res.data); + // setCreateVisible(true); + // } + // } + // }); + }; + //编辑应答格式 + const toEdit = (values: any, param: any) => { + + }; + const onSelect = (selectedKeys: any, info: any) => { + selectedKeys.length == 0 ? setTreeId(null) : setTreeId(selectedKeys[0]) - + console.log(selectedKeys) + } const columns: any[] = [ - //会议室预约 + //设备管理 { title: '序号', @@ -67,171 +100,151 @@ const Index: React.FC<{}> = () => { }, { title: '评标场所名称', - dataIndex: 'reserveBy', + dataIndex: 'placeName', width: '10%', search: false, }, { title: '评标区域名称', - dataIndex: 'reserveBy', + dataIndex: 'areaName', width: '10%', search: false, }, { title: '设备类型', - dataIndex: 'reserveBy', + dataIndex: 'deviceType', width: '10%', + valueType: 'select', + valueEnum: deviceTypeEnum, search: false, }, { title: '设备名称', - dataIndex: 'meetingName', + dataIndex: 'deviceName', search: true, width: '10%', }, { title: '设备标识', - dataIndex: 'meetingName', + dataIndex: 'deviceCode', search: true, width: '10%', }, - + { title: '网络IP', - dataIndex: 'meetingName', + dataIndex: 'deviceManagementIp', search: true, width: '10%', }, { title: '设备状态', - dataIndex: 'reserveBy', + dataIndex: 'deviceStatus', width: '10%', + valueType: 'select', + valueEnum: deviceStatusEnum, search: true, }, - + { title: '操作', width: '7%', search: false, render: (text: any, record: any) => { - return ( <> - - ); - - - }, }, ]; - + return ( <> - + + + {treeData == undefined ? null : ( + + )} + - - - - await reserveList(params).then((res) => { - if (res.code == 200) { - let data = res.data; - return Promise.resolve({ - data: data.records, - success: res.success, - total: res.data.total, - current: res.data.current, - }); - } - return Promise.resolve({ - data: [], - success: false, - total: 0, - current: 1, - }); - }) - } - search={{ - filterType: 'query', - optionRender: (searchConfig: any, { form }) => { - return [ - , - , - ]; - }, - }} - pagination={{ - defaultCurrent: isNotEmpty(current) ? Number(current) : 1, - defaultPageSize: 10, - showSizeChanger: false, - }} //默认显示条数 - toolBarRender={false} - /> - - - - await reserveList(params).then((res) => { - if (res.code == 200) { - let data = res.data; - return Promise.resolve({ - data: data.records, - success: res.success, - total: res.data.total, - current: res.data.current, - }); + } + return Promise.resolve({ + data: [], + success: false, + total: 0, + current: 1, + }); + }) } - return Promise.resolve({ - data: [], - success: false, - total: 0, - current: 1, - }); - }) - } - pagination={{ - defaultCurrent: isNotEmpty(current) ? Number(current) : 1, - defaultPageSize: 10, - showSizeChanger: false, - }} //默认显示条数 - toolBarRender={false} - /> - - + search={{ + filterType: 'query', + optionRender: (searchConfig: any, { form }) => { + return [ + , + , + , + ]; + }, + }} + pagination={{ + defaultCurrent: isNotEmpty(current) ? Number(current) : 1, + defaultPageSize: 10, + showSizeChanger: false, + }} //默认显示条数 + toolBarRender={false} + /> + + ); }; diff --git a/src/pages/Device/service.ts b/src/pages/Device/service.ts index c4efe18..04d1c19 100644 --- a/src/pages/Device/service.ts +++ b/src/pages/Device/service.ts @@ -15,3 +15,20 @@ export async function roomList() { // 查询评标室列表 }); } + +export async function deviceList(data: any) { + // 查询设备列表 + return request('/v1/eval/device/queryPageByParam', { + method: 'post', + data: { ...data, pageNo: data.current }, + }); +} + +export async function getplaceareaList() { + // 查询场所、区域列表 + /// /v1/elec/eval/placearea/uset/list + return request('/v1/elec/eval/placearea/list', { + method: 'get', + params: {} + }); +} diff --git a/src/pages/ElecEvalReserve/index.tsx b/src/pages/ElecEvalReserve/index.tsx index 4fe2fba..cfa3ba6 100644 --- a/src/pages/ElecEvalReserve/index.tsx +++ b/src/pages/ElecEvalReserve/index.tsx @@ -4,7 +4,6 @@ import ProTable, { ActionType } from '@ant-design/pro-table'; import { reserveList, roomList, cancelReserve } from './service'; import '@/assets/ld_style.less'; import { getURLInformation, isNotEmpty } from '@/utils/CommonUtils'; -import { btnAuthority } from '@/utils/authority'; const { TabPane } = Tabs;