@jecloud/ui
Version:
JECloud UI库,基于ant-design-vue封装
1 lines • 1.69 kB
JavaScript
import{mergeProps as o,createVNode as t,isVNode as r}from"vue";import{ref as n,h as e,watch as u}from"vue";import{useConfigInfo as i}from"../../../hooks";import{pick as a,isNotEmpty as l}from"@jecloud/utils";import{Row as p,Col as v}from"ant-design-vue";function s(o){return"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!r(o)}export function useGroup(r){var c=r.props,f=r.context,d=r.component,m=r.useRow,g=void 0===m||m,b=f.slots,y=f.emit,j=n(c.wrap),x=i({props:c,context:f}),S=x.options,w=x.setValues,h=function(o){var t=o.label,r=o.value,n=o.disabled;return e(d,{value:r,disabled:n},{default:function(){var r,n;return null!==(n=null===(r=b.option)||void 0===r?void 0:r.call(b,o))&&void 0!==n?n:t}})};u((function(){return c.wrap}),(function(o){j.value=o}));return{optionsSlot:function(){var r,n={};return c.cols>0&&(n.span=24/c.cols,j.value=!0),g?t(p,o(a(c,["align","justify"]),{wrap:j.value}),{default:function(){var o;return[null===(o=S.value)||void 0===o?void 0:o.map((function(o){var r;return t(v,n,s(r=h(o))?r:{default:function(){return[r]}})}))]}}):null===(r=S.value)||void 0===r?void 0:r.map((function(o){return h(o)}))},onChange:function(o){var t;if(y("change",o),l(S.value)){var r="JeCheckbox"===(null==d?void 0:d.name)?o:[null===(t=o.target)||void 0===t?void 0:t.value],n=S.value.filter((function(o){return r.includes(o.value)}));w(n)}},options:S}}export var groupProps={model:Object,value:String,options:Array,configInfo:String,cols:{type:Number,validator:function(o){return[1,2,3,4,6,12,24].includes(o)}},align:String,justify:String,wrap:Boolean,querys:Array};export var groupEmits=["update:value","update:options"];export var groupSlots=["slot"];