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

事件权限交互修改

parent f3348486
Pipeline #39811 skipped with stages
/* eslint-disable spaced-comment */
/* eslint-disable eqeqeq */
import React, { useEffect, useRef, useState } from 'react';
import {
Card,
......@@ -258,7 +260,7 @@ const InitDataBase = props => {
})
.then(res => {
setCardLoading(false);
if (res.code === 0&& res.data == true) {
if (res.code == 0 && res.data == true) {
notification.success({
message: '提示',
duration: 3,
......@@ -279,7 +281,7 @@ const InitDataBase = props => {
};
// 获取数据库列表
const selectFocus = e => {
//setOption([]);
//setOption([]);
let params = form.getFieldsValue();
getDataBaseList({
// _version: 9999,
......@@ -290,7 +292,7 @@ const InitDataBase = props => {
})
.then(res => {
if (res.code == 0) {
console.log(res.data.root)
console.log(res.data.root);
setOption(res.data.root);
} else {
notification.error({
......@@ -689,7 +691,7 @@ const InitDataBase = props => {
<Input placeholder="请输入用户名称" />
</Form.Item>
<Form.Item label={`${formLables.password}:`} name="password">
<Input placeholder="请输入用户密码" type="password"/>
<Input placeholder="请输入用户密码" type="password" />
</Form.Item>
<Form.Item label={`${formLables.dbName}:`} name="dbName">
<Select
......@@ -757,7 +759,7 @@ const InitDataBase = props => {
<Card className={styles.mgTop20}>
<div className={styles.tableTitle}>近期保存的数据库连接</div>
<Table
style={{ marginTop: '20px'}}
style={{ marginTop: '20px' }}
scroll={{ x: 'max-content', y: 'calc(100vh - 580px)' }}
columns={columns}
dataSource={data}
......
......@@ -8,7 +8,7 @@ import {
Popconfirm,
notification,
Spin,
Pagination
Pagination,
} from 'antd';
import copy from 'copy-to-clipboard';
import PageContainer from '@/components/BasePageContainer';
......@@ -338,11 +338,11 @@ const ManagementDataBase = () => {
];
const paginationChange = (page, pageSizes) => {
console.log(page)
console.log(pageSizes)
console.log(page);
console.log(pageSizes);
setCurrentPage(page);
setPageSize(pageSizes);
}
};
return (
<>
......
......@@ -133,7 +133,7 @@ const Fieldselection = props => {
title="流程节点配置"
visible={visible}
onOk={onFinish}
width="700px"
width="750px"
onCancel={handleCancel}
maskClosable={false}
destroyOnClose
......
......@@ -130,7 +130,7 @@ const AddFlowsModal = props => {
let a1 = [];
let a2;
let a3 = [];
initialArr.map(i => {
initialArr.data.map(i => {
// console.log(i.groupType)
a2 = i.groupType;
// console.log(a2)
......
......@@ -791,11 +791,12 @@ const AddModal = props => {
return tempObj;
};
const formateArrDataA1 = (initialArr, name) => {
console.log(initialArr);
let aa = [];
let a1 = [];
let a2;
let a3 = [];
initialArr.map(i => {
initialArr.data.map(i => {
// console.log(i.groupType)
a2 = i.groupType;
// console.log(a2)
......@@ -888,6 +889,9 @@ const AddModal = props => {
};
const onOK = prop => {
console.log(prop.isType);
console.log(prop.stt);
console.log(prop.filed22);
console.log(prop.title);
if (prop.isType == 'app') {
let title = prop.title;
let selectData = prop.stt;
......@@ -904,8 +908,13 @@ const AddModal = props => {
}
});
console.log(aa);
if (aa.length == 0) {
bb = 1;
if (item == '外部字段' && aa.length == 0) {
bb = 0;
} else {
// eslint-disable-next-line no-lonely-if
if (aa.length == 0) {
bb = 1;
}
}
});
console.log(aa);
......@@ -917,6 +926,8 @@ const AddModal = props => {
} else {
setIsVisible(false);
let inputText = { ...inputValue };
console.log(inputText);
console.log(prop.str);
inputText[prop.pickItem] = prop.str;
setCheckedList1(prop.checkedList);
setInputValue(inputText);
......@@ -990,11 +1001,11 @@ const AddModal = props => {
}
}
});
if (a.length > 0) {
pp.外部字段 = a;
console.log(pp);
arr.push('外部字段');
}
// if (a.length > 0) {
// pp.外部字段 = a;
// console.log(pp);
// arr.push('外部字段');
// }
console.log(a);
console.log(pp);
setFiled1(pp);
......
......@@ -3,11 +3,23 @@
/* eslint-disable no-unused-expressions */
/* eslint-disable no-shadow */
import React, { useState, useEffect, useCallback, useRef } from 'react';
import { Form, Modal, Space, Divider, Radio, Checkbox, Button } from 'antd';
import {
Form,
Modal,
Space,
Divider,
Radio,
Checkbox,
Button,
Tabs,
Pagination,
Input,
} from 'antd';
import Sortable from 'sortablejs';
import DragTable from '@/components/DragTable/DragTable';
import styles from './incident.less';
const CheckboxGroup = Checkbox.Group;
const { TabPane } = Tabs;
const ChangeAddFlows = props => {
const {
callBackSubmit = () => {},
......@@ -27,12 +39,86 @@ const ChangeAddFlows = props => {
const [indeterminate, setIndeterminate] = useState([]);
const [checkAll, setCheckAll] = useState([]);
const [selectData, setSelectData] = useState([]);
const [arrValue, setArrValue] = useState([]);
const [data, setData] = useState([]);
const [flagg, setFlagg] = useState(0);
const [type, setType] = useState(); // 是否全选
const [searchWord, setSearchWord] = useState(''); // 关键字
const { Search } = Input;
const [total, setTotal] = useState();
const [pageSize, setPageSize] = useState(10);
const [currentPage, setCurrentPage] = useState(1);
let objArr = [];
const onChangeList1 = (list, index, title) => {
const checkedListArr = [...checkedList];
checkedListArr[index] = list;
// 将第一次打开回显数据先存成数组
let oldArr = [];
let addArr = [];
let newArr = [];
if (flagg == 0) {
arrValue.map((item, index) => {
oldArr = oldArr.concat(item);
});
console.log(oldArr);
// 将第一次打开回显数据存入已选择数组里
oldArr.map(item => {
newArr.push(item);
});
console.log(newArr);
// 获取本次新增数据后的数组
let objArr = [];
checkedListArr.map(item => {
objArr = objArr.concat(item);
});
console.log(objArr); // 本次增加数据后数组
console.log(arrValue); // 上次数组
// 获取新增数据
objArr.map((item1, index1) => {
if (arrValue.indexOf(item1) == -1) {
addArr.push(item1);
}
});
} else {
arrValue.map((item, index) => {
oldArr = oldArr.concat(item);
});
console.log(oldArr);
// 将第一次打开回显数据存入已选择数组里
oldArr.map(item => {
newArr.push(item);
});
console.log(newArr);
// 获取本次新增数据后的数组
let objArr = [];
checkedListArr.map(item => {
objArr = objArr.concat(item);
});
console.log(objArr); // 本次增加数据后数组
console.log(oldArr); // 上次数组
// 获取新增数据
objArr.map((item1, index1) => {
if (oldArr.indexOf(item1) == -1) {
addArr.push(item1);
}
});
}
// 将每次新增数据从尾部写入已选择数组里
console.log(addArr);
if (addArr.length != 0) {
addArr.map(item => {
newArr.push(item);
});
}
console.log(newArr);
// 保存此次所有数据顺序
setArrValue(newArr);
setCheckedList(checkedListArr);
console.log(checkedListArr);
// setSelectData(checkedListArr);
const indeterminateArr = [...indeterminate];
const checkAllArr = [...checkAll];
indeterminateArr[index] =
......@@ -40,22 +126,37 @@ const ChangeAddFlows = props => {
checkAllArr[index] = list.length === filed1[title].length;
setIndeterminate(indeterminateArr);
setCheckAll(checkAllArr);
setFlagg(0);
};
const onSubmit = () => {
console.log(selectData.join(','));
console.log(pickItem);
console.log(checkedList);
console.log(selectData);
let aRR = [];
selectData.map(item => {
console.log(typeof item);
if (typeof item == 'string') {
aRR = selectData;
} else {
console.log(112212);
console.log(item.name);
aRR.push(item.name);
console.log(63467246);
console.log(aRR);
}
});
console.log(aRR);
callBackSubmit({
checkedList,
str: selectData.join(','),
str: aRR.join(','),
pickItem,
stt: selectData,
stt: aRR,
title,
filed22: filed1,
});
};
const onCheckAllChange = e => {
setData(1);
const indeterminateArr = [...indeterminate];
const checkAllArr = [...checkAll];
const checkedListArr = [...checkedList];
......@@ -65,100 +166,175 @@ const ChangeAddFlows = props => {
? (checkedListArr[e.target.index] = e.target.checkvalue)
: (checkedListArr[e.target.index] = []);
setCheckedList(checkedListArr);
setType(e.target.checked);
setIndeterminate(indeterminateArr);
setCheckAll(checkAllArr);
};
useEffect(() => {
selectAll();
if (flagg == 0) {
selectAll();
}
if (data == 1) {
selectAll();
}
setData(0);
}, [checkedList]);
const selectAll = () => {
console.log(data);
console.log(checkedList);
objArr = [];
let lastArr = [];
checkedList.map(item => {
objArr = objArr.concat(item);
});
setSelectData(objArr);
console.log(arrValue);
console.log(objArr);
if (data == 1) {
let newArr = [];
arrValue.map(item => {
if (item.name == undefined) {
newArr = arrValue;
} else {
newArr = arrValue.map(item => item.name);
}
});
console.log(newArr);
if (type == false) {
newArr.map(item => {
if (objArr.indexOf(item) != -1) {
lastArr.push(item);
}
});
let newArr1 = lastArr.map(item => ({ name: item }));
if (newArr1.length === 1 && newArr1[0].name === '') {
newArr1 = [];
}
console.log(newArr1);
setSelectData(newArr1);
setArrValue(lastArr);
} else {
let addArr = [];
objArr.map(item => {
if (newArr.indexOf(item) == -1) {
addArr.push(item);
}
});
console.log(addArr);
addArr.map(item => {
newArr.push(item);
});
console.log(newArr);
let newArr1 = newArr.map(item => ({ name: item }));
if (newArr1.length === 1 && newArr1[0].name === '') {
newArr1 = [];
}
console.log(newArr1);
setSelectData(newArr1);
setArrValue(newArr);
}
} else {
arrValue.map(item => {
if (objArr.indexOf(item) != -1) {
lastArr.push(item);
}
});
let newArr1 = lastArr.map(item => ({ name: item }));
if (newArr1.length === 1 && newArr1[0].name === '') {
newArr1 = [];
}
console.log(lastArr);
console.log(newArr1);
setSelectData(newArr1);
setArrValue(lastArr);
}
};
useEffect(() => {
console.log(characterValue);
console.log(pickItem);
console.log(filed1);
let arr = Object.keys(filed1);
console.log(arr, 'arr');
setTitle(arr);
let checkArr = [];
let indeterminateArr = [];
let checkAllArr = [];
console.log(newCheckedList);
// let b = []
// let a = []
arr.map((item, index) => {
// filed1[item].map((i, j) => {
// b.push(i)
// })
checkArr[index] = [];
newCheckedList.map(checkItem => {
if (filed1[item].includes(checkItem)) {
checkArr[index].push(checkItem);
}
if (visible) {
setFlagg(1);
console.log(filed1);
let arr = Object.keys(filed1);
console.log(arr, 'arr');
setTitle(arr);
let checkArr = [];
let indeterminateArr = [];
let checkAllArr = [];
console.log(newCheckedList);
arr.map((item, index) => {
checkArr[index] = [];
newCheckedList.map(checkItem => {
if (filed1[item].includes(checkItem)) {
checkArr[index].push(checkItem);
}
});
indeterminateArr.push(
!!checkArr[index].length &&
checkArr[index].length < filed1[item].length,
);
checkAllArr.push(checkArr[index].length === filed1[item].length);
});
indeterminateArr.push(
!!checkArr[index].length &&
checkArr[index].length < filed1[item].length,
);
checkAllArr.push(checkArr[index].length === filed1[item].length);
});
// newCheckedList.map((item, index) => {
// if (b.includes(item) == false) {
// if(item == ''){
// a=[]
// }else{
// a.push(item)
// }
// }
// })
// if(a.length >0){
// filed1.外部字段 = a
// console.log(filed1)
// arr.push('外部字段')
// }
// setTitle(arr)
// checkArr.push(a)
console.log(checkArr);
setCheckedList(checkArr);
setIndeterminate(indeterminateArr);
setCheckAll(checkAllArr);
let newArr = characterValue.length ? characterValue.split(',') : [];
setSelectData(newArr);
draftSort();
setCheckedList(checkArr);
setIndeterminate(indeterminateArr);
setCheckAll(checkAllArr);
console.log(characterValue);
let newArr = characterValue.length ? characterValue.split(',') : [];
console.log(newArr);
let newArr1 = newCheckedList.map(item => ({ name: item }));
if (newArr1.length === 1 && newArr1[0].name === '') {
newArr1 = [];
}
console.log(newArr1);
setSelectData(newArr1);
setArrValue(newArr1);
} else {
setSelectData([]);
setArrValue([]);
}
}, [visible]);
const dragCallBack = arr => {
console.log(arr);
// 拖拽初始化及逻辑
const draftSort = () => {
let el = document.getElementById('doctor-drag-items');
if (el) {
let sortable = Sortable.create(el, {
animation: 100, // 动画参数
onEnd(evt) {
// 拖拽完毕之后发生,只需关注该事件
let arr = [];
let len = evt.from.children.length;
for (let i = 0; i < len; i++) {
arr.push(evt.from.children[i].getAttribute('drag-id'));
}
setSelectData(arr);
},
});
if (arr) {
console.log(111);
setSelectData(arr);
let newArr = arr.map(item => item.name);
console.log(newArr);
setArrValue(newArr);
}
};
const submitSearchUser = () => {};
// 获取搜索框的值
const handleSearch = e => {
setSearchWord(e.target.value);
};
// 监听分页
const paginationChange = (page, pageSizes) => {
// 分页时清空复选框
setCurrentPage(page);
setPageSize(pageSizes);
// let username = form.getFieldValue('username');
// getData(username, page, pageSizes);
};
const columns = [
{
title: '已选列表',
dataIndex: 'name',
width: 150,
key: 'name',
},
];
return (
<Modal
title="部门或角色"
bodyStyle={{ width: '100%', minHeight: '100px' }}
width="1400px"
title="权限选择"
bodyStyle={{ width: '100%', height: '650px', overflowY: 'scorll' }}
width="1000px"
style={{ top: '10px' }}
destroyOnClose
centered
cancelText="取消"
......@@ -168,91 +344,92 @@ const ChangeAddFlows = props => {
forceRender
getContainer={false}
>
<Search
style={{
width: 260,
marginRight: '20px',
marginBottom: '10px',
}}
placeholder="搜索"
onSearch={submitSearchUser}
onChange={e => handleSearch(e)}
enterButton
value={searchWord}
/>
<Button
type="primary"
htmlType="submit"
// onClick={() => {
// setCurrentPage(1);
// getData('', 1, pageSize);
// form.setFieldsValue({ username: '' });
// }}
>
重置
</Button>
{visible && (
<div className={styles.listCard1}>
<div
className={styles.cardItem1}
style={{ borderRight: '1px solid #99bbe8' }}
>
<Divider
orientation="left"
style={{ margin: '0 0 10px 0', backgroundColor: '#dfe8f6' }}
>
待选部门站点角色
</Divider>
<div className={styles.cardItem1}>
<div className={styles.cardContent1}>
{title.map((item, index) => (
<div className={styles.cardItemData1} key={index}>
<Divider
orientation="left"
style={{
margin: '0 0 10px 0',
color: '#15428b',
borderTopColor: '#99bbe8',
}}
>
{item}{' '}
<Checkbox
indeterminate={indeterminate[index]}
onChange={onCheckAllChange}
index={index}
checkvalue={filed1[item]}
checked={checkAll[index]}
>
{' '}
</Checkbox>
</Divider>
<CheckboxGroup
options={filed1[item]}
value={checkedList[index]}
onChange={e => onChangeList1(e, index, item)}
/>
</div>
))}
<Tabs defaultActiveKey="0" className={styles.tab}>
{title.map((item, index) => (
<TabPane tab={item} key={index}>
<div className={styles.cardItemData1} key={index}>
<Divider
orientation="left"
style={{
margin: '0 0 10px 0',
color: '#15428b',
borderTopColor: '#99bbe8',
}}
>
<Checkbox
indeterminate={indeterminate[index]}
onChange={onCheckAllChange}
index={index}
checkvalue={filed1[item]}
checked={checkAll[index]}
style={{ marginRight: '7px' }}
/>
{item}
</Divider>
<CheckboxGroup
options={filed1[item]}
value={checkedList[index]}
onChange={e => onChangeList1(e, index, item)}
/>
</div>
</TabPane>
))}
</Tabs>
</div>
</div>
{/* <div className={styles.cardItem}>
<Divider
orientation="left"
style={{ margin: '0 0 10px 0', backgroundColor: '#dfe8f6' }}
>
已选列表
</Divider>
<div className={styles.cardContent}>
<div className={styles.doctorTable}>
<table>
<thead>
<tr>
<td>字段名</td>
</tr>
</thead>
<tbody id="doctor-drag-items">
{selectData && selectData.length > 0 ? (
selectData.map((item, index) => (
<tr
drag-id={item}
key={index}
style={{ cursor: 'move' }}
>
<td>
<span title={item}>{item}</span>
</td>
</tr>
))
) : (
<tr>
<td colSpan="10" style={{ textAlign: 'center' }}>
暂无数据
</td>
</tr>
)}
</tbody>
</table>
</div>
</div>
</div> */}
<div className={styles.cardItem11}>
<DragTable
bordered
style={{ marginBottom: '10px' }}
rowKey={record => record.name}
columns={columns}
dataSource={selectData}
pagination={false}
size="small"
dragCallBack={dragCallBack}
ItemTypes="stadingOrder"
/>
</div>
</div>
)}
<Pagination
total={total}
showTotal={item => `共 ${item} 条`}
defaultPageSize={pageSize}
defaultCurrent={1}
current={currentPage}
onChange={paginationChange}
style={{ marginBottom: '10px' }}
size="small"
showQuickJumper
/>
</Modal>
);
};
......
/* eslint-disable react/jsx-no-undef */
/* eslint-disable valid-typeof */
/* eslint-disable no-unused-vars */
/* eslint-disable consistent-return */
/* eslint-disable no-shadow */
......@@ -7,14 +9,27 @@
/* eslint-disable eqeqeq */
/* eslint-disable no-plusplus */
import React, { useState, useEffect, useCallback, useRef } from 'react';
import { Form, Modal, Divider, Checkbox } from 'antd';
import {
Form,
Modal,
Divider,
Checkbox,
Tabs,
Input,
Button,
Pagination,
} from 'antd';
import DragTable from '@/components/DragTable/DragTable';
import Sortable from 'sortablejs';
import { add } from 'lodash-es';
import styles from './incident.less';
import { string } from 'prop-types';
import { setServiceType } from '@/services/webConfig/api';
import { ContinuousLegend } from '@antv/g2/lib/dependents';
import { ConsoleSqlOutlined } from '@ant-design/icons';
import styles from './incident.less';
const CheckboxGroup = Checkbox.Group;
const { TabPane } = Tabs;
const AddModal = props => {
const {
callBackSubmit = () => {},
......@@ -41,6 +56,11 @@ const AddModal = props => {
const [data, setData] = useState([]);
const [flagg, setFlagg] = useState(0);
const [type, setType] = useState(); // 是否全选
const [searchWord, setSearchWord] = useState(''); // 关键字
const { Search } = Input;
const [total, setTotal] = useState();
const [pageSize, setPageSize] = useState(10);
const [currentPage, setCurrentPage] = useState(1);
let objArr = [];
const onChangeList = (list, index, title) => {
......@@ -122,7 +142,72 @@ const AddModal = props => {
const onChangeList1 = (list, index, title) => {
const checkedListArr = [...checkedList];
checkedListArr[index] = list;
// 将第一次打开回显数据先存成数组
let oldArr = [];
let addArr = [];
let newArr = [];
if (flagg == 0) {
arrValue.map((item, index) => {
oldArr = oldArr.concat(item);
});
console.log(oldArr);
// 将第一次打开回显数据存入已选择数组里
oldArr.map(item => {
newArr.push(item);
});
console.log(newArr);
// 获取本次新增数据后的数组
let objArr = [];
checkedListArr.map(item => {
objArr = objArr.concat(item);
});
console.log(objArr); // 本次增加数据后数组
console.log(arrValue); // 上次数组
// 获取新增数据
objArr.map((item1, index1) => {
if (arrValue.indexOf(item1) == -1) {
addArr.push(item1);
}
});
} else {
arrValue.map((item, index) => {
oldArr = oldArr.concat(item);
});
console.log(oldArr);
// 将第一次打开回显数据存入已选择数组里
oldArr.map(item => {
newArr.push(item);
});
console.log(newArr);
// 获取本次新增数据后的数组
let objArr = [];
checkedListArr.map(item => {
objArr = objArr.concat(item);
});
console.log(objArr); // 本次增加数据后数组
console.log(oldArr); // 上次数组
// 获取新增数据
objArr.map((item1, index1) => {
if (oldArr.indexOf(item1) == -1) {
addArr.push(item1);
}
});
}
// 将每次新增数据从尾部写入已选择数组里
console.log(addArr);
if (addArr.length != 0) {
addArr.map(item => {
newArr.push(item);
});
}
console.log(newArr);
// 保存此次所有数据顺序
setArrValue(newArr);
setCheckedList(checkedListArr);
console.log(checkedListArr);
// setSelectData(checkedListArr);
const indeterminateArr = [...indeterminate];
const checkAllArr = [...checkAll];
indeterminateArr[index] =
......@@ -130,9 +215,22 @@ const AddModal = props => {
checkAllArr[index] = list.length === filed1[title].length;
setIndeterminate(indeterminateArr);
setCheckAll(checkAllArr);
setFlagg(0);
};
const onSubmit1 = () => {
console.log(selectData);
let aRR = [];
selectData.map(item => {
console.log(typeof item);
if (typeof item == 'string') {
console.log(1111);
aRR = selectData;
} else {
aRR.push(item.name);
}
});
console.log(aRR);
let newArr = selectData.map(item => item.name);
isType === 'rule'
? callBackSubmit(
......@@ -142,9 +240,9 @@ const AddModal = props => {
)
: callBackSubmit({
checkedList,
str: newArr.join(','),
str: aRR.join(','),
pickItem,
stt: newArr,
stt: aRR,
title,
filed22: filed1,
isType,
......@@ -152,6 +250,22 @@ const AddModal = props => {
};
const onSubmit = () => {
console.log(selectData);
let aRR = [];
selectData.map(item => {
console.log(typeof item);
if (typeof item == 'string') {
aRR = selectData;
} else {
console.log(112212);
console.log(item.name);
aRR.push(item.name);
console.log(63467246);
console.log(aRR);
}
});
console.log(aRR);
isType === 'rule'
? callBackSubmit(
`${
......@@ -160,22 +274,20 @@ const AddModal = props => {
)
: callBackSubmit({
checkedList,
str: selectData.join(','),
str: aRR.join(','),
pickItem,
stt: selectData,
stt: aRR,
title,
filed22: filed1,
isType,
});
};
const onCheckAllChange1 = e => {
console.log(11212123213);
setData(1);
const indeterminateArr = [...indeterminate];
const checkAllArr = [...checkAll];
const checkedListArr = [...checkedList];
checkAllArr[e.target.index] = e.target.checked;
console.log(e.target.checked);
indeterminateArr[e.target.index] = false;
e.target.checked
? (checkedListArr[e.target.index] = e.target.checkvalue)
......@@ -187,6 +299,7 @@ const AddModal = props => {
};
const onCheckAllChange = e => {
setData(1);
const indeterminateArr = [...indeterminate];
const checkAllArr = [...checkAll];
const checkedListArr = [...checkedList];
......@@ -196,6 +309,7 @@ const AddModal = props => {
? (checkedListArr[e.target.index] = e.target.checkvalue)
: (checkedListArr[e.target.index] = []);
setCheckedList(checkedListArr);
setType(e.target.checked);
setIndeterminate(indeterminateArr);
setCheckAll(checkAllArr);
};
......@@ -210,16 +324,17 @@ const AddModal = props => {
}, [checkedList]);
const selectAll = () => {
console.log(data);
console.log(checkedList);
objArr = [];
let lastArr = [];
// 处理未排序的勾选数据扁平化
checkedList.map(item => {
objArr = objArr.concat(item);
});
console.log(arrValue);
console.log(objArr);
// 判断是否操作全部勾选的复选框
if (data == 1) {
// 处理上次选中改变顺序后的数据扁平化
let newArr = [];
arrValue.map(item => {
if (item.name == undefined) {
......@@ -229,7 +344,9 @@ const AddModal = props => {
}
});
console.log(newArr);
// 判断是否为全选
if (type == false) {
// 判断上次有顺序的数据是否包含这次未排序已选列表数据
newArr.map(item => {
if (objArr.indexOf(item) != -1) {
lastArr.push(item);
......@@ -239,10 +356,12 @@ const AddModal = props => {
if (newArr1.length === 1 && newArr1[0].name === '') {
newArr1 = [];
}
console.log(lastArr);
console.log(newArr1);
setSelectData(newArr1);
setArrValue(lastArr);
} else {
// 全选状态时
let addArr = [];
objArr.map(item => {
if (newArr.indexOf(item) == -1) {
......@@ -259,11 +378,11 @@ const AddModal = props => {
newArr1 = [];
}
console.log(newArr1);
setSelectData(newArr1);
setArrValue(newArr);
}
} else {
// 判断扁平处理后的选中未排序列表数据是否存在于上次已选数组中
arrValue.map(item => {
if (objArr.indexOf(item) != -1) {
lastArr.push(item);
......@@ -345,7 +464,13 @@ const AddModal = props => {
console.log(characterValue);
let newArr = characterValue.length ? characterValue.split(',') : [];
console.log(newArr);
setSelectData(newArr);
let newArr1 = newCheckedList.map(item => ({ name: item }));
if (newArr1.length === 1 && newArr1[0].name === '') {
newArr1 = [];
}
console.log(newArr1);
setSelectData(newArr1);
setArrValue(newArr1);
}
} else {
setSelectData([]);
......@@ -355,30 +480,49 @@ const AddModal = props => {
const dragCallBack = arr => {
console.log(arr);
if (arr) {
console.log(111);
setSelectData(arr);
let newArr = arr.map(item => item.name);
let newArr = [];
arr.map(item => {
newArr.push(item.name);
});
console.log(newArr);
setArrValue(newArr);
}
};
const submitSearchUser = () => {};
// 获取搜索框的值
const handleSearch = e => {
setSearchWord(e.target.value);
};
// 监听分页
const paginationChange = (page, pageSizes) => {
// 分页时清空复选框
setCurrentPage(page);
setPageSize(pageSizes);
// let username = form.getFieldValue('username');
// getData(username, page, pageSizes);
};
const columns = [
{
title: '字段名',
title: '已选列表',
dataIndex: 'name',
width: 150,
key: 'name',
},
];
if (isType != 'app') {
return (
<Modal
title="字段集选择"
bodyStyle={{ width: '100%', minHeight: '100px' }}
width="700px"
width="750px"
destroyOnClose
centered
cancelText="取消"
......@@ -394,12 +538,12 @@ const AddModal = props => {
className={styles.cardItem}
style={{ borderRight: '1px solid #99bbe8' }}
>
<Divider
{/* <Divider
orientation="left"
style={{ margin: '0 0 10px 0', backgroundColor: '#dfe8f6' }}
>
待选字段列表
</Divider>
</Divider> */}
{flag === 0 ? (
<>
......@@ -468,12 +612,12 @@ const AddModal = props => {
)}
</div>
<div className={styles.cardItem}>
<Divider
{/* <Divider
orientation="left"
style={{ margin: '0 0 10px 0', backgroundColor: '#dfe8f6' }}
>
已选字段列表
</Divider>
</Divider> */}
<div className={styles.cardContent}>
<div className={styles.doctorTable}>
<DragTable
......@@ -498,9 +642,9 @@ const AddModal = props => {
if (isType === 'app') {
return (
<Modal
title="部门或角色"
bodyStyle={{ width: '100%', minHeight: '100px' }}
width="1400px"
title="权限选择"
bodyStyle={{ width: '100%', height: '650px', overflowY: 'scorll' }}
width="1000px"
style={{ top: '10px' }}
destroyOnClose
centered
......@@ -511,50 +655,92 @@ const AddModal = props => {
forceRender
getContainer={false}
>
<Search
style={{
width: 260,
marginRight: '20px',
marginBottom: '10px',
}}
placeholder="搜索"
onSearch={submitSearchUser}
onChange={e => handleSearch(e)}
enterButton
value={searchWord}
/>
<Button
type="primary"
htmlType="submit"
// onClick={() => {
// setCurrentPage(1);
// getData('', 1, pageSize);
// form.setFieldsValue({ username: '' });
// }}
>
重置
</Button>
{visible && (
<div className={styles.listCard1}>
<div
className={styles.cardItem1}
// style={{ borderRight: '1px solid #99bbe8' }}
>
<Divider
orientation="left"
style={{ margin: '0 0 10px 0', backgroundColor: '#dfe8f6' }}
>
待选部门站点角色
</Divider>
<div className={styles.cardItem1}>
<div className={styles.cardContent1}>
{title.map((item, index) => (
<div className={styles.cardItemData1} key={index}>
<Divider
orientation="left"
style={{
margin: '0 0 10px 0',
color: '#15428b',
borderTopColor: '#99bbe8',
}}
>
<Checkbox
indeterminate={indeterminate[index]}
onChange={onCheckAllChange}
index={index}
checkvalue={filed1[item]}
checked={checkAll[index]}
style={{ marginRight: '7px' }}
/>
{item}
</Divider>
<CheckboxGroup
options={filed1[item]}
value={checkedList[index]}
onChange={e => onChangeList1(e, index, item)}
/>
</div>
))}
<Tabs defaultActiveKey="0" className={styles.tab}>
{title.map((item, index) => (
<TabPane tab={item} key={index}>
<div className={styles.cardItemData1} key={index}>
<Divider
orientation="left"
style={{
margin: '0 0 10px 0',
color: '#15428b',
borderTopColor: '#99bbe8',
}}
>
<Checkbox
indeterminate={indeterminate[index]}
onChange={onCheckAllChange}
index={index}
checkvalue={filed1[item]}
checked={checkAll[index]}
style={{ marginRight: '7px' }}
/>
{item}
</Divider>
<CheckboxGroup
options={filed1[item]}
value={checkedList[index]}
onChange={e => onChangeList1(e, index, item)}
/>
</div>
</TabPane>
))}
</Tabs>
</div>
</div>
<div className={styles.cardItem11}>
<DragTable
bordered
style={{ marginBottom: '10px' }}
rowKey={record => record.name}
columns={columns}
dataSource={selectData}
pagination={false}
size="small"
dragCallBack={dragCallBack}
ItemTypes="stadingOrder"
/>
</div>
</div>
)}
<Pagination
total={total}
showTotal={item => `共 ${item} 条`}
defaultPageSize={pageSize}
defaultCurrent={1}
current={currentPage}
onChange={paginationChange}
style={{ marginBottom: '10px' }}
size="small"
showQuickJumper
/>
</Modal>
);
}
......
.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;
}
.ant-modal-body {
padding: 0px 24px 0px 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 {
.ant-table table {
width: 100% !important;
overflow-x: scroll;
}
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;
}
}
.ant-modal-root .ant-checkbox-group .ant-checkbox-group-item {
margin-right: 0px !important;
min-width: 200px !important;
}
}
.listCard {
display: flex;
justify-content: space-around;
width: 100%;
.cardItem {
padding: 0.5rem;
width: 50%;
}
.cardContent {
height: 30rem;
overflow-y: scroll;
overflow-x: scroll;
width: 100%;
}
.cardItemData {
padding: 1rem;
border: 1px solid #b5b8c8;
margin-bottom: 1rem;
overflow-x: scroll;
}
}
.listCard1 {
width: 100%;
display: flex;
height: 34rem;
.cardItem1 {
border: 1px solid #b5b8c8;
padding: 0.5rem;
width: 70%;
}
.cardItem11 {
padding: 0rem 0.5rem;
width: 30%;
height: 34.5rem;
overflow-y: scroll;
overflow-x: scroll;
}
.cardContent1 {
height: 33rem;
overflow-y: scroll;
width: 100%;
display: flex;
justify-content: space-around;
}
.tab {
width: 100%;
}
.cardItemData1 {
padding: 0rem 1rem;
margin-bottom: 1rem;
width: 100%;
height: 28rem;
}
}
.doctorTable {
margin-bottom: 16px;
}
.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);
}
}
.panda-pro-pages-platform-center-bsmanager-work-order-incident-filed_listItem {
display: flex;
}
......@@ -76,38 +76,90 @@ const incident = () => {
dataIndex: 'name',
key: 'name',
width: 150,
render: record => {
if (record) {
return (
<Tooltip placement="topLeft" title={record}>
{record}
</Tooltip>
);
}
},
},
{
title: '事件主表',
dataIndex: 'tableName',
key: 'tableName',
width: 200,
ellipsis: true,
render: record => {
if (record) {
return (
<Tooltip placement="topLeft" title={record}>
{record}
</Tooltip>
);
}
},
},
{
title: '编码',
dataIndex: 'code',
key: 'code',
width: 50,
width: 80,
render: record => {
if (record) {
return (
<Tooltip placement="topLeft" title={record}>
{record}
</Tooltip>
);
}
},
},
{
title: '摘要字段',
dataIndex: 'summaryFields',
key: 'summaryFields',
width: 200,
ellipsis: true,
width: 100,
render: record => {
if (record) {
return (
<Tooltip placement="topLeft" title={record}>
{record}
</Tooltip>
);
}
},
},
{
title: '权限',
dataIndex: 'roles',
key: 'roles',
width: 50,
render: record => {
if (record) {
return (
<Tooltip placement="topLeft" title={record}>
{record}
</Tooltip>
);
}
},
},
{
title: '流程',
dataIndex: 'flowCount',
key: 'flowCount',
width: 50,
render: record => {
if (record) {
return (
<Tooltip placement="topLeft" title={record}>
{record}
</Tooltip>
);
}
},
},
{
title: '上报',
......@@ -119,23 +171,35 @@ const incident = () => {
title: '上报字段',
dataIndex: 'reportFields',
key: 'reportFields',
width: 100,
render: item => (
<span style={{ color: 'grey' }} key={item}>
{item}
</span>
),
width: 80,
render: record => {
if (record) {
return (
<Tooltip placement="topLeft" title={record}>
<span style={{ color: 'grey' }} key={record}>
{record}
</span>
</Tooltip>
);
}
},
},
{
title: '显示字段',
dataIndex: 'displayFields',
key: 'displayFields',
width: 100,
render: item => (
<span style={{ color: 'grey' }} key={item}>
{item}
</span>
),
width: 80,
render: record => {
if (record) {
return (
<Tooltip placement="topLeft" title={record}>
<span style={{ color: 'grey' }} key={record}>
{record}
</span>
</Tooltip>
);
}
},
},
{
......@@ -153,7 +217,7 @@ const incident = () => {
title: '编辑字段',
dataIndex: 'editableFields',
key: 'editableFields',
width: 100,
width: 80,
render: item => (
<div
ref={r => {
......@@ -168,7 +232,7 @@ const incident = () => {
title: '上报方式',
dataIndex: 'createMode',
key: 'createMode',
width: 100,
width: 80,
},
// {
// title: '置顶条件',
......@@ -500,12 +564,12 @@ const incident = () => {
</div>
<div className={styles.switcher}>
{treeVisible && (
<Tooltip title="隐藏机构列表">
<Tooltip title="隐藏事件列表">
<DoubleLeftOutlined onClick={() => setTreeVisible(false)} />
</Tooltip>
)}
{!treeVisible && (
<Tooltip title="显示机构列表">
<Tooltip title="显示事件列表">
<DoubleRightOutlined onClick={() => setTreeVisible(true)} />
</Tooltip>
)}
......@@ -547,7 +611,7 @@ const incident = () => {
})}
columns={columns}
dataSource={tableData[pickItem]}
// scroll={{ y: 'calc(100vh - 155px)', x: 'max-content' }}
scroll={{ y: 'calc(100vh - 155px)', x: 'max-content' }}
pagination={{
showTotal: (total, range) =>
`第${range[0]}-${range[1]} 条/共 ${total} 条`,
......
......@@ -8,7 +8,9 @@
.ant-card-body {
padding: 12px 24px 24px 24px;
}
.ant-modal-body {
padding: 0px 24px 0px 24px;
}
.linkDrowp {
position: absolute;
left: 93.5%;
......@@ -36,6 +38,10 @@
background-color: #f5f6f9;
}
.contentContainers {
.ant-table table {
width: 100% !important;
overflow-x: scroll;
}
display: flex;
width: 100%;
position: relative;
......@@ -129,7 +135,7 @@
.ant-table-cell {
text-align: center;
overflow: hidden;
// text-overflow:ellipsis;
text-overflow: ellipsis;
white-space: nowrap;
}
.ant-table-body {
......@@ -204,10 +210,20 @@
}
}
.listCard1 {
width: 100%;
display: flex;
height: 34rem;
.cardItem1 {
border: 1px solid #b5b8c8;
padding: 0.5rem;
width: 100%;
width: 70%;
}
.cardItem11 {
padding: 0rem 0.5rem;
width: 30%;
height: 34.5rem;
overflow-y: scroll;
overflow-x: scroll;
}
.cardContent1 {
height: 33rem;
......@@ -216,12 +232,14 @@
display: flex;
justify-content: space-around;
}
.tab {
width: 100%;
}
.cardItemData1 {
padding: 1rem;
border: 1px solid #b5b8c8;
padding: 0rem 1rem;
margin-bottom: 1rem;
width: 33.3%;
overflow-x: scroll;
width: 100%;
height: 28rem;
}
}
.doctorTable {
......
......@@ -49,7 +49,7 @@ const GateConfig = () => {
>
<img src={configuration} style={{ height: '16px' }} alt="" />
<span style={{ marginLeft: '10px', fontWeight: 'bold' }}>
服务管理
网关配置
</span>
</div>
<Divider />
......@@ -66,7 +66,7 @@ const GateConfig = () => {
marginRight: '-10px',
}}
>
服务运行
网关开启
</div>
</Col>
<Col span={22}>
......
......@@ -187,7 +187,7 @@ const AddModal = props => {
title={isType === 'rule' ? '选择验证规则' : '字段集选择'}
bodyStyle={{ width: '100%', minHeight: '100px' }}
style={{ top: '10px' }}
width="700px"
width="750px"
centered
maskClosable={false}
cancelText="取消"
......
......@@ -294,7 +294,7 @@
.cardContent {
height: 40rem;
overflow-y: scroll;
width: 19.5rem;
width: 21rem;
}
.cardItemData {
padding: 1rem;
......
......@@ -369,7 +369,7 @@
.ant-checkbox-group .ant-checkbox-group-item {
margin-right: 0px !important;
min-width: 200px !important;
min-width: 300px !important;
}
.ant-tree-list-holder {
......
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