@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 6.61 kB
JavaScript
(function(i,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):(i=typeof globalThis<"u"?globalThis:i||self,m(i["checkbox-group"]={},i.common,i.dynamicResolver,i.FCheckboxGroup,i.Vue,i.designerCanvas,i.propertyPanel))})(this,function(i,m,b,k,o,j,T){"use strict";const G={...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 R(e,t,n){const u=o.computed(()=>!(e.readonly&&e.disabled)),a=o.ref(e.data||e.enumData||e.options);function d(s){return s[e.valueField]}function v(s){return s[e.textField]}function h(s){return s?e.isStringValue?s.split(e.separator):s:[]}function y(s){const c=a.value.map(r=>d(r)).filter(r=>s.some(l=>l===String(r)));return e.isStringValue?c.join(e.separator):c}function S(s){const p=String(d(s));return h(n.value).some(r=>r===p)}function x(s,p){if(u.value){let c=h(n.value)||[];const r=String(d(s));!c||!c.length?c.push(r):c.some(l=>l===r)?c=c.filter(l=>l!==r):c.push(r),n.value=y(c),t.emit("changeValue",n.value),t.emit("update:modelValue",n.value)}p.stopPropagation()}return o.watch(()=>e.data,()=>{a.value=e.data}),o.watch(()=>e.enumData,()=>{a.value=e.enumData}),{enumData:a,getValue:d,getText:v,checked:S,onClickCheckbox:x}}class q extends T.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"}},(a,d)=>{if(a)switch(a.propertyID){case"dataSourceType":{a.propertyValue==="static"&&(t.editor.valueField="value",t.editor.textField="name");break}case"data":{t.formatter&&(t.formatter.data=[...a.propertyValue]);break}}})}}function I(e,t){const n=e.schema;function u(a,d){return new q(a,t).getPropertyConfig(n,d)}return{getPropsConfig:u}}const g=o.defineComponent({name:"FCheckboxGroupDesign",props:G,emits:["changeValue","update:modelValue"],setup(e,t){const n=o.ref(e.modelValue),u=o.ref(e.name),a=o.computed(()=>({"farris-checkradio-hor":e.direction==="horizontal"})),{enumData:d,getValue:v,getText:h}=R(e,t,n),y=o.ref(),S=o.inject("designer-host-service"),x=o.inject("design-item-context"),s=I(x,S),p=j.useDesignerComponent(y,x,s);o.onMounted(()=>{y.value.componentInstance=p});const c=o.computed(()=>{if(!d.value||d.value.length===0){const r=[];return[{value:"example1",name:"示例一"},{value:"example2",name:"示例二"}].map(l=>{const f={};f[e.valueField]=l.value,f[e.textField]=l.name,r.push(f)}),r}return d.value});return t.expose(p.value),o.watch(()=>e.modelValue,r=>{n.value=r,t.emit("changeValue",n.value)}),()=>o.createVNode("div",{ref:y,class:["farris-input-wrap",a.value]},[c.value.map((r,l)=>{const f="checkbox_"+u.value+l;return o.createVNode("div",{class:"custom-control custom-checkbox"},[o.createVNode("input",{type:"checkbox",class:"custom-control-input",name:u.value,id:f,value:v(r),checked:!1,readonly:!0,disabled:!0},null),o.createVNode("label",{class:"custom-control-label",for:f,title:h(r)},[h(r)])])})])}}),V=new Map([["appearance",b.resolveAppearance],["onChange","onChangeValue"]]);function P(e,t,n){return t}const F={$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"},onChange:{description:"",type:"string"}},required:["type"],ignore:["id","appearance","binding","visible"]},w=b.createPropsResolver(k.checkboxGroupProps,F,V,P),C=b.getPropsResolverGenerator(k.checkboxGroupProps,F,V,P);g.register=(e,t,n,u,a)=>{e["check-group"]=k,t["check-group"]=C(a)},g.registerDesigner=(e,t,n,u)=>{e["check-group"]=g,t["check-group"]=C(u)};const A=m.withInstall(g);i.FCheckboxGroupDesigner=g,i.checkBoxGroupPropsResolver=w,i.default=A,i.propsResolverGenerator=C,Object.defineProperties(i,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});