Commit d01f930e authored by 皮倩雯's avatar 皮倩雯

fix: '修改三维配置,地图配置界面留白样式'

parent 39a277af
Pipeline #43225 skipped with stages
......@@ -228,7 +228,7 @@ const TileData = props => {
dataSource={tileData}
bordered
rowKey="type"
scroll={{ y: 400 }}
scroll={{ y: 600 }}
pagination={{
showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`,
}}
......
......@@ -190,7 +190,7 @@ const VectorData = props => {
dataSource={tileData}
bordered
rowKey="id"
scroll={{ y: 400 }}
scroll={{ y: 600 }}
pagination={{
showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`,
}}
......
import { Button,Spin } from 'antd';
/* eslint-disable indent */
import { Button, Spin } from 'antd';
import React, { useState, useEffect } from 'react';
import styles from '../dimensionsConfig.less'
import {
GetSchemaInfoList
} from '@/services/webConfig/api';
import AddModal from './AddModal'
import Cards from './components/card'
import styles from '../dimensionsConfig.less';
import { GetSchemaInfoList } from '@/services/webConfig/api';
import AddModal from './AddModal';
import Cards from './components/card';
const VectorData = props => {
const [treeLoading, setTreeLoading] = useState(false);// 弹窗显示
const [treeLoading, setTreeLoading] = useState(false); // 弹窗显示
const [tileData, setTileData] = useState([]); // 页面初始化数据
const [visible, setVisible] = useState(false); // 弹窗
const [flag, setFlag] = useState(0); // 状态更新
const [type, setType] = useState(''); // 弹窗类型
const [formObj, setFormObj] = useState({});
const onSubmit = prop => {
setVisible(false);
setFlag(flag + 1)
setFlag(flag + 1);
};
const onDeletebaseMap = value => {
setFlag(flag + 1);
};
const onDeletebaseMap = (value) => {
setFlag(flag + 1)
}
const handleAdd = () => {
setType('schemeAdd');
setVisible(true);
}
};
useEffect(() => {
renderTile();
}, [flag]);
// 获取瓦片数据配置数据
const renderTile = () => {
setTreeLoading(true);
GetSchemaInfoList().then(
res => {
if (res.msg ==='Ok') {
GetSchemaInfoList().then(res => {
if (res.msg === 'Ok') {
setTreeLoading(false);
setTileData(res.data);
} else {
setTreeLoading(false);
}
}
)
});
};
return (
<>
<Spin tip="loading..." spinning={treeLoading}>
<div style={{ width: 'calc(100vw - 265px)' }}>
<div style={{ height: '780px', overflow: 'scroll' }}>
<div className={styles.tileBtn}>
<Button type="primary" onClick={() => {
<Button
type="primary"
onClick={() => {
handleAdd();
}} >
}}
>
新增
</Button>
</div>
<div className={styles.cardsList}>
{tileData && tileData.length ?
tileData.map((item, index) => {
return <div className={styles.cardItem} key={index} span={5} offset={2} style={{ marginBottom: '1rem' }}>
<Cards item={item} deletebaseMaps={onDeletebaseMap} ></Cards>
{tileData && tileData.length
? tileData.map((item, index) => {
return (
<div
className={styles.cardItem}
key={index}
span={5}
offset={2}
style={{ marginBottom: '1rem' }}
>
<Cards item={item} deletebaseMaps={onDeletebaseMap} />
</div>
);
})
: ''}
</div>
}) : ''}
</div >
<AddModal
visible={visible}
onCancel={() => setVisible(false)}
......@@ -73,6 +80,6 @@ const VectorData = props => {
</div>
</Spin>
</>
)
}
export default VectorData
\ No newline at end of file
);
};
export default VectorData;
import { Space, Table, Button, Popconfirm, notification, Divider, Checkbox, Spin } from 'antd';
import React, { useState, useEffect } from 'react';
import styles from '../dimensionsConfig.less'
import VisibleRoleModal from '@/pages/platformCenter/messageManage/projectManage/components/RolseSelect/VisibleRoleModal'
import styles from '../dimensionsConfig.less';
import VisibleRoleModal from '@/pages/platformCenter/messageManage/projectManage/components/RolseSelect/VisibleRoleModal';
import { PlusOutlined } from '@ant-design/icons';
import {
PlusOutlined
} from '@ant-design/icons';
import {
deleteConfig, SettingRoleWebSchema, SetServiceConfig,DeleteWebSchema,GetWebSchemaList,GetSchemaInfoList,IsActionWebSchema
deleteConfig,
SettingRoleWebSchema,
SetServiceConfig,
DeleteWebSchema,
GetWebSchemaList,
GetSchemaInfoList,
IsActionWebSchema,
} from '@/services/webConfig/api';
import {
UserAddOutlined
} from '@ant-design/icons';
import AddModal from './AddModal'
import { UserAddOutlined } from '@ant-design/icons';
import AddModal from './AddModal';
const VectorData = props => {
const [treeLoading, setTreeLoading] = useState(false);// 弹窗显示
const [treeLoading, setTreeLoading] = useState(false); // 弹窗显示
const [schemename, setSchemename] = useState([]);
const [record, setRecord] = useState({}); //选中关联角色的方案名
const [webCurrent, setWebCurrent] = useState(0); // web列表下标
......@@ -25,7 +27,7 @@ const VectorData = props => {
const [handStatus, setHandStatus] = useState([]); // 更新状态
const [webStatus, setWebStatus] = useState([]); // 更新状态
const [type, setType] = useState(''); // 弹窗类型
const [checkLoading, setCheckLoading] = useState(false)
const [checkLoading, setCheckLoading] = useState(false);
const [formObj, setFormObj] = useState({ user: 'admin', password: 'geoserver' });
const columns = [
{
......@@ -45,11 +47,7 @@ const VectorData = props => {
{
title: '方案名',
align: 'center',
render: (text, record, index) => (
<Space>
{record.scheme.schemename}
</Space>
),
render: (text, record, index) => <Space>{record.scheme.schemename}</Space>,
},
{
title: '关联角色',
......@@ -58,7 +56,12 @@ const VectorData = props => {
<Space>
<Space>
<div onClick={() => pickRole(record)} style={{ cursor: 'pointer' }}>
<VisibleRoleModal onSubmit={onPushSubmit} title={"关联角色"} initValues ={record.roles!=null?record.roles.split(","):[]} operate={<UserAddOutlined />} />
<VisibleRoleModal
onSubmit={onPushSubmit}
title={'关联角色'}
initValues={record.roles != null ? record.roles.split(',') : []}
operate={<UserAddOutlined />}
/>
</div>
</Space>
</Space>
......@@ -85,8 +88,7 @@ const VectorData = props => {
</div>
</Space>
),
}
},
];
// const columns1 = [
// {
......@@ -148,96 +150,94 @@ const VectorData = props => {
// ];
//获取选中的角色
const onPushSubmit = (value) => {
let id = []
const onPushSubmit = value => {
let id = [];
if (value.length) {
id = value.map(item => { return item.id })
id = value.map(item => {
return item.id;
});
let query = {
schemaname: record.scheme.schemename,
roles: id.join(',')
}
SettingRoleWebSchema(query).then(res => {
if (res.msg === "") {
prompt('success', '关联角色成功')
setFlag(flag + 1)
}
else {
prompt('fail', '关联角色失败')
roles: id.join(','),
};
SettingRoleWebSchema(query)
.then(res => {
if (res.msg === '') {
prompt('success', '关联角色成功');
setFlag(flag + 1);
} else {
prompt('fail', '关联角色失败');
}
}).catch(err=>{
prompt('fail', '网络请求失败')
})
}
.catch(err => {
prompt('fail', '网络请求失败');
});
}
};
//获取角色
const pickRole = (record) => {
setRecord(record)
}
const pickRole = record => {
setRecord(record);
};
//设置web方案
const onChangeCheck = (e, record, index) => {
setCheckLoading(true)
IsActionWebSchema({schemaname :record.scheme.schemename}).then(res=>{
setCheckLoading(false)
if(res.msg===''){
prompt('success', '设置成功')
setFlag(flag + 1)
}
else{
prompt('fail', res.msg)
}
})
setCheckLoading(true);
IsActionWebSchema({ schemaname: record.scheme.schemename }).then(res => {
setCheckLoading(false);
if (res.msg === '') {
prompt('success', '设置成功');
setFlag(flag + 1);
} else {
prompt('fail', res.msg);
}
});
};
//选择手持方案
const onChangeHand = (e, record, index) => {
setCheckLoading(true)
setCheckLoading(true);
const newLoadings = [...handStatus];
newLoadings.map((item, loadIndex) => {
return loadIndex == index ? newLoadings[loadIndex] = !newLoadings[loadIndex] : newLoadings[loadIndex] = false
})
setHandStatus(newLoadings)
return loadIndex == index
? (newLoadings[loadIndex] = !newLoadings[loadIndex])
: (newLoadings[loadIndex] = false);
});
setHandStatus(newLoadings);
let query = {
schemename: record['schemename'],
terminalType: 'phone',
isBaseMap: false,
jsonCfg: JSON.stringify({
isDefault: newLoadings[index],
})
}
}),
};
if (!newLoadings[index]) {
SetServiceConfig(query).then(res => {
setCheckLoading(false)
if (res.msg === "Ok") {
setCheckLoading(false);
if (res.msg === 'Ok') {
const changehandData = [...handData];
changehandData[index].isDefault = false
setHandData(changehandData)
prompt('success', '设置成功')
changehandData[index].isDefault = false;
setHandData(changehandData);
prompt('success', '设置成功');
} else {
prompt('fail', `${record['schemename']}默认设置时遇到错误:` + res.message)
prompt('fail', `${record['schemename']}默认设置时遇到错误:` + res.message);
}
})
return
});
return;
}
var beforeDefault = handData.findIndex((item) => item['isDefault']);
var beforeDefault = handData.findIndex(item => item['isDefault']);
SetServiceConfig({
schemename: record['schemename'],
terminalType: 'phone',
isBaseMap: false,
jsonCfg: JSON.stringify({
isDefault: true,
})
}),
}).then(res => {
setCheckLoading(false)
if (res.msg === "Ok") {
setCheckLoading(false);
if (res.msg === 'Ok') {
const changehandData = [...handData];
changehandData[index].isDefault = true
setHandData(changehandData)
changehandData[index].isDefault = true;
setHandData(changehandData);
if (beforeDefault != -1) {
SetServiceConfig({
schemename: changehandData[beforeDefault].schemename,
......@@ -245,22 +245,22 @@ const VectorData = props => {
isBaseMap: false,
jsonCfg: JSON.stringify({
isDefault: false,
})
}),
}).then(res => {
setCheckLoading(false)
setCheckLoading(false);
if (res.IsSuccess) {
const changehandData1 = [...handData];
changehandData1[beforeDefault].isDefault = false
setHandData(changehandData1)
prompt('success', '设置成功')
changehandData1[beforeDefault].isDefault = false;
setHandData(changehandData1);
prompt('success', '设置成功');
return;
}
prompt('fail', `${record['schemename']}默认设置时遇到错误:` + res.message)
})
prompt('fail', `${record['schemename']}默认设置时遇到错误:` + res.message);
});
}
}
})
}
});
};
const prompt = (type, content) => {
if (type == 'success') {
notification.success({
......@@ -268,78 +268,71 @@ const VectorData = props => {
duration: 3,
description: content,
});
}
else {
} else {
notification.error({
message: '提示',
duration: 3,
description: content,
});
}
}
};
const onSubmit = prop => {
setVisible(false);
setFlag(flag + 1)
setFlag(flag + 1);
};
//删除web配置方案
const delWebConfirm = (record) => {
DeleteWebSchema( record.scheme.schemename).then(res => {
if (res.msg === "") {
prompt('success', '删除成功')
setFlag(flag + 1)
const delWebConfirm = record => {
DeleteWebSchema(record.scheme.schemename).then(res => {
if (res.msg === '') {
prompt('success', '删除成功');
setFlag(flag + 1);
} else {
prompt('fail', '删除失败')
};
})
prompt('fail', '删除失败');
}
});
};
//删除手持配置方案
const delhandConfirm = (record) => {
const delhandConfirm = record => {
deleteConfig({
schemename: record['schemename'],
terminalType: 'phone',
isBaseMap: false
isBaseMap: false,
}).then(res => {
if (res.msg === "Ok") {
prompt('success', '删除成功')
setFlag(flag + 1)
if (res.msg === 'Ok') {
prompt('success', '删除成功');
setFlag(flag + 1);
} else {
prompt('fail', '删除失败')
};
})
prompt('fail', '删除失败');
}
});
};
//添加方案
const addType = (type) => {
const addType = type => {
setType(type);
let listData = []
type == 'add' ? listData = webData : listData = handData
let webSchemenameArr = [], schemeArr = []
let listData = [];
type == 'add' ? (listData = webData) : (listData = handData);
let webSchemenameArr = [],
schemeArr = [];
setTreeLoading(true);
GetSchemaInfoList().then(
res => {
GetSchemaInfoList().then(res => {
if (res.data && res.data.length) {
setTreeLoading(false);
listData.map(item => {
webSchemenameArr.push(item.scheme.schemename)
})
webSchemenameArr.push(item.scheme.schemename);
});
res.data.map(item => {
if (!webSchemenameArr.includes(item.schemename))
schemeArr.push(item.schemename)
})
setSchemename(schemeArr)
if (!webSchemenameArr.includes(item.schemename)) schemeArr.push(item.schemename);
});
setSchemename(schemeArr);
if (schemeArr.length) {
setVisible(true);
}
else {
} else {
notification.warning({
message: '提示',
duration: 3,
description: '请先配置方案',
});
}
} else {
setTreeLoading(false);
notification.warning({
......@@ -348,23 +341,23 @@ const VectorData = props => {
description: '请先配置方案',
});
}
}
)
}
});
};
useEffect(() => {
renderTile();
}, [flag]);
// 获取瓦片数据配置数据
const renderTile = () => {
setCheckLoading(true)
setCheckLoading(true);
//查询手持方案
// var schemeConfigQueryRequest = GetMaplayerByTerminalType({
// terminalType: 'phone',
// isBaseMap: false
// })
//查询web方案
var webSchemeQueryRequest = GetWebSchemaList()
Promise.all([ webSchemeQueryRequest]).then(res => {
var webSchemeQueryRequest = GetWebSchemaList();
Promise.all([webSchemeQueryRequest])
.then(res => {
// if (res[0].msg==="Ok" && res[0].data.phone) {
// let arr = []
// res[0].data.phone.optionalLayer.layers.map((item, index) => {
......@@ -381,54 +374,58 @@ const VectorData = props => {
// setHandStatus(arr)
// }
if (res[0].msg==="Ok" && res[0].data) {
let arr = []
if (res[0].msg === 'Ok' && res[0].data) {
let arr = [];
res[0].data.map((item, index) => {
if (item.isDefault) {
arr.push(true)
arr.push(true);
} else {
arr.push(false)
arr.push(false);
}
item.isStatus = 'web'
return item
})
setWebData(res[0].data)
setWebStatus(arr)
item.isStatus = 'web';
return item;
});
setWebData(res[0].data);
setWebStatus(arr);
}
setCheckLoading(false)
}).catch(e=>{
setCheckLoading(false)
setCheckLoading(false);
})
.catch(e => {
setCheckLoading(false);
});
};
return (
<>
<Spin tip="loading..." spinning={checkLoading}>
<div className={styles.solutionConfig}>
<div >
<Divider orientation="left"><div className={styles.divider}> Web <PlusOutlined
onClick={() => { addType('add') }}
className={styles.dividerIcon} /></div></Divider>
<div>
<Divider orientation="left">
<div className={styles.divider}>
{' '}
Web{' '}
<PlusOutlined
onClick={() => {
addType('add');
}}
className={styles.dividerIcon}
/>
</div>
</Divider>
<Table
columns={columns}
dataSource={webData}
bordered
pagination={{
showTotal: (total, range) =>
`第${range[0]}-${range[1]} 条/共 ${total} 条`,
showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`,
defaultPageSize: 8,
onChange: (value) => {
setWebCurrent(value - 1)
}
onChange: value => {
setWebCurrent(value - 1);
},
}}
rowKey={(record, index) => record.scheme.schemename}
scroll={{ y: 400 }}
>
</Table>
scroll={{ y: 600 }}
/>
</div>
{/* <Divider orientation="left"><div className={styles.divider}>手持 <PlusOutlined
onClick={() => { addType('addHand') }}
......@@ -461,6 +458,6 @@ const VectorData = props => {
listData={schemename}
/>
</>
)
}
export default VectorData
\ No newline at end of file
);
};
export default VectorData;
import { Space, Table, Button, Popconfirm, notification, Spin } from 'antd';
import React, { useState, useEffect } from 'react';
import styles from '../SchemeConfig.less'
import {
GettMaplayer,
deleteConfig
} from '@/services/webConfig/api';
import AddModal from './AddModal'
import styles from '../SchemeConfig.less';
import { GettMaplayer, deleteConfig } from '@/services/webConfig/api';
import AddModal from './AddModal';
const TileData = props => {
const [treeLoading, setTreeLoading] = useState(false);// 弹窗显示
const [treeLoading, setTreeLoading] = useState(false); // 弹窗显示
const [tileData, setTileData] = useState([]); // table表格数据
const [visible, setVisible] = useState(false); // 弹窗
const [type, setType] = useState(''); // 弹窗类型
......@@ -19,25 +16,25 @@ const TileData = props => {
title: '服务名',
dataIndex: 'servicename',
key: 'servicename',
align: 'center'
align: 'center',
},
{
title: '标签',
dataIndex: 'label',
key: 'label',
align: 'center'
align: 'center',
},
{
title: '类型',
dataIndex: 'type',
key: 'type',
align: 'center'
align: 'center',
},
{
title: '透明度',
dataIndex: 'alpha',
key: 'alpha',
align: 'center'
align: 'center',
},
{
title: '编辑',
......@@ -70,27 +67,27 @@ const TileData = props => {
</Space>
),
},
];
const changebaseMap = (record) => {
const changebaseMap = record => {
setType('edit');
setFormObj(record);
setVisible(true);
}
};
const onSubmit = prop => {
setVisible(false);
setFlag(flag + 1)
setFlag(flag + 1);
};
const delConfirm = (record) => {
const delConfirm = record => {
const { servicename = '' } = record;
setTreeLoading(true);
deleteConfig({
servicename: servicename,
terminalType: 'base',
isBaseMap: true
}).then(res => {
setFlag(flag + 1)
isBaseMap: true,
})
.then(res => {
setFlag(flag + 1);
setTreeLoading(false);
if (res.msg === 'Ok') {
// form.resetFields();
......@@ -107,47 +104,45 @@ const TileData = props => {
description: res.message || '删除失败',
});
}
}).catch(err => {
setFlag(flag + 1)
setTreeLoading(false);
})
}
.catch(err => {
setFlag(flag + 1);
setTreeLoading(false);
});
};
const handleAdd = () => {
if (baseMap.length) {
setType('add');
setVisible(true);
}
else {
} else {
notification.warning({
message: '提示',
duration: 3,
description: '地图类型已都存在,可编辑修改',
});
}
}
};
useEffect(() => {
renderTile();
}, [flag]);
// 获取瓦片数据配置数据
const renderTile = () => {
setTreeLoading(true);
const baseMapData = ['高德地形', '高德影像', '天地图地形', '天地图影像']
const baseMapData = ['高德地形', '高德影像', '天地图地形', '天地图影像'];
GettMaplayer({
terminalType: 'base',
isBaseMap: true
}).then(
res => {
if (res.msg === "Ok") {
isBaseMap: true,
}).then(res => {
if (res.msg === 'Ok') {
setTreeLoading(false);
setTileData(res.data.general.baseMap.layers);
res.data.general.baseMap.layers.map((item) => {
res.data.general.baseMap.layers.map(item => {
let index = baseMapData.indexOf(item.servicename);
if (index != -1) {
baseMapData.splice(index, 1);
}
})
setBaseMap(baseMapData)
});
setBaseMap(baseMapData);
} else {
setTreeLoading(false);
notification.error({
......@@ -155,17 +150,19 @@ const TileData = props => {
description: res.message,
});
}
}
)
});
};
return (
<>
<Spin tip="loading..." spinning={treeLoading}>
<div className={styles.tileBtn}>
<Button type="primary" onClick={() => {
<Button
type="primary"
onClick={() => {
handleAdd();
}} >
}}
>
新增
</Button>
</div>
......@@ -174,14 +171,11 @@ const TileData = props => {
dataSource={tileData}
bordered
rowKey="type"
scroll={{ y: 400 }}
scroll={{ y: 600 }}
pagination={{
showTotal: (total, range) =>
`第${range[0]}-${range[1]} 条/共 ${total} 条`
showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`,
}}
>
</Table>
/>
<AddModal
visible={visible}
onCancel={() => setVisible(false)}
......@@ -192,6 +186,6 @@ const TileData = props => {
/>
</Spin>
</>
)
}
export default TileData
\ No newline at end of file
);
};
export default TileData;
......@@ -215,7 +215,7 @@ const VectorData = props => {
dataSource={tileData}
bordered
rowKey="CreateTime"
scroll={{ y: 400 }}
scroll={{ y: 600 }}
pagination={{
showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`,
}}
......
import { Button,Spin } from 'antd';
/* eslint-disable indent */
import { Button, Spin } from 'antd';
import React, { useState, useEffect } from 'react';
import styles from '../SchemeConfig.less'
import {
GetMaplayerByTerminalType
} from '@/services/webConfig/api';
import AddModal from './AddModal'
import Cards from './components/card'
import styles from '../SchemeConfig.less';
import { GetMaplayerByTerminalType } from '@/services/webConfig/api';
import AddModal from './AddModal';
import Cards from './components/card';
const VectorData = props => {
const [treeLoading, setTreeLoading] = useState(false);// 弹窗显示
const [treeLoading, setTreeLoading] = useState(false); // 弹窗显示
const [tileData, setTileData] = useState([]); // 页面初始化数据
const [visible, setVisible] = useState(false); // 弹窗
const [flag, setFlag] = useState(0); // 状态更新
const [type, setType] = useState(''); // 弹窗类型
const [formObj, setFormObj] = useState({});
const onSubmit = prop => {
setVisible(false);
setFlag(flag + 1)
setFlag(flag + 1);
};
const onDeletebaseMap = value => {
setFlag(flag + 1);
};
const onDeletebaseMap = (value) => {
setFlag(flag + 1)
}
const handleAdd = () => {
setType('schemeAdd');
setVisible(true);
}
};
useEffect(() => {
renderTile();
}, [flag]);
......@@ -34,39 +32,48 @@ const VectorData = props => {
setTreeLoading(true);
GetMaplayerByTerminalType({
terminalType: 'scheme',
isBaseMap: false
}).then(
res => {
console.log('res',res);
if (res.msg ==='Ok') {
isBaseMap: false,
}).then(res => {
console.log('res', res);
if (res.msg === 'Ok') {
setTreeLoading(false);
setTileData(res.data.scheme.optionalLayer.layers);
} else {
setTreeLoading(false);
}
}
)
});
};
return (
<>
<Spin tip="loading..." spinning={treeLoading}>
<div style={{ width: 'calc(100vw - 265px)' }}>
<div style={{ height: '780px', overflow: 'scroll' }}>
<div className={styles.tileBtn}>
<Button type="primary" onClick={() => {
<Button
type="primary"
onClick={() => {
handleAdd();
}} >
}}
>
新增
</Button>
</div>
<div className={styles.cardsList}>
{tileData && tileData.length ?
tileData.map((item, index) => {
return <div className={styles.cardItem} key={index} span={5} offset={2} style={{ marginBottom: '1rem' }}>
<Cards item={item} deletebaseMaps={onDeletebaseMap} ></Cards>
{tileData && tileData.length
? tileData.map((item, index) => {
return (
<div
className={styles.cardItem}
key={index}
span={5}
offset={2}
style={{ marginBottom: '1rem' }}
>
<Cards item={item} deletebaseMaps={onDeletebaseMap} />
</div>
);
})
: ''}
</div>
}) : ''}
</div >
<AddModal
visible={visible}
onCancel={() => setVisible(false)}
......@@ -77,6 +84,6 @@ const VectorData = props => {
</div>
</Spin>
</>
)
}
export default VectorData
\ No newline at end of file
);
};
export default VectorData;
import { Space, Table, Button, Popconfirm, notification, Divider, Checkbox, Spin } from 'antd';
import React, { useState, useEffect } from 'react';
import styles from '../SchemeConfig.less'
import VisibleRoleModal from '@/pages/platformCenter/messageManage/projectManage/components/RolseSelect/VisibleRoleModal'
import styles from '../SchemeConfig.less';
import VisibleRoleModal from '@/pages/platformCenter/messageManage/projectManage/components/RolseSelect/VisibleRoleModal';
import { PlusOutlined } from '@ant-design/icons';
import {
PlusOutlined
} from '@ant-design/icons';
import {
deleteConfig, setServiceType, SetServiceConfig, GetMaplayerByTerminalType
deleteConfig,
setServiceType,
SetServiceConfig,
GetMaplayerByTerminalType,
} from '@/services/webConfig/api';
import {
UserAddOutlined
} from '@ant-design/icons';
import AddModal from './AddModal'
import { UserAddOutlined } from '@ant-design/icons';
import AddModal from './AddModal';
const VectorData = props => {
const [treeLoading, setTreeLoading] = useState(false);// 弹窗显示
const [treeLoading, setTreeLoading] = useState(false); // 弹窗显示
const [schemename, setSchemename] = useState([]);
const [record, setRecord] = useState({}); //选中关联角色的方案名
const [webCurrent, setWebCurrent] = useState(0); // web列表下标
......@@ -25,7 +24,7 @@ const VectorData = props => {
const [handStatus, setHandStatus] = useState([]); // 更新状态
const [webStatus, setWebStatus] = useState([]); // 更新状态
const [type, setType] = useState(''); // 弹窗类型
const [checkLoading, setCheckLoading] = useState(false)
const [checkLoading, setCheckLoading] = useState(false);
const [formObj, setFormObj] = useState({ user: 'admin', password: 'geoserver' });
const columns = [
{
......@@ -47,7 +46,7 @@ const VectorData = props => {
title: '方案名',
dataIndex: 'schemename',
key: 'schemename',
align: 'center'
align: 'center',
},
{
title: '关联角色',
......@@ -57,7 +56,12 @@ const VectorData = props => {
<Space>
<Space>
<div onClick={() => pickRole(record)} style={{ cursor: 'pointer' }}>
<VisibleRoleModal onSubmit={onPushSubmit} title={"关联角色"} initValues={record.roles != null ? record.roles.split(",") : []} operate={<UserAddOutlined />} />
<VisibleRoleModal
onSubmit={onPushSubmit}
title={'关联角色'}
initValues={record.roles != null ? record.roles.split(',') : []}
operate={<UserAddOutlined />}
/>
</div>
</Space>
</Space>
......@@ -85,8 +89,7 @@ const VectorData = props => {
</div>
</Space>
),
}
},
];
const columns1 = [
{
......@@ -108,7 +111,7 @@ const VectorData = props => {
title: '方案名',
dataIndex: 'schemename',
key: 'schemename',
align: 'center'
align: 'center',
},
{
title: '关联角色',
......@@ -117,7 +120,13 @@ const VectorData = props => {
render: (text, record, index) => (
<Space>
<div onClick={() => pickRole(record)} style={{ cursor: 'pointer' }}>
<VisibleRoleModal onSubmit={onPushSubmit} selectValue={[]} title={"关联角色"} initValues={record.roles != null ? record.roles.split(",") : []} operate={<UserAddOutlined />} />
<VisibleRoleModal
onSubmit={onPushSubmit}
selectValue={[]}
title={'关联角色'}
initValues={record.roles != null ? record.roles.split(',') : []}
operate={<UserAddOutlined />}
/>
</div>
</Space>
),
......@@ -144,146 +153,146 @@ const VectorData = props => {
</div>
</Space>
),
}
},
];
//获取选中的角色
const onPushSubmit = (value) => {
let id = []
const onPushSubmit = value => {
let id = [];
if (value.length) {
id = value.map(item => { return item.id })
id = value.map(item => {
return item.id;
});
let query = {
schemename: record.schemename,
terminalType: record.isStatus,
isBaseMap: false,
jsonCfg: JSON.stringify({
roles: id.join(',')
})
}
SetServiceConfig(query).then(res => {
if (res.msg === "Ok") {
prompt('success', '关联角色成功')
setFlag(flag + 1)
}
else {
prompt('fail', '关联角色失败')
roles: id.join(','),
}),
};
SetServiceConfig(query)
.then(res => {
if (res.msg === 'Ok') {
prompt('success', '关联角色成功');
setFlag(flag + 1);
} else {
prompt('fail', '关联角色失败');
}
}).catch(err => {
prompt('fail', '网络请求失败')
})
}
.catch(err => {
prompt('fail', '网络请求失败');
});
}
};
//获取角色
const pickRole = (record) => {
const pickRole = record => {
console.log('recird', record);
setRecord(record)
}
setRecord(record);
};
//设置web方案
const onChangeCheck = (e, record, index) => {
setCheckLoading(true)
setCheckLoading(true);
const newLoadings = [...webStatus];
newLoadings.map((item, loadIndex) => {
return loadIndex == index ? newLoadings[loadIndex] = !newLoadings[loadIndex] : newLoadings[loadIndex] = false
})
setWebStatus(newLoadings)
return loadIndex == index
? (newLoadings[loadIndex] = !newLoadings[loadIndex])
: (newLoadings[loadIndex] = false);
});
setWebStatus(newLoadings);
let query = {
schemename: record['schemename'],
type: 'dynamic'
}
type: 'dynamic',
};
if (!newLoadings[index]) {
setServiceType(query).then(res => {
setCheckLoading(false)
setCheckLoading(false);
if (res.IsSuccess) {
const changehandData = [...webData];
changehandData[index].type = 'dynamic'
setWebData(changehandData)
prompt('success', '设置成功')
changehandData[index].type = 'dynamic';
setWebData(changehandData);
prompt('success', '设置成功');
} else {
prompt('fail', `${record['schemename']}默认设置时遇到错误:` + res.message)
prompt('fail', `${record['schemename']}默认设置时遇到错误:` + res.message);
}
})
return
});
return;
}
var beforeDefault = webData.findIndex((item) => item['type'] == 'pipenet');
var beforeDefault = webData.findIndex(item => item['type'] == 'pipenet');
setServiceType({
schemename: record['schemename'],
type: 'pipenet'
type: 'pipenet',
}).then(res => {
setCheckLoading(false)
setCheckLoading(false);
if (res.IsSuccess) {
const changehandData = [...webData];
changehandData[index].type = 'pipenet'
setWebData(changehandData)
changehandData[index].type = 'pipenet';
setWebData(changehandData);
if (beforeDefault != -1) {
setServiceType({
schemename: changehandData[beforeDefault].schemename,
type: 'dynamic'
type: 'dynamic',
}).then(res => {
setCheckLoading(false)
setCheckLoading(false);
if (res.IsSuccess) {
const changehandData1 = [...webData];
changehandData1[beforeDefault].type = 'dynamic'
setWebData(changehandData1)
prompt('success', '设置成功')
changehandData1[beforeDefault].type = 'dynamic';
setWebData(changehandData1);
prompt('success', '设置成功');
return;
}
prompt('fail', `${record['schemename']}默认设置时遇到错误:` + res.message)
})
prompt('fail', `${record['schemename']}默认设置时遇到错误:` + res.message);
});
}
}
})
}
});
};
//选择手持方案
const onChangeHand = (e, record, index) => {
setCheckLoading(true)
setCheckLoading(true);
const newLoadings = [...handStatus];
newLoadings.map((item, loadIndex) => {
return loadIndex == index ? newLoadings[loadIndex] = !newLoadings[loadIndex] : newLoadings[loadIndex] = false
})
setHandStatus(newLoadings)
return loadIndex == index
? (newLoadings[loadIndex] = !newLoadings[loadIndex])
: (newLoadings[loadIndex] = false);
});
setHandStatus(newLoadings);
let query = {
schemename: record['schemename'],
terminalType: 'phone',
isBaseMap: false,
jsonCfg: JSON.stringify({
isDefault: newLoadings[index],
})
}
}),
};
if (!newLoadings[index]) {
SetServiceConfig(query).then(res => {
setCheckLoading(false)
if (res.msg === "Ok") {
setCheckLoading(false);
if (res.msg === 'Ok') {
const changehandData = [...handData];
changehandData[index].isDefault = false
setHandData(changehandData)
prompt('success', '设置成功')
changehandData[index].isDefault = false;
setHandData(changehandData);
prompt('success', '设置成功');
} else {
prompt('fail', `${record['schemename']}默认设置时遇到错误:` + res.message)
prompt('fail', `${record['schemename']}默认设置时遇到错误:` + res.message);
}
})
return
});
return;
}
var beforeDefault = handData.findIndex((item) => item['isDefault']);
var beforeDefault = handData.findIndex(item => item['isDefault']);
SetServiceConfig({
schemename: record['schemename'],
terminalType: 'phone',
isBaseMap: false,
jsonCfg: JSON.stringify({
isDefault: true,
})
}),
}).then(res => {
setCheckLoading(false)
if (res.msg === "Ok") {
setCheckLoading(false);
if (res.msg === 'Ok') {
const changehandData = [...handData];
changehandData[index].isDefault = true
setHandData(changehandData)
changehandData[index].isDefault = true;
setHandData(changehandData);
if (beforeDefault != -1) {
SetServiceConfig({
schemename: changehandData[beforeDefault].schemename,
......@@ -291,22 +300,22 @@ const VectorData = props => {
isBaseMap: false,
jsonCfg: JSON.stringify({
isDefault: false,
})
}),
}).then(res => {
setCheckLoading(false)
setCheckLoading(false);
if (res.IsSuccess) {
const changehandData1 = [...handData];
changehandData1[beforeDefault].isDefault = false
setHandData(changehandData1)
prompt('success', '设置成功')
changehandData1[beforeDefault].isDefault = false;
setHandData(changehandData1);
prompt('success', '设置成功');
return;
}
prompt('fail', `${record['schemename']}默认设置时遇到错误:` + res.message)
})
}
prompt('fail', `${record['schemename']}默认设置时遇到错误:` + res.message);
});
}
})
}
});
};
const prompt = (type, content) => {
if (type == 'success') {
notification.success({
......@@ -314,85 +323,78 @@ const VectorData = props => {
duration: 3,
description: content,
});
}
else {
} else {
notification.error({
message: '提示',
duration: 3,
description: content,
});
}
}
};
const onSubmit = prop => {
setVisible(false);
setFlag(flag + 1)
setFlag(flag + 1);
};
//删除web配置方案
const delWebConfirm = (record) => {
const delWebConfirm = record => {
deleteConfig({
schemename: record['schemename'],
terminalType: 'web',
isBaseMap: false
isBaseMap: false,
}).then(res => {
if (res.msg === "Ok") {
prompt('success', '删除成功')
setFlag(flag + 1)
if (res.msg === 'Ok') {
prompt('success', '删除成功');
setFlag(flag + 1);
} else {
prompt('fail', '删除失败')
};
})
prompt('fail', '删除失败');
}
});
};
//删除手持配置方案
const delhandConfirm = (record) => {
const delhandConfirm = record => {
deleteConfig({
schemename: record['schemename'],
terminalType: 'phone',
isBaseMap: false
isBaseMap: false,
}).then(res => {
if (res.msg === "Ok") {
prompt('success', '删除成功')
setFlag(flag + 1)
if (res.msg === 'Ok') {
prompt('success', '删除成功');
setFlag(flag + 1);
} else {
prompt('fail', '删除失败')
};
})
prompt('fail', '删除失败');
}
});
};
//添加方案
const addType = (type) => {
const addType = type => {
setType(type);
let listData = []
type == 'add' ? listData = webData : listData = handData
let webSchemenameArr = [], schemeArr = []
let listData = [];
type == 'add' ? (listData = webData) : (listData = handData);
let webSchemenameArr = [],
schemeArr = [];
setTreeLoading(true);
GetMaplayerByTerminalType({
terminalType: 'scheme',
isBaseMap: false
}).then(
res => {
isBaseMap: false,
}).then(res => {
if (res.data.scheme && res.data.scheme.optionalLayer.layers.length) {
setTreeLoading(false);
listData.map(item => {
webSchemenameArr.push(item.schemename)
})
webSchemenameArr.push(item.schemename);
});
res.data.scheme.optionalLayer.layers.map(item => {
if (!webSchemenameArr.includes(item.schemename))
schemeArr.push(item.schemename)
})
setSchemename(schemeArr)
if (!webSchemenameArr.includes(item.schemename)) schemeArr.push(item.schemename);
});
setSchemename(schemeArr);
if (schemeArr.length) {
setVisible(true);
}
else {
} else {
notification.warning({
message: '提示',
duration: 3,
description: '请先配置方案',
});
}
} else {
setTreeLoading(false);
notification.warning({
......@@ -401,112 +403,120 @@ const VectorData = props => {
description: '请先配置方案',
});
}
}
)
}
});
};
useEffect(() => {
renderTile();
}, [flag]);
// 获取瓦片数据配置数据
const renderTile = () => {
setCheckLoading(true)
setCheckLoading(true);
//查询手持方案
var schemeConfigQueryRequest = GetMaplayerByTerminalType({
terminalType: 'phone',
isBaseMap: false
})
isBaseMap: false,
});
//查询web方案
var webSchemeQueryRequest = GetMaplayerByTerminalType({
terminalType: 'web',
isBaseMap: false
})
Promise.all([schemeConfigQueryRequest, webSchemeQueryRequest]).then(res => {
isBaseMap: false,
});
Promise.all([schemeConfigQueryRequest, webSchemeQueryRequest])
.then(res => {
console.log('res', res);
if (res[0].msg === "Ok" && res[0].data.phone) {
let arr = []
if (res[0].msg === 'Ok' && res[0].data.phone) {
let arr = [];
res[0].data.phone.optionalLayer.layers.map((item, index) => {
if (item.isDefault) {
arr.push(true)
arr.push(true);
} else {
arr.push(false)
arr.push(false);
}
item.isStatus = 'phone'
return item
})
setHandData(res[0].data.phone.optionalLayer.layers)
setHandStatus(arr)
item.isStatus = 'phone';
return item;
});
setHandData(res[0].data.phone.optionalLayer.layers);
setHandStatus(arr);
}
if (res[1].msg === "Ok" && res[1].data.web) {
let arr = []
if (res[1].msg === 'Ok' && res[1].data.web) {
let arr = [];
res[1].data.web.optionalLayer.layers.map((item, index) => {
if (item.type === "pipenet") {
arr.push(true)
if (item.type === 'pipenet') {
arr.push(true);
} else {
arr.push(false)
arr.push(false);
}
item.isStatus = 'web'
return item
})
setWebData(res[1].data.web.optionalLayer.layers)
setWebStatus(arr)
item.isStatus = 'web';
return item;
});
setWebData(res[1].data.web.optionalLayer.layers);
setWebStatus(arr);
}
setCheckLoading(false)
}).catch(e => {
setCheckLoading(false)
setCheckLoading(false);
})
.catch(e => {
setCheckLoading(false);
});
};
return (
<>
<Spin tip="loading..." spinning={checkLoading}>
<div className={styles.solutionConfig}>
<div >
<Divider orientation="left"><div className={styles.divider}> Web <PlusOutlined
onClick={() => { addType('add') }}
className={styles.dividerIcon} /></div></Divider>
<div>
<Divider orientation="left">
<div className={styles.divider}>
{' '}
Web{' '}
<PlusOutlined
onClick={() => {
addType('add');
}}
className={styles.dividerIcon}
/>
</div>
</Divider>
<Table
columns={columns}
dataSource={webData}
bordered
pagination={{
showTotal: (total, range) =>
`第${range[0]}-${range[1]} 条/共 ${total} 条`,
showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`,
defaultPageSize: 8,
onChange: (value) => {
setWebCurrent(value - 1)
}
onChange: value => {
setWebCurrent(value - 1);
},
}}
rowKey="schemename"
scroll={{ y: 400 }}
>
</Table>
/>
</div>
<Divider orientation="left"><div className={styles.divider}>手持 <PlusOutlined
onClick={() => { addType('addHand') }}
className={styles.dividerIcon} /></div> </Divider>
<Divider orientation="left">
<div className={styles.divider}>
手持{' '}
<PlusOutlined
onClick={() => {
addType('addHand');
}}
className={styles.dividerIcon}
/>
</div>{' '}
</Divider>
<Table
columns={columns1}
dataSource={handData}
bordered
rowKey="schemename"
scroll={{ y: 400 }}
scroll={{ y: 600 }}
pagination={{
showTotal: (total, range) =>
`第${range[0]}-${range[1]} 条/共 ${total} 条`,
showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`,
defaultPageSize: 8,
onChange: (value) => {
setHandCurrent(value - 1)
}
onChange: value => {
setHandCurrent(value - 1);
},
}}
>
</Table>
/>
</div>
</Spin>
<AddModal
......@@ -518,6 +528,6 @@ const VectorData = props => {
listData={schemename}
/>
</>
)
}
export default VectorData
\ No newline at end of file
);
};
export default VectorData;
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