UNPKG

vxe-pc-ui

Version:
1 lines 2.96 kB
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_radio=_interopRequireDefault(require("./radio")),_button=_interopRequireDefault(require("./button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createInternalData(){return{}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeRadioGroup",props:{modelValue:[String,Number,Boolean],disabled:{type:Boolean,default:null},readonly:{type:Boolean,default:null},type:String,options:Array,optionProps:Object,strict:{type:Boolean,default:()=>(0,_ui.getConfig)().radioGroup.strict},size:{type:String,default:()=>(0,_ui.getConfig)().radioGroup.size||(0,_ui.getConfig)().size},defaultConfig:Object},emits:["update:modelValue","change","default-change"],setup(n,e){let{slots:d,emit:a}=e,l=(0,_vue.inject)("$xeForm",null),r=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();let s=(0,_ui.useSize)(n).computeSize;var u=(0,_vue.reactive)({});let o=createInternalData();var i=(0,_vue.computed)(()=>{var e=n.readonly;return null===e?!!l&&l.props.readonly:e}),p=(0,_vue.computed)(()=>{var e=n.disabled;return null===e?!!l&&l.props.disabled:e});let c=(0,_vue.computed)(()=>Object.assign({},n.defaultConfig)),v={computeIsDisabled:p,computeIsReadonly:i},_={xID:t,props:n,context:e,reactData:u,name:_xeUtils.default.uniqueId("xe_group_"),getComputeMaps:()=>v},f=(0,_vue.computed)(()=>Object.assign({},n.optionProps)),m=(0,_vue.computed)(()=>f.value.label||"label"),g=(0,_vue.computed)(()=>f.value.value||"value"),b=(0,_vue.computed)(()=>f.value.disabled||"disabled"),x=e=>{a("update:modelValue",e)},h=(e,t,u)=>{a(e,(0,_ui.createEvent)(u,{$radioGroup:_},t))};p={dispatchEvent:h};let q=e=>{var u=o.isLoaded,t=c.value;let a=g.value;if(!u){u=t.selectMode;if(0<e.length&&_xeUtils.default.eqNull(n.modelValue)){if("first"===u||"last"===u){let t=_xeUtils.default[u](e);t&&(0,_vue.nextTick)(()=>{var e;_xeUtils.default.eqNull(n.modelValue)&&(e=t[a],x(e),h("default-change",{value:e},null))})}o.isLoaded=!0}}return(0,_vue.nextTick)()};Object.assign(_,p,{handleChecked(e,t){var{checkedValue:e,checkedLabel:u}=e,a=e;x(a),h("change",{value:a,label:a,checkedValue:e,checkedLabel:u},t),l&&r&&l.triggerItemEvent(t,r.itemConfig.field,a)}});return(0,_vue.watch)(()=>n.options,e=>{q(e||[])}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=n.options;e&&q(e)})}),(0,_vue.onUnmounted)(()=>{_xeUtils.default.assign(o,createInternalData())}),(0,_vue.provide)("$xeRadioGroup",_),_.renderVN=()=>{var{options:e,type:t}=n,u=s.value,a=d.default;let l=g.value,r=m.value,o=b.value,i=("button"===t?_button:_radio).default;return(0,_vue.h)("div",{class:["vxe-radio-group",{["size--"+u]:u}]},a?a({}):e?e.map(e=>(0,_vue.h)(i,{key:e[l],checkedValue:e[l],content:e[r],disabled:e[o]})):[])},_},render(){return this.renderVN()}});