UNPKG

vxe-table-demonic

Version:

一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式...

1 lines 2.31 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../tools/utils"),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=require("../../hooks/size");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=(0,_vue.defineComponent)({name:"VxeRadio",props:{modelValue:[String,Number,Boolean],label:{type:[String,Number,Boolean],default:null},title:[String,Number],content:[String,Number],disabled:Boolean,name:String,strict:{type:Boolean,default:function(){return _conf.default.radio.strict}},size:{type:String,default:function(){return _conf.default.radio.size||_conf.default.size}}},emits:["update:modelValue","change"],setup:function(l,e){function r(e){f.value||m(l.label,e)}function a(e){var t=f.value,u=p.value;t||u||l.label===(s?s.props:l).modelValue&&m(null,e)}var o=e.slots,n=e.emit,u=(0,_vue.inject)("$xeform",null),i=(0,_vue.inject)("$xeformiteminfo",null),d={xID:_xeUtils.default.uniqueId(),props:l,context:e},c=(0,_size.useSize)(l),s=(0,_vue.inject)("$xeradiogroup",null),f=(0,_vue.computed)(function(){return l.disabled||s&&s.props.disabled}),v=(0,_vue.computed)(function(){return(s||l).name}),p=(0,_vue.computed)(function(){return(s?s.props:l).strict}),_=(0,_vue.computed)(function(){var e=l.modelValue,t=l.label;return s?s.props.modelValue===t:e===t}),m=function(e,t){s?s.handleChecked({label:e},t):(n("update:modelValue",e),b.dispatchEvent("change",{label:e},t),u&&i&&u.triggerItemEvent(t,i.itemConfig.field,e))},b={dispatchEvent:function(e,t,u){n(e,Object.assign({$radio:d,$event:u},t))}};Object.assign(d,b);return d.renderVN=function(){var e,t=c.value,u=f.value,n=v.value,i=_.value;return(0,_vue.h)("label",{class:["vxe-radio",((e={})["size--".concat(t)]=t,e["is--checked"]=i,e["is--disabled"]=u,e)],title:l.title},[(0,_vue.h)("input",{class:"vxe-radio--input",type:"radio",name:n,checked:i,disabled:u,onChange:r,onClick:a}),(0,_vue.h)("span",{class:["vxe-radio--icon",i?"vxe-icon-radio-checked":"vxe-icon-radio-unchecked"]}),(0,_vue.h)("span",{class:"vxe-radio--label"},o.default?o.default({}):(0,_utils.getFuncText)(l.content))])},d},render:function(){return this.renderVN()}});exports.default=_default;