Commit f2c099df authored by mayongxin's avatar mayongxin

Merge branch 'master' of https://g.civnet.cn:8443/ReactWeb5/maintenance

# Conflicts: # .env
parents c40fbb91 528d33ac
Pipeline #27300 skipped with stages
...@@ -13,6 +13,9 @@ ...@@ -13,6 +13,9 @@
background-color: #ffffff; background-color: #ffffff;
color: #000000; color: #000000;
} }
.ant-card-body{
padding-bottom: 0 !important;
}
} }
.predict{ .predict{
display: flex; display: flex;
...@@ -31,4 +34,13 @@ ...@@ -31,4 +34,13 @@
margin-left:1rem; margin-left:1rem;
text-decoration: underline; text-decoration: underline;
width: 8rem; width: 8rem;
}
.deviceList{
max-height: 20rem;
overflow-y: scroll;
}
.deleteItem{
position:relative;
right: -100%;
top: -8rem;
} }
\ No newline at end of file
import { Space, Table, Button, Popconfirm, notification } from 'antd'; import { Space, Table, Button, Popconfirm, notification, Spin } from 'antd';
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import styles from '../policiesIssued.less' import styles from '../policiesIssued.less'
import { import {
deleteTaskOptions, taskOptionsList, getIotDeviceType, algorithmList, getEquipmentInfo getIotDeviceType, getPredictInfo, deletePredictOptions
} from '@/services/intelligence/api'; } from '@/services/intelligence/api';
import AddModal from './AddModal' import AddModal from './AddModal'
const VectorData = props => { const VectorData = props => {
...@@ -18,56 +18,51 @@ const VectorData = props => { ...@@ -18,56 +18,51 @@ const VectorData = props => {
const columns = [ const columns = [
{ {
title: '序号', title: '序号',
dataIndex: 'serviceName', align: 'center',
key: 'serviceName', render: (text, record, index) => (
align: 'center' <Space>
<span>{(index + 1)}</span>
</Space>
)
}, },
{ {
title: '方案名称', title: '方案名称',
dataIndex: 'GISServerIP', dataIndex: 'PredictName',
key: 'GISServerIP', key: 'PredictName',
align: 'center' align: 'center'
}, },
{ {
title: '算法名称', title: '场景名称',
dataIndex: 'GISServerPort', dataIndex: 'SceneName',
key: 'GISServerPort', key: 'SceneName',
align: 'center' align: 'center'
}, },
{ {
title: '设备类型', title: '设备类型',
dataIndex: 'GISServerProjectName', dataIndex: 'DeviceType',
key: 'GISServerProjectName', key: 'DeviceType',
align: 'center'
},
{
title: '设备编码',
dataIndex: 'publishTime',
key: 'publishTime',
align: 'center'
},
{
title: '指标名称',
dataIndex: 'publishTime',
key: 'publishTime',
align: 'center' align: 'center'
}, },
{ {
title: '预测间隔', title: '预测间隔',
dataIndex: 'publishTime', align: 'center',
key: 'publishTime', render: (record) => (
align: 'center' <Space>
{record.CycleValue + record.Cycle}
</Space>
)
}, },
{ {
title: '首次执行时间', title: '首次执行时间',
dataIndex: 'publishTime', dataIndex: 'DateFrom',
key: 'publishTime', key: 'DateFrom',
align: 'center' align: 'center'
}, },
{ {
title: '描述', title: '描述',
dataIndex: 'publishTime', dataIndex: 'Remarks',
key: 'publishTime', key: 'Remarks',
align: 'center' align: 'center'
}, },
{ {
...@@ -75,10 +70,18 @@ const VectorData = props => { ...@@ -75,10 +70,18 @@ const VectorData = props => {
align: 'center', align: 'center',
render: (text, record, index) => ( render: (text, record, index) => (
<Space> <Space>
<Button
type="primary"
size="small"
onClick={() => {
changeRecord(record);
}}
>
编辑
</Button>
<div onClick={e => e.stopPropagation()}> <div onClick={e => e.stopPropagation()}>
<Popconfirm <Popconfirm
title="是否删除该矢量数据?" title="是否删除该方案?"
okText="确认" okText="确认"
cancelText="取消" cancelText="取消"
onConfirm={() => { onConfirm={() => {
...@@ -97,16 +100,33 @@ const VectorData = props => { ...@@ -97,16 +100,33 @@ const VectorData = props => {
]; ];
const onSubmit = prop => { const onSubmit = prop => {
setVisible(false); setVisible(false);
setFlag(flag+1) setFlag(flag + 1)
}; };
const delConfirm = (record) => { const delConfirm = (record) => {
deletePredictOptions(record.ID).then(res => {
if (res.errMsg === '') {
setFlag(flag + 1)
notification.success({
message: '提示',
duration: 3,
description: '删除成功',
});
} else {
notification.error({
message: '提示',
duration: 3,
description: res.errMsg,
});
};
})
} }
const handleAdd = () => { const handleAdd = () => {
setFormObj({});
setType('add'); setType('add');
setVisible(true); setVisible(true);
} }
...@@ -115,51 +135,59 @@ const VectorData = props => { ...@@ -115,51 +135,59 @@ const VectorData = props => {
}, [flag]); }, [flag]);
// 获取瓦片数据配置数据 // 获取瓦片数据配置数据
const renderTile = () => { const renderTile = () => {
setTreeLoading(true)
const getIotDevice = getIotDeviceType() const getIotDevice = getIotDeviceType()
const algorithm = algorithmList() const getPredictList = getPredictInfo()
const taskOption = taskOptionsList() Promise.all([getIotDevice, getPredictList]).then(res => {
Promise.all([getIotDevice, algorithm, taskOption]).then(res => {
res[0].getMe && res[0].getMe.length && setDeviceType(res[0].getMe) res[0].getMe && res[0].getMe.length && setDeviceType(res[0].getMe)
res[2].getMe && res[2].getMe.length && setTileData(res[2].getMe) res[1].getMe && res[1].getMe.length && setTileData(res[1].getMe)
setTreeLoading(false) setTreeLoading(false)
}).catch(err => { }).catch(err => {
setTreeLoading(false) setTreeLoading(false)
}) })
}; };
const changeRecord = (record) => {
setType('edit');
setFormObj(record);
setVisible(true);
}
return ( return (
<> <>
<div className={styles.tileBtn}> <Spin tip="loading..." spinning={treeLoading}>
<Button type="primary" onClick={() => { <div className={styles.tileBtn}>
handleAdd(); <Button type="primary" onClick={() => {
}} > handleAdd();
新增 }} >
新增
</Button> </Button>
</div> </div>
<Table <Table
columns={columns} columns={columns}
dataSource={tileData} dataSource={tileData}
bordered bordered
rowKey="createTime" rowKey="ID"
scroll={{ y: 400 }} scroll={{ y: 700 }}
pagination={{ pagination={{
showTotal: (total, range) => pageSize: '10',
`第${range[0]}-${range[1]} 条/共 ${total} 条` showTotal: (total, range) =>
`第${range[0]}-${range[1]} 条/共 ${total} 条`
}} }}
> >
</Table> </Table>
<AddModal <AddModal
visible={visible} visible={visible}
onCancel={() => setVisible(false)} onCancel={() => setVisible(false)}
callBackSubmit={onSubmit} callBackSubmit={onSubmit}
type={type} type={type}
deviceType={deviceType} deviceType={deviceType}
formObj={formObj} formObj={formObj}
/> />
</Spin>
</> </>
) )
} }
export default VectorData export default VectorData
\ No newline at end of file
import { Space, Table, Button, Popconfirm, notification } from 'antd'; import { Space, Table, Button, Popconfirm, notification ,Spin} from 'antd';
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import styles from '../policiesIssued.less' import styles from '../policiesIssued.less'
import { import {
GetVectorService, deleteVectorService, getSolutionList, updatePublishedMetaData taskOptionsList, getIotDeviceType, getStrategyInfo, deleteStrategyOptions
} from '@/services/webConfig/api'; } from '@/services/intelligence/api';
import AddModal from './AddModal' import AddModal from './AddModal'
const VectorData = props => { const VectorData = props => {
const [treeLoading, setTreeLoading] = useState(false);// 弹窗显示 const [treeLoading, setTreeLoading] = useState(false);// 弹窗显示
const [tileData, setTileData] = useState([]); // table表格数据
const [visible, setVisible] = useState(false); // 弹窗
const [previewVisible, setPreviewVisible] = useState(false); // 预览弹窗
const [flag, setFlag] = useState(0); // 更新list const [flag, setFlag] = useState(0); // 更新list
const [loading, setLoading] = useState([]); // 更新状态 const [loading, setLoading] = useState([]); // 更新状态
const [type, setType] = useState(''); // 弹窗类型 const [type, setType] = useState(''); // 弹窗类型
const [solutionNames, setSolutionNames] = useState(''); const [solutionNames, setSolutionNames] = useState('');
const [formObj, setFormObj] = useState({ user: 'admin', password: 'geoserver' }); const [formObj, setFormObj] = useState({ user: 'admin', password: 'geoserver' });
const [currentMetaData,setCurrentMetaData] = useState(null) const [tileData, setTileData] = useState([]); // table表格数据
const [visible, setVisible] = useState(false); // 弹窗
const [deviceType, setDeviceType] = useState([]); //设备类型列表
const columns = [ const columns = [
{ {
title: '序号', title: '序号',
dataIndex: 'serviceName', align: 'center',
key: 'serviceName', render: (text, record, index) => (
align: 'center' <Space>
<span>{(index + 1)}</span>
</Space>
)
}, },
{ {
title: '方案名称', title: '策略名称',
dataIndex: 'GISServerIP', dataIndex: 'StrategyName',
key: 'GISServerIP', key: 'StrategyName',
align: 'center' align: 'center'
}, },
{ {
title: '方案类型', title: '策略类型',
dataIndex: 'GISServerPort', dataIndex: 'StrategyType',
key: 'GISServerPort', key: 'StrategyType',
align: 'center' align: 'center'
}, },
{ {
title: '任务名称', title: '创建时间',
dataIndex: 'GISServerProjectName', dataIndex: 'CreateTime',
key: 'GISServerProjectName', key: 'CreateTime',
align: 'center' align: 'center'
}, },
{ {
title: '创建时间', title: '设备类型',
dataIndex: 'publishTime', dataIndex: 'DeviceType',
key: 'publishTime', key: 'DeviceType',
align: 'center' align: 'center'
}, },
{ {
title: '描述', title: '描述',
dataIndex: 'publishTime', dataIndex: 'StrategyDes',
key: 'publishTime', key: 'StrategyDes',
align: 'center' align: 'center'
}, },
{ {
...@@ -58,10 +62,18 @@ const VectorData = props => { ...@@ -58,10 +62,18 @@ const VectorData = props => {
align: 'center', align: 'center',
render: (text, record, index) => ( render: (text, record, index) => (
<Space> <Space>
<Button
type="primary"
size="small"
onClick={() => {
changeRecord(record);
}}
>
编辑
</Button>
<div onClick={e => e.stopPropagation()}> <div onClick={e => e.stopPropagation()}>
<Popconfirm <Popconfirm
title="是否删除该矢量数据?" title="是否删除该方案?"
okText="确认" okText="确认"
cancelText="取消" cancelText="取消"
onConfirm={() => { onConfirm={() => {
...@@ -80,50 +92,63 @@ const VectorData = props => { ...@@ -80,50 +92,63 @@ const VectorData = props => {
]; ];
const onSubmit = prop => { const onSubmit = prop => {
setVisible(false); setVisible(false);
setFlag(flag+1) setFlag(flag + 1)
}; };
const delConfirm = (record) => { const delConfirm = (record) => {
let query = { deleteStrategyOptions(record.ID).then(res => {
serviceName: record.serviceName, if (res.errMsg==='') {
_version: 9999,
solution: solutionNames
}
deleteVectorService(query).then(res => {
if (res.success) {
setFlag(flag + 1) setFlag(flag + 1)
notification.success({ notification.success({
message: '提示', message: '提示',
duration: 3, duration: 3,
description: '删除元数据成功', description: '删除成功',
}); });
} else { } else {
notification.error({ notification.error({
message: '提示', message: '提示',
duration: 3, duration: 3,
description: '删除元数据失败', description: res.errMsg,
}); });
}; };
}) })
} }
const handleAdd = () => { const handleAdd = () => {
// setType('add'); setFormObj({});
// setVisible(true); setType('add');
setVisible(true);
} }
useEffect(() => { useEffect(() => {
renderTile(); renderTile();
}, [flag]); }, [flag]);
// 获取瓦片数据配置数据 // 获取瓦片数据配置数据
const renderTile = () => { const renderTile = () => {
setTreeLoading(true)
const getIotDevice = getIotDeviceType()
const getStrategy = getStrategyInfo()
Promise.all([getIotDevice,getStrategy]).then(res => {
console.log('res[3].getMe',res[1].getMe);
res[0].getMe && res[0].getMe.length && setDeviceType(res[0].getMe)
res[1].getMe && res[1].getMe.length && setTileData(res[1].getMe)
setTreeLoading(false)
}).catch(err => {
setTreeLoading(false)
})
}; };
const changeRecord =(record)=>{
setType('edit');
setFormObj(record);
setVisible(true);
}
return ( return (
<> <>
<Spin tip="loading..." spinning={treeLoading}>
<div className={styles.tileBtn}> <div className={styles.tileBtn}>
<Button type="primary" onClick={() => { <Button type="primary" onClick={() => {
handleAdd(); handleAdd();
...@@ -135,9 +160,10 @@ const VectorData = props => { ...@@ -135,9 +160,10 @@ const VectorData = props => {
columns={columns} columns={columns}
dataSource={tileData} dataSource={tileData}
bordered bordered
rowKey="createTime" rowKey="ID"
scroll={{ y: 400 }} scroll={{ y: 700 }}
pagination={{ pagination={{
pageSize: '10' ,
showTotal: (total, range) => showTotal: (total, range) =>
`第${range[0]}-${range[1]} 条/共 ${total} 条` `第${range[0]}-${range[1]} 条/共 ${total} 条`
...@@ -149,10 +175,12 @@ const VectorData = props => { ...@@ -149,10 +175,12 @@ const VectorData = props => {
onCancel={() => setVisible(false)} onCancel={() => setVisible(false)}
callBackSubmit={onSubmit} callBackSubmit={onSubmit}
type={type} type={type}
deviceType={deviceType}
formObj={formObj} formObj={formObj}
solutionNames={solutionNames}
/> />
</Spin>
</> </>
) )
} }
export default VectorData export default VectorData
\ No newline at end of file
...@@ -87,7 +87,9 @@ const AddModal = props => { ...@@ -87,7 +87,9 @@ const AddModal = props => {
const handleTaskType =(value)=>{
console.log(value,'value');
}
const layout = { const layout = {
layout: 'horizontal', layout: 'horizontal',
labelCol: { labelCol: {
...@@ -128,18 +130,19 @@ const AddModal = props => { ...@@ -128,18 +130,19 @@ const AddModal = props => {
<Input placeholder="请输入任务名称" allowClear /> <Input placeholder="请输入任务名称" allowClear />
</Item> </Item>
<Item <Item
label="方案类型" label="任务类型"
name="type" name="TaskType"
rules={[{ required: true, message: '请选择类型' }]} rules={[{ required: true, message: '请选择类型' }]}
> >
<Select> <Select onChange={handleTaskType}>
<Select.Option value='水龄预测'>水龄预测</Select.Option> <Select.Option value='预测'>预测</Select.Option>
<Select.Option value='二供泵房'>二供泵房</Select.Option> <Select.Option value='控制'>控制</Select.Option>
<Select.Option value='http'>http</Select.Option>
</Select> </Select>
</Item> </Item>
<Item <Item
label="方案名称" label="方案名称"
name="strategy" name="AlgorithmName"
> >
<Select > <Select >
{/* {workList.length ? workList.map((item, index) => { return <Option key={index} value={item.name}>{item.name}</Option> }) : ''} */} {/* {workList.length ? workList.map((item, index) => { return <Option key={index} value={item.name}>{item.name}</Option> }) : ''} */}
...@@ -157,7 +160,7 @@ const AddModal = props => { ...@@ -157,7 +160,7 @@ const AddModal = props => {
</Item> </Item>
<Item <Item
label="描述" label="描述"
name="dec" name="Describe"
> >
<TextArea placeholder="可输入描述信息" rows={4} allowClear /> <TextArea placeholder="可输入描述信息" rows={4} allowClear />
</Item> </Item>
......
...@@ -18,8 +18,12 @@ const VectorData = props => { ...@@ -18,8 +18,12 @@ const VectorData = props => {
{ {
title: '序号', title: '序号',
dataIndex: 'index', dataIndex: 'index',
key: 'serviceName', align: 'center',
align: 'center' render: (text, record, index) => (
<Space>
<span>{(index + 1)}</span>
</Space>
)
}, },
{ {
title: '场景名称', title: '场景名称',
...@@ -47,8 +51,8 @@ const VectorData = props => { ...@@ -47,8 +51,8 @@ const VectorData = props => {
}, },
{ {
title: '间隔', title: '间隔',
dataIndex: 'publishTime', dataIndex: 'Interval',
key: 'publishTime', key: 'Interval',
align: 'center' align: 'center'
}, },
{ {
...@@ -68,7 +72,15 @@ const VectorData = props => { ...@@ -68,7 +72,15 @@ const VectorData = props => {
align: 'center', align: 'center',
render: (text, record, index) => ( render: (text, record, index) => (
<Space> <Space>
<Button
type="primary"
size="small"
onClick={() => {
changeRecord(record);
}}
>
编辑
</Button>
<div onClick={e => e.stopPropagation()}> <div onClick={e => e.stopPropagation()}>
<Popconfirm <Popconfirm
title="是否删除该矢量数据?" title="是否删除该矢量数据?"
...@@ -101,7 +113,7 @@ const VectorData = props => { ...@@ -101,7 +113,7 @@ const VectorData = props => {
_version: 9999, _version: 9999,
solution: solutionNames solution: solutionNames
} }
deleteVectorService(query).then(res => { deleteTaskOptions(query).then(res => {
if (res.success) { if (res.success) {
setFlag(flag + 1) setFlag(flag + 1)
notification.success({ notification.success({
...@@ -118,6 +130,12 @@ const VectorData = props => { ...@@ -118,6 +130,12 @@ const VectorData = props => {
}; };
}) })
} }
//编辑任务调度
const changeRecord = (record) => {
setType('edit');
setFormObj(record);
setVisible(true);
}
const handleAdd = () => { const handleAdd = () => {
setType('add'); setType('add');
setVisible(true); setVisible(true);
...@@ -132,8 +150,9 @@ const VectorData = props => { ...@@ -132,8 +150,9 @@ const VectorData = props => {
const algorithm = algorithmList() const algorithm = algorithmList()
const taskOption = taskOptionsList() const taskOption = taskOptionsList()
Promise.all([getIotDevice, algorithm, taskOption]).then(res => { Promise.all([getIotDevice, algorithm, taskOption]).then(res => {
console.log('res', res);
res[0].getMe && res[0].getMe.length && setDeviceType(res[0].getMe) res[0].getMe && res[0].getMe.length && setDeviceType(res[0].getMe)
res[2].getMe && res[2].getMe.length && setDeviceType(res[2].getMe) res[2].getMe && res[2].getMe.length && setTileData(res[2].getMe)
setTreeLoading(false) setTreeLoading(false)
}).catch(err => { }).catch(err => {
setTreeLoading(false) setTreeLoading(false)
...@@ -143,35 +162,38 @@ const VectorData = props => { ...@@ -143,35 +162,38 @@ const VectorData = props => {
return ( return (
<> <>
<div className={styles.tileBtn}> <div className={styles.container}>
<Button type="primary" onClick={() => { <div className={styles.tileBtn}>
handleAdd(); <Button type="primary" onClick={() => {
}} > handleAdd();
新增 }} >
新增
</Button> </Button>
</div>
<Table
columns={columns}
dataSource={tileData}
bordered
rowKey="Id"
scroll={{ y: 400 }}
pagination={{
showTotal: (total, range) =>
`第${range[0]}-${range[1]} 条/共 ${total} 条`
}}
>
</Table>
<AddModal
visible={visible}
onCancel={() => setVisible(false)}
callBackSubmit={onSubmit}
type={type}
deviceType={deviceType}
formObj={formObj}
solutionNames={solutionNames}
/>
</div> </div>
<Table
columns={columns}
dataSource={tileData}
bordered
rowKey="createTime"
scroll={{ y: 400 }}
pagination={{
showTotal: (total, range) =>
`第${range[0]}-${range[1]} 条/共 ${total} 条`
}}
>
</Table>
<AddModal
visible={visible}
onCancel={() => setVisible(false)}
callBackSubmit={onSubmit}
type={type}
deviceType={deviceType}
formObj={formObj}
solutionNames={solutionNames}
/>
</> </>
) )
} }
......
.container{
width: 100%;
height: 100%;
background-color: #ffffff;
}
.predict{ .predict{
display: flex; display: flex;
align-items: flex-end; align-items: flex-end;
...@@ -8,7 +13,7 @@ ...@@ -8,7 +13,7 @@
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
width: 100%; width: 100%;
padding: 0 0 2rem padding: 2rem 1rem 2rem 0;
} }
.corn{ .corn{
cursor: pointer; cursor: pointer;
......
.container{ .container{
width: 100%; width: 100%;
height: calc(100vh - 100px) ;
background-color: #ffffff; background-color: #ffffff;
display: flex; display: flex;
padding: 0.8rem; padding: 0.8rem;
.ant-table-thead tr th { .ant-table-thead tr th {
font-weight: 600; font-weight: 600;
...@@ -102,6 +103,9 @@ ...@@ -102,6 +103,9 @@
} }
.cardItem{ .cardItem{
width: 18rem; width: 18rem;
height: 18rem; height: 26rem;
margin: 0 2rem; margin: 0 2rem;
} }
.solutionConfig{
}
\ No newline at end of file
import { Space, Table, Button, Popconfirm, notification } from 'antd'; import { Space, Table, Button, Popconfirm, notification,Spin } from 'antd';
import React, { useState, useEffect, Modal } from 'react'; import React, { useState, useEffect } from 'react';
import styles from '../SchemeConfig.less' import styles from '../SchemeConfig.less'
import { import {
GetAllConfig, GetAllConfig,
...@@ -114,7 +114,6 @@ const TileData = props => { ...@@ -114,7 +114,6 @@ const TileData = props => {
}) })
} }
const handleAdd = () => { const handleAdd = () => {
console.log('baseMap',baseMap);
if(baseMap.length){ if(baseMap.length){
setType('add'); setType('add');
setVisible(true); setVisible(true);
...@@ -163,6 +162,7 @@ const TileData = props => { ...@@ -163,6 +162,7 @@ const TileData = props => {
return ( return (
<> <>
<Spin tip="loading..." spinning={treeLoading}>
<div className={styles.tileBtn}> <div className={styles.tileBtn}>
<Button type="primary" onClick={() => { <Button type="primary" onClick={() => {
handleAdd(); handleAdd();
...@@ -191,6 +191,7 @@ const TileData = props => { ...@@ -191,6 +191,7 @@ const TileData = props => {
formObj={formObj} formObj={formObj}
baseMap = {baseMap} baseMap = {baseMap}
/> />
</Spin>
</> </>
) )
} }
......
import { Space, Table, Button, Popconfirm, notification } from 'antd'; import { Space, Table, Button, Popconfirm, notification,Spin } from 'antd';
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import styles from '../SchemeConfig.less' import styles from '../SchemeConfig.less'
import { import {
...@@ -194,6 +194,7 @@ const VectorData = props => { ...@@ -194,6 +194,7 @@ const VectorData = props => {
return ( return (
<> <>
<Spin tip="loading..." spinning={treeLoading}>
<div className={styles.tileBtn}> <div className={styles.tileBtn}>
<Button type="primary" onClick={() => { <Button type="primary" onClick={() => {
handleAdd(); handleAdd();
...@@ -227,6 +228,7 @@ const VectorData = props => { ...@@ -227,6 +228,7 @@ const VectorData = props => {
onCancel={() => setPreviewVisible(false)} onCancel={() => setPreviewVisible(false)}
metaData={currentMetaData} metaData={currentMetaData}
/> />
</Spin>
</> </>
) )
} }
......
...@@ -145,7 +145,7 @@ const CardData = props => { ...@@ -145,7 +145,7 @@ const CardData = props => {
<div className={styles.schemeItem}><span className={styles.schemeName}>瓦片</span> <div className={styles.schemeItem}><span className={styles.schemeName}>瓦片</span>
<Button className={styles.schemeBtn} onClick={() => addTile(props.item)}> <PlusOutlined />添加瓦片</Button> <Button className={styles.schemeBtn} onClick={() => addTile(props.item)}> <PlusOutlined />添加瓦片</Button>
</div> </div>
<div style={{ overflowY: 'scroll', height: '5.5rem' }}> <div style={{ overflowY: 'scroll', maxHeight: '11.4rem' }}>
{props.item.baseMap && props.item.baseMap.length ? props.item.baseMap.map((baseMapItem, baseindex) => { {props.item.baseMap && props.item.baseMap.length ? props.item.baseMap.map((baseMapItem, baseindex) => {
return <div className={styles.mapItem} key={baseindex} > return <div className={styles.mapItem} key={baseindex} >
<div className={classnames({ <div className={classnames({
......
import { Button } from 'antd'; import { Button,Spin } from 'antd';
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import styles from '../SchemeConfig.less' import styles from '../SchemeConfig.less'
import { import {
...@@ -48,6 +48,7 @@ const VectorData = props => { ...@@ -48,6 +48,7 @@ const VectorData = props => {
}; };
return ( return (
<> <>
<Spin tip="loading..." spinning={treeLoading}>
<div style={{ width: 'calc(100vw - 265px)' }}> <div style={{ width: 'calc(100vw - 265px)' }}>
<div className={styles.tileBtn}> <div className={styles.tileBtn}>
<Button type="primary" onClick={() => { <Button type="primary" onClick={() => {
...@@ -72,6 +73,7 @@ const VectorData = props => { ...@@ -72,6 +73,7 @@ const VectorData = props => {
formObj={formObj} formObj={formObj}
/> />
</div> </div>
</Spin>
</> </>
) )
} }
......
...@@ -15,7 +15,6 @@ import AddModal from './AddModal' ...@@ -15,7 +15,6 @@ import AddModal from './AddModal'
const VectorData = props => { const VectorData = props => {
const [treeLoading, setTreeLoading] = useState(false);// 弹窗显示 const [treeLoading, setTreeLoading] = useState(false);// 弹窗显示
const [schemename, setSchemename] = useState([]); const [schemename, setSchemename] = useState([]);
const [initValues, setInitValues] = useState([]);//角色初始化列表
const [record, setRecord] = useState({}); //选中关联角色的方案名 const [record, setRecord] = useState({}); //选中关联角色的方案名
const [webCurrent, setWebCurrent] = useState(0); // web列表下标 const [webCurrent, setWebCurrent] = useState(0); // web列表下标
const [handCurrent, setHandCurrent] = useState(0); // hand列表下标 const [handCurrent, setHandCurrent] = useState(0); // hand列表下标
...@@ -25,11 +24,8 @@ const VectorData = props => { ...@@ -25,11 +24,8 @@ const VectorData = props => {
const [flag, setFlag] = useState(0); // 更新list const [flag, setFlag] = useState(0); // 更新list
const [handStatus, setHandStatus] = useState([]); // 更新状态 const [handStatus, setHandStatus] = useState([]); // 更新状态
const [webStatus, setWebStatus] = useState([]); // 更新状态 const [webStatus, setWebStatus] = useState([]); // 更新状态
const [webIndex, setWebIndex] = useState(0); // web默认选中状态
const [handIndex, setHandIndex] = useState(0); // 手持默认选中状态
const [type, setType] = useState(''); // 弹窗类型 const [type, setType] = useState(''); // 弹窗类型
const [checkLoading, setCheckLoading] = useState(false) const [checkLoading, setCheckLoading] = useState(false)
const [solutionNames, setSolutionNames] = useState('');
const [formObj, setFormObj] = useState({ user: 'admin', password: 'geoserver' }); const [formObj, setFormObj] = useState({ user: 'admin', password: 'geoserver' });
const columns = [ const columns = [
{ {
...@@ -39,9 +35,9 @@ const VectorData = props => { ...@@ -39,9 +35,9 @@ const VectorData = props => {
render: (text, record, index) => ( render: (text, record, index) => (
<Space> <Space>
<Checkbox <Checkbox
checked={webStatus[index + webCurrent * 3]} checked={webStatus[index + webCurrent * 5]}
onChange={e => { onChange={e => {
onChangeCheck(e, record, index + webCurrent * 3); onChangeCheck(e, record, index + webCurrent * 5);
}} }}
/> />
</Space> </Space>
...@@ -100,9 +96,9 @@ const VectorData = props => { ...@@ -100,9 +96,9 @@ const VectorData = props => {
render: (text, record, index) => ( render: (text, record, index) => (
<Space> <Space>
<Checkbox <Checkbox
checked={handStatus[index + handCurrent * 3]} checked={handStatus[index + handCurrent * 5]}
onChange={e => { onChange={e => {
onChangeHand(e, record, index + handCurrent * 3); onChangeHand(e, record, index + handCurrent * 5);
}} }}
/> />
</Space> </Space>
...@@ -167,7 +163,7 @@ const VectorData = props => { ...@@ -167,7 +163,7 @@ const VectorData = props => {
SetServiceConfig(query).then(res => { SetServiceConfig(query).then(res => {
if (res.IsSuccess) { if (res.IsSuccess) {
prompt('success', '关联角色成功') prompt('success', '关联角色成功')
setFlag(flag + 1)
} }
else { else {
prompt('fail', '关联角色失败') prompt('fail', '关联角色失败')
...@@ -175,7 +171,7 @@ const VectorData = props => { ...@@ -175,7 +171,7 @@ const VectorData = props => {
}).catch(err=>{ }).catch(err=>{
prompt('fail', '网络请求失败') prompt('fail', '网络请求失败')
}) })
setFlag(flag + 1)
} }
...@@ -412,7 +408,7 @@ const VectorData = props => { ...@@ -412,7 +408,7 @@ const VectorData = props => {
}, [flag]); }, [flag]);
// 获取瓦片数据配置数据 // 获取瓦片数据配置数据
const renderTile = () => { const renderTile = () => {
setTreeLoading(true); setCheckLoading(true)
//查询手持方案 //查询手持方案
var schemeConfigQueryRequest = GetAllConfig({ var schemeConfigQueryRequest = GetAllConfig({
terminalType: 'phone', terminalType: 'phone',
...@@ -429,7 +425,6 @@ const VectorData = props => { ...@@ -429,7 +425,6 @@ const VectorData = props => {
res[0].Result.map((item, index) => { res[0].Result.map((item, index) => {
if (item.isDefault) { if (item.isDefault) {
arr.push(true) arr.push(true)
setHandIndex(index)
} else { } else {
arr.push(false) arr.push(false)
} }
...@@ -446,7 +441,6 @@ const VectorData = props => { ...@@ -446,7 +441,6 @@ const VectorData = props => {
res[1].Result.map((item, index) => { res[1].Result.map((item, index) => {
if (item.type === "pipenet") { if (item.type === "pipenet") {
arr.push(true) arr.push(true)
setWebIndex(index)
} else { } else {
arr.push(false) arr.push(false)
} }
...@@ -456,6 +450,9 @@ const VectorData = props => { ...@@ -456,6 +450,9 @@ const VectorData = props => {
setWebData(res[1].Result) setWebData(res[1].Result)
setWebStatus(arr) setWebStatus(arr)
} }
setCheckLoading(false)
}).catch(e=>{
setCheckLoading(false)
}) })
}; };
...@@ -465,7 +462,7 @@ const VectorData = props => { ...@@ -465,7 +462,7 @@ const VectorData = props => {
return ( return (
<> <>
<Spin tip="loading..." spinning={checkLoading}> <Spin tip="loading..." spinning={checkLoading}>
<div> <div className={styles.solutionConfig}>
<div > <div >
<Divider orientation="left"><div className={styles.divider}> Web <PlusOutlined <Divider orientation="left"><div className={styles.divider}> Web <PlusOutlined
onClick={() => { addType('add') }} onClick={() => { addType('add') }}
...@@ -477,7 +474,7 @@ const VectorData = props => { ...@@ -477,7 +474,7 @@ const VectorData = props => {
pagination={{ pagination={{
showTotal: (total, range) => showTotal: (total, range) =>
`第${range[0]}-${range[1]} 条/共 ${total} 条`, `第${range[0]}-${range[1]} 条/共 ${total} 条`,
defaultPageSize: 3, defaultPageSize: 5,
onChange: (value) => { onChange: (value) => {
setWebCurrent(value - 1) setWebCurrent(value - 1)
} }
...@@ -500,7 +497,7 @@ const VectorData = props => { ...@@ -500,7 +497,7 @@ const VectorData = props => {
pagination={{ pagination={{
showTotal: (total, range) => showTotal: (total, range) =>
`第${range[0]}-${range[1]} 条/共 ${total} 条`, `第${range[0]}-${range[1]} 条/共 ${total} 条`,
defaultPageSize: 3, defaultPageSize: 10,
onChange: (value) => { onChange: (value) => {
setHandCurrent(value - 1) setHandCurrent(value - 1)
} }
......
...@@ -20,6 +20,13 @@ export const algorithmList = () => ...@@ -20,6 +20,13 @@ export const algorithmList = () =>
export const getEquipmentInfo = (query) => export const getEquipmentInfo = (query) =>
get(`${CITY_SERVICE}/IOTPlatform.svc/AcrossTable/GetEquipmentInfo?equipType=${query}`); get(`${CITY_SERVICE}/IOTPlatform.svc/AcrossTable/GetEquipmentInfo?equipType=${query}`);
//获取指标列表
export const getQutaList = (query) =>
get(`${CITY_SERVICE}/IOTPlatform.svc/AcrossTable/GetQutaList?AcountName=${query.accountName}&&AddrSchemeID=${query.AddrSchemeID}`);
//获取场景列表
export const getSceneNameInfo = () =>
get(`${CITY_SERVICE}/IOTPlatform.svc/WaterAge/GetSceneNameInfo`);
//任务添加 //任务添加
export const addTaskOptions = (params) => export const addTaskOptions = (params) =>
...@@ -32,3 +39,44 @@ export const updateTaskOptions = (params) => ...@@ -32,3 +39,44 @@ export const updateTaskOptions = (params) =>
//任务删除 //任务删除
export const deleteTaskOptions = (params) => export const deleteTaskOptions = (params) =>
post(`${CITY_SERVICE}/IOTPlatform.svc/WaterAge/DeleteTaskOptions`, params); post(`${CITY_SERVICE}/IOTPlatform.svc/WaterAge/DeleteTaskOptions`, params);
//预测列表
export const getPredictInfo = () =>
get(`${CITY_SERVICE}/IOTPlatform.svc/WaterAge/GetPredictInfo`);
//预测新增
export const addPredictOptions = (params) =>
post(`${CITY_SERVICE}/IOTPlatform.svc/WaterAge/AddPredictOptions`, params);
//预测编辑
export const editPredictOptions = (params) =>
post(`${CITY_SERVICE}/IOTPlatform.svc/WaterAge/EditPredictOptions`, params);
//预测删除
export const deletePredictOptions = (params) =>
post(`${CITY_SERVICE}/IOTPlatform.svc/WaterAge/DeletePredictOptions?PredictID=${params}`);
//策略下发列表
export const getStrategyInfo = () =>
get(`${CITY_SERVICE}/IOTPlatform.svc/WaterAge/GetStrategyInfo`);
//策略下发增加
export const addStrategyOptions = (params) =>
post(`${CITY_SERVICE}/IOTPlatform.svc/WaterAge/AddStrategyOptions`, params);
//策略下发编辑
export const editStrategyOptions = (params) =>
post(`${CITY_SERVICE}/IOTPlatform.svc/WaterAge/EditStrategyOptions`, params);
//策略下发删除
export const deleteStrategyOptions = (params) =>
post(`${CITY_SERVICE}/IOTPlatform.svc/WaterAge/DeleteStrategyOptions?StrategyId=${params}`);
//获取预测设备
export const getPredictDevice = (params) =>
get(`${CITY_SERVICE}/IOTPlatform.svc/WaterAge/GetPredictDevice?DeviceType=${params}`);
//获取预测指标
export const getPredictDevicePoint = (params) =>
get(`${CITY_SERVICE}/IOTPlatform.svc/WaterAge/GetPredictDevicePoint?DeviceType=${params.deviceType}&DeviceCode=${params.DeviceCode}`);
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment