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