vxe-pc-ui
Version:
A vue based PC component library
1 lines • 1.47 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTabPane",props:{title:[String,Number],name:[String,Number],icon:String,titleWidth:[String,Number],titleAlign:[String,Number],preload:Boolean,permissionCode:[String,Number]},emits:[],setup(e,t){const{slots:i,emit:r}=t;var n=_xeUtils.default.uniqueId();const u=(0,_vue.ref)(),a=(0,_vue.inject)("$xeTabs",null);var o=(0,_vue.reactive)({});const l=(0,_vue.reactive)({id:n,title:e.title,name:e.name,icon:e.icon,titleWidth:e.titleWidth,titleAlign:e.titleAlign,preload:e.preload,permissionCode:e.permissionCode,slots:i}),s={refElem:u},d={},v={xID:n,props:e,context:t,reactData:o,getRefMaps:()=>s,getComputeMaps:()=>d};Object.assign(v,{dispatchEvent:(e,t,i)=>{r(e,(0,_ui.createEvent)(i,{$tabPane:v},t))}},{}),(0,_vue.watch)(()=>e.title,e=>{l.title=e}),(0,_vue.watch)(()=>e.name,e=>{l.name=e}),(0,_vue.watch)(()=>e.icon,e=>{l.icon=e}),(0,_vue.watch)(()=>e.permissionCode,e=>{l.permissionCode=e}),(0,_vue.onMounted)(()=>{var e=u.value;a&&e&&(0,_util.assembleTabItem)(a,e,l)}),(0,_vue.onUnmounted)(()=>{a&&(0,_util.destroyTabItem)(a,l)});return v.renderVN=()=>(0,_vue.h)("div",{ref:u},[]),v},render(){return this.renderVN()}});