fix: tabs name

This commit is contained in:
Fine 2023-06-20 17:20:53 +08:00
parent 6c4991bc56
commit f0ef4d0a9b
2 changed files with 16 additions and 2 deletions

View File

@ -6,6 +6,8 @@ import '@vue/runtime-core'
declare module '@vue/runtime-core' {
export interface GlobalComponents {
DateCalendar: typeof import('./../components/DateCalendar.vue')['default']
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
ElButton: typeof import('element-plus/es')['ElButton']
ElCollapse: typeof import('element-plus/es')['ElCollapse']
ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']

View File

@ -28,6 +28,7 @@ limitations under the License. -->
class="tab-name"
:readonly="isNaN(editTabIndex) && !canEditTabName"
:class="{ view: !canEditTabName }"
:style="{ width: getStringWidth(child.name) + 'px' }"
/>
<Icon
v-show="activeTabIndex === idx"
@ -202,6 +203,16 @@ limitations under the License. -->
const l = dashboardStore.layout.findIndex((d: LayoutConfig) => d.i === props.data.i);
dashboardStore.setCurrentTabItems(dashboardStore.layout[l].children[activeTabIndex.value].children);
}
function getStringWidth(s: string) {
const dom = document.createElement("span");
dom.style.display = "inline-block";
dom.textContent = s;
document.body.appendChild(dom);
const width = dom.clientWidth;
document.body.removeChild(dom);
return width + 10;
}
function copyLink() {
let path = "";
if (route.params.activeTabIndex === undefined) {
@ -254,6 +265,7 @@ limitations under the License. -->
removeTab,
clickTabs,
copyLink,
getStringWidth,
...toRefs(props),
activeTabWidget,
dashboardStore,
@ -275,6 +287,7 @@ limitations under the License. -->
overflow-x: auto;
white-space: nowrap;
overflow-y: hidden;
padding: 0 10px;
span {
display: inline-block;
@ -291,10 +304,9 @@ limitations under the License. -->
outline: none;
color: #333;
font-style: normal;
margin-right: 5px;
overflow: hidden;
text-overflow: ellipsis;
text-align: center;
margin-right: 20px;
}
.tab-icons {