mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-03-06 02:11:56 +00:00
fix arraysetter sort
This commit is contained in:
parent
4f042c6e6d
commit
fdc8aec769
@ -40,6 +40,7 @@ export class ListSetter extends Component<ArraySetterProps, ArraySetterState> {
|
|||||||
|
|
||||||
const itemsMap = state ? state.itemsMap : new Map<string | number, SettingField>();
|
const itemsMap = state ? state.itemsMap : new Map<string | number, SettingField>();
|
||||||
const items = state ? state.items.slice() : [];
|
const items = state ? state.items.slice() : [];
|
||||||
|
debugger;
|
||||||
if (newLength > originLength) {
|
if (newLength > originLength) {
|
||||||
for (let i = originLength; i < newLength; i++) {
|
for (let i = originLength; i < newLength; i++) {
|
||||||
const item = field.createField({
|
const item = field.createField({
|
||||||
@ -57,6 +58,7 @@ export class ListSetter extends Component<ArraySetterProps, ArraySetterState> {
|
|||||||
itemsMap.delete(item.id);
|
itemsMap.delete(item.id);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
items,
|
items,
|
||||||
itemsMap,
|
itemsMap,
|
||||||
@ -72,7 +74,7 @@ export class ListSetter extends Component<ArraySetterProps, ArraySetterState> {
|
|||||||
|
|
||||||
onSort(sortedIds: Array<string | number>) {
|
onSort(sortedIds: Array<string | number>) {
|
||||||
const { itemsMap } = this.state;
|
const { itemsMap } = this.state;
|
||||||
const { onChange } = this.props;
|
const { onChange ,itemSetter,field} = this.props;
|
||||||
const items = sortedIds.map((id, index) => {
|
const items = sortedIds.map((id, index) => {
|
||||||
const item = itemsMap.get(id)!;
|
const item = itemsMap.get(id)!;
|
||||||
// item.setKey(index);
|
// item.setKey(index);
|
||||||
@ -82,10 +84,26 @@ export class ListSetter extends Component<ArraySetterProps, ArraySetterState> {
|
|||||||
const values = items.map((item) => {
|
const values = items.map((item) => {
|
||||||
return item.getValue();
|
return item.getValue();
|
||||||
});
|
});
|
||||||
console.log('values',values);
|
|
||||||
|
// 对itemsMap重新生成并刷新当前setter数据
|
||||||
|
let newItems = [],newItemsMap = {}
|
||||||
|
itemsMap.clear();
|
||||||
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
const newItem = field.createField({
|
||||||
|
name: i,
|
||||||
|
setter: itemSetter,
|
||||||
|
// FIXME:
|
||||||
|
forceInline: 1,
|
||||||
|
});
|
||||||
|
newItems[i] = newItem;
|
||||||
|
|
||||||
|
itemsMap.set(newItem.id, newItem);
|
||||||
|
}
|
||||||
|
|
||||||
onChange(values);
|
onChange(values);
|
||||||
this.setState({
|
this.setState({
|
||||||
items,
|
items:newItems,
|
||||||
|
itemsMap
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -53,5 +53,5 @@
|
|||||||
"publishConfig": {
|
"publishConfig": {
|
||||||
"registry": "http://registry.npm.alibaba-inc.com"
|
"registry": "http://registry.npm.alibaba-inc.com"
|
||||||
},
|
},
|
||||||
"homepage": "https://unpkg.alibaba-inc.com/@ali/lowcode-react-renderer@0.8.13/build/index.html"
|
"homepage": "https:/unpkg.alibaba-inc.com/@ali/lowcode-react-renderer@0.8.13/build/index.html"
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user