MCPcopy
hub / github.com/baidu/amis / insert

Method insert

packages/amis-editor-core/src/manager.ts:1216–1243  ·  view source on GitHub ↗

* 给插入面板使用的,将当前选中的节点插入到当前选中的节点容器内。 * @param position

()

Source from the content-addressed store, hash-verified

1214 * @param position
1215 */
1216 async insert() {
1217 const store = this.store;
1218 const subRenderer = store.selectedInsertRendererInfo;
1219 if (!subRenderer) {
1220 return;
1221 }
1222
1223 const id = store.insertId;
1224 const region = store.insertRegion;
1225 const beforeId = store.insertBeforeId; // 插入组件面板选中的组件
1226 let value =
1227 subRenderer.scaffold ||
1228 ({
1229 type: subRenderer.type
1230 } as SchemaObject);
1231
1232 if (subRenderer.scaffoldForm) {
1233 value = await this.scaffold(subRenderer.scaffoldForm, value);
1234 }
1235 const child = this.addChild(id, region, value, beforeId, subRenderer);
1236 if (child) {
1237 store.closeInsertPanel();
1238 // mobx 修改数据是异步的
1239 setTimeout(() => {
1240 store.setActiveId(child.$$id);
1241 }, 100);
1242 }
1243 }
1244
1245 /**
1246 * 给插入面板使用的,替换组件类型。

Callers 2

hadnlDBClickMethod · 0.80
handleInsertMethod · 0.80

Calls 3

scaffoldMethod · 0.95
addChildMethod · 0.95
setActiveIdMethod · 0.80

Tested by

no test coverage detected