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