perf: KPI设置的操作, 新设置和修改

feature/2.0-sales-trade
Lei OT 2 years ago
parent 4c8f99d78a
commit 440f1bca32

@ -22,12 +22,17 @@ export default observer((props) => {
const [dataSource, setDataSource] = useState(KPIStore.pageData);
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,7 +192,6 @@ 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;
const _initialTable = _objects.map((obj) => ({
@ -202,7 +206,7 @@ export default observer((props) => {
_initialTable.reduce((r, v) => ({ ...r, [v.object_name]: v }), {}),
dataSource.reduce((r, v) => ({ ...r, [v.object_name]: v }), {})
)
);
).sort((a, b) => isEmpty(b.kpiDataMapped) ? -1 : 1);
if (e && isEmpty(dataSource)) {
setDataSource(_initialTable);
setEditableRowKeys(_initialTable.map((ele) => ele.key));
@ -212,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 ">
@ -227,6 +237,7 @@ export default observer((props) => {
value={dataSource}
onChange={onTableChange}
recordCreatorProps={false}
rowClassName={rowHighlight}
editable={{
type: 'multiple',
editableKeys: editableRowsKeys,
@ -252,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>

@ -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>

@ -23,12 +23,15 @@ export default observer((props) => {
const [editOpen, setEditOpen] = useState(false);
const [editableRowsKeys, setEditableRowKeys] = useState([]);
useEffect(() => {
// console.log(KPIStore.pageData);
resetTable();
return () => {};
}, [KPIStore.pageData]);
const resetTable = () => {
setDataSource(KPIStore.pageData);
setEditableRowKeys([]);
setEditOpen(false);
return () => {};
}, [KPIStore.pageData]);
};
const PercentInput = useMemo(
() =>
@ -187,7 +190,6 @@ 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;
const _initialTable = _objects.map((obj) => ({
@ -202,7 +204,7 @@ export default observer((props) => {
_initialTable.reduce((r, v) => ({ ...r, [v.object_name]: v }), {}),
dataSource.reduce((r, v) => ({ ...r, [v.object_name]: v }), {})
)
);
).sort((a, b) => isEmpty(b.kpiDataMapped) ? -1 : 1);
if (e && isEmpty(dataSource)) {
setDataSource(_initialTable);
setEditableRowKeys(_initialTable.map((ele) => ele.key));
@ -212,6 +214,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 ">
@ -227,6 +235,7 @@ export default observer((props) => {
value={dataSource}
onChange={onTableChange}
recordCreatorProps={false}
rowClassName={rowHighlight}
editable={{
type: 'multiple',
editableKeys: editableRowsKeys,
@ -252,8 +261,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>

Loading…
Cancel
Save