UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

2 lines (1 loc) 8.95 kB
(function(c,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("../dynamic-form/index.umd.js"),require("../modal/index.umd.js"),require("../tabs/index.umd.js"),require("../tree-view/index.umd.js"),require("../textarea/index.umd.js"),require("../layout/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../dynamic-form/index.umd.js","../modal/index.umd.js","../tabs/index.umd.js","../tree-view/index.umd.js","../textarea/index.umd.js","../layout/index.umd.js"],t):(c=typeof globalThis<"u"?globalThis:c||self,t(c["event-parameter"]={},c.Vue,c.dynamicForm,c.modal,c.FTabs,c.FTreeView,c.FTextarea,c.FLayout))})(this,function(c,t,v,R,N,E,M,V){"use strict";var m=(e=>(e.Default="Default",e.Textbox="Textbox",e.Numberbox="Numberbox",e.Combolist="Combolist",e.Select="Select",e.Checkbox="Checkbox",e.Switch="Switch",e.Tags="Tags",e.SortEditor="SortEditor",e.FilterEditor="FilterEditor",e.DataEditor="DataEditor",e.MenuIdSelector="MenuIdSelector",e.AppIdSelector="AppIdSelector",e.ComboLookup="ComboLookup",e.ConfigurationParameterEditor="ConfigurationParameterEditor",e.FieldMappingEditor="FieldMappingEditor",e))(m||{});const g=t.reactive({}),j={data:{type:Object,default:[]},id:{type:String,default:""},editable:{type:Boolean,default:!0},editorType:{type:String,default:""},label:{type:String,default:""},modelValue:{type:[String,Boolean,Array,Number],default:""},paramData:{type:Object,default:[]},showLabel:{type:Boolean,default:!0},idField:{type:String,default:""},textField:{type:String,default:""},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},fieldData:{type:Object,default:[]},varData:{type:Object,default:[]},formData:{type:Object,default:[]}};function D(e){const a=t.ref(e.editorType);function u(){g[a.value]={type:"combo-list",componentProps:{data:e.data,editable:e.editable==="true",idField:e.idField||"id",textField:e.textField||"label",enableClear:!0}}}function i(r){}return{createEditorProps:u,onValueChange:i}}function A(e){const a=t.ref(e.editorType);function u(){g[a.value]={type:"switch",componentProps:{}}}function i(){}return{createEditorProps:u,onValueChange:i}}function O(e){const a=t.ref(e.editorType),u=t.computed(()=>a.value===m.Default);function i(){g[a.value]={type:"input-group",componentProps:{}}}function r(){}return{createEditorProps:i,shouldRenderAppendButton:u,onValueChange:r}}function _(e){const a=t.ref(e.editorType),u=t.computed(()=>a.value===m.Default);function i(){g[a.value]={type:"combo-tree",componentProps:{data:e.data,placeholder:"请选择",enableSearch:!1,enableClear:!0,editable:!1,readonly:!1,disabled:!1,idField:e.idField||"id",textField:e.textField||"name",mapFields:{id:"selectId"},multiSelect:!1,customRowStatus:l=>(l.raw.children&&l.raw.children.length&&(l.disabled=!0),l)}}}t.watch(()=>e.data,(l,b)=>{var C;l!==b&&((C=g[a.value])==null?void 0:C.type)==="combo-tree"&&(g[a.value].componentProps.data=l)});function r(){}return{createEditorProps:i,shouldRenderAppendButton:u,onValueChange:r}}function L(e){const a=t.ref(e.editorType);function u(l){return`/api/runtime/sys/v1.0/functions/layerFuncs/${(l==null?void 0:l.id)||"0"}`}function i(){g[a.value]={type:"menu-lookup",componentProps:{fetchNodeApi:u}}}function r(){}return{createEditorProps:i,onValueChange:r}}function B(e,a){const u=t.ref(e.editorType),i=D(e),r=A(e),l=O(e),b=_(e),C=L(e);function S(){const p=u.value;return p===m.Combolist||p===m.Select?i.createEditorProps():p===m.Checkbox||(p===m.MenuIdSelector?C.createEditorProps():p===m.FilterEditor||p===m.DataEditor||p===m.SortEditor||p===m.MenuIdSelector||p===m.AppIdSelector||(p===m.ComboLookup?b.createEditorProps():p===m.Numberbox||(p===m.Switch?(r.createEditorProps(),a.value=a.value==="true"):l.createEditorProps()))),g[u.value]}function w(){return"input-group"}function F(){return{}}return{getEditorConfig:S,getEditorType:w,getEditorMap:F}}function q(e){const a=t.reactive([{id:"tabField",title:"字段",treeConfigs:{id:"tabFieldTree",columns:[{field:"name"}],data:e.fieldData,onSelectNode:()=>{},componentRef:t.ref()}},{id:"tabVar",title:"变量",treeConfigs:{id:"tabVarTree",data:e.varData}},{id:"tabForm",title:"表单组件",treeConfigs:{id:"tabFormTree",data:e.formData}}]);t.watch(()=>e.fieldData,(r,l)=>{r!==l&&(a[0].treeConfigs.data=r)}),t.watch(()=>e.varData,(r,l)=>{r!==l&&(a[0].treeConfigs.data=r)}),t.watch(()=>e.formData,(r,l)=>{r!==l&&(a[2].treeConfigs.data=r)});function u(r){r.forEach(l=>{Object.keys(l).forEach(b=>{b.indexOf("__fv")>-1&&delete l[b]})})}function i(){u(a[0].treeConfigs.data),u(a[1].treeConfigs.data),u(a[2].treeConfigs.data)}return{tabs:a,cleanTreeData:i}}function $(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const h=t.defineComponent({name:"FEventParameter",props:j,emits:["valueChange","onBlur","applicationSelectionChange","componentSelectionChange","parameterChanged","update:modelValue","update:parameterValue","confirm"],setup(e,a){const u=t.ref(e.id);t.ref(e.label),t.ref(e.showLabel);const i=t.ref(e.modelValue),r=t.ref(e.modelValue),{getEditorConfig:l}=B(e,i);O(e);const b=l();t.ref();const C=t.ref(),S=t.ref("tabField"),w=t.inject(R.F_MODAL_SERVICE_TOKEN),F=t.ref([{field:"name",title:"",dataType:"string",width:350}]),p=t.ref({enable:!1}),U=t.ref({customRowStatus:o=>{var n;return o.collapse===void 0&&((!o.raw.parent||!o.raw.parentId)&&(o.collapse=!1),((n=o.raw.data)==null?void 0:n.$type)==="ComplexField"&&(o.collapse=!0)),o.raw.hasChildren&&(o.disabled=!0),o}}),H=t.ref({customRowStatus:o=>(o.layer===0&&(o.disabled=!0),o)}),T=t.computed(()=>({type:b==null?void 0:b.type,...b==null?void 0:b.componentProps})),{tabs:G,cleanTreeData:P}=q(e);function z(o){a.emit("update:modelValue",o),a.emit("valueChange",o)}function k(o,n){const s=n.selectionStart||0,{selectionEnd:d}=n,f=d-s,I=f>0,y=r.value&&r.value.split("")||[];return I?y.splice(s,f,o):y.splice(s,0,o),y.join("")}function K(o,n){if(!o.data)return;const{data:s}=o;let d=o.parentNode,{label:f}=s;for(;d&&d.parentNode;)d.data&&(f=d.data.label+"/"+f),d=d.parentNode;return k(`{DATA~/${f}}`,n)}function J(o,n){const{statePath:s}=o;let d=n.value;if(s){const f=s.split("/");if(d=s,f.length===3){const y=`#{${f[1]}}`;f.splice(1,1,y),d=f.join("/")}d=`{UISTATE~${d}}`}return k(d,n)}function x(o,n,s){const d=C.value.getTextareaElement();switch(o){case"tabForm":r.value=k(`#{${s.data.id}}`,d);break;case"tabField":r.value=K(s,d);break;case"tabVar":r.value=J(s.data,d);break}a.emit("paramChanged",{tabId:o,index:n,raw:s,value:i.value})}function Q(){return()=>{let o;return t.createVNode(V,{class:"nav-tree-panel"},{default:()=>[t.createVNode(V.FLayoutPane,{position:"left",width:300,resizable:!1},{default:()=>[t.createVNode(N,{activeId:S.value,"onUpdate:activeId":n=>S.value=n},$(o=G.map(n=>t.createVNode(N.FTabPage,{key:n.id,id:n.id,title:n.title},{default:()=>[n.id==="tabField"&&t.createVNode(E,{rowNumber:p,rowOption:U.value,key:n.treeConfigs.id,data:n.treeConfigs.data,columns:F.value,fit:!0,height:340,onDoubleClickRow:function(d,f){x(n.id,d,f)}},null),n.id==="tabVar"&&t.createVNode(E,{rowNumber:p,rowOption:H.value,key:n.treeConfigs.id,data:n.treeConfigs.data,fit:!0,height:340,onDoubleClickRow:function(d,f){x(n.id,d,f)}},null),n.id==="tabForm"&&t.createVNode(E,{rowNumber:p,key:n.treeConfigs.id,data:n.treeConfigs.data,columns:F.value,fit:!0,height:340,onDoubleClickRow:function(d,f){x(n.id,d,f)}},null)]})))?o:{default:()=>[o]})]}),t.createVNode(V.FLayoutPane,{position:"center"},{default:()=>[t.createVNode(M,{ref:C,modelValue:r.value,"onUpdate:modelValue":n=>r.value=n,rows:10,autoHeight:!0},null)]})]})}}function W(){r.value=i.value;const o=w.open({title:"参数编辑器",width:900,height:500,fitContent:!1,showHeader:!0,showCloseButton:!0,draggable:!0,render:Q(),onClosed:()=>{P()},buttons:[{class:"btn btn-secondary",text:"取消",handle:()=>{o.destroy(),P()}},{class:"btn btn-primary",text:"确定",handle:()=>{i.value=r.value,a.emit("update:modelValue",i.value),a.emit("confirm",i.value),o.destroy(),P()}}]})}function X(){return T.value.type==="input-group"?t.createVNode("span",{class:"f-icon f-icon-lookup",onClick:W,style:"margin-top: 2px;margin-right: 5px;color: rgba(0, 0, 0, .25)"},null):t.createVNode(t.Fragment,null,null)}t.watch(()=>e.modelValue,(o,n)=>{o!==n&&(i.value=o)});const Y=()=>{a.emit("update:modelValue","")},Z=()=>C.value.elementRef;return a.expose({getInputRef:Z}),()=>t.createVNode(v.FDynamicFormGroup,{id:u.value,editor:T.value,modelValue:i.value,"onUpdate:modelValue":o=>i.value=o,showLabel:!1,onChange:z,onClear:Y},{groupTextTemplate:()=>X()})}});h.install=e=>{e.component(h.name,h)},h.register=(e,a,u,i)=>{e["event-parameter"]=h,a["event-parameter"]=h},h.registerDesigner=(e,a,u)=>{e["event-parameter"]=h,a["event-parameter"]=h},c.EditorType=m,c.FEventParameter=h,c.default=h,c.editorMap=g,c.eventParameterProps=j,Object.defineProperties(c,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});