* 给插入面板使用的,替换组件类型。 * @param position
()
| 1247 | * @param position |
| 1248 | */ |
| 1249 | async replace() { |
| 1250 | const store = this.store; |
| 1251 | const subRenderer = store.selectedInsertRendererInfo; |
| 1252 | |
| 1253 | if (!subRenderer) { |
| 1254 | return; |
| 1255 | } |
| 1256 | |
| 1257 | const id = store.insertOrigId; |
| 1258 | let value = subRenderer.scaffold || { |
| 1259 | type: subRenderer.type |
| 1260 | }; |
| 1261 | const region = store.insertRegion; |
| 1262 | |
| 1263 | if (subRenderer.scaffoldForm) { |
| 1264 | value = await this.scaffold(subRenderer.scaffoldForm, value); |
| 1265 | } |
| 1266 | |
| 1267 | if (this.replaceChild(id, value, subRenderer, region)) { |
| 1268 | store.closeInsertPanel(); |
| 1269 | |
| 1270 | // outline 更新有点延时,而重新生成的时候读取的是outline里面的信息 |
| 1271 | // 所以需要延时 |
| 1272 | setTimeout(() => { |
| 1273 | this.rebuild(); |
| 1274 | }, 4); |
| 1275 | } |
| 1276 | } |
| 1277 | |
| 1278 | /** |
| 1279 | * 判断当前元素定位是否为flex容器 |