Commit f64506bc authored by 张烨's avatar 张烨
parents a7fe4be9 615852f9
This diff is collapsed.
......@@ -28,7 +28,6 @@ const CurrentSolution = () => {
}, []);
const handleSelect = e => {
setCurrentData(e);
console.log(e);
};
const submit = params => {
setLoading(true);
......@@ -56,7 +55,11 @@ const CurrentSolution = () => {
})
.catch(err => {
setLoading(false);
console.error(err);
notification.error({
message: '提示',
description: err,
duration: 3,
});
});
};
return (
......@@ -65,7 +68,7 @@ const CurrentSolution = () => {
<Spin tip="Loading..." spinning={loading} className={styles.tAlign}>
<Row>
<Col span={2} className={styles.divbox}>
<div>切换解决方案:</div>
<div>切换解决方案</div>
</Col>
<Col span={21}>
{currentData && (
......
......@@ -11,11 +11,17 @@ import {
Modal,
Row,
Col,
Popconfirm,
} from 'antd';
import { PageContainer } from '@ant-design/pro-layout';
import { connect } from 'react-redux';
import { get, post } from '../../services';
import { setTableSQLDirName, deleteConn } from '@/services/database/api';
import {
setTableSQLDirName,
deleteConn,
initDBv4,
getInitDBLog,
} from '@/services/database/api';
import styles from './InitDataBase.less';
const { Option } = Select;
......@@ -42,7 +48,8 @@ const InitDataBase = props => {
const [allSqlDir, setAllSqulDir] = useState([]); // 修改产品方案
const [defaultSqlDir, setDefaultSqlDir] = useState(''); // 修改产品方案默认值
const [modalVisible, setModalVisible] = useState(false);
console.log(window.location.host);
const [initVisible, setInitVisible] = useState(false);
const [initContent, setInitContent] = useState('');
// 获取数据库链接记录
useEffect(() => {
setTableLoading(true);
......@@ -89,7 +96,33 @@ const InitDataBase = props => {
});
}, []);
// 数据库初始化
const initClick = () => {};
const initClick = () => {
let obj = form.getFieldsValue();
initDBv4({
_version: 9999,
_dc: Date.now(),
...obj,
}).then(res => {
if (res.GetMe) {
getInitDBLog({
_version: 9999,
_dc: Date.now(),
}).then(res => {
if (res.success) {
setInitVisible(true);
setInitContent(res.content);
}
console.log(res.content.split(/[(\r\n)\r\n]+/));
});
} else {
notification.error({
message: '提示',
duration: 3,
description: res.Say.Message || '初始化失败',
});
}
});
};
const onValuesChange = (value, b) => {
form.setFieldsValue(value);
};
......@@ -137,8 +170,6 @@ const InitDataBase = props => {
const onCheck = e => {
// 测试连接
console.log(dbForm);
console.log(form.getFieldValue());
console.log(form.getFieldsValue());
const obj = form.getFieldsValue();
get('/Cityinterface/rest/services/OMS.svc/S_GetConnectionTest', {
_version: 9999,
......@@ -268,9 +299,9 @@ const InitDataBase = props => {
});
};
// 删除数据库连接记录
const delConn = value => {
setTableLoading(true);
const delConfirm = value => {
const { key = '' } = value;
setTableLoading(true);
deleteConn({
rowIndex: key,
_version: 9999,
......@@ -339,9 +370,18 @@ const InitDataBase = props => {
>
修改描述
</Button>
<Button size="small" danger onClick={() => delConn(record)}>
删除
</Button>
<Popconfirm
title="是否删除该连接的历史记录?"
okText="确认"
cancelText="取消"
onConfirm={() => {
delConfirm(record);
}}
>
<Button size="small" danger>
删除
</Button>
</Popconfirm>
</Space>
),
},
......@@ -360,16 +400,16 @@ const InitDataBase = props => {
onFinish={onFinish}
onValuesChange={onValuesChange}
>
<Form.Item label={`${formLables.ip}:`} name="ip">
<Form.Item label={`${formLables.ip}`} name="ip">
<Input placeholder="请输入服务器名或IP地址" />
</Form.Item>
<Form.Item label={`${formLables.userName}:`} name="userName">
<Form.Item label={`${formLables.userName}`} name="userName">
<Input placeholder="请输入用户名称" />
</Form.Item>
<Form.Item label={`${formLables.password}:`} name="password">
<Form.Item label={`${formLables.password}`} name="password">
<Input placeholder="请输入用户密码" />
</Form.Item>
<Form.Item label={`${formLables.dbName}:`} name="dbName">
<Form.Item label={`${formLables.dbName}`} name="dbName">
<Select
showSearch
placeholder="请选择数据库"
......@@ -397,46 +437,47 @@ const InitDataBase = props => {
</Form.Item>
<Form.Item>
<div className={styles.tCenter}>
<Space size="large">
<Button onClick={onCheck}>测试连接</Button>
<Button
type="primary"
htmlType="submit"
loading={tableLoading}
>
保存连接
</Button>
<Button
type="primary"
danger
htmlType="reset"
onClick={() => {
initClick();
}}
>
数据库初始化
</Button>
{defaultSqlDir && (
<Select
placeholder="请选择解决方案"
style={{ width: '200px' }}
defaultValue={defaultSqlDir}
onChange={e => {
handleSelect(e);
<Space size="large" className={styles.btnBox}>
<Space>
<Button onClick={onCheck}>测试连接</Button>
<Button
type="primary"
htmlType="submit"
loading={tableLoading}
>
保存连接
</Button>
</Space>
<Space>
<Popconfirm
title="是否执行数据库初始化"
okText="确认"
cancelText="取消"
onConfirm={() => {
initClick();
}}
>
{allSqlDir &&
allSqlDir.map((item, index) => {
console.log(defaultSqlDir);
return (
<Button type="primary">数据库初始化</Button>
</Popconfirm>
{defaultSqlDir && (
<Select
placeholder="请选择解决方案"
style={{ width: '200px' }}
defaultValue={defaultSqlDir}
onChange={e => {
handleSelect(e);
}}
>
{allSqlDir &&
allSqlDir.map((item, index) => (
<Option value={item} key={index}>
{item}
</Option>
);
})}
</Select>
)}
{/* <span>{dbForm.inUse}</span> */}
))}
</Select>
)}
</Space>
</Space>
</div>
</Form.Item>
......@@ -459,10 +500,32 @@ const InitDataBase = props => {
})}
/>
</Card>
<Modal
title="初始化数据库"
visible={initVisible}
onCancel={() => {
setInitVisible(false);
setInitContent('');
}}
width="600px"
footer={[
<Button
onClick={() => {
setInitVisible(false);
setInitContent('');
}}
type="primary"
>
关闭窗口
</Button>,
]}
>
{initContent}
</Modal>
<Modal
title="修改链接描述"
visible={modalVisible}
maskClosable
onOk={() => modalOkCallback()}
onCancel={() => setModalVisible(false)}
width="800px"
......@@ -475,7 +538,7 @@ const InitDataBase = props => {
>
<Row>
<Col span={2} className={styles.decsBox}>
描述:
描述
</Col>
<Col span={22}>
<Input
......
......@@ -10,4 +10,8 @@
.decsBox{
height: 32px;
line-height: 32px;
}
.btnBox {
display: flex;
justify-content: space-around;
}
\ No newline at end of file
......@@ -199,7 +199,7 @@ const ManagementDataBase = () => {
<Card className={styles.mgTop20}>
<div className={styles.tableTitle}>
表字段手动修复
(字段长度不统一,请手动修改差异,数据可能会截断,请谨慎操作)
(字段长度不统一,请手动修改差异,数据可能会截断,请谨慎操作)
</div>
<Table
className={styles.mgTop20}
......
import React, { useState, useEffect } from 'react';
import { Form, Select, Input, Button, Row, Col, Radio } from 'antd';
import { editWebsite, getWebsite } from '@/services/mobileConfig/api';
const { Item } = Form;
const { Option } = Select;
const SiteConfig = props => {
const [config, setConfig] = useState(''); // 网站配置信息
const [loginList, setLoginList] = useState([
{ text: '默认界面', value: 'default' },
]); // 系统登陆页
const [styleList, setStyleList] = useState([
{ text: '默认风格', value: 'default' },
]); // 系统风格
const [themeList, setThemeList] = useState([
{ text: '默认皮肤', value: 'default' },
]); // 系统皮肤
const [form] = Form.useForm();
const layout = {
layout: 'horizontal',
labelCol: { span: 2 },
wrapperCol: { span: 14 },
};
useEffect(() => {
getWebsite({
_version: 9999,
_dc: Date.now(),
title: '新运维测试小程序',
}).then(res => {
console.log(res);
let obj = { ...form.getFieldsValue() };
let arr = Object.keys({ ...form.getFieldsValue() });
console.log(arr);
arr.map(k => {
obj[k] = res[k];
});
form.setFieldsValue(obj);
console.log(form.getFieldsValue(), '36/');
});
}, []);
// 单选值改变
const radioChange = e => {};
// 提交选择
const submit = value => {
console.log(form.getFieldsValue());
};
return (
<Form form={form} {...layout}>
<Item label="应用名称:" name="title">
<Input placeholder="请输入应用名称" allowClear />
</Item>
<Item label="系统图标:" name="shortcutIcon">
<Row gutter={16}>
<Col span={21}>
<Input placeholder="请输入系统图标名称" allowClear />
</Col>
<Col span={2}>
<Button type="primary">按路径选择</Button>
</Col>
</Row>
</Item>
<Item label="系统图标预览:" />
<Item label="登陆页面:" name="loginTemplate">
<Select placeholder="请选择登陆页面">
{loginList &&
loginList.map((item, index) => (
<Option value={item.value} key={`item${index}`}>
{item.text}
</Option>
))}
</Select>
</Item>
<Item label="系统皮肤:" name="theme">
<Select placeholder="请选择系统皮肤">
{themeList &&
themeList.map((item, index) => (
<Option value={item.value} key={`item${index}`}>
{item.text}
</Option>
))}
</Select>
</Item>
<Item label="系统风格:" name="style">
<Select placeholder="请选择系统风格">
{styleList &&
styleList.map((item, index) => (
<Option value={item.value} key={`item${index}`}>
{item.text}
</Option>
))}
</Select>
</Item>
<Item label="开启云登陆:" name="cloudLogin">
<Radio.Group onChange={radioChange} defaultValue={false}>
<Radio value></Radio>
<Radio value={false}></Radio>
</Radio.Group>
</Item>
<Item style={{ textAlign: 'center' }}>
<Button type="primary" onClick={submit}>
提交
</Button>
</Item>
</Form>
);
};
export default SiteConfig;
import React from 'react';
import { Card } from 'antd';
import React, { useState, useEffect } from 'react';
import { Card, Tabs } from 'antd';
import { PageContainer } from '@ant-design/pro-layout';
const MobileConfigPage = props => (
<PageContainer>
<Card>MobileConfigPage</Card>
</PageContainer>
);
import { miniAppSiteTree } from '@/services/mobileConfig/api';
import SiteConfig from './SiteConfig';
const { TabPane } = Tabs;
const MobileConfigPage = props => {
const [activeKey, setActiveKey] = useState('0'); // tabs活动页
useEffect(() => {
miniAppSiteTree({
userMode: 'admin',
select: '',
_version: 9999,
_dc: new Date().getTime(),
node: -2,
}).then(res => {
console.log(res);
});
}, []);
// 修改选中的tab
const handleChange = key => {
setActiveKey(key);
};
return (
<PageContainer>
<Card>
<Tabs activeKey={activeKey} type="card" onChange={handleChange}>
<TabPane tab="网站配置" key="0">
<SiteConfig />
</TabPane>
<TabPane tab="菜单管理" key="1">
<div>菜单管理</div>
</TabPane>
</Tabs>
</Card>
</PageContainer>
);
};
export default MobileConfigPage;
......@@ -6,7 +6,7 @@ import { orgTest } from '@/services/orgnazation/api';
const tip = 'loading...';
const ListCard = props => {
const { ouid, searchWord, valueCallback } = props;
const { ouid, searchWord, valueCallback, onCommit = () => {} } = props;
const [valueList, setValueList] = useState({});
const [dataList, setdataList] = useState([]);
const [loading, setLoading] = useState(true);
......@@ -82,7 +82,7 @@ const ListCard = props => {
{true && !loading && dataList && (
<Button
type="primary"
onClick={() => valueCallback()}
onClick={() => onCommit()}
style={{ marginTop: '20px' }}
>
提交
......
......@@ -21,7 +21,6 @@ const SiteManage = () => {
const [stationObj, setStationObj] = useState({}); // 选择的站点
const [delVisible, setDelVisible] = useState(false); // 删除弹窗
const [editVisible, setEditVisible] = useState(false); // 修改弹窗
const now = new Date().getTime();
// 点击树的回调
const handleTreeSelect = e => {
console.log(e);
......@@ -38,7 +37,7 @@ const SiteManage = () => {
userMode: 'super',
select: '',
_version: 9999,
_dc: now,
_dc: Date.now(),
node: -2,
})
.then(res => {
......
......@@ -11,9 +11,9 @@ import EditModal from './EditModal';
const { Search } = Input;
const placeholder = '请输入人员姓名';
const SiteManage = () => {
const [treeData, setTreeData] = useState([]);
const [searchWord, setSearchWord] = useState('');
const [ouid, setOuid] = useState('');
const [treeData, setTreeData] = useState([]); // 树结构数据
const [searchWord, setSearchWord] = useState(''); // 关键字
const [ouid, setOuid] = useState(''); // 站点id
const [saveTreeId, setSaveTreeId] = useState(''); // 保存点击回调的id
const [modalVisible, setModalVisible] = useState(false); // 新增弹窗
const [flag, setFlag] = useState(1);
......@@ -21,6 +21,7 @@ const SiteManage = () => {
const [stationObj, setStationObj] = useState({}); // 选择的站点
const [delVisible, setDelVisible] = useState(false); // 删除弹窗
const [editVisible, setEditVisible] = useState(false); // 修改弹窗
const [subList, setSubList] = useState([]);
const now = new Date().getTime();
// 点击树的回调
const handleTreeSelect = e => {
......@@ -136,6 +137,10 @@ const SiteManage = () => {
};
const valueCallback = valueOBJ => {
console.log(valueOBJ);
setSubList(valueOBJ);
};
const handleCommit = value => {
console.log(subList);
};
return (
<PageContainer>
......@@ -187,6 +192,7 @@ const SiteManage = () => {
ouid={ouid}
searchWord={searchWord}
valueCallback={valueCallback}
onCommit={handleCommit}
/>
)}
</Card>
......
......@@ -18,7 +18,7 @@ import InitDataBase from '../pages/database/InitDataBase';
import ManagementDataBase from '../pages/database/ManagementDataBase';
import CurrentSolution from '@/pages/database/CurrentSolution';
import UserManage from '../pages/userCenter/UserManage';
import RoleManage from '../pages/userCenter/roleManage/RoleManage';
import RoleManage from '@/pages/userCenter/roleManage/RoleManage';
import SiteManage from '../pages/userCenter/siteManage/SiteManage';
// import DefaultComponent from '../pages/orgnazation/DefaultComponent';
import TestTable from '../pages/orgnazation/TestTable';
......@@ -62,6 +62,12 @@ export default {
component: BlankLayout,
authority: adminAuthority,
routes: [
{
path: '/dbm/solution',
name: '数据库解决方案',
authority: superAuthority,
component: CurrentSolution,
},
{
path: '/dbm/dbInit',
name: '数据库初始化',
......@@ -74,12 +80,6 @@ export default {
authority: superAuthority,
component: ManagementDataBase,
},
{
path: '/dbm/solution',
name: '数据库解决方案',
authority: superAuthority,
component: CurrentSolution,
},
],
},
{
......
import { get, post } from '@/services/index';
// 数据库初始化
export const initDBv4 = params =>
get('/Cityinterface/rest/services/OMS.svc/S_InitDBv4', params);
// 获取日志
export const getInitDBLog = params =>
get('/Cityinterface/rest/services/OMS.svc/S_GetInitDBLog', params);
// 修改产品解决方案
export const setTableSQLDirName = params =>
get('/Cityinterface/rest/services/OMS.svc/S_SetTableSQLDirName', params);
......
import { get, post } from '@/services/index';
/**
* @param {*} params
*/
export const miniAppSiteTree = params =>
get('/Cityinterface/rest/services/OMS.svc/MiniAppSiteTree', params);
/**
* 获取网站配置
* @param {*} params
* title:'名称'
*/
export const getWebsite = params =>
get('/Cityinterface/rest/services/OMS.svc/MiniApp_GetWebsite', params);
/**
* 编辑网站配置
* @param {*} params
* title:"节水平台",
* "shortcutIcon":"assets/images/icon/小程序logo/gck.png",
"style":"default",
"mode":"single",
"client":"miniapp",
"loginTemplate":"default",
"theme":"default",
"cloudLogin":false
*/
export const editWebsite = params =>
post(
'/Cityinterface/rest/services/OMS.svc/MiniApp_EditWebsite?_version=9999',
params,
);
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