tabs组件优化
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
@innerDragStart="handleInnerDragStart"
|
||||
@innerDragEnd="handleInnerDragEnd"
|
||||
@tabsHeaderMouseDown="handleTabsHeaderMouseDown"
|
||||
@tabsContentDblClick="handleTabsContentDblClick"
|
||||
/>
|
||||
</avue-draggable>
|
||||
</template>
|
||||
@@ -178,10 +179,9 @@ export default {
|
||||
return this.value.position.zIndex || 1;
|
||||
},
|
||||
widgetDisabled() {
|
||||
// Tabs 必须禁用外层拖拽,内部子组件才能选中;Tabs 整体拖动改由标题栏单独处理
|
||||
if (this.type === 'widget-tabs') {
|
||||
return true;
|
||||
}
|
||||
// 统一走一套逻辑:
|
||||
// - 当内部子组件正在拖拽时禁用外层拖拽,避免误拖整块组件
|
||||
// - 其余情况按组件自身的 disabled 控制
|
||||
return this.value.position.disabled || this.innerDragging || false;
|
||||
},
|
||||
},
|
||||
@@ -239,6 +239,7 @@ export default {
|
||||
* 接收 Tabs 内部子组件发出的激活事件,并转发给设计器主页面
|
||||
*/
|
||||
handleChildActivated(payload) {
|
||||
console.log('handleChildActivated in widget.vue:', payload);
|
||||
const info = Object.assign({}, payload || {});
|
||||
if (info.rootWidgetIndex === undefined || info.rootWidgetIndex === null) {
|
||||
info.rootWidgetIndex = this.index;
|
||||
@@ -255,6 +256,11 @@ export default {
|
||||
handleTabsHeaderMouseDown(evt) {
|
||||
this.$emit('onTabsHeaderMouseDown', { event: evt, rootWidgetIndex: this.index });
|
||||
},
|
||||
// Tabs 内容区双击空白时,也视为选中整个 Tabs
|
||||
handleTabsContentDblClick(payload) {
|
||||
if (!payload || !payload.event) return;
|
||||
this.$emit('onTabsHeaderMouseDown', { event: payload.event, rootWidgetIndex: this.index });
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user