UNPKG

@jecloud/ui

Version:

JECloud UI库,基于ant-design-vue封装

1 lines 1.35 kB
import{mergeProps as o,createVNode as r}from"vue";import{computed as n,defineComponent as t,ref as l}from"vue";import{Button as e}from"ant-design-vue";import{useModelValue as i}from"../../hooks";export default t({name:"JeButton",components:{Button:e},inheritAttrs:!1,props:{loading:Boolean,disabled:Boolean,icon:String,iconColor:String,bgColor:String,fontColor:String,borderColor:String},emits:["click"],setup:function(t,a){var c=a.slots,u=a.attrs,s=a.expose,d=a.emit,p=l(),f=i({props:t,context:a,key:"disabled"}),v=i({props:t,context:a,key:"loading"}),m=n((function(){var o={};return t.bgColor&&(o.backgroundColor=t.bgColor+" !important"),t.borderColor&&(o.borderColor=t.borderColor+" !important"),t.fontColor&&(o.color=t.fontColor+" !important"),o})),C=n((function(){var o,r={};return(t.iconColor||t.fontColor)&&(r.color=(null!==(o=t.iconColor)&&void 0!==o?o:t.fontColor)+" !important"),r})),g=function(o){v.value||f.value?o.preventDefault():d("click",o)};s({$plugin:p,loading:v,disabled:f});return function(){return r(e,o({disabled:f.value},u,{style:m.value,ref:p,class:{"je-btn-loading":v.value},onClick:g}),{default:function(){var o;return[v.value?r("i",{class:"jeicon jeicon-circle-notch icon-spin",style:C.value},null):c.icon?c.icon():t.icon?r("i",{class:t.icon,style:C.value},null):void 0,null===(o=c.default)||void 0===o?void 0:o.call(c)]}})}}});