|
|
|
@ -23,11 +23,15 @@ export default observer((props) => {
|
|
|
|
|
const [editOpen, setEditOpen] = useState(false);
|
|
|
|
|
const [editableRowsKeys, setEditableRowKeys] = useState([]);
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
resetTable();
|
|
|
|
|
return () => {};
|
|
|
|
|
}, [KPIStore.pageData]);
|
|
|
|
|
|
|
|
|
|
const resetTable = () => {
|
|
|
|
|
setDataSource(KPIStore.pageData);
|
|
|
|
|
setEditableRowKeys([]);
|
|
|
|
|
setEditOpen(false);
|
|
|
|
|
return () => {};
|
|
|
|
|
}, [KPIStore.pageData]);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const PercentInput = useMemo(
|
|
|
|
|
() =>
|
|
|
|
@ -187,24 +191,22 @@ export default observer((props) => {
|
|
|
|
|
); // v.formItemProps.initialValue
|
|
|
|
|
const makeInitialTable = (e) => {
|
|
|
|
|
setEditOpen(e);
|
|
|
|
|
// test: 单独设置之后, 清空筛选会导致无法批量设置新的
|
|
|
|
|
const _initialRow = Object.assign({}, initialRow, initialPercentKey);
|
|
|
|
|
const _objects = isEmpty(objects) ? curObjectItem?.data || [] : objects;
|
|
|
|
|
// console.log('ooo', objects, isEmpty(objects), curObjectItem?.data || []);
|
|
|
|
|
const _initialTable = _objects.map((obj) => ({
|
|
|
|
|
...cloneDeep(_initialRow),
|
|
|
|
|
object_name: obj.label,
|
|
|
|
|
object_id: obj.value,
|
|
|
|
|
key: Date.now().toString(32) + obj.value,
|
|
|
|
|
}));
|
|
|
|
|
// console.log(_initialRow, 'iiiii');
|
|
|
|
|
const mergePageData = Object.values(
|
|
|
|
|
Object.assign(
|
|
|
|
|
{},
|
|
|
|
|
_initialTable.reduce((r, v) => ({ ...r, [v.object_id]: v }), {}),
|
|
|
|
|
dataSource.reduce((r, v) => ({ ...r, [v.object_id]: v }), {})
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
).sort((a, b) => isEmpty(b.kpiDataMapped) ? -1 : 1);
|
|
|
|
|
// console.log(mergePageData, 'iiiii');
|
|
|
|
|
if (e && isEmpty(dataSource)) {
|
|
|
|
|
setDataSource(_initialTable);
|
|
|
|
|
setEditableRowKeys(_initialTable.map((ele) => ele.key));
|
|
|
|
@ -214,6 +216,12 @@ export default observer((props) => {
|
|
|
|
|
setEditableRowKeys(e ? mergePageData.map((ele) => ele.key) : []);
|
|
|
|
|
};
|
|
|
|
|
const [delKpiIds, setDelKpiIds] = useState([]);
|
|
|
|
|
const rowHighlight = (record, rowIndex) => {
|
|
|
|
|
const all = 'editable-row';
|
|
|
|
|
const rowNotSetted = isEmpty(record?.kpiDataMapped) === true;
|
|
|
|
|
const warningCls = rowNotSetted ? '' : 'ant-tag-green';
|
|
|
|
|
return editOpen ? [all, warningCls].join(' ') : '';
|
|
|
|
|
};
|
|
|
|
|
return (
|
|
|
|
|
<>
|
|
|
|
|
<Row gutter={16} className="mb-1 ">
|
|
|
|
@ -229,6 +237,7 @@ export default observer((props) => {
|
|
|
|
|
value={dataSource}
|
|
|
|
|
onChange={onTableChange}
|
|
|
|
|
recordCreatorProps={false}
|
|
|
|
|
rowClassName={rowHighlight}
|
|
|
|
|
editable={{
|
|
|
|
|
type: 'multiple',
|
|
|
|
|
editableKeys: editableRowsKeys,
|
|
|
|
@ -254,8 +263,10 @@ export default observer((props) => {
|
|
|
|
|
<Button className="mt-1 mb-1 align_center" disabled={!editOpen} type="primary" key="save" onClick={onTableSubmit}>
|
|
|
|
|
保存数据
|
|
|
|
|
</Button>
|
|
|
|
|
{!editOpen && <Button className="mt-1 mb-1 align_center" disabled={false} type={'ghost'} key="initTable" onClick={() => {makeInitialTable(true);}}>
|
|
|
|
|
{!editOpen ? <Button className="mt-1 mb-1 align_center" disabled={false} type={'ghost'} key="initTable" onClick={() => {makeInitialTable(true);}}>
|
|
|
|
|
编辑设置
|
|
|
|
|
</Button> : <Button className="mt-1 mb-1 align_center" disabled={false} type={'ghost'} key="initTable" onClick={resetTable}>
|
|
|
|
|
取消
|
|
|
|
|
</Button>}
|
|
|
|
|
</Space>
|
|
|
|
|
</Col>
|
|
|
|
|