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

优化数据字典功能

parent 7d8693a5
Pipeline #36600 skipped with stages
...@@ -10,13 +10,16 @@ const MapScope = props => { ...@@ -10,13 +10,16 @@ const MapScope = props => {
const [options, setOptions] = useState([]) const [options, setOptions] = useState([])
//const [mouseTool,setMouseTool] = useState(null) //const [mouseTool,setMouseTool] = useState(null)
const { confirmModal, extent,mapId } = props const { confirmModal, extent, mapId, title } = props
const [currentExtent, setCurrentExtent] = useState() const [currentExtent, setCurrentExtent] = useState()
const [isDistrict, setIsDistrict] = useState(false) const [isDistrict, setIsDistrict] = useState(false)
const [currentAreaName, setCurrentAreaName] = useState(null) const [currentAreaName, setCurrentAreaName] = useState(null)
const [area, setArea] = useState([])
const mapID = useRef(); const mapID = useRef();
const mouseToolID = useRef(); const mouseToolID = useRef();
useEffect(() => { useEffect(() => {
console.log(extent)
console.log(mapId)
if (document.getElementById(mapId)) { if (document.getElementById(mapId)) {
if (!mapID.current) { if (!mapID.current) {
//1.加载底图 //1.加载底图
...@@ -101,6 +104,8 @@ const MapScope = props => { ...@@ -101,6 +104,8 @@ const MapScope = props => {
} }
const onSubmit = () => { const onSubmit = () => {
console.log(currentExtent)
console.log(currentAreaName)
confirmModal && confirmModal(currentExtent, currentAreaName) confirmModal && confirmModal(currentExtent, currentAreaName)
let mouseTool = mouseToolID.current; let mouseTool = mouseToolID.current;
mouseTool.close(true) mouseTool.close(true)
...@@ -134,6 +139,7 @@ const MapScope = props => { ...@@ -134,6 +139,7 @@ const MapScope = props => {
let sw = bounds.southWest.pos let sw = bounds.southWest.pos
let str = (sw.concat(ne)).toString() let str = (sw.concat(ne)).toString()
console.log(str)
setCurrentExtent(str) setCurrentExtent(str)
}) })
} }
...@@ -191,7 +197,7 @@ const MapScope = props => { ...@@ -191,7 +197,7 @@ const MapScope = props => {
return ( return (
<SiteModal <SiteModal
{...props} {...props}
title={"范围选择"} title={`${title}的范围选择`}
bodyStyle={{ width: '100%', minHeight: '100px' }} bodyStyle={{ width: '100%', minHeight: '100px' }}
style={{ top: 200, borderRadius: '20px' }} style={{ top: 200, borderRadius: '20px' }}
width="800px" width="800px"
......
...@@ -91,16 +91,18 @@ const AppDic = () => { ...@@ -91,16 +91,18 @@ const AppDic = () => {
cancelText="取消" cancelText="取消"
onConfirm={submitDelete} onConfirm={submitDelete}
> >
<DeleteOutlined <Tooltip title="删除">
onClick={() => { <DeleteOutlined
setSelect(record); onClick={() => {
}} setSelect(record);
style={{ }}
fontSize: '16px', style={{
margin: '0px 10px', fontSize: '16px',
color: '#e86060', margin: '0px 10px',
}} color: '#e86060',
/> }}
/>
</Tooltip>
</Popconfirm> </Popconfirm>
</Space> </Space>
), ),
......
...@@ -357,12 +357,13 @@ const WebDic = () => { ...@@ -357,12 +357,13 @@ const WebDic = () => {
SearchDataDictionaryList({ key: searchWord }).then(res => { SearchDataDictionaryList({ key: searchWord }).then(res => {
if (res.code === 0) { if (res.code === 0) {
setSearchData(res.data); setSearchData(res.data);
} else { }
notification.error({ // else {
message: '提交失败', // notification.error({
description: res.message, // message: '提交失败',
}) // description: res.message,
} // })
// }
}) })
} }
const resetSearch = () => { const resetSearch = () => {
......
/*
* @Description:
* @Author: leizhe
* @Date: 2021-10-26 14:27:34
* @LastEditTime: 2021-10-26 15:16:07
* @LastEditors: leizhe
*/
import React, { useState, useEffect } from 'react';
import {
Table,
Tooltip,
Spin,
Modal,
Form,
Input,
Space,
Popconfirm,
notification,
message,
Row,
Col,
Button,
Upload,
} from 'antd';
import {
EditTwoTone,
DeleteOutlined,
CloudSyncOutlined,
SearchOutlined,
PlusSquareFilled,
MinusCircleOutlined,
PlusOutlined,
LogoutOutlined,
DownloadOutlined,
UploadOutlined,
} from '@ant-design/icons';
import styles from './search.less';
import {
GetDataDictionaryList,
EditDataDictionary,
AddDataDictionary,
DeleteDataDictionary,
AddDataDictionaryList,
SearchDataDictionaryList,
ExportDataDictionary,
ImportDataDictionary,
} from '@/services/dataCenter/api';
const Search = () => {
const [searchData, setSearchData] = useState([]); // 搜索框表格数据
const [treeLoading, setTreeLoading] = useState(false);
const [searchWord, setSearchWord] = useState(''); // 关键字
const columns2 = [
{
title: () => <span className={styles.font}>名称</span>,
dataIndex: 'nodeName',
key: 'nodeName',
},
{
title: () => <span className={styles.font}></span>,
dataIndex: 'nodeValue',
width: 400,
key: 'nodeValue',
render: record => {
if (!record) {
return '-';
}
return record;
},
},
{
title: () => <span className={styles.font}>操作</span>,
key: 'action',
width: 100,
align: 'center',
render: record => (
<Space>
<Tooltip title="编辑">
<EditTwoTone
onClick={() => {
setSelect(record);
if (record.parentID === '-1') {
setSelectColor(record);
}
if (record.parentID === '-1' || record.parentID === null) {
setEditVisible1(true);
} else {
setEditVisible(true);
}
editForm.setFieldsValue({
nodeName: record.nodeName,
nodeValue: record.nodeValue,
});
}}
style={{ fontSize: '16px' }}
/>
</Tooltip>
<div onClick={e => e.stopPropagation()}>
<Tooltip title="删除">
<Popconfirm
title="是否确认删除该数据,删除一级目录数据会将其二级目录子数据一起删除?"
okText="确认"
cancelText="取消"
onConfirm={submitDelete}
>
<DeleteOutlined
onClick={() => {
setSelect(record);
if (record.parentID === '-1') {
setSelectColor(record);
}
}}
style={{
fontSize: '16px',
margin: '0px 10px',
color: '#e86060',
}}
/>
</Popconfirm>
</Tooltip>
</div>
</Space>
),
},
];
const sumbitSearch = () => {
SearchDataDictionaryList({ key: searchWord }).then(res => {
if (res.code === 0) {
setSearchData(res.data);
}
// else {
// notification.error({
// message: '提交失败',
// description: res.message,
// })
// }
});
};
// 获取搜索框的值
const handleSearch = e => {
setSearchWord(e.target.value);
};
const pagenation = {
showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`,
pageSizeOptions: [10, 20, 50, 100],
defaultPageSize: '20',
showQuickJumper: true,
showSizeChanger: true,
};
return (
<>
<Spin tip="loading..." spinning={treeLoading}>
<div className={styles.containerBox}>
<div className={styles.config}>
<div className={styles.title} />
<div className={styles.btn}>
<Search
style={{ width: 470, marginBottom: 25 }}
placeholder="输入关键字"
onSearch={sumbitSearch}
onChange={e => handleSearch(e)}
enterButton
value={searchWord}
/>
</div>
</div>
<Table
size="small"
bordered
key=""
columns={columns2}
dataSource={searchData}
scroll={{ y: 'calc(100vh - 300px)' }}
// rowClassName={setRowClassName}
// onRow={record => ({
// onClick: () => {
// setSelect(record);
// setSelectColor(record);
// setSelectID(record.nodeID);
// },
// })}
pagination={pagenation}
/>
</div>
</Spin>
</>
);
};
export default Search;
.ant-modal-close-x {
line-height: 35px;
}
.ant-btn .anticon.anticon-plus > svg {
margin-top:-5px;
}
.incidentContainer{
.ant-card-body {
padding: 12px 24px 24px 24px;
}
.linkDrowp{
position: absolute;
left: 93.5%;
width: 1rem;
height: 100%;
display: flex;
align-items: center;
}
.listItem{
display: flex;
justify-content: space-between;
font-size: 14px;
font-weight: 400;
color: #414E65;
cursor: pointer;
line-height: 28px;
align-items: center;
padding: 8px 14px;
}
.ant-btn .anticon.anticon-plus > svg, .ant-btn .anticon.anticon-minus > svg {
margin-top: -5px;
}
.pickItem{
background-color: #F5F6F9;
}
.contentContainers{
display: flex;
width: 100%;
position: relative;
.ant-table.ant-table-bordered > .ant-table-container {
min-width: calc(100vw - 582px);
height: calc(100vh - 166px);
overflow-x: hidden;
border: none;
}
.orgContainer{
height: calc(100vh - 74px);
width: 250px;
left: 0;
top: 0;
overflow-x: hidden;
margin-right: 10px;
position: relative;
transition-property:width,left;
transition-duration: 0.5s;
white-space: nowrap;
.ant-tree{
padding-top: 6px;
.ant-tree-switcher{
line-height: 1;
margin-right: 0px !important;
color:#1890FF;
.ant-tree-switcher-line-icon{
margin-left: 5px;
}
}
}
.switcher{
display: block;
position: absolute;
font-size: 18px;
color: #1890FF!important;
top: 50%;
right: 2px;
transform: translate(0%,-50%);
z-index: 1;
}
}
.orgContainerHide{
// transform: translateX(-230px);
left: 0px;
top: 0;
width: 26px;
}
.ant-popover-message-title {
padding-left: 20px;
}
.userContainer{
height: calc(100vh - 74px) !important;
z-index: 999;
min-width: 800px;
background: white;
width: 100%;
position: relative;
transition: width 0.5s;
.title{
margin: 16px 0 10px 16px;
display: inline-block;
width: 270px;
cursor: pointer;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
.ant-table-pagination{
padding-right: 12px;
background: white;
margin: 1px 0;
padding: 8px;
padding-right: 20px;
}
.ant-btn{
margin: 0px 10px;
.ant-btn-primary{
background: #50aefc;
}
}
.ant-input-search-button{
margin-left: 0px !important;
}
.ant-table-thead tr th{
font-weight: 600;
color:rgba(0,0,0,0.85);
background-color:#F6F9FE;
}
.ant-table-cell{
text-align:center;
overflow: hidden;
// text-overflow:ellipsis;
white-space: nowrap;
}
.ant-table-body{
height:calc(100vh - 210px);
border-right: white;
overflow: auto !important;
}
.clickRowStyle{
background: #cfe7fd;
}
.ant-pagination{
z-index: 999;
border-top: 1px solid #f0eded;
}
}
}
.icon{
margin-top: -5px !important;
vertical-align: text-bottom;
}
}
.formData{
height: 38rem;
overflow-y: scroll;
.ant-form-item-label > label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before{
display: none;
}
.formData_label{
display: flex;
align-items: center;
}
.filed_listItem{
display: flex;
height: 3.6rem;
.ant-btn-icon-only {
width: 32px;
height: 32px;
/* padding: 2.4px 0; */
font-size: 16px;
border-radius: 2px;
display: flex;
align-items: center;
justify-content: center;
}
}
}
.listCard{
display: flex;
.cardItem{
padding: 0.5rem;
}
.cardContent{
height: 30rem;
overflow-y: scroll;
width: 19rem;
}
.cardItemData{
padding: 1rem;
border: 1px solid #b5b8c8;
margin-bottom: 1rem;
overflow-x: hidden;
}
}
.doctorTable {
margin-bottom: 16px;
table {
width: 100%;
td {
padding: 6px;
border: 1px solid #e8e8e8;
}
thead {
tr {
font-weight: 600;
background: #FAFAFA;
}
}
tbody{
tr:hover{
background-color:#ededed ;
}
}
}
}
.ant-checkbox-group-item {
width: 260px;
}
.ant-drawer-footer {
display:flex;
justify-content: flex-end;
}
.config{
display: flex;
padding: 1rem 0 0.5rem 0.5rem;
justify-content: space-between;
width: calc(100% - 10px);
.title{
font-size: 18px;
color: rgba(0, 114, 255, 1);
font-weight: bold;
}
.btn{
display: flex;
justify-content: flex-end;
width: 20rem;
}
.ant-btn{
display: flex;
align-items: center;
margin-left: 20px;
}
}
.containerBox {
width: 100vm;
height: calc(100vh - 90px) ;
background: #ffffff;
.ant-table.ant-table-small .ant-table-tbody .ant-table-wrapper:only-child .ant-table{
margin-left: 0;
}
.ant-table.ant-table-bordered > .ant-table-container{
border: none;
}
.clickRowStyle{
background: #cfe7fd;
}
.ant-table-thead tr th{
font-weight: 600;
color:rgba(0,0,0,0.85);
}
}
\ No newline at end of file
...@@ -279,23 +279,24 @@ const InitDataBase = props => { ...@@ -279,23 +279,24 @@ const InitDataBase = props => {
}; };
// 获取数据库列表 // 获取数据库列表
const selectFocus = e => { const selectFocus = e => {
setOption([]); //setOption([]);
let params = form.getFieldsValue(); let params = form.getFieldsValue();
getDataBaseList({ getDataBaseList({
_version: 9999, // _version: 9999,
_dc: Date.now(), // _dc: Date.now(),
userName: params.userName || '', userName: params.userName || '',
password: params.password || '', password: params.password || '',
ip: params.ip || '', ip: params.ip || '',
}) })
.then(res => { .then(res => {
if (res.success) { if (res.code == 0) {
setOption(res.root); console.log(res.data.root)
setOption(res.data.root);
} else { } else {
notification.error({ notification.error({
message: '提示', message: '提示',
duration: 15, duration: 15,
description: res.message, description: res.msg,
}); });
setOption([]); setOption([]);
} }
...@@ -756,7 +757,7 @@ const InitDataBase = props => { ...@@ -756,7 +757,7 @@ const InitDataBase = props => {
<Card className={styles.mgTop20}> <Card className={styles.mgTop20}>
<div className={styles.tableTitle}>近期保存的数据库连接</div> <div className={styles.tableTitle}>近期保存的数据库连接</div>
<Table <Table
style={{ marginTop: '20px' }} style={{ marginTop: '20px', height:'25rem', overflowY:'scroll' }}
columns={columns} columns={columns}
dataSource={data} dataSource={data}
bordered bordered
......
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import { Form, Modal, Input, Select, notification } from 'antd'; import { Form, Modal, Input, Select, notification } from 'antd';
import { import {
addMongoDBConnString, AddConnString,
editMongoDBConnString, EditConnString
} from '@/services/database/api'; } from '@/services/database/api';
const { Item } = Form; const { Item } = Form;
...@@ -19,14 +19,14 @@ const AddModal = props => { ...@@ -19,14 +19,14 @@ const AddModal = props => {
setLoading(true); setLoading(true);
let obj = form.getFieldsValue(); let obj = form.getFieldsValue();
if (type === 'add') { if (type === 'add') {
addMongoDBConnString({ AddConnString({
_version: 9999, Type:'mongodb',
_dc: Date.now(), MongoDbType:'mongodb',
...obj, ...obj,
}) })
.then(res => { .then(res => {
setLoading(false); setLoading(false);
if (res.success) { if (res.code == 0) {
form.resetFields(); form.resetFields();
callBackSubmit(); callBackSubmit();
notification.success({ notification.success({
...@@ -54,15 +54,15 @@ const AddModal = props => { ...@@ -54,15 +54,15 @@ const AddModal = props => {
}; };
const handleEdit = () => { const handleEdit = () => {
let obj = form.getFieldsValue(); let obj = form.getFieldsValue();
editMongoDBConnString({ EditConnString({
_version: 9999, Type:'mongodb',
_dc: Date.now(), MongoDbType:'mongodb',
...obj, ...obj,
oldName: formObj.name, oldName: formObj.name,
}) })
.then(res => { .then(res => {
setLoading(false); setLoading(false);
if (res.success) { if (res.code == 0) {
form.resetFields(); form.resetFields();
callBackSubmit(); callBackSubmit();
notification.success({ notification.success({
......
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import { Form, Modal, Input, Select, notification } from 'antd'; import { Form, Modal, Input, Select, notification } from 'antd';
import { import {
addMySQLConnString, AddConnString,
editMySQLConnString, EditConnString
} from '@/services/database/api'; } from '@/services/database/api';
const { Item } = Form; const { Item } = Form;
...@@ -18,14 +18,13 @@ const AddModal = props => { ...@@ -18,14 +18,13 @@ const AddModal = props => {
setLoading(true); setLoading(true);
let obj = form.getFieldsValue(); let obj = form.getFieldsValue();
if (type === 'add') { if (type === 'add') {
addMySQLConnString({ AddConnString({
_version: 9999, type:'mysql',
_dc: Date.now(),
...obj, ...obj,
}) })
.then(res => { .then(res => {
setLoading(false); setLoading(false);
if (res.success) { if (res.code == 0) {
form.resetFields(); form.resetFields();
callBackSubmit(); callBackSubmit();
notification.success({ notification.success({
...@@ -53,15 +52,14 @@ const AddModal = props => { ...@@ -53,15 +52,14 @@ const AddModal = props => {
}; };
const handleEdit = () => { const handleEdit = () => {
let obj = form.getFieldsValue(); let obj = form.getFieldsValue();
editMySQLConnString({ EditConnString({
_version: 9999, type:'mysql',
_dc: Date.now(),
...obj, ...obj,
oldName: formObj.name, oldName: formObj.name,
}) })
.then(res => { .then(res => {
setLoading(false); setLoading(false);
if (res.success) { if (res.code == 0) {
form.resetFields(); form.resetFields();
callBackSubmit(); callBackSubmit();
notification.success({ notification.success({
......
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import { Form, Modal, Input, Select, notification } from 'antd'; import { Form, Modal, Input, Select, notification } from 'antd';
import { import {
addOracleConnString, AddConnString,
editOracleConnString, EditConnString
} from '@/services/database/api'; } from '@/services/database/api';
const { Item } = Form; const { Item } = Form;
...@@ -18,14 +18,13 @@ const AddModal = props => { ...@@ -18,14 +18,13 @@ const AddModal = props => {
setLoading(true); setLoading(true);
let obj = form.getFieldsValue(); let obj = form.getFieldsValue();
if (type === 'add') { if (type === 'add') {
addOracleConnString({ AddConnString({
_version: 9999,
_dc: Date.now(),
...obj, ...obj,
type:'oracle'
}) })
.then(res => { .then(res => {
setLoading(false); setLoading(false);
if (res.success) { if (res.code == 0) {
form.resetFields(); form.resetFields();
callBackSubmit(); callBackSubmit();
notification.success({ notification.success({
...@@ -53,15 +52,14 @@ const AddModal = props => { ...@@ -53,15 +52,14 @@ const AddModal = props => {
}; };
const handleEdit = () => { const handleEdit = () => {
let obj = form.getFieldsValue(); let obj = form.getFieldsValue();
editOracleConnString({ EditConnString({
_version: 9999, type:'oracle',
_dc: Date.now(),
...obj, ...obj,
oldName: formObj.name, oldName: formObj.name,
}) })
.then(res => { .then(res => {
setLoading(false); setLoading(false);
if (res.success) { if (res.code == 0) {
form.resetFields(); form.resetFields();
callBackSubmit(); callBackSubmit();
notification.success({ notification.success({
......
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import { Form, Modal, Input, Select, notification } from 'antd'; import { Form, Modal, Input, Select, notification } from 'antd';
import { import {
addSQLServerConnString, AddConnString,
editSQLServerConnString, EditConnString
} from '@/services/database/api'; } from '@/services/database/api';
const { Item } = Form; const { Item } = Form;
...@@ -18,14 +18,13 @@ const AddModal = props => { ...@@ -18,14 +18,13 @@ const AddModal = props => {
setLoading(true); setLoading(true);
let obj = form.getFieldsValue(); let obj = form.getFieldsValue();
if (type === 'add') { if (type === 'add') {
addSQLServerConnString({ AddConnString({
_version: 9999,
_dc: Date.now(),
...obj, ...obj,
type:'sqlserver'
}) })
.then(res => { .then(res => {
setLoading(false); setLoading(false);
if (res.success) { if (res.code ==0) {
form.resetFields(); form.resetFields();
callBackSubmit(); callBackSubmit();
notification.success({ notification.success({
...@@ -53,15 +52,14 @@ const AddModal = props => { ...@@ -53,15 +52,14 @@ const AddModal = props => {
}; };
const handleEdit = () => { const handleEdit = () => {
let obj = form.getFieldsValue(); let obj = form.getFieldsValue();
editSQLServerConnString({ EditConnString({
_version: 9999,
_dc: Date.now(),
...obj, ...obj,
oldName: formObj.name, oldName: formObj.name,
type:'sqlserver'
}) })
.then(res => { .then(res => {
setLoading(false); setLoading(false);
if (res.success) { if (res.code ==0) {
form.resetFields(); form.resetFields();
callBackSubmit(); callBackSubmit();
notification.success({ notification.success({
......
...@@ -303,7 +303,7 @@ const AddFlowsModal = props => { ...@@ -303,7 +303,7 @@ const AddFlowsModal = props => {
<Drawer <Drawer
title={type === 'add' ? '添加受理流程' : '编辑受理流程'} title={type === 'add' ? '添加受理流程' : '编辑受理流程'}
visible={visible} visible={visible}
width='800px' width='600px'
onClose={onClose} onClose={onClose}
destroyOnClose destroyOnClose
footer={ footer={
...@@ -314,9 +314,9 @@ const AddFlowsModal = props => { ...@@ -314,9 +314,9 @@ const AddFlowsModal = props => {
</Space> </Space>
} }
> >
<Form form={form} labelCol={{ span: 7 }} style={{ height: '8rem', overflowY: 'scroll' }}> <Form form={form} labelCol={{ span: 7 }} style={{ overflowY: 'scroll' }}>
<Row> <Row>
<Col span={24}> <Col span={23}>
{type === 'edit' ? {type === 'edit' ?
<> <>
<Item <Item
...@@ -325,7 +325,7 @@ const AddFlowsModal = props => { ...@@ -325,7 +325,7 @@ const AddFlowsModal = props => {
labelCol={{ span: 4 }} labelCol={{ span: 4 }}
> >
<Select <Select
style={{ width: '560px' }}
placeholder="选择受理流程" placeholder="选择受理流程"
placeholder={selectValue} placeholder={selectValue}
disabled disabled
...@@ -341,7 +341,7 @@ const AddFlowsModal = props => { ...@@ -341,7 +341,7 @@ const AddFlowsModal = props => {
labelCol={{ span: 4 }} labelCol={{ span: 4 }}
> >
<Select <Select
style={{ width: '560px' }}
placeholder="选择受理流程" placeholder="选择受理流程"
> >
{standingTable ? standingTable.map((item, index) => { return <Option key={index} value={item}>{item}</Option> }) : ''} {standingTable ? standingTable.map((item, index) => { return <Option key={index} value={item}>{item}</Option> }) : ''}
...@@ -350,15 +350,15 @@ const AddFlowsModal = props => { ...@@ -350,15 +350,15 @@ const AddFlowsModal = props => {
</> </>
} }
</Col> </Col>
<Col span={24}> <Col span={23}>
<Item <Item
label="受理权限" label="受理权限"
name="Roles" name="Roles"
labelCol={{ span: 4 }} labelCol={{ span: 4 }}
> >
<div className={styles.filed_listItem} > <div className={styles.filed_listItem} >
<Input style={{ width: '500px' }} placeholder="请选择受理权限" onChange={(e) => changeText(e, 'Roles')} value={inputValue.Roles} allowClear /> <Input style={{width:'83%'}}placeholder="请选择受理权限" onChange={(e) => changeText(e, 'Roles')} value={inputValue.Roles} allowClear />
<Button type="dashed" onClick={() => pickFiled1('Roles')} icon={<PlusOutlined />} style={{ marginLeft: '0.5rem', width: '3.2rem' }} /> <Button type="dashed" onClick={() => pickFiled1('Roles')} icon={<PlusOutlined />} style={{ marginLeft: '0.5rem', width: '4rem' }} />
</div> </div>
</Item> </Item>
</Col> </Col>
......
...@@ -150,7 +150,7 @@ const ChangeAddFlows = props => { ...@@ -150,7 +150,7 @@ const ChangeAddFlows = props => {
{visible && ( {visible && (
<div className={styles.listCard}> <div className={styles.listCard}>
<div className={styles.cardItem} style={{ borderRight: '1px solid #99bbe8' }}> <div className={styles.cardItem} style={{ borderRight: '1px solid #99bbe8' }}>
<Divider orientation="left" style={{ margin: '0 0 10px 0', backgroundColor: '#dfe8f6' }}>待选字段列表</Divider> <Divider orientation="left" style={{ margin: '0 0 10px 0', backgroundColor: '#dfe8f6' }}>待选部门角色站点</Divider>
<div className={styles.cardContent}> <div className={styles.cardContent}>
{title.map((item, index) => { {title.map((item, index) => {
return <div className={styles.cardItemData} key={index}> return <div className={styles.cardItemData} key={index}>
...@@ -160,7 +160,7 @@ const ChangeAddFlows = props => { ...@@ -160,7 +160,7 @@ const ChangeAddFlows = props => {
</div> </div>
</div> </div>
<div className={styles.cardItem}> <div className={styles.cardItem}>
<Divider orientation="left" style={{ margin: '0 0 10px 0', backgroundColor: '#dfe8f6' }}>已选字段列表</Divider> <Divider orientation="left" style={{ margin: '0 0 10px 0', backgroundColor: '#dfe8f6' }}>已选列表</Divider>
<div className={styles.cardContent}> <div className={styles.cardContent}>
<div className={styles.doctorTable}> <div className={styles.doctorTable}>
<table> <table>
......
...@@ -289,7 +289,7 @@ const AddModal = props => { ...@@ -289,7 +289,7 @@ const AddModal = props => {
{visible && ( {visible && (
<div className={styles.listCard}> <div className={styles.listCard}>
<div className={styles.cardItem} style={{ borderRight: '1px solid #99bbe8' }}> <div className={styles.cardItem} style={{ borderRight: '1px solid #99bbe8' }}>
<Divider orientation="left" style={{ margin: '0 0 10px 0', backgroundColor: '#dfe8f6' }}>待选字段列表</Divider> <Divider orientation="left" style={{ margin: '0 0 10px 0', backgroundColor: '#dfe8f6' }}>待选部门角色站点</Divider>
<div className={styles.cardContent}> <div className={styles.cardContent}>
{title.map((item, index) => { {title.map((item, index) => {
return <div className={styles.cardItemData} key={index}> return <div className={styles.cardItemData} key={index}>
...@@ -299,7 +299,7 @@ const AddModal = props => { ...@@ -299,7 +299,7 @@ const AddModal = props => {
</div> </div>
</div> </div>
<div className={styles.cardItem}> <div className={styles.cardItem}>
<Divider orientation="left" style={{ margin: '0 0 10px 0', backgroundColor: '#dfe8f6' }}>已选字段列表</Divider> <Divider orientation="left" style={{ margin: '0 0 10px 0', backgroundColor: '#dfe8f6' }}>已选列表</Divider>
<div className={styles.cardContent}> <div className={styles.cardContent}>
<div className={styles.doctorTable}> <div className={styles.doctorTable}>
<table> <table>
......
...@@ -367,9 +367,9 @@ const videoManager = () => { ...@@ -367,9 +367,9 @@ const videoManager = () => {
icon={<PlusOutlined className={styles.icon} />} icon={<PlusOutlined className={styles.icon} />}
onClick={addVideo} onClick={addVideo}
style={{ style={{
marginLeft: '49%', float: 'right',
verticalAlign: 'middle', verticalAlign: 'middle',
marginTop: '-3px', // marginTop: '-3px',
}} }}
> >
新增 新增
......
...@@ -137,15 +137,15 @@ const UserModal = props => { ...@@ -137,15 +137,15 @@ const UserModal = props => {
description: '请至少选择选择一个用户!', description: '请至少选择选择一个用户!',
}); });
chooseUserToStation( chooseUserToStation(
qs.stringify({ {
userList: String(result.flat()), userList: String(result.flat()),
stationID: itemObj.roleID, stationID: itemObj.roleID,
}),
{
headers: {
'content-type': 'application/x-www-form-urlencggoded;charset=UTF-8',
},
}, },
// {
// headers: {
// 'content-type': 'application/x-www-form-urlencggoded;charset=UTF-8',
// },
// },
) )
.then(res => { .then(res => {
...@@ -264,7 +264,7 @@ const UserModal = props => { ...@@ -264,7 +264,7 @@ const UserModal = props => {
return ( return (
<SiteModal <SiteModal
{...props} {...props}
title="新增角色" title="关联用户"
bodyStyle={{ width: '100%', minHeight: '100px' }} bodyStyle={{ width: '100%', minHeight: '100px' }}
style={{ top: 100 }} style={{ top: 100 }}
width="800px" width="800px"
......
...@@ -282,6 +282,7 @@ const SiteManageV2 = () => { ...@@ -282,6 +282,7 @@ const SiteManageV2 = () => {
} }
//选中某个站点 //选中某个站点
const onSelect = (props, e) => { const onSelect = (props, e) => {
console.log(e)
console.log('props[0]', props[0]); console.log('props[0]', props[0]);
if (!props[0]) { if (!props[0]) {
......
...@@ -13,7 +13,7 @@ const AddUserModal = props => { ...@@ -13,7 +13,7 @@ const AddUserModal = props => {
// 提交-添加下级机构 // 提交-添加下级机构
const submitAddOrg = () => { const submitAddOrg = () => {
addOrg( addOrg(
orgID, orgID.id,
addOrgForm.getFieldValue('OUName'), addOrgForm.getFieldValue('OUName'),
addOrgForm.getFieldValue('desrciption') || '', addOrgForm.getFieldValue('desrciption') || '',
'', '',
......
...@@ -15,6 +15,7 @@ const AddUserModal = props => { ...@@ -15,6 +15,7 @@ const AddUserModal = props => {
useEffect(() => { useEffect(() => {
addUserForm.resetFields(); addUserForm.resetFields();
console.log(orgID)
}, [orgID]); }, [orgID]);
// 提交-添加用户 // 提交-添加用户
...@@ -69,7 +70,7 @@ const AddUserModal = props => { ...@@ -69,7 +70,7 @@ const AddUserModal = props => {
(phone === '' || isPhone.test(phone)) && (phone === '' || isPhone.test(phone)) &&
(email === '' || isEmail.test(email)) (email === '' || isEmail.test(email))
) { ) {
addUser({ OUID: orgID, loginName, userName, password, phone, email }) addUser({ OUID: orgID.id, loginName, userName, password, phone, email })
.then(res => { .then(res => {
if (res.msg==='') { if (res.msg==='') {
addUserForm.resetFields(); addUserForm.resetFields();
......
...@@ -3,11 +3,11 @@ import { Modal, notification, message } from 'antd'; ...@@ -3,11 +3,11 @@ import { Modal, notification, message } from 'antd';
import { deleteOrg } from '@/services/userCenter/userManage/api'; import { deleteOrg } from '@/services/userCenter/userManage/api';
const DeleteOrgModal = props => { const DeleteOrgModal = props => {
const { title, visible, orgID, onCancel, updateTrees } = props; const { title, visible, orgID, onCancel, updateTrees} = props;
// 提交-删除机构 // 提交-删除机构
const submitDeleteOrg = () => const submitDeleteOrg = () =>
deleteOrg(orgID) deleteOrg(orgID.id)
.then(res => { .then(res => {
if (res.msg==='') { if (res.msg==='') {
onCancel(); onCancel();
......
...@@ -25,7 +25,7 @@ const EditOrgModal = props => { ...@@ -25,7 +25,7 @@ const EditOrgModal = props => {
// 提交-编辑当前机构 // 提交-编辑当前机构
const submitEditOrg = () => const submitEditOrg = () =>
editOrgInfo( editOrgInfo(
orgID, orgID.id,
editOrgForm.getFieldValue('OUName'), editOrgForm.getFieldValue('OUName'),
editOrgForm.getFieldValue('description') || '', editOrgForm.getFieldValue('description') || '',
'', '',
......
...@@ -105,6 +105,7 @@ const UserManage = () => { ...@@ -105,6 +105,7 @@ const UserManage = () => {
const [selectColor, setSelectColor] = useState({}); // 当前选中颜色,操作时设置 const [selectColor, setSelectColor] = useState({}); // 当前选中颜色,操作时设置
const [orgFilters, setOrgFilters] = useState([]); // 用户列筛选 const [orgFilters, setOrgFilters] = useState([]); // 用户列筛选
const [searchWord, setSearchWord] = useState(''); // 关键字 const [searchWord, setSearchWord] = useState(''); // 关键字
const [currentSelectOrg1, setCurrentSelectOrg1] = useState('-1');
const [currentSelectOrg, setCurrentSelectOrg] = useState('-1'); // 左侧机构树-选中组织,字符串类型默认全部机构'-1',注意用户表中的OUID是数字 const [currentSelectOrg, setCurrentSelectOrg] = useState('-1'); // 左侧机构树-选中组织,字符串类型默认全部机构'-1',注意用户表中的OUID是数字
const [currentSelectOldOrg, setCurrentSelectOldOrg] = useState([]); // 更改机构时的树-原先选中组织 const [currentSelectOldOrg, setCurrentSelectOldOrg] = useState([]); // 更改机构时的树-原先选中组织
const [showSearchStyle, setShowSearchStyle] = useState(false); // 是否显示模糊查询样式 const [showSearchStyle, setShowSearchStyle] = useState(false); // 是否显示模糊查询样式
...@@ -124,6 +125,7 @@ const UserManage = () => { ...@@ -124,6 +125,7 @@ const UserManage = () => {
const [authUserVisible, setAuthUserVisible] = useState(false); // 鉴权用户 const [authUserVisible, setAuthUserVisible] = useState(false); // 鉴权用户
const [orgTitle, setOrgTitle] = useState('当前机构'); // 弹框标题 const [orgTitle, setOrgTitle] = useState('当前机构'); // 弹框标题
const [orgTitle1, setOrgTitle1] = useState('当前机构'); // 弹框标题
const [description, setDescription] = useState(''); // 机构描述信息 const [description, setDescription] = useState(''); // 机构描述信息
const [selectedRowKeys, setSelectedRowKeys] = useState([]); // 已选用户数,机构改变时重置 const [selectedRowKeys, setSelectedRowKeys] = useState([]); // 已选用户数,机构改变时重置
const [tableLength, setTableLength] = useState(0); // 当前机构用户总数 const [tableLength, setTableLength] = useState(0); // 当前机构用户总数
...@@ -145,6 +147,8 @@ const UserManage = () => { ...@@ -145,6 +147,8 @@ const UserManage = () => {
const [currentOrgDistinct, setCurrentOrgDistinct] = useState(''); const [currentOrgDistinct, setCurrentOrgDistinct] = useState('');
const [saveExtentFlag, setSaveExtentFlag] = useState(0); const [saveExtentFlag, setSaveExtentFlag] = useState(0);
const [filteredValue, setFilteredValue] = useState([]); const [filteredValue, setFilteredValue] = useState([]);
const [keep1, setKeep1] = useState([4]); // 存储树选择
const [id, setId] = useState('');
const { Search } = Input; const { Search } = Input;
const setRowClassName = record => const setRowClassName = record =>
record.userID === selectColor.userID ? styles.clickRowStyle : ''; record.userID === selectColor.userID ? styles.clickRowStyle : '';
...@@ -401,14 +405,19 @@ const UserManage = () => { ...@@ -401,14 +405,19 @@ const UserManage = () => {
const haveChildren = Array.isArray(org.children) && org.children.length > 0; const haveChildren = Array.isArray(org.children) && org.children.length > 0;
return { return {
title: ( title: (
<div className={styles.title}> <div className={styles.title1}>
<span className={styles.titleText}>{org.text}</span> <span className={styles.titleText}>{org.text}</span>
<span className={styles.tip}> <span className={styles.tip1}>
<Tooltip title="" className={styles.fs}> <Tooltip title="" className={styles.fs1}>
<Dropdown overlay={orgButtonMenu} disabled={currentOrgOperate}> <Dropdown overlay={orgButtonMenu} disabled={currentOrgOperate}>
<PlusOutlined <PlusOutlined
style={{ marginLeft: 20 }} style={{ marginLeft: 20 }}
onClick={e => e.stopPropagation()} onClick={e => e.stopPropagation()}
onMouseEnter={e => {
setOrgID(org);
setOrgTitle1(org.text);
console.log(org);
}}
/> />
</Dropdown> </Dropdown>
</Tooltip> </Tooltip>
...@@ -417,6 +426,15 @@ const UserManage = () => { ...@@ -417,6 +426,15 @@ const UserManage = () => {
<EllipsisOutlined <EllipsisOutlined
style={{ marginLeft: 10, fontSize: '20px' }} style={{ marginLeft: 10, fontSize: '20px' }}
onClick={e => e.stopPropagation()} onClick={e => e.stopPropagation()}
onMouseEnter={e => {
setOrgID(org);
setOrgTitle1(org.text);
getDescription(org.id);
getMapSetByGroupID(org.id);
setCurrentSelectOrg1(org.id);
setId(org.text);
console.log(org);
}}
/> />
</Dropdown> </Dropdown>
</span> </span>
...@@ -428,6 +446,16 @@ const UserManage = () => { ...@@ -428,6 +446,16 @@ const UserManage = () => {
}; };
}; };
const mapTree1 = org => {
const haveChildren = Array.isArray(org.children) && org.children.length > 0;
return {
title: org.text,
key: org.id,
// 判断它是否存在子集,若果存在就进行再次进行遍历操作,知道不存在子集便对其他的元素进行操作
children: haveChildren ? org.children.map(i => mapTree1(i)) : [],
};
};
// 重新渲染树 // 重新渲染树
const updateTrees = () => { const updateTrees = () => {
setTreeLoading(true); setTreeLoading(true);
...@@ -490,6 +518,7 @@ const UserManage = () => { ...@@ -490,6 +518,7 @@ const UserManage = () => {
useEffect(() => { useEffect(() => {
getOrgArea().then(res => { getOrgArea().then(res => {
if (res.msg === 'Ok') { if (res.msg === 'Ok') {
console.log(res);
setOrgAreas(res.Results); setOrgAreas(res.Results);
} }
}); });
...@@ -499,14 +528,18 @@ const UserManage = () => { ...@@ -499,14 +528,18 @@ const UserManage = () => {
const onSelect = (props, e) => { const onSelect = (props, e) => {
console.log(e); console.log(e);
console.log(props); console.log(props);
setKeep1(props);
console.log(keep1);
setTableLoading(true); setTableLoading(true);
if (e) { if (e) {
setOrgTitle(e.node.title.props.children[0].props.children); setOrgTitle(e.node.title.props.children[0].props.children);
} }
if (!props[0]) { if (!props[0]) {
setCurrentSelectOrg(currentSelectOrg); setCurrentSelectOrg(currentSelectOrg);
setCurrentSelectOrg1(currentSelectOrg);
} else { } else {
setCurrentSelectOrg(props[0]); setCurrentSelectOrg(props[0]);
setCurrentSelectOrg1(props[0]);
} }
// orgAreas.map((item)=>{ // orgAreas.map((item)=>{
...@@ -568,6 +601,25 @@ const UserManage = () => { ...@@ -568,6 +601,25 @@ const UserManage = () => {
} }
}; };
const getDescription = e => {
getOneOUUserListNew(e).then(res => {
if (res.code === 0) {
setDescription(res.data.Description);
}
});
};
const getMapSetByGroupID = e => {
GetMapSetByGroupID({
groupID: e,
}).then(res => {
if (res.code === 0) {
console.log(res);
setCurrentOrgArea(res.data.MapRange);
setCurrentOrgDistinct(res.data.AreeName);
}
});
};
// 返回用户表数据结构处理,扁平化 // 返回用户表数据结构处理,扁平化
const getUsers = orgObj => { const getUsers = orgObj => {
let result = orgObj.Users; let result = orgObj.Users;
...@@ -1150,16 +1202,22 @@ const UserManage = () => { ...@@ -1150,16 +1202,22 @@ const UserManage = () => {
// 更改机构范围 // 更改机构范围
const submitExtent = (extent, areaName) => { const submitExtent = (extent, areaName) => {
setTreeLoading(true);
console.log(extent);
console.log(areaName);
console.log(currentSelectOrg1);
if (extent) { if (extent) {
setOrgArea({ setOrgArea({
OUID: currentSelectOrg, OUID: currentSelectOrg1,
areaName, areaName,
extent, extent,
}).then(res => { }).then(res => {
if (res.msg === '') { if (res.msg === '') {
setTreeLoading(false);
setSaveExtentFlag(saveExtentFlag + 1); setSaveExtentFlag(saveExtentFlag + 1);
message.success('机构范围设置成功!'); message.success('机构范围设置成功!');
} else { } else {
setTreeLoading(false);
message.warn(res.Message); message.warn(res.Message);
} }
}); });
...@@ -1168,7 +1226,6 @@ const UserManage = () => { ...@@ -1168,7 +1226,6 @@ const UserManage = () => {
}; };
const addChange = e => { const addChange = e => {
console.log(e);
e.domEvent.stopPropagation(); e.domEvent.stopPropagation();
}; };
/** ***操作按钮**** */ /** ***操作按钮**** */
...@@ -1215,6 +1272,11 @@ const UserManage = () => { ...@@ -1215,6 +1272,11 @@ const UserManage = () => {
</Menu> </Menu>
); );
const kee = () => {
console.log(keep1);
setUserVisible(false);
onSelect(keep1);
};
return ( return (
<PageContainer className={styles.userManageContainer}> <PageContainer className={styles.userManageContainer}>
<div className={styles.contentContainer}> <div className={styles.contentContainer}>
...@@ -1352,30 +1414,30 @@ const UserManage = () => { ...@@ -1352,30 +1414,30 @@ const UserManage = () => {
{/* Modal弹框 */} {/* Modal弹框 */}
{/* 添加用户 */} {/* 添加用户 */}
<AddUserModal <AddUserModal
title={`在${orgTitle}下添加用户`} title={`在${orgTitle1}下添加用户`}
visible={userVisible} visible={userVisible}
orgID={orgID} orgID={orgID}
onCancel={() => setUserVisible(false)} onCancel={kee}
onSelect={() => onSelect([orgID])} // onSelect={() => onSelect([orgID])}
/> />
{/* 添加下级机构 */} {/* 添加下级机构 */}
<AddSubOrgModal <AddSubOrgModal
title={orgID === '-1' ? '添加顶级机构' : `在${orgTitle}下添加机构`} title={orgID === '-1' ? '添加顶级机构' : `在${orgTitle1}下添加机构`}
visible={addOrgVisible} visible={addOrgVisible}
orgID={orgID} orgID={orgID}
onCancel={() => setAddOrgVisible(false)} onCancel={() => setAddOrgVisible(false)}
onSelect={onSelect} // onSelect={onSelect}
updateTrees={updateTrees} updateTrees={updateTrees}
/> />
{/* 编辑机构 */} {/* 编辑机构 */}
<EditOrgModal <EditOrgModal
title={`编辑${orgTitle}`} title={`编辑${orgTitle1}`}
visible={editOrgVisible} visible={editOrgVisible}
orgID={orgID} orgID={orgID}
orgTitle={orgTitle} orgTitle={orgTitle1}
description={description} description={description}
onCancel={() => setEditOrgVisible(false)} onCancel={() => setEditOrgVisible(false)}
onSelect={onSelect} // onSelect={onSelect}
updateTrees={updateTrees} updateTrees={updateTrees}
/> />
{/* 删除机构 */} {/* 删除机构 */}
...@@ -1428,7 +1490,7 @@ const UserManage = () => { ...@@ -1428,7 +1490,7 @@ const UserManage = () => {
// 切换后选中的节点 // 切换后选中的节点
setCurrentSelectOldOrg(value[0]); setCurrentSelectOldOrg(value[0]);
}} }}
treeData={treeDataCopy.map(t => mapTree(t))} treeData={treeDataCopy.map(t => mapTree1(t))}
/> />
)} )}
</Modal> </Modal>
...@@ -1483,9 +1545,10 @@ const UserManage = () => { ...@@ -1483,9 +1545,10 @@ const UserManage = () => {
<p>将删除多个用户, 是否确认删除?</p> <p>将删除多个用户, 是否确认删除?</p>
</Modal> </Modal>
<MapScopeEditModal <MapScopeEditModal
title={id}
mapId={createGuid()} mapId={createGuid()}
visible={editOrgExtentVisible} visible={editOrgExtentVisible}
stationId={currentSelectOrg} stationId={currentSelectOrg1}
onCancel={() => setEditOrgExtentVisible(false)} onCancel={() => setEditOrgExtentVisible(false)}
confirmModal={submitExtent} confirmModal={submitExtent}
distinct={currentOrgDistinct} distinct={currentOrgDistinct}
......
...@@ -182,6 +182,32 @@ ...@@ -182,6 +182,32 @@
.ant-popover-message-title { .ant-popover-message-title {
padding-left: 20px; padding-left: 20px;
} }
.title1{
display: flex;
align-items: center;
width: 100%;
}
.tip1{
display: none;
}
.fs1{
font-size: 18px;
margin-left: 10px;
}
.title1:hover{
.tip1{
display: flex;
align-items: center;
justify-content: flex-end;
width: 100%;
}
}
.titleText{
width: 12rem;
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis;
}
.userContainer{ .userContainer{
height: calc(100vh - 74px) !important; height: calc(100vh - 74px) !important;
z-index: 999; z-index: 999;
...@@ -280,32 +306,7 @@ ...@@ -280,32 +306,7 @@
// .ant-form-horizontal .ant-form-item-control { // .ant-form-horizontal .ant-form-item-control {
// margin-left: 10px; // margin-left: 10px;
// } // }
.title{
display: flex;
align-items: center;
width: 100%;
}
.tip{
display: none;
}
.fs{
font-size: 18px;
margin-left: 10px;
}
.title:hover{
.tip{
display: flex;
align-items: center;
justify-content: flex-end;
width: 100%;
}
}
.titleText{
width: 12rem;
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis;
}
.ant-popover-inner { .ant-popover-inner {
border-radius: 10px; border-radius: 10px;
background-color: rgba(255, 255, 255, 0.788); background-color: rgba(255, 255, 255, 0.788);
......
...@@ -25,6 +25,7 @@ import SiteManage from '../pages/userCenter/siteManage/SiteManage'; ...@@ -25,6 +25,7 @@ import SiteManage from '../pages/userCenter/siteManage/SiteManage';
import SiteManageV2 from '../pages/userCenter/siteManageV2/SiteManage'; import SiteManageV2 from '../pages/userCenter/siteManageV2/SiteManage';
import Dictionary from '../pages/dataCenter/dictionary'; import Dictionary from '../pages/dataCenter/dictionary';
import Dictionary1 from '../pages/dataCenter/dictionary1'; import Dictionary1 from '../pages/dataCenter/dictionary1';
import Search from '../pages/dataCenter/search';
import ServiceLog from '../pages/log/serviceLog'; import ServiceLog from '../pages/log/serviceLog';
import LoginLog from '../pages/log/loginLog'; import LoginLog from '../pages/log/loginLog';
import OmsLog from '../pages/log/omsLog'; import OmsLog from '../pages/log/omsLog';
...@@ -380,6 +381,12 @@ export default { ...@@ -380,6 +381,12 @@ export default {
component: Dictionary1, component: Dictionary1,
}, },
// { // {
// path: '/dataCenter/search',
// name: '搜索',
// // hideMenu: true,
// component: Search,
// },
// {
// path: '/dataCenter/video', // path: '/dataCenter/video',
// name: '视频管理', // name: '视频管理',
// url: // url:
......
...@@ -35,8 +35,10 @@ export const saveConnectionNew = params => ...@@ -35,8 +35,10 @@ export const saveConnectionNew = params =>
// 获取数据库列表 // 获取数据库列表
// export const getDataBaseList = params =>
// get(`${CITY_SERVICE}/OMS.svc/S_GetDataBaseList`, params);
export const getDataBaseList = params => export const getDataBaseList = params =>
get(`${CITY_SERVICE}/OMS.svc/S_GetDataBaseList`, params); get(`${PUBLISH_SERVICE}/DBManager/getDataBaseList`, params);
// 数据库初始化 // 数据库初始化
// export const initDBv4 = params => // export const initDBv4 = 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