UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

2 lines (1 loc) 14.6 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("../common/index.umd.js"),require("../layout/index.umd.js"),require("vue-i18n")):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","../common/index.umd.js","../layout/index.umd.js","vue-i18n"],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.common,C.FLayout,C.vueI18n))})(this,function(C,t,L,B,A,T,q,J,w,x){"use strict";var b=(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.Custom="Custom",e))(b||{});const P=t.reactive({}),O={data:{type:Object,default:[]},id:{type:String,default:""},editable:{type:Boolean,default:!0},editorType:{type:String,default:""},editorControlSource:{type:Object,default:{}},label:{type:String,default:""},defaultValue:{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:Array,default:[]},varData:{type:Array,default:[]},formData:{type:Array,default:[]},activeViewModelFieldData:{type:Array,default:[]},showOutline:{type:Boolean,default:!0},editor:{type:Object,default:{type:"Default"}},displayFormatter:{type:Function},customRowStatus:{type:Function,default:null}};function U(e){function n(d){return e.data.find(u=>u[e.idField||"id"]===d)?d:""}function c(){var d;P[((d=e.editor)==null?void 0:d.type)||e.editorType]={type:"combo-list",componentProps:{data:e.data,editable:e.editable==="true",idField:e.idField||"id",textField:e.textField||"label",enableClear:!0},checkAndProcessBeforeAssign:n}}function s(){}return{createEditorProps:c,onValueChange:s}}function $(e){function n(d){return typeof d=="string"&&d!==""?d==="true":d}function c(){var d;P[((d=e.editor)==null?void 0:d.type)||e.editorType]={type:"switch",componentProps:{},convertEventParamValue2EditorValue:n}}function s(){}return{createEditorProps:c,onValueChange:s}}function M(e){const n=t.computed(()=>e.editor.type===b.Default||e.editorType===b.Default);function c(){var d;P[((d=e.editor)==null?void 0:d.type)||e.editorType]={type:"input-group",componentProps:{}}}function s(){}return{createEditorProps:c,shouldRenderAppendButton:n,onValueChange:s}}function H(e){const{t:n}=x.useI18n(),c=t.computed(()=>e.editor.type===b.Default||e.editorType===b.Default);function s(u){return e.data.find(p=>{const i=p;return i.children?i.children.some(f=>{var g;return((g=f.data)==null?void 0:g.id)===u}):!1})?u:""}function d(){var u;P[((u=e.editor)==null?void 0:u.type)||e.editorType]={type:"combo-tree",componentProps:{data:e.data,placeholder:n("eventParameter.comboTree.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:e.customRowStatus,displayFormatter:e.displayFormatter},checkAndProcessBeforeAssign:s}}t.watch(()=>e.data,(u,a)=>{var p,i,l;u!==a&&((i=P[((p=e.editor)==null?void 0:p.type)||e.editorType])==null?void 0:i.type)==="combo-tree"&&(P[((l=e.editor)==null?void 0:l.type)||e.editorType].componentProps.data=u)});function m(){}return{createEditorProps:d,shouldRenderAppendButton:c,onValueChange:m}}function G(e){function n(d){return d?"":"/api/runtime/sys/v1.0/functions/allfuncs"}function c(){var d;P[((d=e.editor)==null?void 0:d.type)||e.editorType]={type:"menu-lookup",componentProps:{fetchNodeApi:n}}}function s(){}return{createEditorProps:c,onValueChange:s}}function z(e){const{t:n}=x.useI18n();function c(){var p,i;const u=e.editorControlSource,a=(i=(p=u==null?void 0:u.context)==null?void 0:p.schema)==null?void 0:i.value;if(!a||typeof a!="string")return[];try{const l=JSON.parse(a);return Array.isArray(l)?l.filter(f=>f.id!=="sync"):[]}catch(l){return console.error(`${n("eventParameter.jsonEditor.error")}`,l),[]}}function s(){return Promise.resolve({parameterDescriptors:c(),formContextData:{fieldData:e.fieldData,varData:e.varData,formData:e.formData}})}function d(){var u;P[((u=e.editor)==null?void 0:u.type)||e.editorType]={type:"json-editor",componentProps:{parameterDescriptors:c(),formContextData:{fieldData:e.fieldData,varData:e.varData,formData:e.formData},beforeOpen:s,dialogTitle:n("eventParameter.jsonEditor.dialogTitle"),keyColumnTitle:n("eventParameter.jsonEditor.keyColumnTitle"),valueColumnTitle:n("eventParameter.jsonEditor.valueColumnTitle"),addButtonText:n("eventParameter.jsonEditor.addButtonText"),keyColumnPlaceholder:n("eventParameter.jsonEditor.keyColumnPlaceholder")}}}function m(){}return{createEditorProps:d,onValueChange:m}}function K(e){function n(i){i.forEach(l=>{l.sortType==="1"?l.sortType="desc":l.sortType==="0"&&(l.sortType="asc")})}function c(i){i.forEach(l=>{l.sortType==="desc"?l.sortType="1":l.sortType==="asc"&&(l.sortType="0")})}function s(i){if(!i&&typeof i!="string")return[];try{const l=JSON.parse(i);if(Array.isArray(l))return n(l),l}catch{return[]}return[]}function d(i){return typeof i=="string"?i:!Array.isArray(i)||i.length===0?"":(c(i),JSON.stringify(i))}function m(){const i=e.activeViewModelFieldData||[],l=[];return i.forEach(f=>{var g;l.push(Object.assign({},f,{id:f.path,parent:(g=f.parentNode)==null?void 0:g.path}))}),l}function u(){const i=m(),l=s(e.modelValue),f=[],g=[],S={};return Promise.resolve({fieldList:i,conditionList:l,entities:f,variables:g,formContextData:S})}function a(){var i;P[((i=e.editor)==null?void 0:i.type)||e.editorType]={type:"sort-condition-editor",componentProps:{fields:m(),beforeOpen:u},convertEditorValue2EventParamValue:d}}function p(){}return{createEditorProps:a,onValueChange:p}}function Q(e){function n(a){if(!a&&typeof a!="string")return[];try{const p=JSON.parse(a);if(Array.isArray(p))return p}catch{return[]}return[]}function c(a){return typeof a=="string"?a:!Array.isArray(a)||a.length===0?"":JSON.stringify(a)}function s(){const a=e.activeViewModelFieldData||[],p=[];return a.forEach(i=>{var l;p.push(Object.assign({},i,{id:i.path,parent:(l=i.parentNode)==null?void 0:l.path}))}),p}function d(){const a=s(),p=n(e.modelValue),i=[],l=[],f={fieldData:e.fieldData,varData:e.varData};return Promise.resolve({fieldList:a,conditionList:p,entities:i,variables:l,formContextData:f})}function m(){var a;P[((a=e.editor)==null?void 0:a.type)||e.editorType]={type:"filter-condition-editor",componentProps:{fields:s(),singleValue:!1,beforeOpen:d},convertEditorValue2EventParamValue:c}}function u(){}return{createEditorProps:m,onValueChange:u}}function W(e){function n(){var s,d;P[((s=e.editor)==null?void 0:s.type)||e.editorType]={type:"custom",componentProps:{},render:(d=e.editor)==null?void 0:d.customRender}}function c(){}return{createEditorProps:n,onValueChange:c}}function X(e){var F;const n=t.ref(((F=e.editor)==null?void 0:F.type)||e.editorType),c=U(e),s=$(e),d=M(e),m=H(e),u=G(e),a=z(e),p=K(e),i=Q(e),l=W(e);function f(){const E=n.value;return E===b.Combolist||E===b.Select?c.createEditorProps():E===b.Checkbox||(E===b.MenuIdSelector?u.createEditorProps():E===b.ConfigurationParameterEditor?a.createEditorProps():E===b.SortEditor?p.createEditorProps():E===b.FilterEditor?i.createEditorProps():E===b.AppIdSelector||(E===b.ComboLookup?m.createEditorProps():E===b.Numberbox||(E===b.Switch?s.createEditorProps():E===b.Custom?l.createEditorProps():d.createEditorProps()))),P[n.value]}function g(){return"input-group"}function S(){return{}}return{getEditorConfig:f,getEditorType:g,getEditorMap:S}}function Y(e){const{t:n}=x.useI18n(),c=t.reactive([{id:"tabField",title:n("eventParameter.generalEditor.field"),treeConfigs:{id:"tabFieldTree",columns:[{field:"name"}],data:e.fieldData,onSelectNode:()=>{},componentRef:t.ref()},visible:!0},{id:"tabVar",title:n("eventParameter.generalEditor.tabVar"),treeConfigs:{id:"tabVarTree",data:e.varData},visible:!0},{id:"tabForm",title:n("eventParameter.generalEditor.form"),treeConfigs:{id:"tabFormTree",data:e.formData},visible:!0}]);t.watch(()=>e.fieldData,(m,u)=>{m!==u&&(c[0].treeConfigs.data=m)}),t.watch(()=>e.varData,(m,u)=>{m!==u&&(c[1].treeConfigs.data=m)}),t.watch(()=>e.formData,(m,u)=>{m!==u&&(c[2].treeConfigs.data=m)}),t.watch(()=>e.showOutline,()=>{c[2].visible=!!e.showOutline},{immediate:!0});function s(m){m.forEach(u=>{Object.keys(u).forEach(a=>{a.indexOf("__fv")>-1&&delete u[a]})})}function d(){s(c[0].treeConfigs.data),s(c[1].treeConfigs.data),s(c[2].treeConfigs.data)}return{tabs:c,cleanTreeData:d}}function Z(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const V=t.defineComponent({name:"FEventParameter",props:O,emits:["valueChange","onBlur","applicationSelectionChange","componentSelectionChange","parameterChanged","update:modelValue","update:parameterValue","confirm"],setup(e,n){const{isNull:c,isUndefined:s}=J.useCommonUtils(),d=t.ref(e.id);M(e);const m=t.ref(),u=t.ref("tabField"),a=t.ref(),{getEditorConfig:p}=X(e);t.watch([()=>e.editor,()=>e.editorType,()=>e.data],()=>{a.value=p()},{immediate:!0});function i(){return!c(e.defaultValue)&&!s(e.defaultValue)&&e.defaultValue!==""&&(c(e.modelValue)||s(e.modelValue)||e.modelValue==="")?e.defaultValue:e.modelValue}function l(o){var r,h;return(r=a.value)!=null&&r.checkAndProcessBeforeAssign?a.value.checkAndProcessBeforeAssign(o):(h=a.value)!=null&&h.convertEventParamValue2EditorValue?a.value.convertEventParamValue2EditorValue(o):o}const f=t.ref(i());f.value=l(f.value);const g=t.ref(f.value);t.watch(()=>e.modelValue,()=>{const o=t.ref(i());f.value=l(o.value)}),t.watch(a,()=>{f.value=l(f.value)}),t.watch(()=>e.data,()=>{f.value=l(f.value)});const S=t.inject(B.F_MODAL_SERVICE_TOKEN),F=t.ref([{field:"name",title:"",dataType:"string"}]),E=t.ref({enable:!1}),ee=t.ref({customRowStatus:o=>(o.collapse,o.raw.hasChildren&&(o.disabled=!0),o)}),te=t.ref({customRowStatus:o=>(o.layer===0&&(o.disabled=!0),o)}),I=t.computed(()=>{var o,r;return{type:(o=a.value)==null?void 0:o.type,...(r=a.value)==null?void 0:r.componentProps,readonly:e.readonly}}),{tabs:R,cleanTreeData:N}=Y(e);function oe(o){var r;(r=a.value)!=null&&r.convertEditorValue2EventParamValue&&(o=a.value.convertEditorValue2EventParamValue(o)),n.emit("update:modelValue",o),n.emit("valueChange",o)}function j(o,r){const h=r.selectionStart||0,{selectionEnd:y}=r,v=y-h,_=v>0,D=g.value&&g.value.split("")||[];return _?D.splice(h,v,o):D.splice(h,0,o),D.join("")}function re(o,r){if(!o.data)return;const{data:h}=o;let y=o.parentNode,{label:v}=h;for(;y&&y.parentNode;)y.data&&(v=y.data.label+"/"+v),y=y.parentNode;return j(`{DATA~/${v}}`,r)}function ae(o,r){const{statePath:h}=o;let y=r.value;if(h){const v=h.split("/");if(y=h,v.length===3){const D=`#{${v[1]}}`;v.splice(1,1,D),y=v.join("/")}y=`{UISTATE~${y}}`}return j(y,r)}function k(o,r,h){const y=m.value.getTextareaElement();switch(o){case"tabForm":g.value=j(`#{${h.data.id}}`,y);break;case"tabField":g.value=re(h,y);break;case"tabVar":g.value=ae(h.data,y);break}n.emit("paramChanged",{tabId:o,index:r,raw:h,value:f.value})}function ne(){return R.forEach(o=>{o.treeConfigs.data.forEach(r=>{Object.prototype.hasOwnProperty.call(r,"__fv_visible__")&&delete r.__fv_visible__})}),()=>{let o;return t.createVNode(w,{class:"nav-tree-panel"},{default:()=>[t.createVNode(w.FLayoutPane,{position:"left",width:300,resizable:!1},{default:()=>[t.createVNode(A,{activeId:u.value,"onUpdate:activeId":r=>u.value=r},Z(o=R.map(r=>r.visible&&t.createVNode(A.FTabPage,{key:r.id,id:r.id,title:r.title},{default:()=>[r.id==="tabField"&&t.createVNode(T,{rowNumber:E,columnOption:{fitColumns:!0,fitMode:"expand"},rowOption:ee.value,hierarchy:{collapseField:"collapse"},key:r.treeConfigs.id,data:r.treeConfigs.data,columns:F.value,fit:!0,height:340,onDoubleClickRow:function(y,v){k(r.id,y,v)}},null),r.id==="tabVar"&&t.createVNode(T,{columnOption:{fitColumns:!0,fitMode:"expand"},rowNumber:E,rowOption:te.value,key:r.treeConfigs.id,data:r.treeConfigs.data,fit:!0,height:340,onDoubleClickRow:function(y,v){k(r.id,y,v)}},null),r.id==="tabForm"&&t.createVNode(T,{columnOption:{fitColumns:!0,fitMode:"expand"},rowNumber:E,key:r.treeConfigs.id,data:r.treeConfigs.data,columns:F.value,fit:!0,height:340,onDoubleClickRow:function(y,v){k(r.id,y,v)}},null)]})))?o:{default:()=>[o]})]}),t.createVNode(w.FLayoutPane,{position:"center"},{default:()=>[t.createVNode(q,{ref:m,modelValue:g.value,"onUpdate:modelValue":r=>g.value=r,rows:10,autoHeight:!0},null)]})]})}}function ie(){g.value=f.value;const o=S.open({title:"参数编辑器",width:900,height:500,fitContent:!1,showHeader:!0,showCloseButton:!0,draggable:!0,render:ne(),onClosed:()=>{N()},buttons:[{class:"btn btn-secondary",text:"取消",handle:()=>{o.destroy(),N()}},{class:"btn btn-primary",text:"确定",handle:()=>{f.value=g.value,n.emit("update:modelValue",f.value),n.emit("confirm",f.value),o.destroy(),N()}}]})}function le(){return I.value.type==="input-group"?t.createVNode("span",{class:"f-icon f-icon-lookup",onClick:ie,style:"margin-top: 2px;margin-right: 5px;color: rgba(0, 0, 0, .25)"},null):t.createVNode(t.Fragment,null,null)}const de=()=>{n.emit("update:modelValue","")},ue=()=>m.value.elementRef;return n.expose({getInputRef:ue}),()=>{var o,r;return((o=a.value)==null?void 0:o.type)==="custom"&&((r=a.value)!=null&&r.render)?a.value.render():t.createVNode(L.FDynamicFormGroup,{id:d.value,editor:I.value,modelValue:f.value,"onUpdate:modelValue":h=>f.value=h,showLabel:!1,customClass:"f-event-parameter",onChange:oe,onClear:de},{groupTextTemplate:()=>le()})}}});V.install=e=>{e.component(V.name,V)},V.register=(e,n,c,s)=>{e["event-parameter"]=V,n["event-parameter"]=V},V.registerDesigner=(e,n,c)=>{e["event-parameter"]=V,n["event-parameter"]=V},C.EditorType=b,C.FEventParameter=V,C.default=V,C.editorMap=P,C.eventParameterProps=O,Object.defineProperties(C,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});