2 lines
5.8 KiB
Java
2 lines
5.8 KiB
Java
import{d as X,f as y,e as _,w as q,ah as k,ar as E,as as p,aC as g,ag as Z,k as N,E as ee,A as W,aF as $,au as d,av as C,at as A,aE as ae,u as le,F as ue,aD as ne,G as te}from"./vue-vendor-C7Zq48Yl.js";import{M as re}from"./index-BI6CMai0.js";import{s as ie}from"./_plugin-vue_export-helper-CHgC5LLL-lGy7RumW.js";import"./antd-vue-vendor-BPnV8VqP.js";import"./vxe-table-vendor-B88kchpX.js";const oe={class:"var-picker"},ve={class:"var-picker__trigger"},se={class:"var-picker__icon danger"},ce={class:"var-picker__option-list"},pe=["onClick"],de={class:"var-picker__option-title"},me={class:"var-picker__option-desc"},fe={class:"var-picker__option-type"},ye=X({__name:"VarPicker",props:{item:{type:Object,required:!0},vars:{type:Array,required:!0},allowEditValue:{type:Boolean,default:!1},allowedTypes:{type:Array,default:void 0}},emits:["update:value","change","changeCustom","changeType"],setup(D,{emit:G}){const I=[{label:"str",value:"string"},{label:"num",value:"number"}],l=D,t=G,F=y(),m=y(I[0].value),n=y(""),b=y(!1),h=y(""),v=y(null),s=y(!1),O=_(()=>I),f=_(()=>l.allowEditValue===!0),w=_(()=>v.value!==null||!f.value),P=_(()=>{var e,a;return s.value?"":v.value?T(v.value):(e=l.item)!=null&&e.nodeId&&(a=l.item)!=null&&a.field?`${l.item.nodeId}.${l.item.field}`:""}),L=_({get:()=>{if(!n.value)return null;const e=Number(n.value);return Number.isNaN(e)?null:e},set:e=>{if(w.value){e==null&&x();return}if(!f.value)return;if(e==null){n.value="",t("changeCustom",""),t("update:value","");return}const a=`${Math.trunc(Number(e))}`;n.value=a,v.value=null,s.value=!0,t("changeCustom",a),t("update:value",a)}}),V=_(()=>f.value?m.value==="number"?"请输入整数或选择字段":"请输入内容或选择字段":"请选择字段"),M=_(()=>{const e=h.value.trim().toLowerCase(),a=l.vars.filter(u=>H(u==null?void 0:u.type));return e?a.filter(u=>{var r,o,c;return`${(r=u.nodeName)!=null?r:""} ${(o=u.name)!=null?o:""} ${(c=u.field)!=null?c:""}`.toLowerCase().includes(e)}):a});function H(e){return!l.allowedTypes||l.allowedTypes.length===0?!0:e?l.allowedTypes.some(a=>a.endsWith("[]")?e===a:a==="array"?e.endsWith("[]"):e===a):!1}q(()=>{var e,a,u,r;return{nodeId:(e=l.item)==null?void 0:e.nodeId,field:(a=l.item)==null?void 0:a.field,customValue:(u=l.item)==null?void 0:u.customValue,type:(r=l.item)==null?void 0:r.type}},()=>S(),{immediate:!0}),q(()=>l.vars,()=>{s.value||S()},{deep:!0});function S(){var e,a,u,r;if(typeof((e=l.item)==null?void 0:e.type)=="string"?m.value=l.item.type:m.value=I[0].value,(a=l.item)!=null&&a.customValue){n.value=l.item.customValue,s.value=!0,v.value=null;return}if((u=l.item)!=null&&u.nodeId&&(r=l.item)!=null&&r.field){const o=l.vars.find(c=>c.nodeId===l.item.nodeId&&c.field===l.item.field);v.value=o!=null?o:null,n.value=z(o!=null?o:l.item),s.value=!1;return}n.value="",v.value=null,s.value=f.value}function z(e){var a,u,r,o;if(!e)return"";const c=(u=(a=e.nodeName)!=null?a:e.nodeId)!=null?u:"-",B=(o=(r=e.name)!=null?r:e.field)!=null?o:"-";return`${c} / ${B}`}function U(e){if(m.value!=="number")return e;const a=e.startsWith("-"),u=e.replace(/[^0-9]/g,"");return u?a?`-${u}`:u:""}function J(e){if(!f.value||w.value)return;const a=e.target;if(!a)return;const u=U(a.value);n.value=u,v.value=null,s.value=!0,b.value=!1,t("changeCustom",u),t("update:value",u)}function K(e){if(!w.value)return;const a=e.target;a&&a.value===""&&x()}function j(e){m.value=e,l.item&&(l.item.type=e),t("changeType",e),s.value&&(n.value=U(n.value),t("changeCustom",n.value))}function Q(e){b.value=e,e||(h.value="")}function T(e){return`${e.nodeId}.${e.field}`}function R(e){v.value=e,s.value=!1,n.value=z(e),t("changeCustom",""),t("update:value",T(e)),t("change",e),e.type&&j(e.type),b.value=!1,h.value=""}function x(){v.value=null,n.value="",s.value=f.value,t("changeCustom",""),t("update:value",""),t("change")}return(e,a)=>{const u=k("a-select"),r=k("a-input"),o=k("a-input-number"),c=k("a-input-search"),B=k("a-empty"),Y=k("a-dropdown");return p(),E("div",oe,[F.value?(p(),g(ee,{key:0,to:F.value},[N(u,{class:"var-picker__type",value:m.value,options:O.value,dropdownStyle:{minWidth:"120px"},popupClassName:"var-picker__type-dropdown",onChange:j,onClick:a[0]||(a[0]=W(()=>{},["stop"]))},{option:$(({value:i})=>[d("span",null,C(i),1)]),_:1},8,["value","options"])],8,["to"])):Z("",!0),N(Y,{open:b.value,trigger:"click",placement:"bottomRight",overlayStyle:{pointerEvents:"none"},onOpenChange:Q},{overlay:$(()=>[d("div",{class:"var-picker__overlay",onClick:a[3]||(a[3]=W(()=>{},["stop"]))},[N(c,{value:h.value,"onUpdate:value":a[2]||(a[2]=i=>h.value=i),size:"small",allowClear:"",placeholder:"搜索节点/字段"},null,8,["value"]),d("div",ce,[M.value.length?(p(!0),E(ue,{key:0},ne(M.value,i=>(p(),E("div",{key:i.nodeId+"-"+i.field,class:A(["var-picker__option",P.value===T(i)?"var-picker__option--active":""]),onClick:_e=>R(i)},[d("div",de,C(i.nodeName||"-")+" / "+C(i.name||"-"),1),d("div",me,[te(C(i.field)+" ",1),d("span",fe,C(i.type||"-"),1)])],10,pe))),128)):(p(),g(B,{key:1,description:"无匹配字段"}))])])]),default:$(()=>[d("div",ve,[w.value?(p(),g(r,{key:"var-picker-readonly",class:A(["var-picker__input","var-picker__input-readonly"]),value:n.value,readonly:"",placeholder:V.value},ae({_:2},[f.value?{name:"suffix",fn:$(()=>[d("div",se,[N(le(re),{icon:"ant-design:close-outlined",onClick:W(x,["stop"])})])]),key:"0"}:void 0]),1032,["value","placeholder"])):m.value!=="number"?(p(),g(r,{key:"var-picker-editable-string",class:A(["var-picker__input"]),value:n.value,placeholder:V.value,onInput:J,onChange:K},null,8,["value","placeholder"])):(p(),g(o,{key:"var-picker-editable-number",value:L.value,"onUpdate:value":a[1]||(a[1]=i=>L.value=i),class:"var-picker__input var-picker__input-number",placeholder:V.value,precision:0,step:1,controls:!1},null,8,["value","placeholder"]))])]),_:1},8,["open"])])}}}),we=ie(ye,[["__scopeId","data-v-0eb5fc85"]]);export{we as default};
|