@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 6.44 kB
JavaScript
(function(a,m){typeof exports=="object"&&typeof module<"u"?m(exports,require("../../components/common/index.umd.js"),require("../../components/dynamic-resolver/index.umd.js"),require("../../components/checkbox-group/index.umd.js"),require("vue"),require("../../components/designer-canvas/index.umd.js"),require("../../components/property-panel/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","../../components/common/index.umd.js","../../components/dynamic-resolver/index.umd.js","../../components/checkbox-group/index.umd.js","vue","../../components/designer-canvas/index.umd.js","../../components/property-panel/index.umd.js"],m):(a=typeof globalThis<"u"?globalThis:a||self,m(a["checkbox-group"]={},a.common,a.dynamicResolver,a.FCheckboxGroup,a.Vue,a.designerCanvas,a.propertyPanel))})(this,function(a,m,S,C,r,V,P){"use strict";const F={...m.radioCheckboxCommonProps,id:String,disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},enumData:{type:Array,default:[]},data:{type:Array,default:[]},isStringValue:{type:Boolean,default:!0},loadData:{type:Function},modelValue:[String,Array],name:{type:String,default:""},separator:{type:String,default:","},tabIndex:{type:Number,default:0},textField:{type:String,default:"name"},valueField:{type:String,default:"value"}};function j(e,t,n){const l=r.computed(()=>!(e.readonly&&e.disabled)),c=r.ref(e.data||e.enumData||e.options);function d(o){return o[e.valueField]}function v(o){return o[e.textField]}function h(o){return o?e.isStringValue?o.split(e.separator):o:[]}function y(o){const s=c.value.map(i=>d(i)).filter(i=>o.some(u=>u===String(i)));return e.isStringValue?s.join(e.separator):s}function k(o){const p=String(d(o));return h(n.value).some(i=>i===p)}function x(o,p){if(l.value){let s=h(n.value)||[];const i=String(d(o));!s||!s.length?s.push(i):s.some(u=>u===i)?s=s.filter(u=>u!==i):s.push(i),n.value=y(s),t.emit("changeValue",n.value),t.emit("update:modelValue",n.value)}p.stopPropagation()}return r.watch(()=>e.data,()=>{c.value=e.data}),r.watch(()=>e.enumData,()=>{c.value=e.enumData}),{enumData:c,getValue:d,getText:v,checked:k,onClickCheckbox:x}}class T extends P.InputBaseProperty{constructor(t,n){super(t,n)}getEditorProperties(t){const n=this;return n.getComponentConfig(t,{type:"check-group"},{placeholder:{visible:!1},disabled:{visible:!1},direction:{description:"",title:"排列方向",type:"enum",editor:{data:[{id:"horizontal",name:"横向"},{id:"vertical",name:"纵向"}]}},dataSourceType:{description:"",title:"数据源类型",type:"enum",visible:!1,editor:{default:"static",data:[{id:"static",name:"静态"},{id:"dynamic",name:"动态"}]},refreshPanelAfterChanged:!0},data:{description:"",title:"数据",type:"array",visible:!t.editor.dataSourceType||t.editor.dataSourceType==="static",...n.getItemCollectionEditor(t,t.editor.valueField,t.editor.textField),refreshPanelAfterChanged:!0},bindDataSource:{description:"",title:"绑定数据源",type:"string",visible:t.editor.dataSourceType==="dynamic"},textField:{description:"",title:"文本字段",type:"string",readonly:t.editor.dataSourceType!=="dynamic"},valueField:{description:"",title:"值字段",type:"string",readonly:t.editor.dataSourceType!=="dynamic"}},(c,d)=>{if(c)switch(c.propertyID){case"dataSourceType":{c.propertyValue==="static"&&(t.editor.valueField="value",t.editor.textField="name");break}case"data":{t.formatter&&(t.formatter.data=[...c.propertyValue]);break}}})}}function G(e,t){const n=e.schema;function l(c,d){return new T(c,t).getPropertyConfig(n,d)}return{getPropsConfig:l}}const g=r.defineComponent({name:"FCheckboxGroupDesign",props:F,emits:["changeValue","update:modelValue"],setup(e,t){const n=r.ref(e.modelValue),l=r.ref(e.name),c=r.computed(()=>({"farris-checkradio-hor":e.direction==="horizontal"})),{enumData:d,getValue:v,getText:h}=j(e,t,n),y=r.ref(),k=r.inject("designer-host-service"),x=r.inject("design-item-context"),o=G(x,k),p=V.useDesignerComponent(y,x,o);r.onMounted(()=>{y.value.componentInstance=p});const s=r.computed(()=>{if(!d.value||d.value.length===0){const i=[];return[{value:"example1",name:"示例一"},{value:"example2",name:"示例二"}].map(u=>{const f={};f[e.valueField]=u.value,f[e.textField]=u.name,i.push(f)}),i}return d.value});return t.expose(p.value),r.watch(()=>e.modelValue,i=>{n.value=i,t.emit("changeValue",n.value)}),()=>r.createVNode("div",{ref:y,class:["farris-input-wrap",c.value]},[s.value.map((i,u)=>{const f="checkbox_"+l.value+u;return r.createVNode("div",{class:"custom-control custom-checkbox"},[r.createVNode("input",{type:"checkbox",class:"custom-control-input",name:l.value,id:f,value:v(i),checked:!1,readonly:!0,disabled:!0},null),r.createVNode("label",{class:"custom-control-label",for:f,title:h(i)},[h(i)])])})])}}),q=new Map([["appearance",S.resolveAppearance]]);function R(e,t,n){return t}const I={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/check-box.schema.json",title:"check-group",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a check box",type:"string"},type:{description:"The type string of check box component",type:"string",default:"check-group"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disabled:{description:"",type:"boolean",default:!1},textField:{description:"",type:"string",default:"name"},valueField:{description:"",type:"string",default:"value"},dataSourceType:{description:"",type:"string",default:"static"},data:{description:"",type:"array"},bindDataSource:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},separator:{description:"",type:"string",default:","},name:{description:"",type:"string",default:""},required:{description:"",type:"boolean",default:!1},direction:{description:"",type:"string",default:"horizontal"}},required:["type"],ignore:["id","appearance","binding","visible"]},b=S.createPropsResolver(C.checkboxGroupProps,I,q,R);g.register=(e,t,n,l)=>{e["check-group"]=C,t["check-group"]=b},g.registerDesigner=(e,t,n)=>{e["check-group"]=g,t["check-group"]=b};const w=m.withInstall(g);a.FCheckboxGroupDesigner=g,a.checkBoxGroupPropsResolver=b,a.default=w,Object.defineProperties(a,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});