Commit 726aab0f authored by 皮倩雯's avatar 皮倩雯

fix: '宿主管理优化'

parent 3c09a493
Pipeline #71888 passed with stages
...@@ -13,14 +13,14 @@ import { Modal, notification } from 'antd'; ...@@ -13,14 +13,14 @@ import { Modal, notification } from 'antd';
import Sortable from 'sortablejs'; import Sortable from 'sortablejs';
import styles from './SortModal.less'; import styles from './SortModal.less';
import DragTable from '@/components/DragTable/DragTable'; import DragTable from '@/components/DragTable/DragTable';
import { SortScheme } from '@/services/webConfig/api'; import { SortScheme, SortSchemePost } from '@/services/webConfig/api';
const SortModal = props => { const SortModal = props => {
const { callBackSubmit = () => {}, title, visible, onCancel, sortData } = props; const { callBackSubmit = () => {}, title, visible, onCancel, sortData } = props;
const [orderTable, setOrderTable] = useState([]); const [orderTable, setOrderTable] = useState([]);
const [flowIDs, setFlowIDs] = useState([]); const [flowIDs, setFlowIDs] = useState([]);
const onSumbit = () => { const onSumbit = () => {
SortScheme({ sortName: flowIDs.toString() }).then(res => { SortSchemePost({ sortNames: flowIDs }).then(res => {
if (res.code === '0') { if (res.code === '0') {
callBackSubmit(); callBackSubmit();
onCancel(); onCancel();
......
...@@ -28,8 +28,7 @@ const AddModal = props => { ...@@ -28,8 +28,7 @@ const AddModal = props => {
useEffect(() => { useEffect(() => {
if (visible) { if (visible) {
if (type === 'edit') { if (type === 'edit') {
let data = ['CityServer', 'IOT', 'CivData', 'GIS']; if (pickItem.remark) {
if (data.indexOf(pickItem.key) != -1) {
setHidden(true); setHidden(true);
} }
let aa = pickItem.methods.replace(/\s/g, ''); let aa = pickItem.methods.replace(/\s/g, '');
...@@ -80,7 +79,7 @@ const AddModal = props => { ...@@ -80,7 +79,7 @@ const AddModal = props => {
setCurrent(true); setCurrent(true);
} }
} else { } else {
form.setFieldsValue({ IsAuthentication: true }); form.setFieldsValue({ IsAuthentication: true, Priority: 1, Methods: ['GET', 'POST'] });
} }
} else { } else {
setHidden(false); setHidden(false);
...@@ -95,11 +94,8 @@ const AddModal = props => { ...@@ -95,11 +94,8 @@ const AddModal = props => {
if (validate) { if (validate) {
setLoading(true); setLoading(true);
let obj = form.getFieldsValue(); let obj = form.getFieldsValue();
console.log(obj.IsAuthentication);
console.log(obj.Priority);
let aa = obj.Methods.toString(); let aa = obj.Methods.toString();
obj.Methods = aa.replace(/\s/g, ''); obj.Methods = aa.replace(/\s/g, '');
console.log(obj.Methods);
let data = { let data = {
UpstreamPathTemplate: obj.UpstreamPathTemplate || null, UpstreamPathTemplate: obj.UpstreamPathTemplate || null,
DownstreamPathTemplate: obj.DownstreamPathTemplate || null, DownstreamPathTemplate: obj.DownstreamPathTemplate || null,
...@@ -125,65 +121,34 @@ const AddModal = props => { ...@@ -125,65 +121,34 @@ const AddModal = props => {
ReRouteIsCaseSensitive: obj.ReRouteIsCaseSensitive || null, ReRouteIsCaseSensitive: obj.ReRouteIsCaseSensitive || null,
DownstreamHttpMethod: obj.DownstreamHttpMethod || null, DownstreamHttpMethod: obj.DownstreamHttpMethod || null,
}; };
console.log(data); let str = type === 'add' ? '新增' : '编辑';
if (type === 'add') { SaveRoutes([
SaveRoutes([ {
{ ...data,
...data, IsEnable: 1,
IsEnable: 1, },
}, ])
]) .then(res => {
.then(res => { setLoading(false);
setLoading(false); if (res.code === 0) {
if (res.code === 0) { onCancel();
onCancel(); callBackSubmit();
callBackSubmit(); notification.success({
notification.success({ message: '提示',
message: '提示', duration: 3,
duration: 3, description: res.msg || `${str}成功`,
description: res.msg || '新增成功', });
}); } else {
} else { notification.error({
notification.error({ message: '提示',
message: '提示', duration: 3,
duration: 3, description: res.msg || `${str}失败`,
description: res.msg || '新增失败', });
}); }
} })
}) .catch(err => {
.catch(err => { setLoading(false);
setLoading(false); });
});
} else {
SaveRoutes([
{
id: pickItem.id,
...data,
IsEnable: 1,
},
])
.then(res => {
setLoading(false);
if (res.code === 0) {
onCancel();
callBackSubmit();
notification.success({
message: '提示',
duration: 3,
description: res.msg || '编辑成功',
});
} else {
notification.error({
message: '提示',
duration: 3,
description: res.msg || '编辑失败',
});
}
})
.catch(err => {
setLoading(false);
});
}
} }
}); });
}; };
...@@ -274,7 +239,7 @@ const AddModal = props => { ...@@ -274,7 +239,7 @@ const AddModal = props => {
}, },
]} ]}
> >
<Input allowClear placeholder="示例:/{url}" disabled={hidden} /> <Input allowClear placeholder="示例:/{url}" />
</Item> </Item>
<Item <Item
label="上游请求方式" label="上游请求方式"
...@@ -286,7 +251,7 @@ const AddModal = props => { ...@@ -286,7 +251,7 @@ const AddModal = props => {
}, },
]} ]}
> >
<Checkbox.Group options={plainOptions} style={{ display: 'flex' }} disabled={hidden} /> <Checkbox.Group options={plainOptions} style={{ display: 'flex' }} />
</Item> </Item>
<Item <Item
label="下游服务地址" label="下游服务地址"
...@@ -302,12 +267,8 @@ const AddModal = props => { ...@@ -302,12 +267,8 @@ const AddModal = props => {
</Item> </Item>
<Item label="身份认证" name="IsAuthentication"> <Item label="身份认证" name="IsAuthentication">
<Radio.Group> <Radio.Group>
<Radio value={true} disabled={hidden}> <Radio value={true}>开启</Radio>
开启 <Radio value={false}>关闭</Radio>
</Radio>
<Radio value={false} disabled={hidden}>
关闭
</Radio>
</Radio.Group> </Radio.Group>
</Item> </Item>
<Item <Item
...@@ -360,7 +321,12 @@ const AddModal = props => { ...@@ -360,7 +321,12 @@ const AddModal = props => {
name="Priority" name="Priority"
labelCol={{ span: 12 }} labelCol={{ span: 12 }}
> >
<InputNumber min={0} max={10} defaultValue={0} disabled={hidden} /> <InputNumber
min={0}
max={10}
defaultValue={0}
disabled={pickItem.remark === '万能模板'}
/>
</Item> </Item>
</Col> </Col>
<Col span={16}> <Col span={16}>
......
/* eslint-disable indent */
/* eslint-disable no-unused-expressions */ /* eslint-disable no-unused-expressions */
/* eslint-disable no-else-return */ /* eslint-disable no-else-return */
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
...@@ -28,12 +29,15 @@ import { ...@@ -28,12 +29,15 @@ import {
} from '@ant-design/icons'; } from '@ant-design/icons';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import styles from './gateWay.less'; import styles from './gateWay.less';
import axios from 'axios';
import { import {
GetGateWay, GetGateWay,
UpdateGeteWay, UpdateGeteWay,
GetReRoutes, GetReRoutes,
GetReRoutesFirst, GetReRoutesFirst,
DelRoutes, DelRoutes,
DelRouteByUpUrl,
GetWayHealthCheck,
} from '@/services/hostmanager/hostmanager'; } from '@/services/hostmanager/hostmanager';
import { get, PUBLISH_SERVICE } from '@/services/index'; import { get, PUBLISH_SERVICE } from '@/services/index';
import configuration from '../../../../assets/images/icons/消息.svg'; import configuration from '../../../../assets/images/icons/消息.svg';
...@@ -43,6 +47,7 @@ import CheckModal from './CheckModal'; ...@@ -43,6 +47,7 @@ import CheckModal from './CheckModal';
const GateConfig = () => { const GateConfig = () => {
const [loading, setLoading] = useState(false); // 加载 const [loading, setLoading] = useState(false); // 加载
const [allLoading, setAllLoading] = useState(false); // 加载
const [form] = Form.useForm(); const [form] = Form.useForm();
const [flag, setFlag] = useState(1); const [flag, setFlag] = useState(1);
...@@ -63,70 +68,95 @@ const GateConfig = () => { ...@@ -63,70 +68,95 @@ const GateConfig = () => {
localStorage.setItem('panda-publish', ''); localStorage.setItem('panda-publish', '');
console.log(checked); console.log(checked);
if (checked) { if (checked) {
UpdateGeteWay({ isUsed: checked }).then(res => { setAllLoading(true);
if (res.code === 0) { // axios({
console.log(localStorage.getItem('token')); // method: 'get',
// localStorage.removeItem('token'); // url: `${tableData[0].url}/PandaOMS/OMS/health/get`,
window.globalConfig = { // }).then(res => {
...window.globalConfig, // console.log(res);
access_token: localStorage.getItem('token'), // debugger;
hasGateWay: true, // });
apiGatewayDomain: `${window.location.origin}${'/PandaCore/GateWay'}`, GetWayHealthCheck().then(resData => {
}; setAllLoading(false);
setFlag(flag + 1); if (resData.code === 0) {
message.success('设置成功'); UpdateGeteWay({ isUsed: checked }).then(res => {
// const key = 'authrizeFail'; if (res.code === 0) {
// notification.warning({ console.log(localStorage.getItem('token'));
// key, // localStorage.removeItem('token');
// title: '提示', window.globalConfig = {
// message: '授权失败,即将跳转到登录页', ...window.globalConfig,
// duration: 2, access_token: localStorage.getItem('token'),
// }); hasGateWay: true,
// setTimeout(() => { apiGatewayDomain: `${window.location.origin}${'/PandaCore/GateWay'}`,
// history.push(`/user/login`); };
// }, 2000); setFlag(flag + 1);
const key = 'authrizeFail'; message.success('设置成功');
const btn = ( // const key = 'authrizeFail';
<Button // notification.warning({
type="primary" // key,
size="small" // title: '提示',
onClick={() => { // message: '授权失败,即将跳转到登录页',
notification.close(key); // duration: 2,
window.location.href = `/${process.env.PUBLIC_PATH || 'civmanage'}/user/login`; // });
}} // setTimeout(() => {
> // history.push(`/user/login`);
确定 // }, 2000);
</Button> const key = 'authrizeFail';
); const btn = (
if (!/\/user\/login$/.test(window.location.pathname)) { <Button
notification.warning({ type="primary"
key, size="small"
title: '提示', onClick={() => {
message: '授权失败,即将跳转到登录页', notification.close(key);
duration: 2, window.location.href = `/${process.env.PUBLIC_PATH || 'civmanage'}/user/login`;
btn, }}
>
确定
</Button>
);
if (!/\/user\/login$/.test(window.location.pathname)) {
notification.warning({
key,
title: '提示',
message: '授权失败,即将跳转到登录页',
duration: 2,
btn,
});
setTimeout(() => {
window.location.href = `/${process.env.PUBLIC_PATH || 'civmanage'}/user/login`;
}, 2000);
}
} else {
message.error('设置失败');
}
});
setTimeout(() => {
localStorage.setItem('panda-publish', 'getway');
setLoading(true);
GetReRoutes({
UpstreamPathTemplate: '',
key: '',
}).then(res => {
setLoading(false);
if (res.code === 0) {
setTableData(res.data);
}
}); });
setTimeout(() => { }, 0);
window.location.href = `/${process.env.PUBLIC_PATH || 'civmanage'}/user/login`;
}, 2000);
}
} else { } else {
message.error('设置失败'); message.warning({
content: (
<>
万能模板下游服务 [<span style={{ color: '#1890ff' }}>{tableData[0].url}</span>]
检测不通过,请修复后再开启!
</>
),
style: {
marginTop: '10vh',
},
});
} }
}); });
setTimeout(() => {
localStorage.setItem('panda-publish', 'getway');
setLoading(true);
GetReRoutes({
UpstreamPathTemplate: '',
key: '',
}).then(res => {
setLoading(false);
if (res.code === 0) {
setTableData(res.data);
}
});
}, 0);
} else { } else {
UpdateGeteWay({ isUsed: checked }).then(res => { UpdateGeteWay({ isUsed: checked }).then(res => {
if (res.code === 0) { if (res.code === 0) {
...@@ -213,46 +243,13 @@ const GateConfig = () => { ...@@ -213,46 +243,13 @@ const GateConfig = () => {
align: 'center', align: 'center',
width: 150, width: 150,
render: (text, record) => { render: (text, record) => {
if (record.key === 'CityServer') { if (record.remark) {
return ( return (
<Tooltip placement="top" title={text}> <Tooltip placement="top" title={text}>
<span> <span>
{searchStyle1(text)}{' '} {searchStyle1(text)}{' '}
<Tag color="cyan" style={{ marginRight: '0px' }}> <Tag color="cyan" style={{ marginRight: '0px' }}>
万能模板 {record.remark}
</Tag>
</span>
</Tooltip>
);
} else if (record.key === 'IOT') {
return (
<Tooltip placement="top" title={text}>
<span>
{searchStyle1(text)}{' '}
<Tag color="purple" style={{ marginRight: '0px' }}>
物联
</Tag>
</span>
</Tooltip>
);
} else if (record.key === 'CivData') {
return (
<Tooltip placement="top" title={text}>
<span>
{searchStyle1(text)}{' '}
<Tag color="green" style={{ marginRight: '0px' }}>
中台
</Tag>
</span>
</Tooltip>
);
} else if (record.key === 'GIS') {
return (
<Tooltip placement="top" title={text}>
<span>
{searchStyle1(text)}{' '}
<Tag color="volcano" style={{ marginRight: '0px' }}>
GIS
</Tag> </Tag>
</span> </span>
</Tooltip> </Tooltip>
...@@ -273,13 +270,24 @@ const GateConfig = () => { ...@@ -273,13 +270,24 @@ const GateConfig = () => {
dataIndex: 'upstreamPathTemplate', dataIndex: 'upstreamPathTemplate',
key: 'upstreamPathTemplate', key: 'upstreamPathTemplate',
align: 'center', align: 'center',
render: (text, record) => ( render: (text, record) => {
<span> let str = window.location.origin + `/PandaCore/GateWay${text}`;
<Tooltip placement="top" title={`上游路由模板:${text}`}> let list = str.split(':');
{window.location.origin + `/PandaCore/GateWay${text}`} list[0] = record.downstreamScheme;
</Tooltip> let data = record.downstreamScheme;
</span> list.forEach((i, j) => {
), if (j > 0) {
data = data + ':' + i;
}
});
return (
<span>
<Tooltip placement="top" title={`上游路由模板:${text}`}>
{data}
</Tooltip>
</span>
);
},
}, },
// { // {
// title: '上游路由模板', // title: '上游路由模板',
...@@ -377,41 +385,41 @@ const GateConfig = () => { ...@@ -377,41 +385,41 @@ const GateConfig = () => {
align: 'center', align: 'center',
fixed: 'right', fixed: 'right',
render: record => { render: record => {
if (record.key != 'CityServer') { // if (record.key != 'CityServer') {
return ( return (
<Space size="middle"> <Space size="middle">
<Tooltip title="编辑"> <Tooltip title="编辑">
<EditTwoTone onClick={() => edit(record)} style={{ fontSize: '16px' }} /> <EditTwoTone onClick={() => edit(record)} style={{ fontSize: '16px' }} />
</Tooltip> </Tooltip>
{record.key != 'IOT' && record.key != 'CivData' && record.key != 'GIS' && ( {!record.remark && (
<Tooltip title="删除"> <Tooltip title="删除">
<Popconfirm <Popconfirm
placement="bottomRight" placement="bottomRight"
title={ title={
<p> <p>
即将删除 <span>{record.loginName}</span> 即将删除 <span>{record.loginName}</span>
,是否确认删除? ,是否确认删除?
</p> </p>
} }
okText="确认" okText="确认"
cancelText="取消" cancelText="取消"
onConfirm={() => dele(record)} onConfirm={() => dele(record)}
> >
<DeleteOutlined style={{ fontSize: '16px', color: '#e86060' }} /> <DeleteOutlined style={{ fontSize: '16px', color: '#e86060' }} />
</Popconfirm> </Popconfirm>
</Tooltip>
)}
</Space>
);
} else {
return (
<Space size="middle">
<Tooltip title="查看">
<SearchOutlined onClick={() => look(record)} style={{ fontSize: '16px' }} />
</Tooltip> </Tooltip>
</Space> )}
); </Space>
} );
// } else {
// return (
// <Space size="middle">
// <Tooltip title="查看">
// <SearchOutlined onClick={() => look(record)} style={{ fontSize: '16px' }} />
// </Tooltip>
// </Space>
// );
// }
}, },
}, },
]; ];
...@@ -508,8 +516,8 @@ const GateConfig = () => { ...@@ -508,8 +516,8 @@ const GateConfig = () => {
description: '默认数据无法删除', description: '默认数据无法删除',
}); });
} else { } else {
DelRoutes({ DelRouteByUpUrl({
Ids: e.id, upTemplate: e.upstreamPathTemplate,
}).then(res => { }).then(res => {
if (res.code === 0) { if (res.code === 0) {
GetReRoutes({ GetReRoutes({
...@@ -549,124 +557,125 @@ const GateConfig = () => { ...@@ -549,124 +557,125 @@ const GateConfig = () => {
return ( return (
<div className={styles.gateWay_container}> <div className={styles.gateWay_container}>
<Card style={{ width: '100%', height: 'calc(100vh - 130px)' }}> <Spin spinning={allLoading} tip="loading">
<div style={{ display: 'flex', alignItems: 'center', marginTop: '10px' }}> <Card style={{ width: '100%', height: 'calc(100vh - 130px)' }}>
<img src={configuration} style={{ height: '16px' }} alt="" /> <div style={{ display: 'flex', alignItems: 'center', marginTop: '10px' }}>
<span style={{ marginLeft: '10px', fontWeight: 'bold' }}>网关配置</span> <img src={configuration} style={{ height: '16px' }} alt="" />
</div> <span style={{ marginLeft: '10px', fontWeight: 'bold' }}>网关配置</span>
<Divider />
<div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: '20px' }}>
<div style={{ display: 'flex', alignItems: 'center' }}>
<div
style={{
marginLeft: '35px',
}}
>
网关状态
<Switch
checkedChildren="开启"
unCheckedChildren="关闭"
checked={currentConfig}
onChange={OperateNginx}
style={{ marginLeft: '35px' }}
/>
</div>
{console.log(currentConfig)}
</div> </div>
{/* {currentConfig ? ( <Divider />
<div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: '20px' }}>
<div style={{ display: 'flex', alignItems: 'center' }}>
<div
style={{
marginLeft: '35px',
}}
>
网关状态
<Switch
checkedChildren="开启"
unCheckedChildren="关闭"
checked={currentConfig}
onChange={OperateNginx}
style={{ marginLeft: '35px' }}
/>
</div>
{console.log(currentConfig)}
</div>
{/* {currentConfig ? (
) : ( ) : (
<></> <></>
)} */} )} */}
<div className={styles.head1}> <div className={styles.head1}>
<span>快速搜索上游路由模板:</span> <span>快速搜索上游路由模板:</span>
<Input <Input
value={searchWord} value={searchWord}
placeholder="请输入上游路由模板" placeholder="请输入上游路由模板"
style={{ width: 200 }} style={{ width: 200 }}
onChange={handleSearch} onChange={handleSearch}
/> />
<span style={{ marginLeft: '20px' }}>快速搜索关键字:</span> <span style={{ marginLeft: '20px' }}>快速搜索关键字:</span>
<Input <Input
value={searchWord1} value={searchWord1}
placeholder="请输入键值" placeholder="请输入键值"
style={{ width: 200 }} style={{ width: 200 }}
onChange={handleSearch1} onChange={handleSearch1}
/> />
<Button <Button
type="primary" type="primary"
icon={<SearchOutlined />} icon={<SearchOutlined />}
onClick={submitSearch} onClick={submitSearch}
style={{ marginLeft: '20px' }} style={{ marginLeft: '20px' }}
> >
搜索 搜索
</Button> </Button>
<Button icon={<SyncOutlined />} onClick={handleReset} style={{ marginLeft: '20px' }}> <Button icon={<SyncOutlined />} onClick={handleReset} style={{ marginLeft: '20px' }}>
重置 重置
</Button> </Button>
<Button <Button
icon={<PlusOutlined className={styles.icon} />} icon={<PlusOutlined className={styles.icon} />}
onClick={add} onClick={add}
style={{ style={{
verticalAlign: 'middle', verticalAlign: 'middle',
marginTop: '-3px', marginTop: '-3px',
marginLeft: '20px', marginLeft: '20px',
}} }}
> >
新增 新增
</Button> </Button>
</div>
</div> </div>
</div> {/* {currentConfig ? (
{/* {currentConfig ? (
) : ( ) : (
<></> <></>
)} */} )} */}
<Spin spinning={loading} tip="loading"> <Spin spinning={loading} tip="loading">
<div className={styles.table}> <div className={styles.table}>
<Table <Table
size="small" size="small"
bordered bordered
rowKey={record => record.Id} rowKey={record => record.Id}
columns={columns} columns={columns}
dataSource={tableData} dataSource={tableData}
scroll={{ y: 'calc(100vh - 380px)', x: 'max-content' }} scroll={{ y: 'calc(100vh - 380px)', x: 'max-content' }}
onRow={record => ({ onRow={record => ({
onDoubleClick: event => { onDoubleClick: event => {
console.log(record); event.stopPropagation();
event.stopPropagation(); // if (record.key == 'CityServer') {
if (record.key == 'CityServer') { // look(record);
look(record); // } else {
} else {
edit(record); edit(record);
} // }
}, // 双击 }, // 双击
})} })}
pagination={{ pagination={{
showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`, showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`,
pageSizeOptions: [10, 20, 50, 100], pageSizeOptions: [10, 20, 50, 100],
defaultPageSize: 20, defaultPageSize: 20,
showQuickJumper: true, showQuickJumper: true,
showSizeChanger: true, showSizeChanger: true,
}} }}
/> />
</div> </div>
</Spin> </Spin>
<AddModal <AddModal
visible={addVisible} visible={addVisible}
pickItem={pickItem} pickItem={pickItem}
keepData={keepData} keepData={keepData}
onCancel={() => setAddVisible(false)} onCancel={() => setAddVisible(false)}
type={type} type={type}
callBackSubmit={onSubmit} callBackSubmit={onSubmit}
/> />
<CheckModal <CheckModal
visible={checkVisible} visible={checkVisible}
pickItem={pickItem} pickItem={pickItem}
onCancel={() => setCheckVisible(false)} onCancel={() => setCheckVisible(false)}
/> />
</Card> </Card>
</Spin>
</div> </div>
); );
}; };
......
...@@ -80,9 +80,14 @@ export const GetGateWay = param => get(`${PUBLISH_SERVICE}/HostManager/GetGateWa ...@@ -80,9 +80,14 @@ export const GetGateWay = param => get(`${PUBLISH_SERVICE}/HostManager/GetGateWa
export const UpdateGeteWay = param => get(`${PUBLISH_SERVICE}/HostManager/UpdateGeteWay`, param); export const UpdateGeteWay = param => get(`${PUBLISH_SERVICE}/HostManager/UpdateGeteWay`, param);
// 网关配置 // 网关配置
// export const GetReRoutesFirst = param => get(`/OcelotSettings/GetReRoutes`, param); // export const GetReRoutesFirst = param => get(`/OcelotSettings/GetReRoutes`, param);
export const GetWayHealthCheck = param =>
get(`/PandaCore/GateWay/OcelotSettings/HealthCheck`, param);
export const GetReRoutes = param => get(`/PandaCore/GateWay/OcelotSettings/GetReRoutes`, param); export const GetReRoutes = param => get(`/PandaCore/GateWay/OcelotSettings/GetReRoutes`, param);
export const SaveRoutes = param => post(`/PandaCore/GateWay/OcelotSettings/SaveRoutes`, param); export const SaveRoutes = param => post(`/PandaCore/GateWay/OcelotSettings/SaveRoutes`, param);
export const DelRoutes = param => get(`/PandaCore/GateWay/OcelotSettings/DelRoutes`, param); export const DelRoutes = param => get(`/PandaCore/GateWay/OcelotSettings/DelRoutes`, param);
export const DelRouteByUpUrl = param =>
get(`/PandaCore/GateWay/OcelotSettings/DelRouteByUpUrl`, param);
// 代理服务老接口 // 代理服务老接口
export const GetNginxConfigInfoOLD = param => export const GetNginxConfigInfoOLD = param =>
......
...@@ -337,3 +337,5 @@ export const GetRoleGroups = param => get(`${PUBLISH_SERVICE}/UserCenter/GetRole ...@@ -337,3 +337,5 @@ export const GetRoleGroups = param => get(`${PUBLISH_SERVICE}/UserCenter/GetRole
export const GetWebMenuInfo = param => get(`${PUBLISH_SERVICE}/WebSite/GetWebMenuInfo`, param); export const GetWebMenuInfo = param => get(`${PUBLISH_SERVICE}/WebSite/GetWebMenuInfo`, param);
export const SortScheme = param => get(`${PANDA_GIS}/MapLayer/SortScheme`, param); export const SortScheme = param => get(`${PANDA_GIS}/MapLayer/SortScheme`, param);
export const SortSchemePost = param => post(`${PANDA_GIS}/MapLayer/SortSchemePost`, param);
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