UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

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