(data: IPublicTypeJSSlot)
| 429 | |
| 430 | @action |
| 431 | setAsSlot(data: IPublicTypeJSSlot) { |
| 432 | this._type = 'slot'; |
| 433 | let slotSchema: IPublicTypeSlotSchema; |
| 434 | // 当 data.value 的结构为 { componentName: 'Slot' } 时,复用部分 slotSchema 数据 |
| 435 | if ((isPlainObject(data.value) && isNodeSchema(data.value) && data.value?.componentName === 'Slot')) { |
| 436 | const value = data.value as IPublicTypeSlotSchema; |
| 437 | slotSchema = { |
| 438 | componentName: 'Slot', |
| 439 | title: value.title || value.props?.slotTitle, |
| 440 | id: value.id, |
| 441 | name: value.name || value.props?.slotName, |
| 442 | params: value.params || value.props?.slotParams, |
| 443 | children: value.children, |
| 444 | } as IPublicTypeSlotSchema; |
| 445 | } else { |
| 446 | slotSchema = { |
| 447 | componentName: 'Slot', |
| 448 | title: data.title, |
| 449 | id: data.id, |
| 450 | name: data.name, |
| 451 | params: data.params, |
| 452 | children: data.value, |
| 453 | }; |
| 454 | } |
| 455 | |
| 456 | if (this._slotNode) { |
| 457 | this._slotNode.import(slotSchema); |
| 458 | } else { |
| 459 | const { owner } = this.props; |
| 460 | this._slotNode = owner.document?.createNode<ISlotNode>(slotSchema); |
| 461 | if (this._slotNode) { |
| 462 | owner.addSlot(this._slotNode); |
| 463 | this._slotNode.internalSetSlotFor(this); |
| 464 | } |
| 465 | } |
| 466 | } |
| 467 | |
| 468 | /** |
| 469 | * 取消设置值 |
no test coverage detected