UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

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