|  |  |  | @ -31,7 +31,7 @@ | 
			
		
	
		
			
				
					|  |  |  |  |           </el-col> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |           <el-col :span="6"> | 
			
		
	
		
			
				
					|  |  |  |  |           <el-form-item prop="busType" class="query-form-item" label="当前业务类型:" > | 
			
		
	
		
			
				
					|  |  |  |  |             <el-form-item prop="busType" class="query-form-item" label="当前业务类型:"> | 
			
		
	
		
			
				
					|  |  |  |  |               <el-select v-model="formData.busType" | 
			
		
	
		
			
				
					|  |  |  |  |                          filterable | 
			
		
	
		
			
				
					|  |  |  |  |                          remote | 
			
		
	
	
		
			
				
					|  |  |  | @ -126,8 +126,13 @@ | 
			
		
	
		
			
				
					|  |  |  |  |             :key="item.name" | 
			
		
	
		
			
				
					|  |  |  |  |             :label="item.title" | 
			
		
	
		
			
				
					|  |  |  |  |             :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 > | 
			
		
	
		
			
				
					|  |  |  |  |               <component v-if="showChild" :is="item.component" v-bind="item.componentProps" :reset-key="resetKeys[item.name]" @parent-method="parentMethod" /> | 
			
		
	
		
			
				
					|  |  |  |  |             </div> | 
			
		
	
	
		
			
				
					|  |  |  | @ -179,7 +184,8 @@ | 
			
		
	
		
			
				
					|  |  |  |  |             <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" | 
			
		
	
		
			
				
					|  |  |  |  |                          @click="selectBusType(info.documentTypeCode)">开始作业 | 
			
		
	
		
			
				
					|  |  |  |  |               </el-button> | 
			
		
	
	
		
			
				
					|  |  |  | @ -233,8 +239,8 @@ export default { | 
			
		
	
		
			
				
					|  |  |  |  |         limit: 100 | 
			
		
	
		
			
				
					|  |  |  |  |       }, | 
			
		
	
		
			
				
					|  |  |  |  |       formData: {}, | 
			
		
	
		
			
				
					|  |  |  |  |       curWorkPlaces:[], | 
			
		
	
		
			
				
					|  |  |  |  |       busTypeList:[], | 
			
		
	
		
			
				
					|  |  |  |  |       curWorkPlaces: [], | 
			
		
	
		
			
				
					|  |  |  |  |       busTypeList: [], | 
			
		
	
		
			
				
					|  |  |  |  |       logo: logoImg, | 
			
		
	
		
			
				
					|  |  |  |  |       isLinkDisabled: false, | 
			
		
	
		
			
				
					|  |  |  |  |       showChild: true, | 
			
		
	
	
		
			
				
					|  |  |  | @ -264,7 +270,7 @@ export default { | 
			
		
	
		
			
				
					|  |  |  |  |           component: IoCreateOrderOut, | 
			
		
	
		
			
				
					|  |  |  |  |           // 假设你需要传递的参数 | 
			
		
	
		
			
				
					|  |  |  |  |           componentProps: { | 
			
		
	
		
			
				
					|  |  |  |  |             fromSplitType: 'out' | 
			
		
	
		
			
				
					|  |  |  |  |             fromSplitType: 'out', | 
			
		
	
		
			
				
					|  |  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  |  |         }, | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
	
		
			
				
					|  |  |  | @ -330,21 +336,21 @@ export default { | 
			
		
	
		
			
				
					|  |  |  |  |       ], | 
			
		
	
		
			
				
					|  |  |  |  |       tabIndex: 0, | 
			
		
	
		
			
				
					|  |  |  |  |       menuActive: 0, | 
			
		
	
		
			
				
					|  |  |  |  |       resetKeys:{} | 
			
		
	
		
			
				
					|  |  |  |  |       resetKeys: {} | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |   }, | 
			
		
	
		
			
				
					|  |  |  |  |   methods: { | 
			
		
	
		
			
				
					|  |  |  |  |     toggleBusType(){ | 
			
		
	
		
			
				
					|  |  |  |  |     toggleBusType() { | 
			
		
	
		
			
				
					|  |  |  |  |       //隐藏下拉框内容 | 
			
		
	
		
			
				
					|  |  |  |  |       // this.$refs.selectHeadEmpId.blur(); | 
			
		
	
		
			
				
					|  |  |  |  |       this.selectBusTypeDisabled = true | 
			
		
	
		
			
				
					|  |  |  |  |     }, | 
			
		
	
		
			
				
					|  |  |  |  |     selectBusType(val) { | 
			
		
	
		
			
				
					|  |  |  |  |       this.formData.busType = val | 
			
		
	
		
			
				
					|  |  |  |  |       let newQuery = { ...this.$route.query }; | 
			
		
	
		
			
				
					|  |  |  |  |       let newQuery = {...this.$route.query}; | 
			
		
	
		
			
				
					|  |  |  |  |       delete newQuery.billNo; | 
			
		
	
		
			
				
					|  |  |  |  |       newQuery.busType = val | 
			
		
	
		
			
				
					|  |  |  |  |       this.$router.push({ query: newQuery, path: this.$route.path }); | 
			
		
	
		
			
				
					|  |  |  |  |       this.$router.push({query: newQuery, path: this.$route.path}); | 
			
		
	
		
			
				
					|  |  |  |  |       this.editableTabs = [] | 
			
		
	
		
			
				
					|  |  |  |  |       this.clickMenuItem(0) | 
			
		
	
		
			
				
					|  |  |  |  |       this.showChild = false; | 
			
		
	
	
		
			
				
					|  |  |  | @ -441,10 +447,11 @@ export default { | 
			
		
	
		
			
				
					|  |  |  |  |           this.busTypeList = res.data.list | 
			
		
	
		
			
				
					|  |  |  |  |           this.busTypeTotal = res.data.total | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |            if (this.$route.query.busType != null){ | 
			
		
	
		
			
				
					|  |  |  |  |           if (this.$route.query.busType != null) { | 
			
		
	
		
			
				
					|  |  |  |  |             this.formData.busType = this.$route.query.busType | 
			
		
	
		
			
				
					|  |  |  |  |           }else  if (this.busTypeList.length == 1) { | 
			
		
	
		
			
				
					|  |  |  |  |               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 | 
			
		
	
		
			
				
					|  |  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |  |               this.selectBusTypeDisabled = true | 
			
		
	
	
		
			
				
					|  |  |  | @ -456,47 +463,46 @@ export default { | 
			
		
	
		
			
				
					|  |  |  |  |       }) | 
			
		
	
		
			
				
					|  |  |  |  |     }, | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     handleContextMenu(event, tabItem) { | 
			
		
	
		
			
				
					|  |  |  |  |       console.log("右击") | 
			
		
	
		
			
				
					|  |  |  |  |     handleContextMenu() { | 
			
		
	
		
			
				
					|  |  |  |  |       this.showContextMenu = true; | 
			
		
	
		
			
				
					|  |  |  |  |     }, | 
			
		
	
		
			
				
					|  |  |  |  |     handleTabContextMenu(event, tab) { | 
			
		
	
		
			
				
					|  |  |  |  |       this.showContextMenu = true; | 
			
		
	
		
			
				
					|  |  |  |  |       this.contextMenuTab = tab; | 
			
		
	
		
			
				
					|  |  |  |  |       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) { | 
			
		
	
		
			
				
					|  |  |  |  |       // 显示你的自定义菜单逻辑,这里只是示例 | 
			
		
	
		
			
				
					|  |  |  |  |       this.contextMenuVisible = true; | 
			
		
	
		
			
				
					|  |  |  |  |       this.contextMenuPosition = { x, y }; | 
			
		
	
		
			
				
					|  |  |  |  |       this.selectedTabItem = tabItem; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     closeContextMenu() { | 
			
		
	
		
			
				
					|  |  |  |  |       this.showContextMenu = false; | 
			
		
	
		
			
				
					|  |  |  |  |       this.contextMenuStyle.display = 'none'; // 隐藏上下文菜单 | 
			
		
	
		
			
				
					|  |  |  |  |     }, | 
			
		
	
		
			
				
					|  |  |  |  |     // 其他菜单操作的方法,如 closeCurrent, closeOthers, closeAll | 
			
		
	
		
			
				
					|  |  |  |  |     closeCurrent() { | 
			
		
	
		
			
				
					|  |  |  |  |     closeCurrentTab(index) { | 
			
		
	
		
			
				
					|  |  |  |  |       // 关闭当前标签页的逻辑 | 
			
		
	
		
			
				
					|  |  |  |  |       const index = this.editableTabs.findIndex(tab => tab.name === this.selectedTabItem.name); | 
			
		
	
		
			
				
					|  |  |  |  |       if (index !== -1) { | 
			
		
	
		
			
				
					|  |  |  |  |         this.editableTabs.splice(index, 1); | 
			
		
	
		
			
				
					|  |  |  |  |         this.editableTabsValue = this.editableTabs[this.editableTabs.length - 1]?.name || ''; | 
			
		
	
		
			
				
					|  |  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |  |       this.editableTabs.splice(index, 1); // 假设这是关闭标签页的方式 | 
			
		
	
		
			
				
					|  |  |  |  |       this.editableTabsValue = this.editableTabs.length > 0 ? this.editableTabs[0].name : ''; | 
			
		
	
		
			
				
					|  |  |  |  |       this.closeContextMenu(); | 
			
		
	
		
			
				
					|  |  |  |  |     }, | 
			
		
	
		
			
				
					|  |  |  |  |     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.editableTabsValue = ''; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |       this.closeContextMenu(); | 
			
		
	
		
			
				
					|  |  |  |  |     }, | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   }, | 
			
		
	
		
			
				
					|  |  |  |  |   computed: { | 
			
		
	
		
			
				
					|  |  |  |  |     contextMenuStyle() { | 
			
		
	
		
			
				
					|  |  |  |  |     contextMenuPosition() { | 
			
		
	
		
			
				
					|  |  |  |  |       return { | 
			
		
	
		
			
				
					|  |  |  |  |         position: 'fixed', // 使用 fixed 定位确保它浮动在顶层 | 
			
		
	
		
			
				
					|  |  |  |  |         left: `${this.contextMenuPosition.x}px`, | 
			
		
	
		
			
				
					|  |  |  |  |         top: `${this.contextMenuPosition.y}px`, | 
			
		
	
		
			
				
					|  |  |  |  |         // 你可以添加更多的样式来美化你的上下文菜单 | 
			
		
	
		
			
				
					|  |  |  |  |         zIndex: 1000, // 确保它在其他内容之上 | 
			
		
	
		
			
				
					|  |  |  |  |         // 其他样式... | 
			
		
	
		
			
				
					|  |  |  |  |       }; | 
			
		
	
		
			
				
					|  |  |  |  |     }, | 
			
		
	
		
			
				
					|  |  |  |  |   }, | 
			
		
	
	
		
			
				
					|  |  |  | @ -511,7 +517,7 @@ export default { | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | </script> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | <style scoped> | 
			
		
	
		
			
				
					|  |  |  |  | <style lang="css" scoped> | 
			
		
	
		
			
				
					|  |  |  |  | .sidebar-logo { | 
			
		
	
		
			
				
					|  |  |  |  |   width: 80px; | 
			
		
	
		
			
				
					|  |  |  |  |   height: 60px; | 
			
		
	
	
		
			
				
					|  |  |  | @ -519,8 +525,25 @@ export default { | 
			
		
	
		
			
				
					|  |  |  |  |   margin-left: 25px; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | .context-menu { | 
			
		
	
		
			
				
					|  |  |  |  |   position: absolute; | 
			
		
	
		
			
				
					|  |  |  |  |   z-index: 1000; /* 确保它在其他内容之上 */ | 
			
		
	
		
			
				
					|  |  |  |  |   zIndex: 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> | 
			
		
	
	
		
			
				
					|  |  |  | 
 |