Files
qhmes/web-dist/js/StructuredFieldEditor-01AgChyi-CrkMykdN.js
2026-06-16 18:19:57 +08:00

2 lines
5.8 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{e as N,C as b,z as u,y as z,H as k,f as d,F as C,D as T,J as $,Q as n,u as p,G as P,R as B,A as G,c as H,r as w}from"./vue-vendor-DNhG1Cve.js";import{s as L,bL as J,x as F,aD as Q}from"./index-X7Y8jykP.js";import{B as W}from"./index-BDvqZ5j4.js";import{B as K}from"./BasicForm-ClUSoD_-.js";import"./helper-DcLcf4v6.js";import{u as U}from"./useForm-D61zovon.js";import{f as X}from"./index-B9aO0c-2-CpOxyGeC.js";import{s as Y}from"./_plugin-vue_export-helper-CHgC5LLL-lGy7RumW.js";import{u as Z}from"./useModal-DaJ3Bflg.js";import ee from"./index-saD4h7VJ.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";import"./BasicModal-xH56XuRZ.js";import"./ModalHeader-Sr8KwhJJ.js";import"./useTimeout-D5AmIBZw.js";import"./index-BzChaRPg.js";import"./useWindowSizeFn-C-0M9_Ul.js";import"./index-ByCwbQDV.js";import"./index-Upeu4GGa.js";import"./index-C4wWpZeQ.js";import"./index-M9QP6cvf.js";import"./Skeleton-CimgOdM7.js";import"./useScrollTo-0FPEw5-K.js";import"./useIntersectionObserver-BGOgyKyu.js";import"./useAppInject-DPZGPcR3.js";import"./index-CuWaQdlK.js";import"./index-DO7ZhK45.js";import"./BasicForm.vue_vue_type_style_index_0_lang-B29PWQy0.js";import"./useBreakpoint-DXhPW7nV.js";import"./useEventListener-BRXjwk7A.js";import"./breakpointEnum-BhAg6bcX.js";import"./uniqBy--vsL0WVB.js";var re=Object.defineProperty,O=Object.getOwnPropertySymbols,te=Object.prototype.hasOwnProperty,ae=Object.prototype.propertyIsEnumerable,I=(r,t,e)=>t in r?re(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,oe=(r,t)=>{for(var e in t||(t={}))te.call(t,e)&&I(r,e,t[e]);if(O)for(var e of O(t))ae.call(t,e)&&I(r,e,t[e]);return r},j=(r,t,e)=>new Promise((i,v)=>{var m=l=>{try{h(e.next(l))}catch(f){v(f)}},g=l=>{try{h(e.throw(l))}catch(f){v(f)}},h=l=>l.done?i(l.value):Promise.resolve(l.value).then(m,g);h((e=e.apply(r,t)).next())});const le=["onClick"],ne={class:"icon"},se={class:"name"},ie={class:"field-name"},ce={class:"display-name"},ue={class:"desc-text"},de={key:0,class:"action"},pe=["onClick"],me={key:1,class:"field-add"},fe={style:{padding:"20px"}},ye=N({__name:"StructuredFieldEditor",props:{fields:{type:Array,required:!0},readonly:{type:Boolean,default:!1}},emits:["update:fields"],setup(r,{emit:t}){const{createConfirmSync:e}=L(),i=r,v=t,m=w(!1),g=w(-1),h=H(()=>m.value?"编辑字段":"添加字段"),[l,{openModal:f,closeModal:R}]=Z(),[S,c]=U({showActionButtonGroup:!1,schemas:[{field:"field",label:"字段名",component:"Input",helpMessage:"用于后续节点引用只能包含字母数字下划线",rules:[{required:!0,message:"请输入字段名"},{validator:(a,o)=>{const s=X(o);return s.passed?Promise.resolve():Promise.reject("字段名"+s.message)}}]},{field:"name",label:"展示名称",component:"Input",helpMessage:"字段的可读名称在节点卡片和变量列表中显示",rules:[{required:!0,message:"请输入展示名称"}]},{field:"type",label:"字段类型",component:"Select",componentProps:{options:[{label:"文本 (string)",value:"string"},{label:"数字 (number)",value:"number"},{label:"布尔 (boolean)",value:"boolean"},{label:"对象 (object)",value:"object"},{label:"数组 (array)",value:"array"},{label:"文本数组 (string[])",value:"string[]"},{label:"数字数组 (number[])",value:"number[]"},{label:"对象数组 (object[])",value:"object[]"}],getPopupContainer:()=>document.body},rules:[{required:!0,message:"请选择字段类型"}]},{field:"desc",label:"描述",component:"InputTextArea",helpMessage:"此描述会被注入到 AI 提示词中帮助模型理解该字段的含义",componentProps:{rows:2,placeholder:"例如用户的姓名不超过20个字符可选"}}]});function V(a){switch(a){case"number":return"ant-design:number";case"boolean":return"ant-design:check-circle-outlined";case"object":return"ic:baseline-data-object";case"string[]":return"carbon:array-strings";case"number[]":return"carbon:array-numbers";case"object[]":return"carbon:array-objects";case"array":return"mdi:code-array";default:return"memory:format-text"}}function _(){return j(this,null,function*(){i.readonly||(m.value=!1,g.value=-1,f(),yield c.resetFields(),yield c.setFieldsValue({type:"string"}),yield c.clearValidate())})}function q(a,o){return j(this,null,function*(){i.readonly||(m.value=!0,g.value=o,f(),yield c.resetFields(),yield c.setFieldsValue(oe({},a)),yield c.clearValidate())})}function A(a){return j(this,null,function*(){if(i.readonly||!(yield e({title:"删除",content:"确定要删除这个字段吗"})))return;const o=[...i.fields];o.splice(a,1),v("update:fields",o)})}function D(){return j(this,null,function*(){try{const a=yield c.validate(),o={field:a.field,name:a.name,type:a.type,desc:a.desc||""},s=[...i.fields];m.value?s[g.value]=o:s.push(o),v("update:fields",s),R()}catch(a){}})}return(a,o)=>{const s=J,M=ee;return u(),b(C,null,[r.fields.length===0?(u(),z(s,{key:0,"image-style":{height:"48px"},description:"尚未配置输出字段"})):k("",!0),(u(!0),b(C,null,T(r.fields,(y,x)=>(u(),b("div",{key:x,class:$(["field-item",{"field-item-readonly":r.readonly}]),onClick:E=>q(y,x)},[n("div",ne,[d(p(F),{icon:V(y.type)},null,8,["icon"])]),n("div",se,[n("span",ie,P(y.field),1),d(M,{type:"vertical"}),n("span",ce,P(y.name),1),y.desc?(u(),b(C,{key:0},[d(M,{type:"vertical"}),n("span",ue,P(y.desc),1)],64)):k("",!0)]),r.readonly?k("",!0):(u(),b("div",de,[n("span",{onClick:B(E=>A(x),["stop"])},[d(p(F),{icon:"ant-design:delete"})],8,pe)]))],10,le))),128)),r.readonly?k("",!0):(u(),b("div",me,[n("a",{type:"text",onClick:B(_,["stop"])},[d(p(Q)),o[0]||(o[0]=n("span",{style:{"margin-left":"6px"}},"添加字段",-1))])])),d(p(W),{onRegister:p(l),title:h.value,width:570,minHeight:320,okText:"保存",forceRender:"",onOk:D},{default:G(()=>[n("div",fe,[d(p(K),{onRegister:p(S)},null,8,["onRegister"])])]),_:1},8,["onRegister","title"])],64)}}}),Qe=Y(ye,[["__scopeId","data-v-5776fb6a"]]);export{Qe as default};