Commit 711926d7 authored by 皮倩雯's avatar 皮倩雯

fix: '表字段字段配置批量删除功能'

parent 48b6cc7e
Pipeline #46896 skipped with stages
......@@ -53,6 +53,10 @@ const AddModal = props => {
const [treeSelectValue, setTreeSelectValue] = useState(undefined);
const [selectTreeData, setSelectTreeData] = useState([]);
const [selectDataFirst, setSelectDataFirst] = useState([]);
const [multiOperate, setMultiOperate] = useState(true); // 是否禁用用户批量操作
const [selectedRowKeys, setSelectedRowKeys] = useState([]); // 已选字段配置数,机构改变时重置
const [keepValue, setKeepValue] = useState([]);
const [deleteUserVisible, setDeleteUserVisible] = useState(false); // 批量删除
const editor = record => {
setIsType('edit');
setIsVisible(true);
......@@ -180,7 +184,12 @@ const AddModal = props => {
return (
<Table
rowSelection={{
type: 'checkbox',
...rowSelection,
}}
columns={columns}
rowKey={record => record.ID}
onRow={record => ({
onDoubleClick: event => {
event.stopPropagation();
......@@ -274,31 +283,58 @@ const AddModal = props => {
if (props.match.params.id) {
setSelectTreeData(props.location.state.keepTreeSelect);
setSelectDataFirst(props.location.state.keepTreeFirst);
setFormObj(treeSelectValue || props.match.params.id);
if (treeSelectValue) {
setFormObj(treeSelectValue.substring(0, treeSelectValue.lastIndexOf('@')));
reloadTableFields({
tableName: treeSelectValue.substring(0, treeSelectValue.lastIndexOf('@')),
}).then(res => {
setTreeLoading(false);
if (res.msg === 'Ok') {
let arr = formateArrDataA(res.data.root, 'group');
let newArr = [];
Object.keys(arr).map((item, index) => {
newArr.push({ type: item, key: index, id: index });
});
setAllData(arr);
let aa = [];
let bb = [];
Object.keys(arr).forEach((item, index) => {
aa.push({ name: item, key: index, ID: index, children: arr[item] });
bb.push(item);
});
setKeepTreeFirst(bb);
setTreeData(aa);
setTableData(newArr);
setSelect(newArr);
}
});
} else {
setFormObj(props.match.params.id);
reloadTableFields({
tableName: props.match.params.id,
}).then(res => {
setTreeLoading(false);
if (res.msg === 'Ok') {
let arr = formateArrDataA(res.data.root, 'group');
let newArr = [];
Object.keys(arr).map((item, index) => {
newArr.push({ type: item, key: index, id: index });
});
setAllData(arr);
let aa = [];
let bb = [];
Object.keys(arr).forEach((item, index) => {
aa.push({ name: item, key: index, ID: index, children: arr[item] });
bb.push(item);
});
setKeepTreeFirst(bb);
setTreeData(aa);
setTableData(newArr);
setSelect(newArr);
}
});
}
setTreeLoading(true);
reloadTableFields({
tableName: treeSelectValue || props.match.params.id,
}).then(res => {
setTreeLoading(false);
if (res.msg === 'Ok') {
let arr = formateArrDataA(res.data.root, 'group');
let newArr = [];
Object.keys(arr).map((item, index) => {
newArr.push({ type: item, key: index, id: index });
});
setAllData(arr);
let aa = [];
let bb = [];
Object.keys(arr).forEach((item, index) => {
aa.push({ name: item, key: index, ID: index, children: arr[item] });
bb.push(item);
});
setKeepTreeFirst(bb);
setTreeData(aa);
setTableData(newArr);
setSelect(newArr);
}
});
getField();
}
}, [flag]);
......@@ -340,8 +376,9 @@ const AddModal = props => {
}
return tempObj;
};
// 删除表字段
// 删除字段配置
const deleteChart = record => {
console.log(selectedRowKeys);
removeFields({ fieldIDs: record.ID }).then(res => {
if (res.msg === 'Ok' || res.msg === '') {
notification.success({
......@@ -359,6 +396,28 @@ const AddModal = props => {
}
});
};
// 批量删除字段配置
const multiDeleteChart = () => {
console.log(selectedRowKeys.toString());
removeFields({ fieldIDs: selectedRowKeys.toString() }).then(res => {
setDeleteUserVisible(false);
if (res.msg === 'Ok' || res.msg === '') {
setMultiOperate(true);
notification.success({
message: '提示',
duration: 3,
description: '删除成功',
});
setFlag(flag + 1);
} else {
notification.error({
message: '提示',
duration: 3,
description: res.msg,
});
}
});
};
// 返回上一级
const back = () => {
console.log(props.location.state);
......@@ -407,10 +466,13 @@ const AddModal = props => {
setFlag(flag + 1);
};
const treeSelectOnchange = e => {
setSelectedRowKeys([]);
setMultiOperate(true);
setTreeSelectValue(e);
setFormObj(e);
console.log(e.substring(0, e.lastIndexOf('@')));
setFormObj(e.substring(0, e.lastIndexOf('@')));
reloadTableFields({
tableName: e,
tableName: e.substring(0, e.lastIndexOf('@')),
}).then(res => {
setTreeLoading(false);
if (res.msg === 'Ok') {
......@@ -440,9 +502,32 @@ const AddModal = props => {
{org.children.map(item => mapTree(item))}
</TreeNode>
) : (
<TreeNode value={org.tableName} title={org.tableName} />
<TreeNode value={`${org.tableName}@${org.groupName}`} title={org.tableName} />
);
};
// 复选框
const rowSelection = {
selectedRowKeys,
onSelect: (record, selected, selectedRows, nativeEvent) => {
if (selected) {
let aa = [...selectedRowKeys];
aa.push(record.ID);
setSelectedRowKeys(aa);
} else {
let aa = [...selectedRowKeys];
aa.splice(aa.findIndex(item => item === record.ID), 1);
setSelectedRowKeys(aa);
}
if (selectedRows.length > 0) {
setMultiOperate(false);
} else {
setMultiOperate(true);
}
},
};
const multiDelete = () => {
setDeleteUserVisible(true);
};
return (
<>
<Spin tip="loading..." spinning={treeLoading}>
......@@ -470,6 +555,12 @@ const AddModal = props => {
)}
</TreeSelect>
</div>
<div style={{ marginRight: '10px' }}>
<Button disabled={multiOperate} onClick={multiDelete}>
<DeleteOutlined />
批量删除
</Button>
</div>
<div className={styles.btn}>
<Button type="primary" icon={<PlusSquareOutlined />} onClick={add}>
附加
......@@ -502,6 +593,19 @@ const AddModal = props => {
/>
</div>
</Spin>
{/* 多选删除用户 */}
<Modal
title="确认删除字段"
visible={deleteUserVisible}
onOk={multiDeleteChart}
onCancel={() => {
setDeleteUserVisible(false);
}}
okText="确认"
cancelText="取消"
>
<p>将删除多个配置字段, 是否确认删除?</p>
</Modal>
<FieldEditor
isVisible={isVisible}
isType={isType}
......
......@@ -370,6 +370,8 @@ const UserManage = () => {
const rowSelection = {
selectedRowKeys,
onChange: (RowKeys, Rows) => {
console.log(RowKeys);
console.log(Rows);
setSelectedRowKeys(RowKeys);
getCheckList(RowKeys);
setUserIDs(RowKeys.toString()); // 数组转字符串,逗号连接
......@@ -972,6 +974,7 @@ const UserManage = () => {
};
const getCheckList = e => {
console.log(e);
let aa = [];
let bb = [];
loadAllUserRole(e).then(res => {
......
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