2 lines
6.1 KiB
Java
2 lines
6.1 KiB
Java
var X=Object.defineProperty,Z=Object.defineProperties;var ee=Object.getOwnPropertyDescriptors;var A=Object.getOwnPropertySymbols;var ae=Object.prototype.hasOwnProperty,te=Object.prototype.propertyIsEnumerable;var V=(r,o,l)=>o in r?X(r,o,{enumerable:!0,configurable:!0,writable:!0,value:l}):r[o]=l,P=(r,o)=>{for(var l in o||(o={}))ae.call(o,l)&&V(r,l,o[l]);if(A)for(var l of A(o))te.call(o,l)&&V(r,l,o[l]);return r},R=(r,o)=>Z(r,ee(o));import{d as ne,o as le,b as oe,w as se,f as g,ah as b,ar as I,as as h,au as v,k as u,aF as f,G as _,e as ie,aC as F,ag as re,F as ue,aD as de}from"./vue-vendor-C7Zq48Yl.js";import{u as ce,d as me}from"./index-BI6CMai0.js";import"./antd-vue-vendor-BPnV8VqP.js";import"./vxe-table-vendor-B88kchpX.js";const pe={class:"binding-params-editor"},ve={class:"binding-actions-row"},fe={class:"modal-section"},ke={class:"modal-section"},ye=ne({__name:"BindingParamsEditor",props:{params:{}},emits:["update:params"],setup(r,{emit:o}){const l=r,x=o,{createMessage:M}=ce(),E=g(typeof window!="undefined"?window.innerHeight:800);function N(){E.value=window.innerHeight}le(()=>window.addEventListener("resize",N)),oe(()=>window.removeEventListener("resize",N));const H=ie(()=>{const a=E.value;return Math.round(Math.min(520,Math.max(260,a-360)))}),L=[{title:"参数键",dataIndex:"key",ellipsis:!0},{title:"显示名",dataIndex:"label",ellipsis:!0}],d=g([]),C=g(!1),B=g(1),c=g([{key:"",label:""}]);se(()=>l.params,()=>{const a=new Set(l.params.map(e=>e.key));d.value=d.value.filter(e=>a.has(e))});function T(a){d.value=a}function z(){B.value=1,c.value=[{key:"",label:""}]}function D(){z(),C.value=!0}function G(){const a=new Set(l.params.map(e=>e.key.trim()).filter(Boolean));return c.value.forEach(e=>{const t=e.key.trim();t&&a.add(t)}),a}function O(a){let e=0;for(const t of a){const n=String(t).match(/^Parameter(\d+)$/i);n&&(e=Math.max(e,Number(n[1])))}return e}function Y(){const a=Math.max(1,Math.min(200,Math.floor(Number(B.value)||1))),e=G();let t=Math.max(1,O(e)+1);for(let n=0;n<a;n++){for(;e.has(`Parameter${t}`);)t+=1;const s=`Parameter${t}`;e.add(s),c.value.push({key:s,label:`参数${t}`}),t+=1}M.success(`已新增 ${a} 行到下方列表,可修改后点「确定添加」。`)}function j(){c.value.push({key:"",label:""})}function J(a){c.value.length<=1||c.value.splice(a,1)}function Q(){const a=new Set(l.params.map(n=>n.key.trim()).filter(Boolean)),e=[],t=new Set(a);for(const n of c.value){const s=n.key.trim();if(!s||t.has(s))continue;t.add(s);const m=n.label.trim();e.push({key:s,label:m||void 0})}e.length&&x("update:params",[...l.params,...e]),C.value=!1,z()}function W(){if(!d.value.length)return;const a=new Set(d.value);x("update:params",l.params.filter(e=>!a.has(e.key))),d.value=[]}function $(a,e){return typeof e=="number"&&e>=0?e:l.params.findIndex(t=>t.key===a.key)}function K(a,e,t){const n=[...l.params];if(a<0||a>=n.length)return;const s=n[a];if(e==="label"){const p=t.trim();n[a]=R(P({},s),{label:p||void 0}),x("update:params",n);return}const m=t.trim();if(!m){M.warning("参数键不能为空");return}if(m!==s.key&&n.some((p,S)=>S!==a&&p.key===m)){M.warning("参数键已存在");return}const U=s.key;n[a]=R(P({},s),{key:m}),x("update:params",n),d.value=d.value.map(p=>p===U?m:p)}return(a,e)=>{const t=b("a-button"),n=b("a-input"),s=b("a-table"),m=b("a-input-number"),U=b("a-space"),p=b("a-divider"),S=b("a-modal");return h(),I("div",pe,[v("div",ve,[u(t,{type:"primary",size:"small",onClick:D},{default:f(()=>[...e[2]||(e[2]=[_("批量新增",-1)])]),_:1}),u(t,{size:"small",danger:d.value.length>0,disabled:!d.value.length,onClick:W},{default:f(()=>[...e[3]||(e[3]=[_(" 批量删除 ",-1)])]),_:1},8,["danger","disabled"])]),u(s,{size:"small",columns:L,"data-source":r.params,"row-key":i=>i.key,pagination:!1,scroll:{y:H.value},"row-selection":{selectedRowKeys:d.value,onChange:T}},{bodyCell:f(({column:i,record:k,index:y})=>{var q;return[i.dataIndex==="key"?(h(),F(n,{key:0,value:k.key,size:"small",placeholder:"参数键","onUpdate:value":w=>K($(k,y),"key",String(w!=null?w:""))},null,8,["value","onUpdate:value"])):i.dataIndex==="label"?(h(),F(n,{key:1,value:(q=k.label)!=null?q:"",size:"small",placeholder:"显示名","onUpdate:value":w=>K($(k,y),"label",String(w!=null?w:""))},null,8,["value","onUpdate:value"])):re("",!0)]}),_:1},8,["data-source","row-key","scroll","row-selection"]),u(S,{open:C.value,"onUpdate:open":e[1]||(e[1]=i=>C.value=i),title:"批量新增参数","ok-text":"确定添加","cancel-text":"取消",width:"560px",onOk:Q,onCancel:z},{default:f(()=>[v("div",fe,[e[6]||(e[6]=v("div",{class:"section-title"},"快速生成",-1)),e[7]||(e[7]=v("div",{class:"section-desc"},"按数量自动生成,参数键为 Parameter + 数字,显示名为 参数 + 数字(与键后缀数字一致)。生成结果在下方列表中,可再修改。",-1)),u(U,{align:"center",wrap:"",class:"quick-row"},{default:f(()=>[e[5]||(e[5]=v("span",{class:"quick-label"},"数量",-1)),u(m,{value:B.value,"onUpdate:value":e[0]||(e[0]=i=>B.value=i),min:1,max:200,precision:0,style:{width:"120px"}},null,8,["value"]),u(t,{type:"primary",onClick:Y},{default:f(()=>[...e[4]||(e[4]=[_("一键新增",-1)])]),_:1})]),_:1})]),u(p,{style:{margin:"14px 0"}}),v("div",ke,[e[10]||(e[10]=v("div",{class:"section-title"},"手动添加",-1)),e[11]||(e[11]=v("div",{class:"section-desc"},"每行两个输入框:左侧参数键,右侧显示名。可点「添加一行」增加空行。",-1)),(h(!0),I(ue,null,de(c.value,(i,k)=>(h(),I("div",{key:k,class:"manual-row"},[u(n,{value:i.key,"onUpdate:value":y=>i.key=y,size:"small",placeholder:"参数键","allow-clear":""},null,8,["value","onUpdate:value"]),u(n,{value:i.label,"onUpdate:value":y=>i.label=y,size:"small",placeholder:"显示名(可选)","allow-clear":""},null,8,["value","onUpdate:value"]),u(t,{type:"text",danger:"",size:"small",disabled:c.value.length<=1,onClick:y=>J(k)},{default:f(()=>[...e[8]||(e[8]=[_("删除",-1)])]),_:1},8,["disabled","onClick"])]))),128)),u(t,{type:"dashed",block:"",size:"small",class:"add-row-btn",onClick:j},{default:f(()=>[...e[9]||(e[9]=[_("添加一行",-1)])]),_:1})])]),_:1},8,["open"])])}}}),xe=me(ye,[["__scopeId","data-v-0e6f6ac1"]]);export{xe as default};
|