|
|
@ -126,8 +126,13 @@
|
|
|
|
:key="item.name"
|
|
|
|
:key="item.name"
|
|
|
|
:label="item.title"
|
|
|
|
:label="item.title"
|
|
|
|
:name="item.name"
|
|
|
|
:name="item.name"
|
|
|
|
|
|
|
|
@contextmenu.stop.prevent="handleTabContextMenu($event, item)"
|
|
|
|
>
|
|
|
|
>
|
|
|
|
|
|
|
|
<ul v-if="showContextMenu" class="context-menu" :style="contextMenuPosition">
|
|
|
|
|
|
|
|
<li @click="closeCurrentTab(contextMenuIndex)">关闭当前</li>
|
|
|
|
|
|
|
|
<li @click="closeOtherTabs">关闭其他</li>
|
|
|
|
|
|
|
|
<li @click="closeAllTabs">关闭所有</li>
|
|
|
|
|
|
|
|
</ul>
|
|
|
|
<div >
|
|
|
|
<div >
|
|
|
|
<component v-if="showChild" :is="item.component" v-bind="item.componentProps" :reset-key="resetKeys[item.name]" @parent-method="parentMethod" />
|
|
|
|
<component v-if="showChild" :is="item.component" v-bind="item.componentProps" :reset-key="resetKeys[item.name]" @parent-method="parentMethod" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@ -179,7 +184,8 @@
|
|
|
|
<div style="flex: 1; display: flex; flex-direction: column; justify-content: flex-end; padding-top: 10px;"
|
|
|
|
<div style="flex: 1; display: flex; flex-direction: column; justify-content: flex-end; padding-top: 10px;"
|
|
|
|
>
|
|
|
|
>
|
|
|
|
<!-- 假设这里有一些信息内容 -->
|
|
|
|
<!-- 假设这里有一些信息内容 -->
|
|
|
|
<p style="font-size: 14px;background-color: #e1f3fb" @click="selectBusType(info.documentTypeCode)">{{ info.remark }}</p>
|
|
|
|
<p style="font-size: 14px;background-color: #e1f3fb" @click="selectBusType(info.documentTypeCode)">
|
|
|
|
|
|
|
|
{{ info.remark }}</p>
|
|
|
|
<el-button type="primary" style="position: absolute; bottom: 20px; right: 20px;" icon="el-icon-thumb"
|
|
|
|
<el-button type="primary" style="position: absolute; bottom: 20px; right: 20px;" icon="el-icon-thumb"
|
|
|
|
@click="selectBusType(info.documentTypeCode)">开始作业
|
|
|
|
@click="selectBusType(info.documentTypeCode)">开始作业
|
|
|
|
</el-button>
|
|
|
|
</el-button>
|
|
|
@ -264,7 +270,7 @@ export default {
|
|
|
|
component: IoCreateOrderOut,
|
|
|
|
component: IoCreateOrderOut,
|
|
|
|
// 假设你需要传递的参数
|
|
|
|
// 假设你需要传递的参数
|
|
|
|
componentProps: {
|
|
|
|
componentProps: {
|
|
|
|
fromSplitType: 'out'
|
|
|
|
fromSplitType: 'out',
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -445,6 +451,7 @@ export default {
|
|
|
|
this.formData.busType = this.$route.query.busType
|
|
|
|
this.formData.busType = this.$route.query.busType
|
|
|
|
}else if (this.busTypeList.length == 1) {
|
|
|
|
}else if (this.busTypeList.length == 1) {
|
|
|
|
this.formData.busType = this.busTypeList[0].documentTypeCode
|
|
|
|
this.formData.busType = this.busTypeList[0].documentTypeCode
|
|
|
|
|
|
|
|
this.$router.push({query: {...this.$route.query, busType: this.formData.busType}, path: this.$route.path})
|
|
|
|
this.selectBusTypeDisabled = false
|
|
|
|
this.selectBusTypeDisabled = false
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
this.selectBusTypeDisabled = true
|
|
|
|
this.selectBusTypeDisabled = true
|
|
|
@ -456,47 +463,46 @@ export default {
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
handleContextMenu(event, tabItem) {
|
|
|
|
handleContextMenu() {
|
|
|
|
console.log("右击")
|
|
|
|
this.showContextMenu = true;
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
handleTabContextMenu(event, tab) {
|
|
|
|
this.showContextMenu = true;
|
|
|
|
this.showContextMenu = true;
|
|
|
|
|
|
|
|
this.contextMenuTab = tab;
|
|
|
|
this.contextMenuPosition = { x: event.clientX, y: event.clientY };
|
|
|
|
this.contextMenuPosition = { x: event.clientX, y: event.clientY };
|
|
|
|
// 这里可以显示一个自定义的菜单,例如使用 Element UI 的 Dialog 或 Popover
|
|
|
|
|
|
|
|
// 假设你有一个名为 showContextMenu 的方法来显示菜单,并传递 tabItem 作为参数
|
|
|
|
|
|
|
|
this.showContextMenu(tabItem, event.clientX, event.clientY);
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
showContextMenu(tabItem, x, y) {
|
|
|
|
|
|
|
|
// 显示你的自定义菜单逻辑,这里只是示例
|
|
|
|
closeContextMenu() {
|
|
|
|
this.contextMenuVisible = true;
|
|
|
|
this.showContextMenu = false;
|
|
|
|
this.contextMenuPosition = { x, y };
|
|
|
|
this.contextMenuStyle.display = 'none'; // 隐藏上下文菜单
|
|
|
|
this.selectedTabItem = tabItem;
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
// 其他菜单操作的方法,如 closeCurrent, closeOthers, closeAll
|
|
|
|
closeCurrentTab(index) {
|
|
|
|
closeCurrent() {
|
|
|
|
|
|
|
|
// 关闭当前标签页的逻辑
|
|
|
|
// 关闭当前标签页的逻辑
|
|
|
|
const index = this.editableTabs.findIndex(tab => tab.name === this.selectedTabItem.name);
|
|
|
|
this.editableTabs.splice(index, 1); // 假设这是关闭标签页的方式
|
|
|
|
if (index !== -1) {
|
|
|
|
this.editableTabsValue = this.editableTabs.length > 0 ? this.editableTabs[0].name : '';
|
|
|
|
this.editableTabs.splice(index, 1);
|
|
|
|
this.closeContextMenu();
|
|
|
|
this.editableTabsValue = this.editableTabs[this.editableTabs.length - 1]?.name || '';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
closeOthers() {
|
|
|
|
closeOtherTabs() {
|
|
|
|
// 关闭其他标签页的逻辑
|
|
|
|
// 关闭其他标签页的逻辑
|
|
|
|
this.editableTabs = this.editableTabs.filter(tab => tab.name === this.selectedTabItem.name);
|
|
|
|
// ...
|
|
|
|
this.editableTabsValue = this.selectedTabItem.name;
|
|
|
|
this.closeContextMenu();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
closeAll() {
|
|
|
|
closeAllTabs() {
|
|
|
|
// 关闭所有标签页的逻辑
|
|
|
|
// 关闭所有标签页的逻辑
|
|
|
|
this.editableTabs = [];
|
|
|
|
this.editableTabs = [];
|
|
|
|
this.editableTabsValue = '';
|
|
|
|
this.editableTabsValue = '';
|
|
|
|
}
|
|
|
|
this.closeContextMenu();
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
computed: {
|
|
|
|
computed: {
|
|
|
|
contextMenuStyle() {
|
|
|
|
contextMenuPosition() {
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
|
|
|
|
position: 'fixed', // 使用 fixed 定位确保它浮动在顶层
|
|
|
|
left: `${this.contextMenuPosition.x}px`,
|
|
|
|
left: `${this.contextMenuPosition.x}px`,
|
|
|
|
top: `${this.contextMenuPosition.y}px`,
|
|
|
|
top: `${this.contextMenuPosition.y}px`,
|
|
|
|
// 你可以添加更多的样式来美化你的上下文菜单
|
|
|
|
zIndex: 1000, // 确保它在其他内容之上
|
|
|
|
|
|
|
|
// 其他样式...
|
|
|
|
};
|
|
|
|
};
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
@ -511,7 +517,7 @@ export default {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
<style lang="css" scoped>
|
|
|
|
.sidebar-logo {
|
|
|
|
.sidebar-logo {
|
|
|
|
width: 80px;
|
|
|
|
width: 80px;
|
|
|
|
height: 60px;
|
|
|
|
height: 60px;
|
|
|
@ -519,8 +525,25 @@ export default {
|
|
|
|
margin-left: 25px;
|
|
|
|
margin-left: 25px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.context-menu {
|
|
|
|
.context-menu {
|
|
|
|
position: absolute;
|
|
|
|
zIndex: 1000;
|
|
|
|
z-index: 1000; /* 确保它在其他内容之上 */
|
|
|
|
position: fixed ;
|
|
|
|
|
|
|
|
list-style-type: none;
|
|
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
|
|
margin: 0;
|
|
|
|
|
|
|
|
background-color: #f9f9f9;
|
|
|
|
|
|
|
|
border: 1px solid #d4d4d4;
|
|
|
|
|
|
|
|
border-radius: 4px;
|
|
|
|
/* 其他样式... */
|
|
|
|
/* 其他样式... */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.context-menu li {
|
|
|
|
|
|
|
|
padding: 8px 16px;
|
|
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
|
|
/* 其他样式... */
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.context-menu li:hover {
|
|
|
|
|
|
|
|
background-color: #e1e1e1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
</style>
|
|
|
|
</style>
|
|
|
|