From 114a434dceaddaf93bf51078c4a33fad1b916b6f Mon Sep 17 00:00:00 2001 From: "517612449@qq.com" Date: Thu, 11 Aug 2022 08:25:47 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E9=A2=84=E7=BA=A6=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ElecEvalRoom/ElecEvalReserve/index.tsx | 167 ++++++++++++++++++ .../ElecEvalRoom/ElecEvalReserve/service.ts | 8 + 2 files changed, 175 insertions(+) create mode 100644 src/pages/Evaluation/ElecEvalRoom/ElecEvalReserve/index.tsx create mode 100644 src/pages/Evaluation/ElecEvalRoom/ElecEvalReserve/service.ts diff --git a/src/pages/Evaluation/ElecEvalRoom/ElecEvalReserve/index.tsx b/src/pages/Evaluation/ElecEvalRoom/ElecEvalReserve/index.tsx new file mode 100644 index 0000000..e28dc21 --- /dev/null +++ b/src/pages/Evaluation/ElecEvalRoom/ElecEvalReserve/index.tsx @@ -0,0 +1,167 @@ +import React, { useState, useRef } from 'react'; +import { Button, Tabs, Form, Input, Modal, Space, Checkbox, message, PageHeader, Popconfirm, Progress, Tag, Spin } from 'antd'; +import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table'; +import { reserveList } from './service'; +import '@/assets/ld_style.less'; +import { getProjectTypeCode, getURLInformation, getUrlParam, isNotEmpty } from '@/utils/CommonUtils'; +import { btnAuthority } from '@/utils/authority'; + +const { TabPane } = Tabs; + + +const Index: React.FC<{}> = () => { + const checkRelationRef = useRef(); //操作数据后刷新列表 + + + + //存储当前页面项目类型 + let proTypeCode = getProjectTypeCode(); + + const current = getURLInformation("current"); + + + const columns: any = [ // 我参与的项目 + { + title: '序号', + dataIndex: 'index', + valueType: 'index', + search: false, + width: 50, + }, + { + title: '评标室', + dataIndex: 'areaName', + }, + { + title: '预约开始时间', + dataIndex: 'reserveStartDate', + search: false, + width: '5%', + }, + { + title: '预约结束时间', + dataIndex: 'reserveEndDate', + search: false, + width: '7%', + }, + { + title: '预约人', + dataIndex: 'reserveBy', + width: '20%', + search: false + }, + { + title: '预约人联系方式', + dataIndex: 'reserveContactNumber', + width: '10%', + search: false + }, + { + title: '项目名称', + dataIndex: 'projectName', + search: false, + width: '7%' + }, + { + title: '标段名称', + dataIndex: 'sectionNames', + search: false, + width: '7%' + }, + { + title: '操作', + width: '7%', + search: false, + render: (text: any, record: any) => { + + return ( + <> + + + + ) + + } + }, + ]; + const otherColumns: any[] = [ //会议室预约 + + + ]; + + + + return ( + <> + + + + + + + + {} + } + search={{ + filterType: "query", + optionRender: (searchConfig: any, { form }) => { + return [ + , + , + ]; + }, + }} + pagination={{ defaultCurrent: isNotEmpty(current) ? Number(current) : 1, defaultPageSize: 10, showSizeChanger: false }}//默认显示条数 + toolBarRender={false} + /> + + + + + + {} + } + pagination={{ defaultPageSize: 10, showSizeChanger: false }}//默认显示条数 + toolBarRender={false} + /> + + + + ) +} +export default Index + + diff --git a/src/pages/Evaluation/ElecEvalRoom/ElecEvalReserve/service.ts b/src/pages/Evaluation/ElecEvalRoom/ElecEvalReserve/service.ts new file mode 100644 index 0000000..d26f053 --- /dev/null +++ b/src/pages/Evaluation/ElecEvalRoom/ElecEvalReserve/service.ts @@ -0,0 +1,8 @@ +import request from '@/utils/request'; + +export async function reserveList(data: any) { // 查询会议室/评标室 + return request('/api/biz-service-ebtp-evaluation/v1/eval/room/reserve/list', { + method: 'get', + data: data + }); +} From a7ff7ccd9dd5dd7f1f7c633b50c0545c7cb9bace Mon Sep 17 00:00:00 2001 From: "517612449@qq.com" Date: Thu, 11 Aug 2022 17:32:15 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E9=A2=84=E7=BA=A6=E8=AF=84=E6=A0=87?= =?UTF-8?q?=E5=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/proxy.ts | 5 + config/router.config.ts | 5 + .../ElecEvalReserve/index.tsx | 124 +++++++++++++++--- src/pages/ElecEvalReserve/service.ts | 16 +++ .../ElecEvalRoom/ElecEvalReserve/service.ts | 8 -- 5 files changed, 130 insertions(+), 28 deletions(-) rename src/pages/{Evaluation/ElecEvalRoom => }/ElecEvalReserve/index.tsx (59%) create mode 100644 src/pages/ElecEvalReserve/service.ts delete mode 100644 src/pages/Evaluation/ElecEvalRoom/ElecEvalReserve/service.ts diff --git a/config/proxy.ts b/config/proxy.ts index 94ad589..d7a67ff 100644 --- a/config/proxy.ts +++ b/config/proxy.ts @@ -17,6 +17,11 @@ export default { // changeOrigin: true, // pathRewrite: { '^': '' }, // }, + '/v1/eval/room/reserve/list': { + target: 'http://localhost:18017',//连接天宫的ng + changeOrigin: true, + pathRewrite: { '^': '' }, + }, '/api/*': { target: 'http://10.242.31.158:18022',//连接天宫的ng changeOrigin: true, diff --git a/config/router.config.ts b/config/router.config.ts index 46b1726..2472fa1 100644 --- a/config/router.config.ts +++ b/config/router.config.ts @@ -109,6 +109,11 @@ export default [ path: '/', redirect: '/userexpert/login', }, + {//委托撤回 + name: 'ElecEvalReserve', + path: '/ElecEvalReserve', + component: './ElecEvalReserve', + }, ...home,//各角色主页 ...menuaZhaoBiao,//项目菜单所有路由 {//问卷调查 diff --git a/src/pages/Evaluation/ElecEvalRoom/ElecEvalReserve/index.tsx b/src/pages/ElecEvalReserve/index.tsx similarity index 59% rename from src/pages/Evaluation/ElecEvalRoom/ElecEvalReserve/index.tsx rename to src/pages/ElecEvalReserve/index.tsx index e28dc21..8f9831a 100644 --- a/src/pages/Evaluation/ElecEvalRoom/ElecEvalReserve/index.tsx +++ b/src/pages/ElecEvalReserve/index.tsx @@ -26,47 +26,51 @@ const Index: React.FC<{}> = () => { dataIndex: 'index', valueType: 'index', search: false, - width: 50, + width: '2%', }, { title: '评标室', dataIndex: 'areaName', + search: true, + width: '15%', }, { title: '预约开始时间', dataIndex: 'reserveStartDate', - search: false, - width: '5%', + search: true, + valueType: 'dateTime', + width: '15%', }, { title: '预约结束时间', dataIndex: 'reserveEndDate', - search: false, - width: '7%', + search: true, + valueType: 'dateTime', + width: '15%', }, { title: '预约人', dataIndex: 'reserveBy', - width: '20%', + width: '5%', search: false }, { title: '预约人联系方式', dataIndex: 'reserveContactNumber', - width: '10%', + width: '5%', search: false }, { title: '项目名称', dataIndex: 'projectName', search: false, - width: '7%' + width: '10%' }, { title: '标段名称', dataIndex: 'sectionNames', search: false, - width: '7%' + width: '10%' }, { title: '操作', @@ -86,7 +90,56 @@ const Index: React.FC<{}> = () => { ]; const otherColumns: any[] = [ //会议室预约 - + { + title: '序号', + dataIndex: 'index', + valueType: 'index', + search: false, + width: 50, + }, + { + title: '会议室名称', + dataIndex: 'areaName', + }, + { + title: '预约开始时间', + dataIndex: 'reserveStartDate', + search: false, + width: '5%', + }, + { + title: '预约结束时间', + dataIndex: 'reserveEndDate', + search: false, + width: '7%', + }, + { + title: '预约人', + dataIndex: 'reserveBy', + width: '20%', + search: false + }, + { + title: '预约人联系方式', + dataIndex: 'reserveContactNumber', + width: '10%', + search: false + }, + { + title: '操作', + width: '7%', + search: false, + render: (text: any, record: any) => { + + return ( + <> + + + + ) + + } + }, ]; @@ -105,10 +158,26 @@ const Index: React.FC<{}> = () => { actionRef={checkRelationRef} className="proSearch" columns={columns} - params={{ }} + params={{ "reserveType": "eval" }} size='small' - request={async (params: any) => - {} + request={async (params) => + 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", @@ -118,8 +187,7 @@ const Index: React.FC<{}> = () => { key="resetText" onClick={() => { form?.setFieldsValue({ - projectName: null, - bidMethodDict: null, + current: 1, }) form?.submit(); @@ -147,13 +215,29 @@ const Index: React.FC<{}> = () => { - {} - } + params={{ "reserveType": "meeting" }} + size='small' + request={async (params) => + 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, + }); + }) + } pagination={{ defaultPageSize: 10, showSizeChanger: false }}//默认显示条数 toolBarRender={false} /> diff --git a/src/pages/ElecEvalReserve/service.ts b/src/pages/ElecEvalReserve/service.ts new file mode 100644 index 0000000..8537586 --- /dev/null +++ b/src/pages/ElecEvalReserve/service.ts @@ -0,0 +1,16 @@ +import request from '@/utils/request'; + +export async function reserveList(data: any) { // 查询会议室/评标室预约情况 + return request('/v1/eval/room/reserve/list', { + method: 'post', + data: {...data,pageNo: data.current} + }); +} + +export async function roomList(data: any) { // 查询评标室列表 + ///api/biz-service-ebtp-evaluation + return request('http://localhost:18017/v1/elec/eval/room/list', { + method: 'get', + params: data + }); +} diff --git a/src/pages/Evaluation/ElecEvalRoom/ElecEvalReserve/service.ts b/src/pages/Evaluation/ElecEvalRoom/ElecEvalReserve/service.ts deleted file mode 100644 index d26f053..0000000 --- a/src/pages/Evaluation/ElecEvalRoom/ElecEvalReserve/service.ts +++ /dev/null @@ -1,8 +0,0 @@ -import request from '@/utils/request'; - -export async function reserveList(data: any) { // 查询会议室/评标室 - return request('/api/biz-service-ebtp-evaluation/v1/eval/room/reserve/list', { - method: 'get', - data: data - }); -} From 64b401eda552054e65dc832aec2336ad49a14d8d Mon Sep 17 00:00:00 2001 From: "517612449@qq.com" Date: Fri, 12 Aug 2022 17:08:43 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E9=A2=84=E7=BA=A6=E8=AF=84=E6=A0=87?= =?UTF-8?q?=E5=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/ElecEvalReserve/index.tsx | 375 ++++++++++++++------------- src/pages/ElecEvalReserve/service.ts | 14 +- 2 files changed, 209 insertions(+), 180 deletions(-) diff --git a/src/pages/ElecEvalReserve/index.tsx b/src/pages/ElecEvalReserve/index.tsx index 8f9831a..c63a66e 100644 --- a/src/pages/ElecEvalReserve/index.tsx +++ b/src/pages/ElecEvalReserve/index.tsx @@ -1,251 +1,272 @@ -import React, { useState, useRef } from 'react'; -import { Button, Tabs, Form, Input, Modal, Space, Checkbox, message, PageHeader, Popconfirm, Progress, Tag, Spin } from 'antd'; +import React, { useState, useRef, useEffect } from 'react'; +import { Button, Tabs, PageHeader } from 'antd'; import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table'; -import { reserveList } from './service'; +import { reserveList, roomList } from './service'; import '@/assets/ld_style.less'; -import { getProjectTypeCode, getURLInformation, getUrlParam, isNotEmpty } from '@/utils/CommonUtils'; +import { getURLInformation, isNotEmpty } from '@/utils/CommonUtils'; import { btnAuthority } from '@/utils/authority'; const { TabPane } = Tabs; - const Index: React.FC<{}> = () => { const checkRelationRef = useRef(); //操作数据后刷新列表 + 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) + } + }) +}; + const current = getURLInformation('current'); - - //存储当前页面项目类型 - let proTypeCode = getProjectTypeCode(); - - const current = getURLInformation("current"); - - - const columns: any = [ // 我参与的项目 + const columns: any = [ + // 我参与的项目 { title: '序号', dataIndex: 'index', valueType: 'index', search: false, - width: '2%', + width: '3%', }, { title: '评标室', - dataIndex: 'areaName', + dataIndex: 'areaId', + valueType: 'select', + valueEnum: areaNameList, search: true, - width: '15%', + width: '10%', }, { title: '预约开始时间', dataIndex: 'reserveStartDate', search: true, valueType: 'dateTime', - width: '15%', + width: '10%', }, { title: '预约结束时间', dataIndex: 'reserveEndDate', search: true, valueType: 'dateTime', - width: '15%', + width: '10%', }, { title: '预约人', dataIndex: 'reserveBy', width: '5%', - search: false + search: false, }, { - title: '预约人联系方式', + title: '预约人联系方式', dataIndex: 'reserveContactNumber', width: '5%', - search: false + search: false, }, { title: '项目名称', dataIndex: 'projectName', search: false, - width: '10%' + width: '10%', }, { title: '标段名称', dataIndex: 'sectionNames', search: false, - width: '10%' - }, + width: '10%', + }, { title: '操作', width: '7%', search: false, render: (text: any, record: any) => { - return ( <> - - + - ) - - } + ); + }, }, ]; - const otherColumns: any[] = [ //会议室预约 - - { - title: '序号', - dataIndex: 'index', - valueType: 'index', - search: false, - width: 50, - }, - { - title: '会议室名称', - dataIndex: 'areaName', - }, - { - title: '预约开始时间', - dataIndex: 'reserveStartDate', - search: false, - width: '5%', - }, - { - title: '预约结束时间', - dataIndex: 'reserveEndDate', - search: false, - width: '7%', - }, - { - title: '预约人', - dataIndex: 'reserveBy', - width: '20%', - search: false - }, - { - title: '预约人联系方式', - dataIndex: 'reserveContactNumber', - width: '10%', - search: false - }, - { - title: '操作', - width: '7%', - search: false, - render: (text: any, record: any) => { + const otherColumns: any[] = [ + //会议室预约 - return ( - <> - - - - ) - - } - }, + { + title: '序号', + dataIndex: 'index', + valueType: 'index', + search: false, + width: '3%', + }, + { + title: '会议室名称', + dataIndex: 'areaName', + search: true, + width: '10%', + }, + { + title: '预约开始时间', + dataIndex: 'reserveStartDate', + search: true, + width: '10%', + }, + { + title: '预约结束时间', + dataIndex: 'reserveEndDate', + search: true, + width: '10%', + }, + { + title: '预约人', + dataIndex: 'reserveBy', + width: '5%', + search: false, + }, + { + title: '预约人联系方式', + dataIndex: 'reserveContactNumber', + width: '5%', + search: false, + }, + { + title: '操作', + width: '7%', + search: false, + render: (text: any, record: any) => { + return ( + <> + + + ); + }, + }, ]; - - return ( <> - + - - - - - - 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, - }); - } + + + + await reserveList(params).then((res) => { + if (res.code == 200) { + let data = res.data; return Promise.resolve({ - data: [], - success: false, - total: 0, - current: 1, + data: data.records, + success: res.success, + total: res.data.total, + current: res.data.current, }); - }) - } - 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, + }); + }) + } + 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: [], - success: false, - total: 0, - current: 1, + data: data.records, + success: res.success, + total: res.data.total, + current: res.data.current, }); - }) - } - pagination={{ defaultPageSize: 10, showSizeChanger: false }}//默认显示条数 - toolBarRender={false} - /> - - + } + return Promise.resolve({ + data: [], + success: false, + total: 0, + current: 1, + }); + }) + } + pagination={{ defaultPageSize: 10, showSizeChanger: false }} //默认显示条数 + toolBarRender={false} + /> + + - ) -} + ); +}; export default Index diff --git a/src/pages/ElecEvalReserve/service.ts b/src/pages/ElecEvalReserve/service.ts index 8537586..c056ebc 100644 --- a/src/pages/ElecEvalReserve/service.ts +++ b/src/pages/ElecEvalReserve/service.ts @@ -7,10 +7,18 @@ export async function reserveList(data: any) { // 查询会议室/评标室预 }); } -export async function roomList(data: any) { // 查询评标室列表 +export async function roomList() { // 查询评标室列表 ///api/biz-service-ebtp-evaluation - return request('http://localhost:18017/v1/elec/eval/room/list', { + return request('/v1/elec/eval/room/list', { + method: 'get', + params: {} + }); +} + + +export async function cancelReserve(id: any) { // 取消预约 + ///api/biz-service-ebtp-evaluation + return request('/v1/eval/room/reserve/cancel'+`${id}`, { method: 'get', - params: data }); } From 1a455baa2ae2ad0374d014c3382806a0075d270a Mon Sep 17 00:00:00 2001 From: "517612449@qq.com" Date: Tue, 23 Aug 2022 18:02:47 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E5=8F=96=E6=B6=88=E9=A2=84=E7=BA=A6?= =?UTF-8?q?=E3=80=81=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 --- src/pages/Device/index.tsx | 240 +++++++++++++++++++++++++++ src/pages/Device/service.ts | 17 ++ src/pages/ElecEvalReserve/index.tsx | 50 ++++-- src/pages/ElecEvalReserve/service.ts | 2 +- 4 files changed, 296 insertions(+), 13 deletions(-) create mode 100644 src/pages/Device/index.tsx create mode 100644 src/pages/Device/service.ts diff --git a/src/pages/Device/index.tsx b/src/pages/Device/index.tsx new file mode 100644 index 0000000..41f4c18 --- /dev/null +++ b/src/pages/Device/index.tsx @@ -0,0 +1,240 @@ +import React, { useState, useRef, useEffect } from 'react'; +import { Button, Tabs, PageHeader,message } from 'antd'; +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; + +const Index: React.FC<{}> = () => { + const checkRelationRef = useRef(); //操作数据后刷新列表 + + 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) + } + }) + }; + /** + * 取消预约 + * @param record + */ + const cancel = async (record: any) => { + + cancelReserve(record.id).then(res => { + if (res.code == 200 && res.data) { + message.success('预约取消成功'); + } + }); + }; + const current = getURLInformation('current'); + + + const columns: any[] = [ + //会议室预约 + + { + title: '序号', + dataIndex: 'index', + valueType: 'index', + search: false, + width: '3%', + }, + { + title: '评标场所名称', + dataIndex: 'reserveBy', + width: '10%', + search: false, + }, + { + title: '评标区域名称', + dataIndex: 'reserveBy', + width: '10%', + search: false, + }, + { + title: '设备类型', + dataIndex: 'reserveBy', + width: '10%', + search: false, + }, + { + title: '设备名称', + dataIndex: 'meetingName', + search: true, + width: '10%', + }, + { + title: '设备标识', + dataIndex: 'meetingName', + search: true, + width: '10%', + }, + + { + title: '网络IP', + dataIndex: 'meetingName', + search: true, + width: '10%', + }, + { + title: '设备状态', + dataIndex: 'reserveBy', + width: '10%', + search: true, + }, + + { + title: '操作', + width: '7%', + search: false, + render: (text: any, record: any) => { + + return ( + <> + + + + ); + + + + }, + }, + ]; + + return ( + <> + + + + + + 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, + }); + }) + } + pagination={{ + defaultCurrent: isNotEmpty(current) ? Number(current) : 1, + defaultPageSize: 10, + showSizeChanger: false, + }} //默认显示条数 + toolBarRender={false} + /> + + + + ); +}; +export default Index + + diff --git a/src/pages/Device/service.ts b/src/pages/Device/service.ts new file mode 100644 index 0000000..c4efe18 --- /dev/null +++ b/src/pages/Device/service.ts @@ -0,0 +1,17 @@ +import request from '@/utils/request'; + +export async function reserveList(data: any) { // 查询会议室/评标室预约情况 + return request('/v1/eval/room/reserve/list', { + method: 'post', + data: {...data,pageNo: data.current} + }); +} + +export async function roomList() { // 查询评标室列表 + ///api/biz-service-ebtp-evaluation + return request('/v1/elec/eval/room/list', { + method: 'get', + params: {} + }); +} + diff --git a/src/pages/ElecEvalReserve/index.tsx b/src/pages/ElecEvalReserve/index.tsx index c63a66e..4fe2fba 100644 --- a/src/pages/ElecEvalReserve/index.tsx +++ b/src/pages/ElecEvalReserve/index.tsx @@ -1,7 +1,7 @@ import React, { useState, useRef, useEffect } from 'react'; -import { Button, Tabs, PageHeader } from 'antd'; -import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table'; -import { reserveList, roomList } from './service'; +import { Button, Tabs, PageHeader,message } from 'antd'; +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'; @@ -39,11 +39,23 @@ const Index: React.FC<{}> = () => { setAreaNameList(areaNameList) } }) -}; + }; + /** + * 取消预约 + * @param record + */ + const cancel = async (record: any) => { + + cancelReserve(record.id).then(res => { + if (res.code == 200 && res.data) { + message.success('预约取消成功'); + } + }); + }; const current = getURLInformation('current'); const columns: any = [ - // 我参与的项目 + // 评标室 { title: '序号', dataIndex: 'index', @@ -53,7 +65,7 @@ const Index: React.FC<{}> = () => { }, { title: '评标室', - dataIndex: 'areaId', + dataIndex: 'areaName', valueType: 'select', valueEnum: areaNameList, search: true, @@ -93,7 +105,7 @@ const Index: React.FC<{}> = () => { }, { title: '标段名称', - dataIndex: 'sectionNames', + dataIndex: 'packageNames', search: false, width: '10%', }, @@ -104,7 +116,7 @@ const Index: React.FC<{}> = () => { render: (text: any, record: any) => { return ( <> - @@ -123,11 +135,17 @@ const Index: React.FC<{}> = () => { width: '3%', }, { - title: '会议室名称', - dataIndex: 'areaName', + title: '会议名称', + dataIndex: 'meetingName', search: true, width: '10%', }, + { + title: '会议人数', + dataIndex: 'numberInMeeting', + width: '5%', + search: false, + }, { title: '预约开始时间', dataIndex: 'reserveStartDate', @@ -157,13 +175,17 @@ const Index: React.FC<{}> = () => { width: '7%', search: false, render: (text: any, record: any) => { + return ( <> - ); + + + }, }, ]; @@ -259,7 +281,11 @@ const Index: React.FC<{}> = () => { }); }) } - pagination={{ defaultPageSize: 10, showSizeChanger: false }} //默认显示条数 + pagination={{ + defaultCurrent: isNotEmpty(current) ? Number(current) : 1, + defaultPageSize: 10, + showSizeChanger: false, + }} //默认显示条数 toolBarRender={false} /> diff --git a/src/pages/ElecEvalReserve/service.ts b/src/pages/ElecEvalReserve/service.ts index c056ebc..39f24c9 100644 --- a/src/pages/ElecEvalReserve/service.ts +++ b/src/pages/ElecEvalReserve/service.ts @@ -18,7 +18,7 @@ export async function roomList() { // 查询评标室列表 export async function cancelReserve(id: any) { // 取消预约 ///api/biz-service-ebtp-evaluation - return request('/v1/eval/room/reserve/cancel'+`${id}`, { + return request('/v1/eval/room/reserve/cancel/'+`${id}`, { method: 'get', }); } From d9459b13bdd6e5e044a9f1f5142e3ee1698e52ff Mon Sep 17 00:00:00 2001 From: "517612449@qq.com" Date: Wed, 24 Aug 2022 15:14:09 +0800 Subject: [PATCH 5/9] =?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; From 8d54be7d0ff9e7f4b3822b68b5779210ab0eb2b0 Mon Sep 17 00:00:00 2001 From: "517612449@qq.com" Date: Thu, 25 Aug 2022 15:08:48 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Device/DeviceForm.tsx | 139 ++++++++++++++++++++++++++++++++ src/pages/Device/index.tsx | 70 +++++++++------- src/pages/Device/service.ts | 7 ++ 3 files changed, 188 insertions(+), 28 deletions(-) create mode 100644 src/pages/Device/DeviceForm.tsx diff --git a/src/pages/Device/DeviceForm.tsx b/src/pages/Device/DeviceForm.tsx new file mode 100644 index 0000000..8c4fd08 --- /dev/null +++ b/src/pages/Device/DeviceForm.tsx @@ -0,0 +1,139 @@ +import { Form, Input, Modal, Spin } from "antd" +import React, { useEffect, useState } from "react" +import { getDeviceById } from "./service"; + +import { SnowflakeID } from "@/services/untilService"; + +import { trim } from "@/utils/CommonUtils"; + +interface DeviceFormProps { + modalVisible: boolean; + titleName: string; + onCancel: () => void; + type: string; + tpId: string; + deviceId: string; + +} + +const layout = { + labelCol: { span: 7 }, + wrapperCol: { span: 10 }, +}; +const DeviceForm: React.FC = (props) => { + + const { titleName, modalVisible, onCancel, type, tpId, deviceId } = props; + const [spinning, setSping] = useState();//加载遮罩 + const [editInformation, setEditInformation] = useState(false);//是否可编 + const [form] = Form.useForm(); + + + + useEffect(() => { + SnowflakeID().then(res => { + Int(); + }); + form.resetFields();//清除form中数据 + }, [type, deviceId]); + const Int = () => { + + setSping(true); + if (type == "new") {//==========================================================新建 + + setSping(false); + setEditInformation(false);//可编辑 + + } else if (type == "edit") {//=========================================================修改 + + + getDeviceById(deviceId).then(res => { + if (res.code == 200) { + const data = res.data; + let defPak = []; + for (const item of data.sections) { + defPak.push(item.bsId); + } + form.setFieldsValue({ + "documentName": data.documentName, + "documentSetId": data.documentSetId, + "sectionIds": defPak, + }); + + setSping(false); + setEditInformation(false);//可编辑 + + } + }); + + + } else if (type == "read") {//=========================================================查看 + getDeviceById(deviceId).then(res => { + if (res.code == 200) { + const data = res.data; + let thisData1 = []; + let defPak = []; + for (const item of data.sections) { + thisData1.push({ "label": item.bsName, "value": item.bsId }) + defPak.push(item.bsId); + } + + form.setFieldsValue({ + "documentName": data.documentName, + "documentSetId": data.documentSetId, + "sectionIds": defPak, + }) + + setSping(false); + setEditInformation(true) + + } + }); + } + } + + + + // @ts-ignore + return ( + onCancel()} + className="返回" + width={"60%"} + /*style={{top: "2%", height: "96%", overflowY: "auto"}} + bodyStyle={{paddingTop: "16px"}}*/ + centered + + > + +
+ trim(value)} + > + + + + +
+ +
+
+ + ) +} +export default DeviceForm diff --git a/src/pages/Device/index.tsx b/src/pages/Device/index.tsx index 06076d1..5ddf0e8 100644 --- a/src/pages/Device/index.tsx +++ b/src/pages/Device/index.tsx @@ -1,10 +1,11 @@ import React, { useState, useRef, useEffect } from 'react'; -import { Button, Tabs, Tree} from 'antd'; +import { Button, Spin, Tabs, Tree} from 'antd'; import ProTable, { ActionType } from '@ant-design/pro-table'; import { deviceList, getplaceareaList, roomList } from './service'; import '@/assets/ld_style.less'; import { getURLInformation, isNotEmpty } from '@/utils/CommonUtils'; import ProCard from "@ant-design/pro-card"; +import DeviceForm from './DeviceForm'; const deviceTypeEnum = { @@ -24,6 +25,11 @@ const Index: React.FC<{}> = () => { const checkRelationRef = useRef(); //操作数据后刷新列表 const [treeData, setTreeData] = useState(); const [treeId, setTreeId] = useState(); + const [updateVisible, setUpdateVisible] = useState(false) + const [type, setType] = useState();// 状态 编辑or 查看 + const [deviceId, setDeviceId] = useState("");//设备id + const [spin, spinSet] = useState(false);//加载遮罩 + const [updateChange, setUpdateChange] = useState('') /*拉取数据*/ useEffect(() => { @@ -53,36 +59,36 @@ const Index: React.FC<{}> = () => { }) }, []); + const toAdd = async (props?: any) => { + spinSet(true); + setUpdateChange('新增设备'); + setType("new"); + setUpdateVisible(true); + + } + const toEdit = (props: any) => { + setUpdateChange('修改设备'); + setDeviceId(props.id) + setType("edit"); + setUpdateVisible(true); + } + + const toRead = (props: any) => { + setUpdateChange('查看设备'); + setDeviceId(props.id) + setType("read"); + setUpdateVisible(true); + + } /** * 设备管理 * @param record */ - 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]) @@ -153,7 +159,7 @@ const Index: React.FC<{}> = () => { render: (text: any, record: any) => { return ( <> - , - , ]; @@ -245,7 +252,14 @@ const Index: React.FC<{}> = () => { /> - + {updateVisible ? ( + setUpdateVisible(false)} + modalVisible={updateVisible} tpId={''} /> + ) : null} + + + ); }; export default Index diff --git a/src/pages/Device/service.ts b/src/pages/Device/service.ts index 04d1c19..b88f07f 100644 --- a/src/pages/Device/service.ts +++ b/src/pages/Device/service.ts @@ -32,3 +32,10 @@ export async function getplaceareaList() { params: {} }); } + +export async function getDeviceById(id: any) { + return request('/v1/elec/eval/placearea/list/'+`${id}`, { + method: 'get', + params: {} + }); +} From a68735b64170342e5e1cdf87a1f8f3f489f5efe1 Mon Sep 17 00:00:00 2001 From: "517612449@qq.com" Date: Thu, 25 Aug 2022 17:49:48 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=A2=84=E7=BA=A6?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/ElecEvalReserve/index.tsx | 69 ++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 17 deletions(-) diff --git a/src/pages/ElecEvalReserve/index.tsx b/src/pages/ElecEvalReserve/index.tsx index cfa3ba6..652cb72 100644 --- a/src/pages/ElecEvalReserve/index.tsx +++ b/src/pages/ElecEvalReserve/index.tsx @@ -1,16 +1,24 @@ import React, { useState, useRef, useEffect } from 'react'; -import { Button, Tabs, PageHeader,message } from 'antd'; +import { Button, Tabs, message, Card } from 'antd'; 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 MeetingReservation from '@/components/ElecBidEvaluation/MeetingReservation'; const { TabPane } = Tabs; const Index: React.FC<{}> = () => { const checkRelationRef = useRef(); //操作数据后刷新列表 + const [areaNameList, setAreaNameList] = useState(); + const [areaList, setAreaList] = useState(); + //预约id + const [meetId, setMeetId] = useState(""); + //预约弹窗 + const [modalVisible, setModalVisible] = useState(false); + //刷新参数 + const [refresh, setRefresh] = useState(0); - const [areaNameList, setAreaNameList] = useState({}); /*拉取数据*/ useEffect(() => { initAreaNameList(); @@ -27,6 +35,7 @@ const Index: React.FC<{}> = () => { // areaNameList.push(tempDetail); // }) let areaNameList = {}; + setAreaList(res.data); //将拿到的返回值遍历 res.data.map((item: { id: string | number; areaName: any; })=>{ //使用接口返回值的id做为 代替原本的0,1 @@ -39,18 +48,23 @@ const Index: React.FC<{}> = () => { } }) }; + //查看预约 + const viewMeet = (id: any) => { + setMeetId(id); + setModalVisible(true); + } /** * 取消预约 * @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) => { + + cancelReserve(record.id).then(res => { + if (res.code == 200 && res.data) { + message.success('预约取消成功'); + } + }); + }; const current = getURLInformation('current'); const columns: any = [ @@ -64,8 +78,7 @@ const Index: React.FC<{}> = () => { }, { title: '评标室', - dataIndex: 'areaName', - valueType: 'select', + dataIndex: 'areaId', valueEnum: areaNameList, search: true, width: '10%', @@ -133,6 +146,13 @@ const Index: React.FC<{}> = () => { search: false, width: '3%', }, + { + title: '评标室', + dataIndex: 'areaId', + valueEnum: areaNameList, + search: true, + width: '10%', + }, { title: '会议名称', dataIndex: 'meetingName', @@ -148,12 +168,14 @@ const Index: React.FC<{}> = () => { { title: '预约开始时间', dataIndex: 'reserveStartDate', + valueType: 'dateTime', search: true, width: '10%', }, { title: '预约结束时间', dataIndex: 'reserveEndDate', + valueType: 'dateTime', search: true, width: '10%', }, @@ -177,6 +199,9 @@ const Index: React.FC<{}> = () => { return ( <> + @@ -191,11 +216,11 @@ const Index: React.FC<{}> = () => { return ( <> - + - = () => { , ]; }, + labelWidth: 'auto', + span: 4, }} pagination={{ defaultCurrent: isNotEmpty(current) ? Number(current) : 1, @@ -253,14 +280,18 @@ const Index: React.FC<{}> = () => { showSizeChanger: false, }} //默认显示条数 toolBarRender={false} - /> + />} - await reserveList(params).then((res) => { if (res.code == 200) { @@ -286,10 +317,14 @@ const Index: React.FC<{}> = () => { showSizeChanger: false, }} //默认显示条数 toolBarRender={false} - /> + />} + {modalVisible && { setModalVisible(false); }} roomList={areaList} status={'2'} meetId={meetId} onSubmit={() => { setModalVisible(false); setRefresh(refresh => refresh + 1) }} />} + + + ); }; export default Index From 009c9ef3116b3e02cd7db771f0db45d1e13c41db Mon Sep 17 00:00:00 2001 From: liuh Date: Thu, 25 Aug 2022 23:04:00 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/ElecEvalReserve/index.tsx | 299 ++++++++++++++++------------ 1 file changed, 169 insertions(+), 130 deletions(-) diff --git a/src/pages/ElecEvalReserve/index.tsx b/src/pages/ElecEvalReserve/index.tsx index 652cb72..2500dc7 100644 --- a/src/pages/ElecEvalReserve/index.tsx +++ b/src/pages/ElecEvalReserve/index.tsx @@ -7,13 +7,21 @@ import { getURLInformation, isNotEmpty } from '@/utils/CommonUtils'; import MeetingReservation from '@/components/ElecBidEvaluation/MeetingReservation'; const { TabPane } = Tabs; - +const statusEnum = { + //"状态:-1-待确认 0-未开启 1-进行中 2-已结束 3-已取消 4-结束未使用" + '-1': { text: '待确认' }, + '0': { text: '未开启' }, + '1': { text: '进行中' }, + '2': { text: '已结束' }, + '3': { text: '已取消' }, + '4': { text: '结束未使用' }, +}; const Index: React.FC<{}> = () => { const checkRelationRef = useRef(); //操作数据后刷新列表 const [areaNameList, setAreaNameList] = useState(); const [areaList, setAreaList] = useState(); //预约id - const [meetId, setMeetId] = useState(""); + const [meetId, setMeetId] = useState(''); //预约弹窗 const [modalVisible, setModalVisible] = useState(false); //刷新参数 @@ -25,41 +33,40 @@ const Index: React.FC<{}> = () => { }, []); const initAreaNameList = async () => { await roomList().then((res) => { - if (res.success ==true) { + 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); - // }) + // 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 = {}; setAreaList(res.data); //将拿到的返回值遍历 - res.data.map((item: { id: string | number; areaName: any; })=>{ + res.data.map((item: { id: string | number; areaName: any }) => { //使用接口返回值的id做为 代替原本的0,1 - areaNameList[item.id]={ - //使用接口返回值中的overdueValue属性作为原本的text:后面的值 + areaNameList[item.id] = { + //使用接口返回值中的overdueValue属性作为原本的text:后面的值 text: item.areaName, - } - }) - setAreaNameList(areaNameList) + }; + }); + setAreaNameList(areaNameList); } - }) + }); }; - //查看预约 + //查看预约 const viewMeet = (id: any) => { setMeetId(id); setModalVisible(true); - } + }; /** * 取消预约 * @param record */ const cancel = async (record: any) => { - - cancelReserve(record.id).then(res => { + cancelReserve(record.id).then((res) => { if (res.code == 200 && res.data) { message.success('预约取消成功'); } @@ -121,6 +128,14 @@ const Index: React.FC<{}> = () => { search: false, width: '10%', }, + { + title: '状态', + dataIndex: 'status', + width: '10%', + valueType: 'select', + valueEnum: statusEnum, + search: true, + }, { title: '操作', width: '7%', @@ -128,7 +143,15 @@ const Index: React.FC<{}> = () => { render: (text: any, record: any) => { return ( <> - + @@ -196,135 +219,151 @@ const Index: React.FC<{}> = () => { width: '7%', search: false, render: (text: any, record: any) => { - return ( <> - ); - - - }, }, ]; return ( <> - - - - {areaNameList && - 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 [ - , - , - ]; - }, - labelWidth: 'auto', - span: 4, - }} - pagination={{ - defaultCurrent: isNotEmpty(current) ? Number(current) : 1, - defaultPageSize: 10, - showSizeChanger: false, - }} //默认显示条数 - toolBarRender={false} - />} - - - {areaNameList && - 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} - />} - - - {modalVisible && { setModalVisible(false); }} roomList={areaList} status={'2'} meetId={meetId} onSubmit={() => { setModalVisible(false); setRefresh(refresh => refresh + 1) }} />} - + search={{ + filterType: 'query', + optionRender: (searchConfig: any, { form }) => { + return [ + , + , + ]; + }, + labelWidth: 'auto', + span: 4, + }} + pagination={{ + defaultCurrent: isNotEmpty(current) ? Number(current) : 1, + defaultPageSize: 10, + showSizeChanger: false, + }} //默认显示条数 + toolBarRender={false} + /> + )} + + + {areaNameList && ( + + 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, + }); + }) + } + pagination={{ + defaultCurrent: isNotEmpty(current) ? Number(current) : 1, + defaultPageSize: 10, + showSizeChanger: false, + }} //默认显示条数 + toolBarRender={false} + /> + )} + + + {modalVisible && ( + { + setModalVisible(false); + }} + roomList={areaList} + status={'2'} + meetId={meetId} + onSubmit={() => { + setModalVisible(false); + setRefresh((refresh) => refresh + 1); + }} + /> + )} - ); }; export default Index From 1e1b71c25c43e8c7a1b53dfcabb27bd55ff97072 Mon Sep 17 00:00:00 2001 From: "517612449@qq.com" Date: Fri, 26 Aug 2022 11:12:11 +0800 Subject: [PATCH 9/9] =?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 --- src/pages/Device/DeviceForm.tsx | 107 +++++++++++++++++++------------- src/pages/Device/index.tsx | 51 +++++++-------- src/pages/Device/service.ts | 2 +- 3 files changed, 92 insertions(+), 68 deletions(-) diff --git a/src/pages/Device/DeviceForm.tsx b/src/pages/Device/DeviceForm.tsx index 8c4fd08..f8b0666 100644 --- a/src/pages/Device/DeviceForm.tsx +++ b/src/pages/Device/DeviceForm.tsx @@ -1,21 +1,25 @@ -import { Form, Input, Modal, Spin } from "antd" +import { Form, Input, Modal, Select, Spin } from "antd" import React, { useEffect, useState } from "react" import { getDeviceById } from "./service"; -import { SnowflakeID } from "@/services/untilService"; - -import { trim } from "@/utils/CommonUtils"; interface DeviceFormProps { modalVisible: boolean; titleName: string; onCancel: () => void; + status: string;//状态 0-新建 1-编辑 2-查看 type: string; tpId: string; deviceId: string; } - +const deviceTypeEnum = { + 'resource_door': { text: '门禁点' }, + 'resource_camera': { text: '监控点' }, + 'resource_nvr': { text: 'nvr' }, + 'resource_encodeDevice': { text: '编码设备' }, + 'resource_oneMachine': { text: '门禁一体机' }, +} const layout = { labelCol: { span: 7 }, wrapperCol: { span: 10 }, @@ -26,13 +30,12 @@ const DeviceForm: React.FC = (props) => { const [spinning, setSping] = useState();//加载遮罩 const [editInformation, setEditInformation] = useState(false);//是否可编 const [form] = Form.useForm(); - + //窗口状态 0-新建 1-编辑 2-查看 + const [modalStatus, setModalStatus] = useState(status); useEffect(() => { - SnowflakeID().then(res => { - Int(); - }); + Int(); form.resetFields();//清除form中数据 }, [type, deviceId]); const Int = () => { @@ -44,21 +47,20 @@ const DeviceForm: React.FC = (props) => { setEditInformation(false);//可编辑 } else if (type == "edit") {//=========================================================修改 - - + console.log(deviceId); getDeviceById(deviceId).then(res => { if (res.code == 200) { const data = res.data; - let defPak = []; - for (const item of data.sections) { - defPak.push(item.bsId); - } + form.setFieldsValue({ - "documentName": data.documentName, - "documentSetId": data.documentSetId, - "sectionIds": defPak, + "id": data.id, + "deviceName": data.deviceName, + "deviceManagementIp": data.deviceManagementIp, + "deviceCode": data.deviceCode, + "devicePlatform": data.devicePlatform, + "placeId": data.placeId, + "areaId": data.areaId, }); - setSping(false); setEditInformation(false);//可编辑 @@ -70,17 +72,15 @@ const DeviceForm: React.FC = (props) => { getDeviceById(deviceId).then(res => { if (res.code == 200) { const data = res.data; - let thisData1 = []; - let defPak = []; - for (const item of data.sections) { - thisData1.push({ "label": item.bsName, "value": item.bsId }) - defPak.push(item.bsId); - } form.setFieldsValue({ - "documentName": data.documentName, - "documentSetId": data.documentSetId, - "sectionIds": defPak, + "id": data.id, + "deviceName": data.deviceName, + "deviceManagementIp": data.deviceManagementIp, + "deviceCode": data.deviceCode, + "devicePlatform": data.devicePlatform, + "placeId": data.placeId, + "areaId": data.areaId, }) setSping(false); @@ -114,21 +114,44 @@ const DeviceForm: React.FC = (props) => { name="basic" form={form} > - trim(value)} - > - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/pages/Device/index.tsx b/src/pages/Device/index.tsx index 5ddf0e8..2343cfc 100644 --- a/src/pages/Device/index.tsx +++ b/src/pages/Device/index.tsx @@ -66,9 +66,10 @@ const Index: React.FC<{}> = () => { setUpdateVisible(true); } - const toEdit = (props: any) => { + const toEdit = (dId: String) => { setUpdateChange('修改设备'); - setDeviceId(props.id) + console.log(dId) + setDeviceId(dId) setType("edit"); setUpdateVisible(true); } @@ -152,23 +153,23 @@ const Index: React.FC<{}> = () => { search: true, }, - { - title: '操作', - width: '7%', - search: false, - render: (text: any, record: any) => { - return ( - <> - - - - ); - }, - }, + // { + // title: '操作', + // width: '7%', + // search: false, + // render: (text: any, record: any) => { + // return ( + // <> + // + // + // + // ); + // }, + // }, ]; return ( @@ -237,9 +238,9 @@ const Index: React.FC<{}> = () => { > {searchConfig?.searchText} , - , + // , ]; }, }} @@ -252,11 +253,11 @@ const Index: React.FC<{}> = () => { /> - {updateVisible ? ( + {/* {updateVisible ? ( setUpdateVisible(false)} + type={type} deviceId={deviceId} status={'2'} onCancel={() => setUpdateVisible(false)} modalVisible={updateVisible} tpId={''} /> - ) : null} + ) : null} */} diff --git a/src/pages/Device/service.ts b/src/pages/Device/service.ts index b88f07f..cb1d867 100644 --- a/src/pages/Device/service.ts +++ b/src/pages/Device/service.ts @@ -34,7 +34,7 @@ export async function getplaceareaList() { } export async function getDeviceById(id: any) { - return request('/v1/elec/eval/placearea/list/'+`${id}`, { + return request('/v1/eval/device/query/'+`${id}`, { method: 'get', params: {} });