< template> < a- tabs v- model: activeKey= "activeModule"  @change = "handleTabChange"  v- if = "billId && tabList.length > 0" >   < a- tab- pane  v- for = "(tab, index) in tabList"   : key= "tab.label"   : tab= "tab.label"   >   < ! --  使用动态组件来根据 tab. key 渲染不同的组件 -- >   < component  : is= "getComponentName(tab.label)"   : billId= "billId"   v- if = "activeModule === tab.label"   / >   < / a- tab- pane>   < / a- tabs>   
< / template>   
< script> import  Invoice  from '. /tabs/ invoice'import  BankReceipt  from '. /tabs/ bankReceipt'import  Dispatch  from '. /tabs/ dispatch'import  PurchaseOrder  from '. /tabs/ purchaseOrder'import  ReceiptOrder  from '. /tabs/ receiptOrder'import  RequestOrder  from '. /tabs/ requestOrder'import  TrainApplication  from '. /tabs/ trainApplication'import  TravelApplication  from '. /tabs/ travelApplication' export default  {   components:  {   Invoice , BankReceipt , Dispatch , PurchaseOrder , ReceiptOrder , RequestOrder , TrainApplication , TravelApplication } ,   data ( )  {   return  {   billId:  null ,  tabList:  [   {  key:  '0' ,  label:  '发票'  } ,   {  key:  '1' ,  label:  '银行回单'  } ,   ] ,   activeModule:  '发票' ,  } ;   } ,   methods:  {   getTabList ( ) { . . . . this . activeModule= this . tabList[ 0 ] . label} , handleTabChange ( key)  {   this . activeModule =  key;   } ,   getComponentName ( key)  {   switch  ( key)  {   switch  ( key)  { case  '发票' : return  'Invoice '; case  '银行回单' : return  'BankReceipt '; case  '请款单' : return  'RequestOrder '; case  '验收单' : return  'ReceiptOrder '; case  '差旅申请' : return  'TravelApplication '; case  '培训申请' : return  'TrainApplication '; case  '公出派遣' : return  'Dispatch '; case  '采购单' : return  'PurchaseOrder '; default :  return  'DefaultComponent ';  }   } ,   } ,   
} ;   
< / script>