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,10 +283,35 @@ const AddModal = props => {
if (props.match.params.id) {
setSelectTreeData(props.location.state.keepTreeSelect);
setSelectDataFirst(props.location.state.keepTreeFirst);
setFormObj(treeSelectValue || props.match.params.id);
setTreeLoading(true);
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: treeSelectValue || props.match.params.id,
tableName: props.match.params.id,
}).then(res => {
setTreeLoading(false);
if (res.msg === 'Ok') {
......@@ -299,6 +333,8 @@ const AddModal = props => {
setSelect(newArr);
}
});
}
setTreeLoading(true);
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}
......
import React, { useEffect, useState } from 'react';
import { Form, Modal, Row, Col, Input, Select} from 'antd';
import { Form, Modal, Row, Col, Input, Select } from 'antd';
const CheckModal = props => {
const { callBackSubmit = () => { }, visible, onCancel, type, type1, obj } = props;
const { callBackSubmit = () => {}, visible, onCancel, type, type1, obj } = props;
const [form] = Form.useForm();
const { Item } = Form;
const { TextArea } = Input;
useEffect(()=>{
form.setFieldsValue({ ...obj })
},[visible])
useEffect(() => {
form.setFieldsValue({ ...obj });
}, [visible]);
if (type1 == 'aa') {
return (
<Modal
visible={visible}
title={
<span style={{ fontSize: '18px' }}>查看配置</span>
}
title={<span style={{ fontSize: '18px' }}>查看配置</span>}
width="1000px"
destroyOnClose
maskClosable={false}
......@@ -39,35 +37,53 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.Name} disabled/>
<Input placeholder={obj.Name} disabled />
</Item>
</Col>
{(() => {
switch (type) {
case '海康1.2':
return <>
return (
<>
<Col span={12}>
<span style={{ position: 'absolute', left: '12%', top: '9%', color: 'red', fontSize: '16px' }}>*</span>
<Item
label="视频厂商"
name="VideoManufacturer"
>
<span
style={{
position: 'absolute',
left: '12%',
top: '9%',
color: 'red',
fontSize: '16px',
}}
>
*
</span>
<Item label="视频厂商" name="VideoManufacturer">
<Input placeholder="海康1.2" disabled />
</Item>
</Col>
</>
);
case '海康NVR':
return <>
return (
<>
<Col span={12}>
<span style={{ position: 'absolute', left: '12%', top: '9%', color: 'red', fontSize: '16px' }}>*</span>
<Item
label="视频厂商"
name="VideoManufacturer"
>
<span
style={{
position: 'absolute',
left: '12%',
top: '9%',
color: 'red',
fontSize: '16px',
}}
>
*
</span>
<Item label="视频厂商" name="VideoManufacturer">
<Input placeholder="海康NVR" disabled />
</Item>
</Col>
</>
);
}
})()}
<Col span={11}>
......@@ -81,7 +97,7 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.EquipmentCode} disabled/>
<Input placeholder={obj.EquipmentCode} disabled />
</Item>
</Col>
<Col span={12}>
......@@ -95,7 +111,7 @@ const CheckModal = props => {
},
]}
>
<TextArea placeholder={obj.PassageId} disabled/>
<TextArea placeholder={obj.PassageId} disabled />
</Item>
</Col>
<Col span={24}>
......@@ -104,7 +120,8 @@ const CheckModal = props => {
{(() => {
switch (type) {
case '海康1.2':
return <>
return (
<>
<Col span={11}>
<Item
label="设备序列号"
......@@ -116,12 +133,14 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.EquipmentNumber} disabled/>
<Input placeholder={obj.EquipmentNumber} disabled />
</Item>
</Col>
</>
);
case '海康NVR':
return <>
return (
<>
<Col span={11}>
<Item
label="视频流地址"
......@@ -133,19 +152,17 @@ const CheckModal = props => {
},
]}
>
<TextArea placeholder={obj.HLSPath} disabled/>
<TextArea placeholder={obj.HLSPath} disabled />
</Item>
</Col>
</>
);
}
})()}
<Col span={12}>
<Item
label="刻录机名称"
name="RecorderName"
>
<Input placeholder={obj.RecorderName} disabled/>
<Item label="刻录机名称" name="RecorderName">
<Input placeholder={obj.RecorderName} disabled />
</Item>
</Col>
<Col span={11}>
......@@ -159,15 +176,12 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.VideoName} disabled/>
<Input placeholder={obj.VideoName} disabled />
</Item>
</Col>
<Col span={12}>
<Item
label="默认通道ID"
name="DefaultPassageId"
>
<TextArea placeholder={obj.DefaultPassageId} disabled/>
<Item label="默认通道ID" name="DefaultPassageId">
<TextArea placeholder={obj.DefaultPassageId} disabled />
</Item>
</Col>
<Col span={11}>
......@@ -181,20 +195,18 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.VideoPath} disabled/>
<Input placeholder={obj.VideoPath} disabled />
</Item>
</Col>
</Row>
</Form>
</Modal>
)
);
} else {
return (
<Modal
visible={visible}
title={
<span style={{ fontSize: '18px' }}>查看配置</span>
}
title={<span style={{ fontSize: '18px' }}>查看配置</span>}
width="1000px"
destroyOnClose
maskClosable={false}
......@@ -215,35 +227,53 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.Name} disabled/>
<Input placeholder={obj.Name} disabled />
</Item>
</Col>
{(() => {
switch (type) {
case '萤石云':
return <>
return (
<>
<Col span={12}>
<span style={{ position: 'absolute', left: '12%', top: '9%', color: 'red', fontSize: '16px' }}>*</span>
<Item
label="视频厂商"
name="VideoManufacturer"
>
<span
style={{
position: 'absolute',
left: '12%',
top: '9%',
color: 'red',
fontSize: '16px',
}}
>
*
</span>
<Item label="视频厂商" name="VideoManufacturer">
<Input placeholder="萤石云" disabled />
</Item>
</Col>
</>
);
case '海康':
return <>
return (
<>
<Col span={12}>
<span style={{ position: 'absolute', left: '12%', top: '9%', color: 'red', fontSize: '16px' }}>*</span>
<Item
label="视频厂商"
name="VideoManufacturer"
>
<span
style={{
position: 'absolute',
left: '12%',
top: '9%',
color: 'red',
fontSize: '16px',
}}
>
*
</span>
<Item label="视频厂商" name="VideoManufacturer">
<Input placeholder="海康" disabled />
</Item>
</Col>
</>
);
}
})()}
......@@ -258,7 +288,7 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.LoginName} disabled/>
<Input placeholder={obj.LoginName} disabled />
</Item>
</Col>
<Col span={12}>
......@@ -272,7 +302,7 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.LoginPwd} disabled/>
<Input placeholder={obj.LoginPwd} disabled />
</Item>
</Col>
<Col span={11}>
......@@ -286,7 +316,7 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.EquipmentCode} disabled/>
<Input placeholder={obj.EquipmentCode} disabled />
</Item>
</Col>
<Col span={12}>
......@@ -300,7 +330,7 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.PassageId} disabled/>
<Input placeholder={obj.PassageId} disabled />
</Item>
</Col>
<Col span={24}>
......@@ -309,7 +339,8 @@ const CheckModal = props => {
{(() => {
switch (type) {
case '萤石云':
return <>
return (
<>
<Row>
<Col span={11}>
<Item
......@@ -322,7 +353,7 @@ const CheckModal = props => {
},
]}
>
<TextArea placeholder={obj.VideoPath} disabled/>
<TextArea placeholder={obj.VideoPath} disabled />
</Item>
</Col>
<Col span={12}>
......@@ -336,7 +367,7 @@ const CheckModal = props => {
},
]}
>
<TextArea placeholder={obj.HLSPath} disabled/>
<TextArea placeholder={obj.HLSPath} disabled />
</Item>
</Col>
<Col span={11}>
......@@ -350,42 +381,30 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.EquipmentNumber} disabled/>
<Input placeholder={obj.EquipmentNumber} disabled />
</Item>
</Col>
<Col span={12}>
<Item
label="刻录机名称"
name="RecorderName"
>
<Input placeholder={obj.RecorderName} disabled/>
<Item label="刻录机名称" name="RecorderName">
<Input placeholder={obj.RecorderName} disabled />
</Item>
</Col>
<Col span={11}>
<Item
label="默认播放方式"
name="PlayModel"
>
<Select
placeholder={obj.PlayModel}
disabled
>
</Select>
<Item label="默认播放方式" name="PlayModel">
<Select placeholder={obj.PlayModel} disabled />
</Item>
</Col>
<Col span={12}>
<Item
label="默认通道ID"
name="DefaultPassageId"
>
<Input placeholder={obj.DefaultPassageId} disabled/>
<Item label="默认通道ID" name="DefaultPassageId">
<Input placeholder={obj.DefaultPassageId} disabled />
</Item>
</Col>
</Row>
</>
);
case '海康':
return <>
return (
<>
<Row>
<Col span={11}>
<Item
......@@ -398,7 +417,7 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.LoginIp} disabled/>
<Input placeholder={obj.LoginIp} disabled />
</Item>
</Col>
<Col span={12}>
......@@ -412,11 +431,7 @@ const CheckModal = props => {
},
]}
>
<Select
placeholder={obj.PlayZeroChannel}
disabled
>
</Select>
<Select placeholder={obj.PlayZeroChannel} disabled />
</Item>
</Col>
<Col span={11}>
......@@ -430,7 +445,7 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.EquipmentPort} disabled/>
<Input placeholder={obj.EquipmentPort} disabled />
</Item>
</Col>
<Col span={12}>
......@@ -444,7 +459,7 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.VideoPort} disabled/>
<Input placeholder={obj.VideoPort} disabled />
</Item>
</Col>
<Col span={11}>
......@@ -458,7 +473,7 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.StreamingMediaPort} disabled/>
<Input placeholder={obj.StreamingMediaPort} disabled />
</Item>
</Col>
<Col span={12}>
......@@ -472,11 +487,7 @@ const CheckModal = props => {
},
]}
>
<Select
placeholder={obj.StreamType}
disabled
>
</Select>
<Select placeholder={obj.StreamType} disabled />
</Item>
</Col>
<Col span={11}>
......@@ -490,35 +501,28 @@ const CheckModal = props => {
},
]}
>
<Input placeholder={obj.VideoName} disabled/>
<Input placeholder={obj.VideoName} disabled />
</Item>
</Col>
<Col span={12}>
<Item
label="刻录机名称"
name="RecorderName"
>
<Input placeholder={obj.RecorderName} disabled/>
<Item label="刻录机名称" name="RecorderName">
<Input placeholder={obj.RecorderName} disabled />
</Item>
</Col>
<Col span={11}>
<Item
label="默认通道ID"
name="DefaultPassageId"
>
<Input placeholder={obj.DefaultPassageId} disabled/>
<Item label="默认通道ID" name="DefaultPassageId">
<Input placeholder={obj.DefaultPassageId} disabled />
</Item>
</Col>
</Row>
</>
);
}
}
)()}
})()}
</Row>
</Form>
</Modal>
)
);
}
}
};
export default CheckModal;
......@@ -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