UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

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