@core-pilot/client-vue 0.0.16 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),r=require("element-plus");/* empty css *//* empty css */require("../../../node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/theme-chalk/src/form-item.scss.js"),/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */require("../../../node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/theme-chalk/src/date-picker.scss.js"),/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */require("../../../node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/theme-chalk/src/config-provider.scss.js"),/* empty css */;/* empty css */const l=require("../../../node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/es/locale/lang/zh-cn.js"),s=require("../../core-text/index.js"),t=require("../../core-tips/index.js"),o=require("../../core-result/index.js"),i=require("../../core-table/index.js"),p=require("../../core-chart/index.js"),n=require("../../core-card/index.js"),u=require("../../core-upload/index.js"),a=require("../../core-remote-select/index.js"),d=require("../composables/useConditionEvaluator.js"),m=require("../composables/useRemoteData.js"),c=require("../utils/parseCorePilotSchema.js"),_=require("../utils/jsonUtils.js"),h=require("../utils/disabledUtils.js"),v=()=>e.h("div",{class:"hitl-skeleton"},[e.h("div",{class:"skeleton-header"},[e.h("div",{class:"skeleton-avatar"}),e.h("div",{class:"skeleton-title"})]),e.h("div",{class:"skeleton-item skeleton-item-long"}),e.h("div",{class:"skeleton-item skeleton-item-medium"}),e.h("div",{class:"skeleton-item skeleton-item-short"}),e.h("div",{class:"skeleton-item skeleton-item-long"}),e.h("div",{class:"skeleton-item skeleton-item-medium"})]),f=(k,g,b,j)=>{var q,y,N,E,C,x,P,D,w,V,S,T,U,R,I,F,L,O,z,A,B,G,J,H,M,K,Q;if(!k)return null;const{hitlData:W,formRefs:X,curIndex:Y,getCurInit:Z,btnClick:$,uploadHeaders:ee,uploadExtendData:re,disabledContext:le}=g;let se=[];var te,oe;switch(["sub","pre","text","ElForm"].includes(k.tagName)||(te=k.children||[],oe=b,se=te&&0!==te.length?te.map((e,r)=>f(e,g,void 0!==oe?oe:b,j)):[]),k.type){case"root":return e.h("div",{class:"markdown-body"},e.h(r.ElConfigProvider,{locale:l},se));case"element":if("sub"===k.tagName){const r=[{type:"element",tagName:"span",properties:{class:"x-markdown-split"}},...k.children||[]].map(e=>f(e,g,b));return e.h("span",{...k.properties,class:"x-markdown-sub"},r)}if("span"===k.tagName)return e.h("span",{...k.properties},se);if("img"===k.tagName)return e.h("img",{...k.properties,class:"markdown-image","data-processed":"false"});if("a"===k.tagName){const r=(null==(q=k.properties)?void 0:q.href)||"",l=r?r.split(".").pop():null;return e.h("a",{...k.properties,class:"file-link","data-file-type":l},se)}if("ElTimeline"===k.tagName)return e.h(r.ElTimeline,{...k.properties},se);if("table"===k.tagName)return e.h("div",{class:"custom-table-container"},[e.h("table",se)]);if("view"===k.tagName)return e.h("div",{class:"custom-view-container"},[se[Y]]);if("ElRow"===k.tagName)return e.h(r.ElRow,{...k.properties},se);if("ElCol"===k.tagName)return e.h(r.ElCol,{...k.properties},se);if("ElCard"===k.tagName)return e.h(r.ElCard,{...k.properties},se);if("ElTag"===k.tagName)return e.h(r.ElTag,{...k.properties},se);if("CoreCard"===k.tagName){const r={};return(null==(y=k.slots)?void 0:y.header)&&(r.header=()=>k.slots.header.map(e=>f(e,g,b))),se&&se.length>0&&(r.default=()=>se),e.h(n,{...k.properties},r)}if("ElForm"===k.tagName){const l=Z(),s=(k.children||[]).map(e=>f(e,g,l));return e.h(r.ElForm,{ref:X.set,model:W[l],...k.properties,disabled:h.checkDisabled(k,le)},s)}if("ElFormItem"===k.tagName){const l={...k.properties},s=k.properties&&k.properties.dependencies||void 0;if((null==(N=null==s?void 0:s.behavior)?void 0:N.visible)&&void 0!==b){const e=W[b]||{};if(!d.evaluateCondition(s.behavior.visible,e))return null}return e.h(r.ElFormItem,l,se)}if("ElButton"===k.tagName){let l=null==(E=k.properties)?void 0:E.payload;"table"===k.parentScope&&(l={...l,...j});const s="form"===k.parentScope?b:void 0,t=(null==(C=k.properties)?void 0:C.skipValidation)||!1;return e.h(r.ElButton,{...k.properties,disabled:h.checkDisabled(k,le),onClick:()=>{var e;$(void 0!==s?s:void 0!==b?b:0,null==(e=k.properties)?void 0:e.action,l,k.parentScope,t)}},se)}if("ElSelect"===k.tagName){if(null==(x=k.properties)?void 0:x.remote)return e.h(a,{...k.properties,disabled:h.checkDisabled(k,le),modelValue:null==(D=W[b])?void 0:D[null==(P=k.properties)?void 0:P.formProp],"onUpdate:modelValue":e=>{var r;W[b]&&(W[b][null==(r=k.properties)?void 0:r.formProp]=e)},formData:W[b]||{}});const l={...k.properties,disabled:h.checkDisabled(k,le),modelValue:null==(V=W[b])?void 0:V[null==(w=k.properties)?void 0:w.formProp],"onUpdate:modelValue":e=>{var r;W[b]&&(W[b][null==(r=k.properties)?void 0:r.formProp]=e)}},s=(null==(S=k.properties)?void 0:S.options)?k.properties.options.map(l=>e.h(r.ElOption,{label:l.label,value:l.value})):se;return e.h(r.ElSelect,l,s)}if("ElDatePicker"===k.tagName)return e.h(r.ElDatePicker,{...k.properties,disabled:h.checkDisabled(k,le),modelValue:null==(U=W[b])?void 0:U[null==(T=k.properties)?void 0:T.formProp],"onUpdate:modelValue":e=>{var r;W[b]&&(W[b][null==(r=k.properties)?void 0:r.formProp]=e)}},se);if("ElInput"===k.tagName)return e.h(r.ElInput,{...k.properties,disabled:h.checkDisabled(k,le),modelValue:null==(I=W[b])?void 0:I[null==(R=k.properties)?void 0:R.formProp],"onUpdate:modelValue":e=>{var r;W[b]&&(W[b][null==(r=k.properties)?void 0:r.formProp]=e)}},se);if("ElRadioGroup"===k.tagName)return e.h(r.ElRadioGroup,{...k.properties,disabled:h.checkDisabled(k,le),modelValue:null==(L=W[b])?void 0:L[null==(F=k.properties)?void 0:F.formProp],"onUpdate:modelValue":e=>{var r;W[b]&&(W[b][null==(r=k.properties)?void 0:r.formProp]=e)}},se);if("ElRadio"===k.tagName)return e.h(r.ElRadio,{...k.properties,disabled:h.checkDisabled(k,le)},se);if("ElCascader"===k.tagName){const l={...k.properties,disabled:h.checkDisabled(k,le),modelValue:null==(z=W[b])?void 0:z[null==(O=k.properties)?void 0:O.formProp],"onUpdate:modelValue":e=>{var r;W[b]&&(W[b][null==(r=k.properties)?void 0:r.formProp]=e)}},s=k;if(null==(A=s.properties)?void 0:A.remote){const r=e.computed(()=>W[b]||{});l.props.lazyLoad=m.createCascaderLazyLoad(s.properties.remote,r)}return console.log("====>",l),e.h(r.ElCascader,l,se)}if("ElTable"===k.tagName)return e.h(i,{...k.properties},se);if("ElTableColumn"===k.tagName)return e.h(r.ElTableColumn,{...k.properties},{default:e=>{var r,l,s;const t=e.row[null==(r=k.properties)?void 0:r.prop];if(Array.isArray(t))return t.map(e=>{var r;return null==(r=k.children)?void 0:r.find(r=>r.value===e&&void 0!==r.value)}).map(r=>f(r,g,-1/0,e.row));const o=(k.children||[]).findIndex(r=>{var l;return r.value===e.row[null==(l=k.properties)?void 0:l.prop]&&void 0!==r.value});return-1!==o?f(null==(l=k.children)?void 0:l[o],g,-1/0,e.row):null==(s=k.children)?void 0:s.map(r=>f(r,g,-1/0,e.row))}});if("CoreText"===k.tagName)return e.h(s,{...k.properties});if("CoreTips"===k.tagName)return e.h(t,{...k.properties});if("CoreResult"===k.tagName)return e.h(o,{...k.properties});if("CoreChart"===k.tagName)return e.h(p,{...k.properties});if("CoreUpload"===k.tagName){if("form"===k.parentScope&&(null==(B=k.properties)?void 0:B.formProp)){const r=k.properties.formProp;return e.h(u,{headers:ee,extendData:re,...k.properties,disabled:h.checkDisabled(k,le),fileList:(null==(G=W[b])?void 0:G[r])||[],"onUpdate:fileList":e=>{W[b]||(W[b]={}),W[b].__files__||(W[b].__files__={}),W[b].__files__[r]=e,W[b][r]=e}})}return e.h(u,{...k.properties,disabled:h.checkDisabled(k,le)})}if("pre"===k.tagName){const r=null==(J=k.children)?void 0:J.find(e=>"code"===e.tagName);if(r&&(null==(M=null==(H=r.properties)?void 0:H.className)?void 0:M.includes("language-CorePilot"))){const l=(null==(Q=null==(K=r.children)?void 0:K[0])?void 0:Q.value)||"";if(!_.isCompleteJSON(l))return v();try{const r=JSON.parse(l),s=c.parseCorePilot(r),t=f(s,g);return e.h("div",{class:"hitl-wrapper"},[t])}catch(ie){return v()}}}return e.h(k.tagName,k.properties,se);case"text":return k.value.trim();default:return null}};exports.hastToVNode=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),r=require("element-plus");/* empty css *//* empty css */require("../../../node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/theme-chalk/src/form-item.scss.js"),/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */require("../../../node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/theme-chalk/src/date-picker.scss.js"),/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */require("../../../node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/theme-chalk/src/config-provider.scss.js"),/* empty css */;/* empty css */const l=require("../../../node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/es/locale/lang/zh-cn.js"),s=require("../../core-text/index.js"),t=require("../../core-tips/index.js"),o=require("../../core-result/index.js"),i=require("../../core-table/index.js"),p=require("../../core-chart/index.js"),n=require("../../core-card/index.js"),u=require("../../core-upload/index.js"),a=require("../../core-remote-select/index.js"),d=require("../composables/useConditionEvaluator.js"),m=require("../composables/useRemoteData.js"),c=require("../utils/parseCorePilotSchema.js"),h=require("../utils/jsonUtils.js"),_=require("../utils/disabledUtils.js"),v=()=>e.h("div",{class:"hitl-skeleton"},[e.h("div",{class:"skeleton-header"},[e.h("div",{class:"skeleton-avatar"}),e.h("div",{class:"skeleton-title"})]),e.h("div",{class:"skeleton-item skeleton-item-long"}),e.h("div",{class:"skeleton-item skeleton-item-medium"}),e.h("div",{class:"skeleton-item skeleton-item-short"}),e.h("div",{class:"skeleton-item skeleton-item-long"}),e.h("div",{class:"skeleton-item skeleton-item-medium"})]),f=(k,g,b,j)=>{var q,y,N,E,C,x,P,D,w,V,S,T,U,R,I,F,L,O,z,A,B,G,J,H,M,K,Q,W,X;if(!k)return null;const{hitlData:Y,formRefs:Z,curIndex:$,getCurInit:ee,btnClick:re,uploadHeaders:le,uploadExtendData:se,disabledContext:te}=g;let oe=[];var ie,pe;switch(["sub","pre","text","ElForm"].includes(k.tagName)||(ie=k.children||[],pe=b,oe=ie&&0!==ie.length?ie.map((e,r)=>f(e,g,void 0!==pe?pe:b,j)):[]),k.type){case"root":return e.h("div",{class:"markdown-body"},e.h(r.ElConfigProvider,{locale:l},oe));case"element":if("sub"===k.tagName){const r=[{type:"element",tagName:"span",properties:{class:"x-markdown-split"}},...k.children||[]].map(e=>f(e,g,b));return e.h("span",{...k.properties,class:"x-markdown-sub"},r)}if("span"===k.tagName)return e.h("span",{...k.properties},oe);if("img"===k.tagName)return e.h("img",{...k.properties,class:"markdown-image","data-processed":"false"});if("a"===k.tagName){const r=(null==(q=k.properties)?void 0:q.href)||"",l=r?r.split(".").pop():null;return e.h("a",{...k.properties,class:"file-link","data-file-type":l},oe)}if("ElTimeline"===k.tagName)return e.h(r.ElTimeline,{...k.properties},oe);if("table"===k.tagName)return e.h("div",{class:"custom-table-container"},[e.h("table",oe)]);if("view"===k.tagName)return e.h("div",{class:"custom-view-container"},[oe[$]]);if("ElRow"===k.tagName)return e.h(r.ElRow,{...k.properties},oe);if("ElCol"===k.tagName)return e.h(r.ElCol,{...k.properties},oe);if("ElCard"===k.tagName)return e.h(r.ElCard,{...k.properties},oe);if("ElTag"===k.tagName)return e.h(r.ElTag,{...k.properties},oe);if("CoreCard"===k.tagName){const r={};return(null==(y=k.slots)?void 0:y.header)&&(r.header=()=>k.slots.header.map(e=>f(e,g,b))),oe&&oe.length>0&&(r.default=()=>oe),e.h(n,{...k.properties},r)}if("ElForm"===k.tagName){const l=ee(),s=(k.children||[]).map(e=>f(e,g,l));return e.h(r.ElForm,{ref:Z.set,model:Y[l],...k.properties,disabled:_.checkDisabled(k,te)},s)}if("ElFormItem"===k.tagName){const l={...k.properties},s=k.properties&&k.properties.dependencies||void 0;if((null==(N=null==s?void 0:s.behavior)?void 0:N.visible)&&void 0!==b){const e=Y[b]||{};if(!d.evaluateCondition(s.behavior.visible,e))return null}return e.h(r.ElFormItem,l,oe)}if("ElButton"===k.tagName){let l=null==(E=k.properties)?void 0:E.payload;"table"===k.parentScope&&(l={...l,...j});const s="form"===k.parentScope?b:void 0,t=(null==(C=k.properties)?void 0:C.skipValidation)||!1;return e.h(r.ElButton,{...k.properties,disabled:_.checkDisabled(k,te),onClick:()=>{var e;re(void 0!==s?s:void 0!==b?b:0,null==(e=k.properties)?void 0:e.action,l,k.parentScope,t)}},oe)}if("ElSelect"===k.tagName){if(null==(x=k.properties)?void 0:x.remote)return e.h(a,{...k.properties,disabled:_.checkDisabled(k,te),modelValue:null==(D=Y[b])?void 0:D[null==(P=k.properties)?void 0:P.formProp],"onUpdate:modelValue":e=>{var r;Y[b]&&(Y[b][null==(r=k.properties)?void 0:r.formProp]=e)},formData:Y[b]||{}});const l={...k.properties,disabled:_.checkDisabled(k,te),modelValue:null==(V=Y[b])?void 0:V[null==(w=k.properties)?void 0:w.formProp],"onUpdate:modelValue":e=>{var r;Y[b]&&(Y[b][null==(r=k.properties)?void 0:r.formProp]=e)}},s=(null==(S=k.properties)?void 0:S.options)?k.properties.options.map(l=>e.h(r.ElOption,{label:l.label,value:l.value})):oe;return e.h(r.ElSelect,l,s)}if("ElDatePicker"===k.tagName)return e.h(r.ElDatePicker,{...k.properties,disabled:_.checkDisabled(k,te),modelValue:null==(U=Y[b])?void 0:U[null==(T=k.properties)?void 0:T.formProp],"onUpdate:modelValue":e=>{var r;Y[b]&&(Y[b][null==(r=k.properties)?void 0:r.formProp]=e)}},oe);if("ElInput"===k.tagName)return e.h(r.ElInput,{...k.properties,disabled:_.checkDisabled(k,te),modelValue:null==(I=Y[b])?void 0:I[null==(R=k.properties)?void 0:R.formProp],"onUpdate:modelValue":e=>{var r;Y[b]&&(Y[b][null==(r=k.properties)?void 0:r.formProp]=e)}},oe);if("ElRadioGroup"===k.tagName)return e.h(r.ElRadioGroup,{...k.properties,disabled:_.checkDisabled(k,te),modelValue:null==(L=Y[b])?void 0:L[null==(F=k.properties)?void 0:F.formProp],"onUpdate:modelValue":e=>{var r;Y[b]&&(Y[b][null==(r=k.properties)?void 0:r.formProp]=e)}},oe);if("ElRadio"===k.tagName)return e.h(r.ElRadio,{...k.properties,disabled:_.checkDisabled(k,te)},oe);if("ElCascader"===k.tagName){const l={...k.properties,disabled:_.checkDisabled(k,te),modelValue:null==(z=Y[b])?void 0:z[null==(O=k.properties)?void 0:O.formProp],"onUpdate:modelValue":e=>{var r;Y[b]&&(Y[b][null==(r=k.properties)?void 0:r.formProp]=e)}},s=k;if(null==(A=s.properties)?void 0:A.remote){const r=e.computed(()=>Y[b]||{});l.props.lazyLoad=m.createCascaderLazyLoad(s.properties.remote,r)}return console.log("====>",l),e.h(r.ElCascader,l,oe)}if("ElTable"===k.tagName)return e.h(i,{...k.properties},oe);if("ElTableColumn"===k.tagName)return e.h(r.ElTableColumn,{...k.properties},{default:e=>{var r,l,s;const t=e.row[null==(r=k.properties)?void 0:r.prop];if(Array.isArray(t))return t.map(e=>{var r;return null==(r=k.children)?void 0:r.find(r=>r.value===e&&void 0!==r.value)}).map(r=>f(r,g,-1/0,e.row));const o=(k.children||[]).findIndex(r=>{var l;return r.value===e.row[null==(l=k.properties)?void 0:l.prop]&&void 0!==r.value});return-1!==o?f(null==(l=k.children)?void 0:l[o],g,-1/0,e.row):null==(s=k.children)?void 0:s.map(r=>f(r,g,-1/0,e.row))}});if("CoreText"===k.tagName)return e.h(s,{...k.properties});if("CoreTips"===k.tagName)return e.h(t,{...k.properties});if("CoreResult"===k.tagName)return e.h(o,{...k.properties});if("CoreChart"===k.tagName)return e.h(p,{...k.properties});if("CoreUpload"===k.tagName){if("form"===k.parentScope&&(null==(B=k.properties)?void 0:B.formProp)){const r=k.properties.formProp;return e.h(u,{headers:le,extendData:se,...k.properties,disabled:_.checkDisabled(k,te),fileList:(null==(G=Y[b])?void 0:G[r])||[],"onUpdate:fileList":e=>{Y[b]||(Y[b]={}),Y[b].__files__||(Y[b].__files__={}),Y[b].__files__[r]=e,Y[b][r]=e}})}return e.h(u,{...k.properties,disabled:_.checkDisabled(k,te)})}if("pre"===k.tagName){const r=null==(J=k.children)?void 0:J.find(e=>"code"===e.tagName);if(r){if(null==(M=null==(H=r.properties)?void 0:H.className)?void 0:M.includes("language-CorePilot")){const l=(null==(Q=null==(K=r.children)?void 0:K[0])?void 0:Q.value)||"";if(!h.isCompleteJSON(l))return v();try{const r=JSON.parse(l),s=c.parseCorePilot(r),t=f(s,g);return e.h("div",{class:"hitl-wrapper"},[t])}catch(ne){return v()}}return e.h("pre",{...k.properties},(null==(X=null==(W=r.children)?void 0:W[0])?void 0:X.value)||"")}}return e.h(k.tagName,k.properties,oe);case"text":return k.value.trim();default:return null}};exports.hastToVNode=f;
2
2
  //# sourceMappingURL=hastRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hastRenderer.js","sources":["../../../../../src/components/x-markdown/renderers/hastRenderer.ts"],"sourcesContent":["/**\n * HAST (HTML AST) 渲染器\n * 将 HAST 节点转换为 Vue VNode\n * 优化了复杂表单的性能问题\n */\n\nimport { h } from 'vue';\nimport {\n ElMessage,\n ElForm,\n ElFormItem,\n ElInput,\n ElCard,\n ElButton,\n ElSelect,\n ElOption,\n ElDatePicker,\n ElTableColumn,\n ElTimeline,\n ElRow,\n ElCol,\n ElRadioGroup,\n ElRadio,\n ElConfigProvider,\n ElTag,\n ElCascader,\n} from 'element-plus';\nimport zhCN from 'element-plus/es/locale/lang/zh-cn';\nimport CoreText from '../../core-text';\nimport CoreTips from '../../core-tips';\nimport CoreResult from '../../core-result';\nimport CoreTable from '../../core-table';\nimport CoreChart from '../../core-chart';\nimport CoreCard from '../../core-card';\nimport CoreUpload from '../../core-upload';\nimport CoreRemoteSelect from '../../core-remote-select';\nimport { evaluateCondition } from '../composables/useConditionEvaluator';\nimport { createCascaderLazyLoad } from '../composables/useRemoteData';\nimport { parseCorePilot } from '../utils/parseCorePilotSchema';\nimport { isCompleteJSON } from '../utils/jsonUtils';\nimport { checkDisabled, DisabledCheckContext } from '../utils/disabledUtils';\nimport { InputSchema, CascaderSchema } from '@/types/index.ts';\nimport { computed, Ref } from 'vue';\n\n/**\n * 渲染骨架屏组件\n */\nconst renderSkeleton = () => {\n return h(\"div\", {\n class: \"hitl-skeleton\",\n }, [\n // 头部骨架\n h(\"div\", {\n class: \"skeleton-header\",\n }, [\n h(\"div\", { class: \"skeleton-avatar\" }),\n h(\"div\", { class: \"skeleton-title\" }),\n ]),\n // 内容骨架\n h(\"div\", { class: \"skeleton-item skeleton-item-long\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-medium\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-short\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-long\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-medium\" }),\n ]);\n};\n\n/**\n * 渲染器配置接口\n */\nexport interface RendererConfig {\n hitlData: Array<Record<string, any>>;\n formRefs: any;\n curIndex: number;\n getCurInit: () => number;\n btnClick: (index: number, action: string, payload: any, parentScope?: 'form' | 'table', skipValidation?: boolean) => void;\n uploadHeaders: Record<string, string>;\n uploadExtendData: Record<string, any>;\n disabledContext: DisabledCheckContext;\n}\n\n/**\n * 将hast(HTML AST)转换为Vue VNode\n * 性能优化:\n * 1. 使用缓存避免重复计算\n * 2. 延迟子节点渲染(仅在需要时渲染)\n * 3. 优化递归深度\n * \n * @param node - hast节点\n * @param config - 渲染器配置\n * @param index - 表单索引\n * @param row - 表格行数据\n * @returns Vue虚拟节点\n */\nexport const hastToVNode = (\n node: any,\n config: RendererConfig,\n index?: number,\n row?: any\n): any => {\n if (!node) return null;\n\n const {\n hitlData,\n formRefs,\n curIndex,\n getCurInit,\n btnClick,\n uploadHeaders,\n uploadExtendData,\n disabledContext,\n } = config;\n\n // 缓存子节点渲染函数,避免重复计算\n const renderChildren = (children: any[], formIndex?: number) => {\n if (!children || children.length === 0) return [];\n \n // 对于复杂表单,使用批量渲染优化\n // 优先使用传入的 formIndex,如果没有则使用当前的 index\n return children.map((child, idx) => {\n return hastToVNode(child, config, formIndex !== undefined ? formIndex : index, row);\n });\n };\n\n const blackTagNames = ['sub', 'pre', 'text', 'ElForm'];\n let children: any[] = [];\n\n if (!blackTagNames.includes(node.tagName)) {\n // 如果当前节点在表单中(index 是数字),继续传递这个 index 给子节点\n // 这样可以确保表单内的所有子节点(包括按钮)都能获取到正确的表单索引\n children = renderChildren(node.children || [], index);\n }\n\n switch (node.type) {\n case \"root\":\n return h(\n \"div\",\n { class: \"markdown-body\" },\n h(ElConfigProvider, {\n locale: zhCN,\n }, children)\n );\n\n case \"element\":\n // 处理 sub 标签(引用标记)\n if (node.tagName === \"sub\") {\n const formatChildren = [\n {\n type: \"element\",\n tagName: \"span\",\n properties: {\n class: \"x-markdown-split\",\n },\n },\n ...(node.children || [])\n ];\n const subChildren = formatChildren.map(child => hastToVNode(child, config, index));\n return h(\"span\", {\n ...node.properties,\n class: \"x-markdown-sub\",\n }, subChildren);\n }\n\n if (node.tagName === \"span\") {\n return h(\"span\", {\n ...node.properties,\n }, children);\n }\n\n // 处理特殊元素:图片、链接、代码块等\n if (node.tagName === \"img\") {\n return h(\"img\", {\n ...node.properties,\n class: \"markdown-image\",\n \"data-processed\": \"false\"\n });\n }\n\n if (node.tagName === \"a\") {\n const href = node.properties?.href || '';\n const fileType = href ? href.split('.').pop() : null;\n return h(\n \"a\",\n {\n ...node.properties,\n class: 'file-link',\n 'data-file-type': fileType,\n },\n children\n );\n }\n\n if (node.tagName === 'ElTimeline') {\n return h(ElTimeline, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'table') {\n return h(\n \"div\",\n { class: 'custom-table-container' },\n [h(\"table\", children)]\n );\n }\n\n if (node.tagName === 'view') {\n return h(\n 'div',\n { class: 'custom-view-container' },\n [children[curIndex]]\n );\n }\n\n if (node.tagName === 'ElRow') {\n return h(ElRow, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElCol') {\n return h(ElCol, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElCard') {\n return h(ElCard, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElTag') {\n return h(\n ElTag,\n {\n ...node.properties,\n },\n children\n )\n }\n\n if (node.tagName === 'CoreCard') {\n const slots: any = {};\n \n if (node.slots?.header) {\n slots.header = () => {\n return node.slots.header.map((slotItem: any) => {\n return hastToVNode(slotItem, config, index);\n });\n };\n }\n \n if (children && children.length > 0) {\n slots.default = () => children;\n }\n \n return h(CoreCard, {\n ...node.properties,\n }, slots);\n }\n\n // 表单相关元素\n if (node.tagName === 'ElForm') {\n const formIndex = getCurInit();\n const formChildren = (node.children || []).map((child: any) => \n hastToVNode(child, config, formIndex)\n );\n \n return h(\n ElForm,\n {\n ref: formRefs.set,\n model: hitlData[formIndex],\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n },\n formChildren\n );\n }\n\n if (node.tagName === 'ElFormItem') {\n const formItemProps: any = {\n ...node.properties,\n };\n\n // 条件控制:根据 dependencies.behavior.visible 决定是否渲染\n const dependencies = (node.properties && (node.properties as any).dependencies) || undefined;\n if (dependencies?.behavior?.visible && index !== undefined) {\n const formData = hitlData[index] || {};\n const visible = evaluateCondition(dependencies.behavior.visible, formData);\n if (!visible) {\n // 不可见时直接不渲染该表单项\n return null;\n }\n }\n\n return h(ElFormItem, formItemProps, children);\n }\n\n // 表单控件\n if (node.tagName === 'ElButton') {\n let payload = node.properties?.payload;\n if (node.parentScope === 'table') {\n payload = {\n ...payload,\n ...row,\n };\n }\n // 确保按钮在表单中使用正确的表单索引\n // 当 parentScope 是 'form' 时,index 应该是表单索引(从表单渲染时传递下来的)\n // 当 parentScope 不是 'form' 时,index 可能是 undefined 或其他值,但不会用于表单验证\n const buttonFormIndex = node.parentScope === 'form' ? index : undefined;\n const skipValidation = node.properties?.skipValidation || false;\n return h(\n ElButton,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n onClick: () => {\n // 如果按钮在表单中(parentScope === 'form'),必须使用正确的表单索引进行验证\n // 如果不在表单中,使用 0 作为默认值(但不会触发表单验证,因为 btnClick 会检查 parentScope)\n // 关键:index 在表单渲染时已经正确传递,所以 buttonFormIndex 应该是正确的表单索引\n // 如果 skipValidation 为 true,则跳过表单验证\n const validateIndex = buttonFormIndex !== undefined ? buttonFormIndex : (index !== undefined ? index : 0);\n btnClick(validateIndex, node.properties?.action, payload, node.parentScope, skipValidation);\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElSelect') {\n // 如果有 remote 配置,使用 CoreRemoteSelect 组件\n if (node.properties?.remote) {\n return h(CoreRemoteSelect, {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value: any) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n formData: hitlData[index!] || {},\n });\n }\n\n // 静态 options(向后兼容)\n const selectProps: any = {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value: any) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n };\n\n const selectChildren = node.properties?.options\n ? node.properties.options.map((opt: any) =>\n h(ElOption, {\n label: opt.label,\n value: opt.value,\n })\n )\n : children;\n\n return h(ElSelect, selectProps, selectChildren);\n }\n\n if (node.tagName === 'ElDatePicker') {\n return h(\n ElDatePicker,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElInput') {\n return h(\n ElInput,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElRadioGroup') {\n return h(\n ElRadioGroup,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value as string;\n }\n }\n },\n children\n );\n }\n\n if (node.tagName === 'ElRadio') {\n return h(\n ElRadio,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n },\n children\n );\n }\n\n if (node.tagName === 'ElCascader') {\n const cascaderProps: any = {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value: any) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n };\n\n // 处理懒加载\n const cascaderSchema = node as CascaderSchema;\n if (cascaderSchema.properties?.remote) {\n const formDataRef = computed(() => hitlData[index!] || {}) as Ref<Record<string, any>>;\n // TODO: 这里需要优化,因为 createCascaderLazyLoad 返回的是一个函数,而 ElCascader 的 lazyLoad 属性需要一个函数\n cascaderProps.props.lazyLoad = createCascaderLazyLoad(\n cascaderSchema.properties.remote,\n formDataRef\n );\n }\n\n console.log('====>', cascaderProps);\n\n return h(ElCascader, cascaderProps, children);\n }\n\n // 表格相关\n if (node.tagName === 'ElTable') {\n return h(\n CoreTable,\n {\n ...node.properties,\n },\n children\n );\n }\n\n if (node.tagName === 'ElTableColumn') {\n return h(\n ElTableColumn,\n {\n ...node.properties,\n },\n {\n default: (scope: any) => {\n const value = scope.row[node.properties?.prop];\n if (Array.isArray(value)) {\n return value.map((item: any) => {\n return node.children?.find((child: any) => child.value === item && child.value !== undefined);\n }).map((child: any) => hastToVNode(child, config, -Infinity, scope.row));\n }\n\n const childIndex = (node.children || []).findIndex(\n (child: any) => child.value === scope.row[node.properties?.prop] && child.value !== undefined\n );\n if (childIndex !== -1) {\n return hastToVNode(node.children?.[childIndex], config, -Infinity, scope.row);\n }\n return node.children?.map((child: any) => hastToVNode(child, config, -Infinity, scope.row));\n },\n }\n );\n }\n\n // 自定义组件\n if (node.tagName === 'CoreText') {\n return h(CoreText, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreTips') {\n return h(CoreTips, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreResult') {\n return h(CoreResult, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreChart') {\n return h(CoreChart, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreUpload') {\n // 如果在表单中,需要处理 formProp 和双向绑定\n if (node.parentScope === 'form' && node.properties?.formProp) {\n const formProp = node.properties.formProp;\n return h(\n CoreUpload,\n {\n headers: uploadHeaders,\n extendData: uploadExtendData,\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n fileList: hitlData[index!]?.[formProp] || [],\n 'onUpdate:fileList': (value: any) => {\n if (!hitlData[index!]) {\n hitlData[index!] = {};\n }\n // 针对目前上传的文件解析,CA 这边必须得放在files 属性中,故被迫需要进行兼容\n // 这里将基于 __files__ 去识别,后续在coreagent 的 adapter 中进行处理\n if (!hitlData[index!].__files__) {\n hitlData[index!].__files__ = {};\n }\n hitlData[index!].__files__[formProp] = value;\n hitlData[index!][formProp] = value;\n },\n }\n );\n }\n // 非表单场景,直接渲染\n return h(\n CoreUpload,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n }\n );\n }\n\n // 处理CorePilot代码块\n if (node.tagName === \"pre\") {\n const codeNode = node.children?.find((child: any) => child.tagName === \"code\");\n if (codeNode) {\n if (codeNode.properties?.className?.includes(\"language-CorePilot\")) {\n const code = codeNode.children?.[0]?.value || '';\n // 检查 JSON 是否完整\n if (!isCompleteJSON(code)) {\n // JSON 不完整,显示骨架屏\n return renderSkeleton();\n }\n try {\n const schema = JSON.parse(code);\n const viewTree = parseCorePilot(schema);\n const corePilotChildren = hastToVNode(viewTree, config);\n return h(\"div\", {\n class: \"hitl-wrapper\",\n }, [corePilotChildren]);\n } catch (error) {\n // JSON 解析失败,可能是格式错误,显示骨架屏\n return renderSkeleton();\n }\n }\n }\n }\n\n // 其他普通元素\n return h(\n node.tagName,\n node.properties,\n children\n );\n\n case \"text\":\n return node.value.trim();\n\n default:\n return null;\n }\n};\n\n"],"names":["renderSkeleton","h","class","hastToVNode","node","config","index","row","hitlData","formRefs","curIndex","getCurInit","btnClick","uploadHeaders","uploadExtendData","disabledContext","children","formIndex","includes","tagName","length","map","child","idx","type","ElConfigProvider","locale","zhCN","subChildren","properties","href","_a","fileType","split","pop","ElTimeline","ElRow","ElCol","ElCard","ElTag","slots","_b","header","slotItem","default","CoreCard","formChildren","ElForm","ref","set","model","disabled","checkDisabled","formItemProps","dependencies","_c","behavior","visible","formData","evaluateCondition","ElFormItem","payload","_d","parentScope","buttonFormIndex","skipValidation","_e","ElButton","onClick","action","_f","remote","CoreRemoteSelect","modelValue","_h","_g","formProp","value","selectProps","_j","_i","selectChildren","_k","options","opt","ElOption","label","ElSelect","ElDatePicker","_m","_l","ElInput","_o","_n","ElRadioGroup","_q","_p","ElRadio","cascaderProps","_s","_r","cascaderSchema","_t","formDataRef","computed","props","lazyLoad","createCascaderLazyLoad","console","log","ElCascader","CoreTable","ElTableColumn","scope","prop","Array","isArray","item","find","Infinity","childIndex","findIndex","CoreText","CoreTips","CoreResult","CoreChart","_u","CoreUpload","headers","extendData","fileList","_v","__files__","codeNode","_w","_y","_x","className","code","_A","_z","isCompleteJSON","schema","JSON","parse","viewTree","parseCorePilot","corePilotChildren","error","trim"],"mappings":"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"}
1
+ {"version":3,"file":"hastRenderer.js","sources":["../../../../../src/components/x-markdown/renderers/hastRenderer.ts"],"sourcesContent":["/**\n * HAST (HTML AST) 渲染器\n * 将 HAST 节点转换为 Vue VNode\n * 优化了复杂表单的性能问题\n */\n\nimport { h } from 'vue';\nimport {\n ElMessage,\n ElForm,\n ElFormItem,\n ElInput,\n ElCard,\n ElButton,\n ElSelect,\n ElOption,\n ElDatePicker,\n ElTableColumn,\n ElTimeline,\n ElRow,\n ElCol,\n ElRadioGroup,\n ElRadio,\n ElConfigProvider,\n ElTag,\n ElCascader,\n} from 'element-plus';\nimport zhCN from 'element-plus/es/locale/lang/zh-cn';\nimport CoreText from '../../core-text';\nimport CoreTips from '../../core-tips';\nimport CoreResult from '../../core-result';\nimport CoreTable from '../../core-table';\nimport CoreChart from '../../core-chart';\nimport CoreCard from '../../core-card';\nimport CoreUpload from '../../core-upload';\nimport CoreRemoteSelect from '../../core-remote-select';\nimport { evaluateCondition } from '../composables/useConditionEvaluator';\nimport { createCascaderLazyLoad } from '../composables/useRemoteData';\nimport { parseCorePilot } from '../utils/parseCorePilotSchema';\nimport { isCompleteJSON } from '../utils/jsonUtils';\nimport { checkDisabled, DisabledCheckContext } from '../utils/disabledUtils';\nimport { InputSchema, CascaderSchema } from '@/types/index.ts';\nimport { computed, Ref } from 'vue';\n\n/**\n * 渲染骨架屏组件\n */\nconst renderSkeleton = () => {\n return h(\"div\", {\n class: \"hitl-skeleton\",\n }, [\n // 头部骨架\n h(\"div\", {\n class: \"skeleton-header\",\n }, [\n h(\"div\", { class: \"skeleton-avatar\" }),\n h(\"div\", { class: \"skeleton-title\" }),\n ]),\n // 内容骨架\n h(\"div\", { class: \"skeleton-item skeleton-item-long\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-medium\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-short\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-long\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-medium\" }),\n ]);\n};\n\n/**\n * 渲染器配置接口\n */\nexport interface RendererConfig {\n hitlData: Array<Record<string, any>>;\n formRefs: any;\n curIndex: number;\n getCurInit: () => number;\n btnClick: (index: number, action: string, payload: any, parentScope?: 'form' | 'table', skipValidation?: boolean) => void;\n uploadHeaders: Record<string, string>;\n uploadExtendData: Record<string, any>;\n disabledContext: DisabledCheckContext;\n}\n\n/**\n * 将hast(HTML AST)转换为Vue VNode\n * 性能优化:\n * 1. 使用缓存避免重复计算\n * 2. 延迟子节点渲染(仅在需要时渲染)\n * 3. 优化递归深度\n * \n * @param node - hast节点\n * @param config - 渲染器配置\n * @param index - 表单索引\n * @param row - 表格行数据\n * @returns Vue虚拟节点\n */\nexport const hastToVNode = (\n node: any,\n config: RendererConfig,\n index?: number,\n row?: any\n): any => {\n if (!node) return null;\n\n const {\n hitlData,\n formRefs,\n curIndex,\n getCurInit,\n btnClick,\n uploadHeaders,\n uploadExtendData,\n disabledContext,\n } = config;\n\n // 缓存子节点渲染函数,避免重复计算\n const renderChildren = (children: any[], formIndex?: number) => {\n if (!children || children.length === 0) return [];\n \n // 对于复杂表单,使用批量渲染优化\n // 优先使用传入的 formIndex,如果没有则使用当前的 index\n return children.map((child, idx) => {\n return hastToVNode(child, config, formIndex !== undefined ? formIndex : index, row);\n });\n };\n\n const blackTagNames = ['sub', 'pre', 'text', 'ElForm'];\n let children: any[] = [];\n\n if (!blackTagNames.includes(node.tagName)) {\n // 如果当前节点在表单中(index 是数字),继续传递这个 index 给子节点\n // 这样可以确保表单内的所有子节点(包括按钮)都能获取到正确的表单索引\n children = renderChildren(node.children || [], index);\n }\n\n switch (node.type) {\n case \"root\":\n return h(\n \"div\",\n { class: \"markdown-body\" },\n h(ElConfigProvider, {\n locale: zhCN,\n }, children)\n );\n\n case \"element\":\n // 处理 sub 标签(引用标记)\n if (node.tagName === \"sub\") {\n const formatChildren = [\n {\n type: \"element\",\n tagName: \"span\",\n properties: {\n class: \"x-markdown-split\",\n },\n },\n ...(node.children || [])\n ];\n const subChildren = formatChildren.map(child => hastToVNode(child, config, index));\n return h(\"span\", {\n ...node.properties,\n class: \"x-markdown-sub\",\n }, subChildren);\n }\n\n if (node.tagName === \"span\") {\n return h(\"span\", {\n ...node.properties,\n }, children);\n }\n\n // 处理特殊元素:图片、链接、代码块等\n if (node.tagName === \"img\") {\n return h(\"img\", {\n ...node.properties,\n class: \"markdown-image\",\n \"data-processed\": \"false\"\n });\n }\n\n if (node.tagName === \"a\") {\n const href = node.properties?.href || '';\n const fileType = href ? href.split('.').pop() : null;\n return h(\n \"a\",\n {\n ...node.properties,\n class: 'file-link',\n 'data-file-type': fileType,\n },\n children\n );\n }\n\n if (node.tagName === 'ElTimeline') {\n return h(ElTimeline, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'table') {\n return h(\n \"div\",\n { class: 'custom-table-container' },\n [h(\"table\", children)]\n );\n }\n\n if (node.tagName === 'view') {\n return h(\n 'div',\n { class: 'custom-view-container' },\n [children[curIndex]]\n );\n }\n\n if (node.tagName === 'ElRow') {\n return h(ElRow, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElCol') {\n return h(ElCol, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElCard') {\n return h(ElCard, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElTag') {\n return h(\n ElTag,\n {\n ...node.properties,\n },\n children\n )\n }\n\n if (node.tagName === 'CoreCard') {\n const slots: any = {};\n \n if (node.slots?.header) {\n slots.header = () => {\n return node.slots.header.map((slotItem: any) => {\n return hastToVNode(slotItem, config, index);\n });\n };\n }\n \n if (children && children.length > 0) {\n slots.default = () => children;\n }\n \n return h(CoreCard, {\n ...node.properties,\n }, slots);\n }\n\n // 表单相关元素\n if (node.tagName === 'ElForm') {\n const formIndex = getCurInit();\n const formChildren = (node.children || []).map((child: any) => \n hastToVNode(child, config, formIndex)\n );\n \n return h(\n ElForm,\n {\n ref: formRefs.set,\n model: hitlData[formIndex],\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n },\n formChildren\n );\n }\n\n if (node.tagName === 'ElFormItem') {\n const formItemProps: any = {\n ...node.properties,\n };\n\n // 条件控制:根据 dependencies.behavior.visible 决定是否渲染\n const dependencies = (node.properties && (node.properties as any).dependencies) || undefined;\n if (dependencies?.behavior?.visible && index !== undefined) {\n const formData = hitlData[index] || {};\n const visible = evaluateCondition(dependencies.behavior.visible, formData);\n if (!visible) {\n // 不可见时直接不渲染该表单项\n return null;\n }\n }\n\n return h(ElFormItem, formItemProps, children);\n }\n\n // 表单控件\n if (node.tagName === 'ElButton') {\n let payload = node.properties?.payload;\n if (node.parentScope === 'table') {\n payload = {\n ...payload,\n ...row,\n };\n }\n // 确保按钮在表单中使用正确的表单索引\n // 当 parentScope 是 'form' 时,index 应该是表单索引(从表单渲染时传递下来的)\n // 当 parentScope 不是 'form' 时,index 可能是 undefined 或其他值,但不会用于表单验证\n const buttonFormIndex = node.parentScope === 'form' ? index : undefined;\n const skipValidation = node.properties?.skipValidation || false;\n return h(\n ElButton,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n onClick: () => {\n // 如果按钮在表单中(parentScope === 'form'),必须使用正确的表单索引进行验证\n // 如果不在表单中,使用 0 作为默认值(但不会触发表单验证,因为 btnClick 会检查 parentScope)\n // 关键:index 在表单渲染时已经正确传递,所以 buttonFormIndex 应该是正确的表单索引\n // 如果 skipValidation 为 true,则跳过表单验证\n const validateIndex = buttonFormIndex !== undefined ? buttonFormIndex : (index !== undefined ? index : 0);\n btnClick(validateIndex, node.properties?.action, payload, node.parentScope, skipValidation);\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElSelect') {\n // 如果有 remote 配置,使用 CoreRemoteSelect 组件\n if (node.properties?.remote) {\n return h(CoreRemoteSelect, {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value: any) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n formData: hitlData[index!] || {},\n });\n }\n\n // 静态 options(向后兼容)\n const selectProps: any = {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value: any) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n };\n\n const selectChildren = node.properties?.options\n ? node.properties.options.map((opt: any) =>\n h(ElOption, {\n label: opt.label,\n value: opt.value,\n })\n )\n : children;\n\n return h(ElSelect, selectProps, selectChildren);\n }\n\n if (node.tagName === 'ElDatePicker') {\n return h(\n ElDatePicker,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElInput') {\n return h(\n ElInput,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElRadioGroup') {\n return h(\n ElRadioGroup,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value as string;\n }\n }\n },\n children\n );\n }\n\n if (node.tagName === 'ElRadio') {\n return h(\n ElRadio,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n },\n children\n );\n }\n\n if (node.tagName === 'ElCascader') {\n const cascaderProps: any = {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value: any) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n };\n\n // 处理懒加载\n const cascaderSchema = node as CascaderSchema;\n if (cascaderSchema.properties?.remote) {\n const formDataRef = computed(() => hitlData[index!] || {}) as Ref<Record<string, any>>;\n // TODO: 这里需要优化,因为 createCascaderLazyLoad 返回的是一个函数,而 ElCascader 的 lazyLoad 属性需要一个函数\n cascaderProps.props.lazyLoad = createCascaderLazyLoad(\n cascaderSchema.properties.remote,\n formDataRef\n );\n }\n\n console.log('====>', cascaderProps);\n\n return h(ElCascader, cascaderProps, children);\n }\n\n // 表格相关\n if (node.tagName === 'ElTable') {\n return h(\n CoreTable,\n {\n ...node.properties,\n },\n children\n );\n }\n\n if (node.tagName === 'ElTableColumn') {\n return h(\n ElTableColumn,\n {\n ...node.properties,\n },\n {\n default: (scope: any) => {\n const value = scope.row[node.properties?.prop];\n if (Array.isArray(value)) {\n return value.map((item: any) => {\n return node.children?.find((child: any) => child.value === item && child.value !== undefined);\n }).map((child: any) => hastToVNode(child, config, -Infinity, scope.row));\n }\n\n const childIndex = (node.children || []).findIndex(\n (child: any) => child.value === scope.row[node.properties?.prop] && child.value !== undefined\n );\n if (childIndex !== -1) {\n return hastToVNode(node.children?.[childIndex], config, -Infinity, scope.row);\n }\n return node.children?.map((child: any) => hastToVNode(child, config, -Infinity, scope.row));\n },\n }\n );\n }\n\n // 自定义组件\n if (node.tagName === 'CoreText') {\n return h(CoreText, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreTips') {\n return h(CoreTips, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreResult') {\n return h(CoreResult, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreChart') {\n return h(CoreChart, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreUpload') {\n // 如果在表单中,需要处理 formProp 和双向绑定\n if (node.parentScope === 'form' && node.properties?.formProp) {\n const formProp = node.properties.formProp;\n return h(\n CoreUpload,\n {\n headers: uploadHeaders,\n extendData: uploadExtendData,\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n fileList: hitlData[index!]?.[formProp] || [],\n 'onUpdate:fileList': (value: any) => {\n if (!hitlData[index!]) {\n hitlData[index!] = {};\n }\n // 针对目前上传的文件解析,CA 这边必须得放在files 属性中,故被迫需要进行兼容\n // 这里将基于 __files__ 去识别,后续在coreagent 的 adapter 中进行处理\n if (!hitlData[index!].__files__) {\n hitlData[index!].__files__ = {};\n }\n hitlData[index!].__files__[formProp] = value;\n hitlData[index!][formProp] = value;\n },\n }\n );\n }\n // 非表单场景,直接渲染\n return h(\n CoreUpload,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n }\n );\n }\n\n // 处理CorePilot代码块\n if (node.tagName === \"pre\") {\n const codeNode = node.children?.find((child: any) => child.tagName === \"code\");\n if (codeNode) {\n if (codeNode.properties?.className?.includes(\"language-CorePilot\")) {\n const code = codeNode.children?.[0]?.value || '';\n // 检查 JSON 是否完整\n if (!isCompleteJSON(code)) {\n // JSON 不完整,显示骨架屏\n return renderSkeleton();\n }\n try {\n const schema = JSON.parse(code);\n const viewTree = parseCorePilot(schema);\n const corePilotChildren = hastToVNode(viewTree, config);\n return h(\"div\", {\n class: \"hitl-wrapper\",\n }, [corePilotChildren]);\n } catch (error) {\n // JSON 解析失败,可能是格式错误,显示骨架屏\n return renderSkeleton();\n }\n }\n // 其他情况,直接渲染代码块\n return h(\"pre\", {\n ...node.properties,\n }, codeNode.children?.[0]?.value || '');\n }\n }\n\n // 其他普通元素\n return h(\n node.tagName,\n node.properties,\n children\n );\n\n case \"text\":\n return node.value.trim();\n\n default:\n return null;\n }\n};\n\n"],"names":["renderSkeleton","h","class","hastToVNode","node","config","index","row","hitlData","formRefs","curIndex","getCurInit","btnClick","uploadHeaders","uploadExtendData","disabledContext","children","formIndex","includes","tagName","length","map","child","idx","type","ElConfigProvider","locale","zhCN","subChildren","properties","href","_a","fileType","split","pop","ElTimeline","ElRow","ElCol","ElCard","ElTag","slots","_b","header","slotItem","default","CoreCard","formChildren","ElForm","ref","set","model","disabled","checkDisabled","formItemProps","dependencies","_c","behavior","visible","formData","evaluateCondition","ElFormItem","payload","_d","parentScope","buttonFormIndex","skipValidation","_e","ElButton","onClick","action","_f","remote","CoreRemoteSelect","modelValue","_h","_g","formProp","value","selectProps","_j","_i","selectChildren","_k","options","opt","ElOption","label","ElSelect","ElDatePicker","_m","_l","ElInput","_o","_n","ElRadioGroup","_q","_p","ElRadio","cascaderProps","_s","_r","cascaderSchema","_t","formDataRef","computed","props","lazyLoad","createCascaderLazyLoad","console","log","ElCascader","CoreTable","ElTableColumn","scope","prop","Array","isArray","item","find","Infinity","childIndex","findIndex","CoreText","CoreTips","CoreResult","CoreChart","_u","CoreUpload","headers","extendData","fileList","_v","__files__","codeNode","_w","_y","_x","className","code","_A","_z","isCompleteJSON","schema","JSON","parse","viewTree","parseCorePilot","corePilotChildren","error","_C","_B","trim"],"mappings":"ivIA+CMA,EAAiB,IACdC,EAAAA,EAAE,MAAO,CACdC,MAAO,iBACN,CAEDD,EAAAA,EAAE,MAAO,CACPC,MAAO,mBACN,CACDD,EAAAA,EAAE,MAAO,CAAEC,MAAO,oBAClBD,EAAAA,EAAE,MAAO,CAAEC,MAAO,qBAGpBD,EAAAA,EAAE,MAAO,CAAEC,MAAO,qCAClBD,EAAAA,EAAE,MAAO,CAAEC,MAAO,uCAClBD,EAAAA,EAAE,MAAO,CAAEC,MAAO,sCAClBD,EAAAA,EAAE,MAAO,CAAEC,MAAO,qCAClBD,EAAAA,EAAE,MAAO,CAAEC,MAAO,yCA+BTC,EAAc,CACzBC,EACAC,EACAC,EACAC,mEAEA,IAAKH,EAAM,OAAO,KAElB,MAAMI,SACJA,EAAAC,SACAA,EAAAC,SACAA,EAAAC,WACAA,GAAAC,SACAA,GAAAC,cACAA,GAAAC,iBACAA,GAAAC,gBACAA,IACEV,EAcJ,IAAIW,GAAkB,GAXC,IAACA,GAAiBC,GAmBzC,OATsB,CAAC,MAAO,MAAO,OAAQ,UAG1BC,SAASd,EAAKe,WAbTH,GAgBIZ,EAAKY,UAAY,GAhBJC,GAgBQX,EAA/CU,GAfKA,IAAgC,IAApBA,GAASI,OAInBJ,GAASK,IAAI,CAACC,EAAOC,IACnBpB,EAAYmB,EAAOjB,OAAsB,IAAdY,GAA0BA,GAAYX,EAAOC,IALlC,IAkBzCH,EAAKoB,MACX,IAAK,OACH,OAAOvB,EAAAA,EACL,MACA,CAAEC,MAAO,iBACTD,EAAAA,EAAEwB,EAAAA,iBAAkB,CAClBC,OAAQC,GACPX,KAGP,IAAK,UAEH,GAAqB,QAAjBZ,EAAKe,QAAmB,CAC1B,MAUMS,EAViB,CACrB,CACEJ,KAAM,UACNL,QAAS,OACTU,WAAY,CACV3B,MAAO,wBAGPE,EAAKY,UAAY,IAEYK,IAAIC,GAASnB,EAAYmB,EAAOjB,EAAQC,IAC3E,OAAOL,EAAAA,EAAE,OAAQ,IACZG,EAAKyB,WACR3B,MAAO,kBACN0B,EACL,CAEA,GAAqB,SAAjBxB,EAAKe,QACP,OAAOlB,EAAAA,EAAE,OAAQ,IACZG,EAAKyB,YACPb,IAIL,GAAqB,QAAjBZ,EAAKe,QACP,OAAOlB,EAAAA,EAAE,MAAO,IACXG,EAAKyB,WACR3B,MAAO,iBACP,iBAAkB,UAItB,GAAqB,MAAjBE,EAAKe,QAAiB,CACxB,MAAMW,GAAO,OAAAC,EAAA3B,EAAKyB,iBAAL,EAAAE,EAAiBD,OAAQ,GAChCE,EAAWF,EAAOA,EAAKG,MAAM,KAAKC,MAAQ,KAChD,OAAOjC,EAAAA,EACL,IACA,IACKG,EAAKyB,WACR3B,MAAO,YACP,iBAAkB8B,GAEpBhB,GAEJ,CAEA,GAAqB,eAAjBZ,EAAKe,QACP,OAAOlB,EAAAA,EAAEkC,EAAAA,WAAY,IAChB/B,EAAKyB,YACPb,IAGL,GAAqB,UAAjBZ,EAAKe,QACP,OAAOlB,EAAAA,EACL,MACA,CAAEC,MAAO,0BACT,CAACD,EAAAA,EAAE,QAASe,MAIhB,GAAqB,SAAjBZ,EAAKe,QACP,OAAOlB,EAAAA,EACL,MACA,CAAEC,MAAO,yBACT,CAACc,GAASN,KAId,GAAqB,UAAjBN,EAAKe,QACP,OAAOlB,EAAAA,EAAEmC,EAAAA,MAAO,IACXhC,EAAKyB,YACPb,IAGL,GAAqB,UAAjBZ,EAAKe,QACP,OAAOlB,EAAAA,EAAEoC,EAAAA,MAAO,IACXjC,EAAKyB,YACPb,IAGL,GAAqB,WAAjBZ,EAAKe,QACP,OAAOlB,EAAAA,EAAEqC,EAAAA,OAAQ,IACZlC,EAAKyB,YACPb,IAGL,GAAqB,UAAjBZ,EAAKe,QACP,OAAOlB,EAAAA,EACLsC,EAAAA,MACA,IACKnC,EAAKyB,YAEVb,IAIJ,GAAqB,aAAjBZ,EAAKe,QAAwB,CAC/B,MAAMqB,EAAa,CAAA,EAcnB,OAZI,OAAAC,EAAArC,EAAKoC,YAAL,EAAAC,EAAYC,UACdF,EAAME,OAAS,IACNtC,EAAKoC,MAAME,OAAOrB,IAAKsB,GACrBxC,EAAYwC,EAAUtC,EAAQC,KAKvCU,IAAYA,GAASI,OAAS,IAChCoB,EAAMI,QAAU,IAAM5B,IAGjBf,EAAAA,EAAE4C,EAAU,IACdzC,EAAKyB,YACPW,EACL,CAGA,GAAqB,WAAjBpC,EAAKe,QAAsB,CAC7B,MAAMF,EAAYN,KACZmC,GAAgB1C,EAAKY,UAAY,IAAIK,IAAKC,GAC9CnB,EAAYmB,EAAOjB,EAAQY,IAG7B,OAAOhB,EAAAA,EACL8C,EAAAA,OACA,CACEC,IAAKvC,EAASwC,IACdC,MAAO1C,EAASS,MACbb,EAAKyB,WACRsB,SAAUC,EAAAA,cAAchD,EAAqBW,KAE/C+B,EAEJ,CAEA,GAAqB,eAAjB1C,EAAKe,QAA0B,CACjC,MAAMkC,EAAqB,IACtBjD,EAAKyB,YAIJyB,EAAgBlD,EAAKyB,YAAezB,EAAKyB,WAAmByB,mBAAiB,EACnF,IAAI,OAAAC,EAAA,MAAAD,OAAA,EAAAA,EAAcE,eAAd,EAAAD,EAAwBE,eAAqB,IAAVnD,EAAqB,CAC1D,MAAMoD,EAAWlD,EAASF,IAAU,CAAA,EAEpC,IADgBqD,EAAAA,kBAAkBL,EAAaE,SAASC,QAASC,GAG/D,OAAO,IAEX,CAEA,OAAOzD,IAAE2D,EAAAA,WAAYP,EAAerC,GACtC,CAGA,GAAqB,aAAjBZ,EAAKe,QAAwB,CAC/B,IAAI0C,EAAU,OAAAC,EAAA1D,EAAKyB,iBAAL,EAAAiC,EAAiBD,QACN,UAArBzD,EAAK2D,cACPF,EAAU,IACLA,KACAtD,IAMP,MAAMyD,EAAuC,SAArB5D,EAAK2D,YAAyBzD,OAAQ,EACxD2D,GAAiB,OAAAC,EAAA9D,EAAKyB,iBAAL,EAAAqC,EAAiBD,kBAAkB,EAC1D,OAAOhE,EAAAA,EACLkE,EAAAA,SACA,IACK/D,EAAKyB,WACRsB,SAAUC,EAAAA,cAAchD,EAAqBW,IAC7CqD,QAAS,WAMPxD,QAD0C,IAApBoD,EAAgCA,OAA6B,IAAV1D,EAAsBA,EAAQ,EAC/E,OAAAyB,EAAA3B,EAAKyB,iBAAL,EAAAE,EAAiBsC,OAAQR,EAASzD,EAAK2D,YAAaE,KAGhFjD,GAEJ,CAEA,GAAqB,aAAjBZ,EAAKe,QAAwB,CAE/B,GAAI,OAAAmD,EAAAlE,EAAKyB,iBAAL,EAAAyC,EAAiBC,OACnB,OAAOtE,EAAAA,EAAEuE,EAAkB,IACtBpE,EAAKyB,WACRsB,SAAUC,EAAAA,cAAchD,EAAqBW,IAC7C0D,WAAY,OAAAC,EAAAlE,EAASF,SAAT,EAAAoE,EAAmB,OAAAC,EAAAvE,EAAKyB,iBAAL,EAAA8C,EAAiBC,UAChD,sBAAwBC,UAClBrE,EAASF,KACXE,EAASF,GAAQ,OAAAyB,EAAA3B,EAAKyB,iBAAL,EAAAE,EAAiB6C,UAAYC,IAGlDnB,SAAUlD,EAASF,IAAW,CAAA,IAKlC,MAAMwE,EAAmB,IACpB1E,EAAKyB,WACRsB,SAAUC,EAAAA,cAAchD,EAAqBW,IAC7C0D,WAAY,OAAAM,EAAAvE,EAASF,SAAT,EAAAyE,EAAmB,OAAAC,EAAA5E,EAAKyB,iBAAL,EAAAmD,EAAiBJ,UAChD,sBAAwBC,UAClBrE,EAASF,KACXE,EAASF,GAAQ,OAAAyB,EAAA3B,EAAKyB,iBAAL,EAAAE,EAAiB6C,UAAYC,KAK9CI,GAAiB,OAAAC,EAAA9E,EAAKyB,qBAAYsD,SACpC/E,EAAKyB,WAAWsD,QAAQ9D,IAAK+D,GAC3BnF,EAAAA,EAAEoF,WAAU,CACVC,MAAOF,EAAIE,MACXT,MAAOO,EAAIP,SAGf7D,GAEJ,OAAOf,IAAEsF,EAAAA,SAAUT,EAAaG,EAClC,CAEA,GAAqB,iBAAjB7E,EAAKe,QACP,OAAOlB,EAAAA,EACLuF,EAAAA,aACA,IACKpF,EAAKyB,WACRsB,SAAUC,EAAAA,cAAchD,EAAqBW,IAC7C0D,WAAY,OAAAgB,EAAAjF,EAASF,SAAT,EAAAmF,EAAmB,OAAAC,EAAAtF,EAAKyB,iBAAL,EAAA6D,EAAiBd,UAChD,sBAAwBC,UAClBrE,EAASF,KACXE,EAASF,GAAQ,OAAAyB,EAAA3B,EAAKyB,iBAAL,EAAAE,EAAiB6C,UAAYC,KAIpD7D,IAIJ,GAAqB,YAAjBZ,EAAKe,QACP,OAAOlB,EAAAA,EACL0F,EAAAA,QACA,IACKvF,EAAKyB,WACRsB,SAAUC,EAAAA,cAAchD,EAAqBW,IAC7C0D,WAAY,OAAAmB,EAAApF,EAASF,SAAT,EAAAsF,EAAmB,OAAAC,EAAAzF,EAAKyB,iBAAL,EAAAgE,EAAiBjB,UAChD,sBAAwBC,UAClBrE,EAASF,KACXE,EAASF,GAAQ,OAAAyB,EAAA3B,EAAKyB,iBAAL,EAAAE,EAAiB6C,UAAYC,KAIpD7D,IAIJ,GAAqB,iBAAjBZ,EAAKe,QACP,OAAOlB,EAAAA,EACL6F,EAAAA,aACA,IACK1F,EAAKyB,WACRsB,SAAUC,EAAAA,cAAchD,EAAqBW,IAC7C0D,WAAY,OAAAsB,EAAAvF,EAASF,SAAT,EAAAyF,EAAmB,OAAAC,EAAA5F,EAAKyB,iBAAL,EAAAmE,EAAiBpB,UAChD,sBAAwBC,UAClBrE,EAASF,KACXE,EAASF,GAAQ,OAAAyB,EAAA3B,EAAKyB,iBAAL,EAAAE,EAAiB6C,UAAYC,KAIpD7D,IAIJ,GAAqB,YAAjBZ,EAAKe,QACP,OAAOlB,EAAAA,EACLgG,EAAAA,QACA,IACK7F,EAAKyB,WACRsB,SAAUC,EAAAA,cAAchD,EAAqBW,KAE/CC,IAIJ,GAAqB,eAAjBZ,EAAKe,QAA0B,CACjC,MAAM+E,EAAqB,IACtB9F,EAAKyB,WACRsB,SAAUC,EAAAA,cAAchD,EAAqBW,IAC7C0D,WAAY,OAAA0B,EAAA3F,EAASF,SAAT,EAAA6F,EAAmB,OAAAC,EAAAhG,EAAKyB,iBAAL,EAAAuE,EAAiBxB,UAChD,sBAAwBC,UAClBrE,EAASF,KACXE,EAASF,GAAQ,OAAAyB,EAAA3B,EAAKyB,iBAAL,EAAAE,EAAiB6C,UAAYC,KAM9CwB,EAAiBjG,EACvB,GAAI,OAAAkG,EAAAD,EAAexE,iBAAf,EAAAyE,EAA2B/B,OAAQ,CACrC,MAAMgC,EAAcC,EAAAA,SAAS,IAAMhG,EAASF,IAAW,CAAA,GAEvD4F,EAAcO,MAAMC,SAAWC,EAAAA,uBAC7BN,EAAexE,WAAW0C,OAC1BgC,EAEJ,CAIA,OAFAK,QAAQC,IAAI,QAASX,GAEdjG,IAAE6G,EAAAA,WAAYZ,EAAelF,GACtC,CAGA,GAAqB,YAAjBZ,EAAKe,QACP,OAAOlB,EAAAA,EACL8G,EACA,IACK3G,EAAKyB,YAEVb,IAIJ,GAAqB,kBAAjBZ,EAAKe,QACP,OAAOlB,EAAAA,EACL+G,EAAAA,cACA,IACK5G,EAAKyB,YAEV,CACEe,QAAUqE,cACR,MAAMpC,EAAQoC,EAAM1G,IAAI,OAAAwB,EAAA3B,EAAKyB,iBAAL,EAAAE,EAAiBmF,MACzC,GAAIC,MAAMC,QAAQvC,GAChB,OAAOA,EAAMxD,IAAKgG,UAChB,OAAO,OAAAtF,EAAA3B,EAAKY,eAAL,EAAAe,EAAeuF,KAAMhG,GAAeA,EAAMuD,QAAUwC,QAAwB,IAAhB/F,EAAMuD,SACxExD,IAAKC,GAAenB,EAAYmB,EAAOjB,GAAQkH,IAAWN,EAAM1G,MAGrE,MAAMiH,GAAcpH,EAAKY,UAAY,IAAIyG,UACtCnG,UAAe,OAAAA,EAAMuD,QAAUoC,EAAM1G,IAAI,OAAAwB,EAAA3B,EAAKyB,iBAAL,EAAAE,EAAiBmF,YAAyB,IAAhB5F,EAAMuD,QAE5E,OAAmB,IAAf2C,EACKrH,EAAY,OAAAsC,EAAArC,EAAKY,eAAL,EAAAyB,EAAgB+E,GAAanH,GAAQkH,IAAWN,EAAM1G,KAEpE,OAAAgD,EAAAnD,EAAKY,eAAL,EAAAuC,EAAelC,IAAKC,GAAenB,EAAYmB,EAAOjB,GAAQkH,IAAWN,EAAM1G,SAO9F,GAAqB,aAAjBH,EAAKe,QACP,OAAOlB,EAAAA,EAAEyH,EAAU,IACdtH,EAAKyB,aAIZ,GAAqB,aAAjBzB,EAAKe,QACP,OAAOlB,EAAAA,EAAE0H,EAAU,IACdvH,EAAKyB,aAIZ,GAAqB,eAAjBzB,EAAKe,QACP,OAAOlB,EAAAA,EAAE2H,EAAY,IAChBxH,EAAKyB,aAIZ,GAAqB,cAAjBzB,EAAKe,QACP,OAAOlB,EAAAA,EAAE4H,EAAW,IACfzH,EAAKyB,aAIZ,GAAqB,eAAjBzB,EAAKe,QAA0B,CAEjC,GAAyB,SAArBf,EAAK2D,cAA0B,OAAA+D,EAAA1H,EAAKyB,qBAAY+C,UAAU,CAC5D,MAAMA,EAAWxE,EAAKyB,WAAW+C,SACjC,OAAO3E,EAAAA,EACL8H,EACA,CACEC,QAASnH,GACToH,WAAYnH,MACTV,EAAKyB,WACRsB,SAAUC,EAAAA,cAAchD,EAAqBW,IAC7CmH,UAAU,OAAAC,EAAA3H,EAASF,SAAT,EAAA6H,EAAmBvD,KAAa,GAC1C,oBAAsBC,IACfrE,EAASF,KACZE,EAASF,GAAU,CAAA,GAIhBE,EAASF,GAAQ8H,YACpB5H,EAASF,GAAQ8H,UAAY,CAAA,GAE/B5H,EAASF,GAAQ8H,UAAUxD,GAAYC,EACvCrE,EAASF,GAAQsE,GAAYC,IAIrC,CAEA,OAAO5E,EAAAA,EACL8H,EACA,IACK3H,EAAKyB,WACRsB,SAAUC,EAAAA,cAAchD,EAAqBW,KAGnD,CAGA,GAAqB,QAAjBX,EAAKe,QAAmB,CAC1B,MAAMkH,EAAW,OAAAC,IAAKtH,eAAL,EAAAsH,EAAehB,KAAMhG,GAAiC,SAAlBA,EAAMH,SAC3D,GAAIkH,EAAU,CACZ,GAAI,OAAAE,EAAA,WAAS1G,iBAAT,EAAA2G,EAAqBC,gBAArB,EAAAF,EAAgCrH,SAAS,sBAAuB,CAClE,MAAMwH,GAAO,OAAAC,EAAA,OAAAC,EAAAP,EAASrH,eAAT,EAAA4H,EAAoB,aAAI/D,QAAS,GAE9C,IAAKgE,EAAAA,eAAeH,GAElB,OAAO1I,IAET,IACE,MAAM8I,EAASC,KAAKC,MAAMN,GACpBO,EAAWC,EAAAA,eAAeJ,GAC1BK,EAAoBhJ,EAAY8I,EAAU5I,GAChD,OAAOJ,EAAAA,EAAE,MAAO,CACdC,MAAO,gBACN,CAACiJ,GACN,OAASC,IAEP,OAAOpJ,GACT,CACF,CAEA,OAAOC,EAAAA,EAAE,MAAO,IACXG,EAAKyB,aACP,OAAAwH,EAAA,OAAAC,EAAAjB,EAASrH,mBAAW,SAApB,EAAAqI,EAAwBxE,QAAS,GACtC,CACF,CAGA,OAAO5E,EAAAA,EACLG,EAAKe,QACLf,EAAKyB,WACLb,IAGJ,IAAK,OACH,OAAOZ,EAAKyE,MAAM0E,OAEpB,QACE,OAAO"}
@@ -58,7 +58,7 @@ const renderSkeleton = () => {
58
58
  ]);
59
59
  };
60
60
  const hastToVNode = (node, config, index, row) => {
61
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A;
61
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C;
62
62
  if (!node) return null;
63
63
  const {
64
64
  hitlData,
@@ -474,6 +474,9 @@ const hastToVNode = (node, config, index, row) => {
474
474
  return renderSkeleton();
475
475
  }
476
476
  }
477
+ return h("pre", {
478
+ ...node.properties
479
+ }, ((_C = (_B = codeNode.children) == null ? void 0 : _B[0]) == null ? void 0 : _C.value) || "");
477
480
  }
478
481
  }
479
482
  return h(
@@ -1 +1 @@
1
- {"version":3,"file":"hastRenderer.js","sources":["../../../../../src/components/x-markdown/renderers/hastRenderer.ts"],"sourcesContent":["/**\n * HAST (HTML AST) 渲染器\n * 将 HAST 节点转换为 Vue VNode\n * 优化了复杂表单的性能问题\n */\n\nimport { h } from 'vue';\nimport {\n ElMessage,\n ElForm,\n ElFormItem,\n ElInput,\n ElCard,\n ElButton,\n ElSelect,\n ElOption,\n ElDatePicker,\n ElTableColumn,\n ElTimeline,\n ElRow,\n ElCol,\n ElRadioGroup,\n ElRadio,\n ElConfigProvider,\n ElTag,\n ElCascader,\n} from 'element-plus';\nimport zhCN from 'element-plus/es/locale/lang/zh-cn';\nimport CoreText from '../../core-text';\nimport CoreTips from '../../core-tips';\nimport CoreResult from '../../core-result';\nimport CoreTable from '../../core-table';\nimport CoreChart from '../../core-chart';\nimport CoreCard from '../../core-card';\nimport CoreUpload from '../../core-upload';\nimport CoreRemoteSelect from '../../core-remote-select';\nimport { evaluateCondition } from '../composables/useConditionEvaluator';\nimport { createCascaderLazyLoad } from '../composables/useRemoteData';\nimport { parseCorePilot } from '../utils/parseCorePilotSchema';\nimport { isCompleteJSON } from '../utils/jsonUtils';\nimport { checkDisabled, DisabledCheckContext } from '../utils/disabledUtils';\nimport { InputSchema, CascaderSchema } from '@/types/index.ts';\nimport { computed, Ref } from 'vue';\n\n/**\n * 渲染骨架屏组件\n */\nconst renderSkeleton = () => {\n return h(\"div\", {\n class: \"hitl-skeleton\",\n }, [\n // 头部骨架\n h(\"div\", {\n class: \"skeleton-header\",\n }, [\n h(\"div\", { class: \"skeleton-avatar\" }),\n h(\"div\", { class: \"skeleton-title\" }),\n ]),\n // 内容骨架\n h(\"div\", { class: \"skeleton-item skeleton-item-long\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-medium\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-short\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-long\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-medium\" }),\n ]);\n};\n\n/**\n * 渲染器配置接口\n */\nexport interface RendererConfig {\n hitlData: Array<Record<string, any>>;\n formRefs: any;\n curIndex: number;\n getCurInit: () => number;\n btnClick: (index: number, action: string, payload: any, parentScope?: 'form' | 'table', skipValidation?: boolean) => void;\n uploadHeaders: Record<string, string>;\n uploadExtendData: Record<string, any>;\n disabledContext: DisabledCheckContext;\n}\n\n/**\n * 将hast(HTML AST)转换为Vue VNode\n * 性能优化:\n * 1. 使用缓存避免重复计算\n * 2. 延迟子节点渲染(仅在需要时渲染)\n * 3. 优化递归深度\n * \n * @param node - hast节点\n * @param config - 渲染器配置\n * @param index - 表单索引\n * @param row - 表格行数据\n * @returns Vue虚拟节点\n */\nexport const hastToVNode = (\n node: any,\n config: RendererConfig,\n index?: number,\n row?: any\n): any => {\n if (!node) return null;\n\n const {\n hitlData,\n formRefs,\n curIndex,\n getCurInit,\n btnClick,\n uploadHeaders,\n uploadExtendData,\n disabledContext,\n } = config;\n\n // 缓存子节点渲染函数,避免重复计算\n const renderChildren = (children: any[], formIndex?: number) => {\n if (!children || children.length === 0) return [];\n \n // 对于复杂表单,使用批量渲染优化\n // 优先使用传入的 formIndex,如果没有则使用当前的 index\n return children.map((child, idx) => {\n return hastToVNode(child, config, formIndex !== undefined ? formIndex : index, row);\n });\n };\n\n const blackTagNames = ['sub', 'pre', 'text', 'ElForm'];\n let children: any[] = [];\n\n if (!blackTagNames.includes(node.tagName)) {\n // 如果当前节点在表单中(index 是数字),继续传递这个 index 给子节点\n // 这样可以确保表单内的所有子节点(包括按钮)都能获取到正确的表单索引\n children = renderChildren(node.children || [], index);\n }\n\n switch (node.type) {\n case \"root\":\n return h(\n \"div\",\n { class: \"markdown-body\" },\n h(ElConfigProvider, {\n locale: zhCN,\n }, children)\n );\n\n case \"element\":\n // 处理 sub 标签(引用标记)\n if (node.tagName === \"sub\") {\n const formatChildren = [\n {\n type: \"element\",\n tagName: \"span\",\n properties: {\n class: \"x-markdown-split\",\n },\n },\n ...(node.children || [])\n ];\n const subChildren = formatChildren.map(child => hastToVNode(child, config, index));\n return h(\"span\", {\n ...node.properties,\n class: \"x-markdown-sub\",\n }, subChildren);\n }\n\n if (node.tagName === \"span\") {\n return h(\"span\", {\n ...node.properties,\n }, children);\n }\n\n // 处理特殊元素:图片、链接、代码块等\n if (node.tagName === \"img\") {\n return h(\"img\", {\n ...node.properties,\n class: \"markdown-image\",\n \"data-processed\": \"false\"\n });\n }\n\n if (node.tagName === \"a\") {\n const href = node.properties?.href || '';\n const fileType = href ? href.split('.').pop() : null;\n return h(\n \"a\",\n {\n ...node.properties,\n class: 'file-link',\n 'data-file-type': fileType,\n },\n children\n );\n }\n\n if (node.tagName === 'ElTimeline') {\n return h(ElTimeline, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'table') {\n return h(\n \"div\",\n { class: 'custom-table-container' },\n [h(\"table\", children)]\n );\n }\n\n if (node.tagName === 'view') {\n return h(\n 'div',\n { class: 'custom-view-container' },\n [children[curIndex]]\n );\n }\n\n if (node.tagName === 'ElRow') {\n return h(ElRow, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElCol') {\n return h(ElCol, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElCard') {\n return h(ElCard, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElTag') {\n return h(\n ElTag,\n {\n ...node.properties,\n },\n children\n )\n }\n\n if (node.tagName === 'CoreCard') {\n const slots: any = {};\n \n if (node.slots?.header) {\n slots.header = () => {\n return node.slots.header.map((slotItem: any) => {\n return hastToVNode(slotItem, config, index);\n });\n };\n }\n \n if (children && children.length > 0) {\n slots.default = () => children;\n }\n \n return h(CoreCard, {\n ...node.properties,\n }, slots);\n }\n\n // 表单相关元素\n if (node.tagName === 'ElForm') {\n const formIndex = getCurInit();\n const formChildren = (node.children || []).map((child: any) => \n hastToVNode(child, config, formIndex)\n );\n \n return h(\n ElForm,\n {\n ref: formRefs.set,\n model: hitlData[formIndex],\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n },\n formChildren\n );\n }\n\n if (node.tagName === 'ElFormItem') {\n const formItemProps: any = {\n ...node.properties,\n };\n\n // 条件控制:根据 dependencies.behavior.visible 决定是否渲染\n const dependencies = (node.properties && (node.properties as any).dependencies) || undefined;\n if (dependencies?.behavior?.visible && index !== undefined) {\n const formData = hitlData[index] || {};\n const visible = evaluateCondition(dependencies.behavior.visible, formData);\n if (!visible) {\n // 不可见时直接不渲染该表单项\n return null;\n }\n }\n\n return h(ElFormItem, formItemProps, children);\n }\n\n // 表单控件\n if (node.tagName === 'ElButton') {\n let payload = node.properties?.payload;\n if (node.parentScope === 'table') {\n payload = {\n ...payload,\n ...row,\n };\n }\n // 确保按钮在表单中使用正确的表单索引\n // 当 parentScope 是 'form' 时,index 应该是表单索引(从表单渲染时传递下来的)\n // 当 parentScope 不是 'form' 时,index 可能是 undefined 或其他值,但不会用于表单验证\n const buttonFormIndex = node.parentScope === 'form' ? index : undefined;\n const skipValidation = node.properties?.skipValidation || false;\n return h(\n ElButton,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n onClick: () => {\n // 如果按钮在表单中(parentScope === 'form'),必须使用正确的表单索引进行验证\n // 如果不在表单中,使用 0 作为默认值(但不会触发表单验证,因为 btnClick 会检查 parentScope)\n // 关键:index 在表单渲染时已经正确传递,所以 buttonFormIndex 应该是正确的表单索引\n // 如果 skipValidation 为 true,则跳过表单验证\n const validateIndex = buttonFormIndex !== undefined ? buttonFormIndex : (index !== undefined ? index : 0);\n btnClick(validateIndex, node.properties?.action, payload, node.parentScope, skipValidation);\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElSelect') {\n // 如果有 remote 配置,使用 CoreRemoteSelect 组件\n if (node.properties?.remote) {\n return h(CoreRemoteSelect, {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value: any) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n formData: hitlData[index!] || {},\n });\n }\n\n // 静态 options(向后兼容)\n const selectProps: any = {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value: any) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n };\n\n const selectChildren = node.properties?.options\n ? node.properties.options.map((opt: any) =>\n h(ElOption, {\n label: opt.label,\n value: opt.value,\n })\n )\n : children;\n\n return h(ElSelect, selectProps, selectChildren);\n }\n\n if (node.tagName === 'ElDatePicker') {\n return h(\n ElDatePicker,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElInput') {\n return h(\n ElInput,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElRadioGroup') {\n return h(\n ElRadioGroup,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value as string;\n }\n }\n },\n children\n );\n }\n\n if (node.tagName === 'ElRadio') {\n return h(\n ElRadio,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n },\n children\n );\n }\n\n if (node.tagName === 'ElCascader') {\n const cascaderProps: any = {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value: any) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n };\n\n // 处理懒加载\n const cascaderSchema = node as CascaderSchema;\n if (cascaderSchema.properties?.remote) {\n const formDataRef = computed(() => hitlData[index!] || {}) as Ref<Record<string, any>>;\n // TODO: 这里需要优化,因为 createCascaderLazyLoad 返回的是一个函数,而 ElCascader 的 lazyLoad 属性需要一个函数\n cascaderProps.props.lazyLoad = createCascaderLazyLoad(\n cascaderSchema.properties.remote,\n formDataRef\n );\n }\n\n console.log('====>', cascaderProps);\n\n return h(ElCascader, cascaderProps, children);\n }\n\n // 表格相关\n if (node.tagName === 'ElTable') {\n return h(\n CoreTable,\n {\n ...node.properties,\n },\n children\n );\n }\n\n if (node.tagName === 'ElTableColumn') {\n return h(\n ElTableColumn,\n {\n ...node.properties,\n },\n {\n default: (scope: any) => {\n const value = scope.row[node.properties?.prop];\n if (Array.isArray(value)) {\n return value.map((item: any) => {\n return node.children?.find((child: any) => child.value === item && child.value !== undefined);\n }).map((child: any) => hastToVNode(child, config, -Infinity, scope.row));\n }\n\n const childIndex = (node.children || []).findIndex(\n (child: any) => child.value === scope.row[node.properties?.prop] && child.value !== undefined\n );\n if (childIndex !== -1) {\n return hastToVNode(node.children?.[childIndex], config, -Infinity, scope.row);\n }\n return node.children?.map((child: any) => hastToVNode(child, config, -Infinity, scope.row));\n },\n }\n );\n }\n\n // 自定义组件\n if (node.tagName === 'CoreText') {\n return h(CoreText, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreTips') {\n return h(CoreTips, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreResult') {\n return h(CoreResult, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreChart') {\n return h(CoreChart, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreUpload') {\n // 如果在表单中,需要处理 formProp 和双向绑定\n if (node.parentScope === 'form' && node.properties?.formProp) {\n const formProp = node.properties.formProp;\n return h(\n CoreUpload,\n {\n headers: uploadHeaders,\n extendData: uploadExtendData,\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n fileList: hitlData[index!]?.[formProp] || [],\n 'onUpdate:fileList': (value: any) => {\n if (!hitlData[index!]) {\n hitlData[index!] = {};\n }\n // 针对目前上传的文件解析,CA 这边必须得放在files 属性中,故被迫需要进行兼容\n // 这里将基于 __files__ 去识别,后续在coreagent 的 adapter 中进行处理\n if (!hitlData[index!].__files__) {\n hitlData[index!].__files__ = {};\n }\n hitlData[index!].__files__[formProp] = value;\n hitlData[index!][formProp] = value;\n },\n }\n );\n }\n // 非表单场景,直接渲染\n return h(\n CoreUpload,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n }\n );\n }\n\n // 处理CorePilot代码块\n if (node.tagName === \"pre\") {\n const codeNode = node.children?.find((child: any) => child.tagName === \"code\");\n if (codeNode) {\n if (codeNode.properties?.className?.includes(\"language-CorePilot\")) {\n const code = codeNode.children?.[0]?.value || '';\n // 检查 JSON 是否完整\n if (!isCompleteJSON(code)) {\n // JSON 不完整,显示骨架屏\n return renderSkeleton();\n }\n try {\n const schema = JSON.parse(code);\n const viewTree = parseCorePilot(schema);\n const corePilotChildren = hastToVNode(viewTree, config);\n return h(\"div\", {\n class: \"hitl-wrapper\",\n }, [corePilotChildren]);\n } catch (error) {\n // JSON 解析失败,可能是格式错误,显示骨架屏\n return renderSkeleton();\n }\n }\n }\n }\n\n // 其他普通元素\n return h(\n node.tagName,\n node.properties,\n children\n );\n\n case \"text\":\n return node.value.trim();\n\n default:\n return null;\n }\n};\n\n"],"names":["children","zhCN","_a","_b","_c"],"mappings":"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"}
1
+ {"version":3,"file":"hastRenderer.js","sources":["../../../../../src/components/x-markdown/renderers/hastRenderer.ts"],"sourcesContent":["/**\n * HAST (HTML AST) 渲染器\n * 将 HAST 节点转换为 Vue VNode\n * 优化了复杂表单的性能问题\n */\n\nimport { h } from 'vue';\nimport {\n ElMessage,\n ElForm,\n ElFormItem,\n ElInput,\n ElCard,\n ElButton,\n ElSelect,\n ElOption,\n ElDatePicker,\n ElTableColumn,\n ElTimeline,\n ElRow,\n ElCol,\n ElRadioGroup,\n ElRadio,\n ElConfigProvider,\n ElTag,\n ElCascader,\n} from 'element-plus';\nimport zhCN from 'element-plus/es/locale/lang/zh-cn';\nimport CoreText from '../../core-text';\nimport CoreTips from '../../core-tips';\nimport CoreResult from '../../core-result';\nimport CoreTable from '../../core-table';\nimport CoreChart from '../../core-chart';\nimport CoreCard from '../../core-card';\nimport CoreUpload from '../../core-upload';\nimport CoreRemoteSelect from '../../core-remote-select';\nimport { evaluateCondition } from '../composables/useConditionEvaluator';\nimport { createCascaderLazyLoad } from '../composables/useRemoteData';\nimport { parseCorePilot } from '../utils/parseCorePilotSchema';\nimport { isCompleteJSON } from '../utils/jsonUtils';\nimport { checkDisabled, DisabledCheckContext } from '../utils/disabledUtils';\nimport { InputSchema, CascaderSchema } from '@/types/index.ts';\nimport { computed, Ref } from 'vue';\n\n/**\n * 渲染骨架屏组件\n */\nconst renderSkeleton = () => {\n return h(\"div\", {\n class: \"hitl-skeleton\",\n }, [\n // 头部骨架\n h(\"div\", {\n class: \"skeleton-header\",\n }, [\n h(\"div\", { class: \"skeleton-avatar\" }),\n h(\"div\", { class: \"skeleton-title\" }),\n ]),\n // 内容骨架\n h(\"div\", { class: \"skeleton-item skeleton-item-long\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-medium\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-short\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-long\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-medium\" }),\n ]);\n};\n\n/**\n * 渲染器配置接口\n */\nexport interface RendererConfig {\n hitlData: Array<Record<string, any>>;\n formRefs: any;\n curIndex: number;\n getCurInit: () => number;\n btnClick: (index: number, action: string, payload: any, parentScope?: 'form' | 'table', skipValidation?: boolean) => void;\n uploadHeaders: Record<string, string>;\n uploadExtendData: Record<string, any>;\n disabledContext: DisabledCheckContext;\n}\n\n/**\n * 将hast(HTML AST)转换为Vue VNode\n * 性能优化:\n * 1. 使用缓存避免重复计算\n * 2. 延迟子节点渲染(仅在需要时渲染)\n * 3. 优化递归深度\n * \n * @param node - hast节点\n * @param config - 渲染器配置\n * @param index - 表单索引\n * @param row - 表格行数据\n * @returns Vue虚拟节点\n */\nexport const hastToVNode = (\n node: any,\n config: RendererConfig,\n index?: number,\n row?: any\n): any => {\n if (!node) return null;\n\n const {\n hitlData,\n formRefs,\n curIndex,\n getCurInit,\n btnClick,\n uploadHeaders,\n uploadExtendData,\n disabledContext,\n } = config;\n\n // 缓存子节点渲染函数,避免重复计算\n const renderChildren = (children: any[], formIndex?: number) => {\n if (!children || children.length === 0) return [];\n \n // 对于复杂表单,使用批量渲染优化\n // 优先使用传入的 formIndex,如果没有则使用当前的 index\n return children.map((child, idx) => {\n return hastToVNode(child, config, formIndex !== undefined ? formIndex : index, row);\n });\n };\n\n const blackTagNames = ['sub', 'pre', 'text', 'ElForm'];\n let children: any[] = [];\n\n if (!blackTagNames.includes(node.tagName)) {\n // 如果当前节点在表单中(index 是数字),继续传递这个 index 给子节点\n // 这样可以确保表单内的所有子节点(包括按钮)都能获取到正确的表单索引\n children = renderChildren(node.children || [], index);\n }\n\n switch (node.type) {\n case \"root\":\n return h(\n \"div\",\n { class: \"markdown-body\" },\n h(ElConfigProvider, {\n locale: zhCN,\n }, children)\n );\n\n case \"element\":\n // 处理 sub 标签(引用标记)\n if (node.tagName === \"sub\") {\n const formatChildren = [\n {\n type: \"element\",\n tagName: \"span\",\n properties: {\n class: \"x-markdown-split\",\n },\n },\n ...(node.children || [])\n ];\n const subChildren = formatChildren.map(child => hastToVNode(child, config, index));\n return h(\"span\", {\n ...node.properties,\n class: \"x-markdown-sub\",\n }, subChildren);\n }\n\n if (node.tagName === \"span\") {\n return h(\"span\", {\n ...node.properties,\n }, children);\n }\n\n // 处理特殊元素:图片、链接、代码块等\n if (node.tagName === \"img\") {\n return h(\"img\", {\n ...node.properties,\n class: \"markdown-image\",\n \"data-processed\": \"false\"\n });\n }\n\n if (node.tagName === \"a\") {\n const href = node.properties?.href || '';\n const fileType = href ? href.split('.').pop() : null;\n return h(\n \"a\",\n {\n ...node.properties,\n class: 'file-link',\n 'data-file-type': fileType,\n },\n children\n );\n }\n\n if (node.tagName === 'ElTimeline') {\n return h(ElTimeline, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'table') {\n return h(\n \"div\",\n { class: 'custom-table-container' },\n [h(\"table\", children)]\n );\n }\n\n if (node.tagName === 'view') {\n return h(\n 'div',\n { class: 'custom-view-container' },\n [children[curIndex]]\n );\n }\n\n if (node.tagName === 'ElRow') {\n return h(ElRow, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElCol') {\n return h(ElCol, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElCard') {\n return h(ElCard, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElTag') {\n return h(\n ElTag,\n {\n ...node.properties,\n },\n children\n )\n }\n\n if (node.tagName === 'CoreCard') {\n const slots: any = {};\n \n if (node.slots?.header) {\n slots.header = () => {\n return node.slots.header.map((slotItem: any) => {\n return hastToVNode(slotItem, config, index);\n });\n };\n }\n \n if (children && children.length > 0) {\n slots.default = () => children;\n }\n \n return h(CoreCard, {\n ...node.properties,\n }, slots);\n }\n\n // 表单相关元素\n if (node.tagName === 'ElForm') {\n const formIndex = getCurInit();\n const formChildren = (node.children || []).map((child: any) => \n hastToVNode(child, config, formIndex)\n );\n \n return h(\n ElForm,\n {\n ref: formRefs.set,\n model: hitlData[formIndex],\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n },\n formChildren\n );\n }\n\n if (node.tagName === 'ElFormItem') {\n const formItemProps: any = {\n ...node.properties,\n };\n\n // 条件控制:根据 dependencies.behavior.visible 决定是否渲染\n const dependencies = (node.properties && (node.properties as any).dependencies) || undefined;\n if (dependencies?.behavior?.visible && index !== undefined) {\n const formData = hitlData[index] || {};\n const visible = evaluateCondition(dependencies.behavior.visible, formData);\n if (!visible) {\n // 不可见时直接不渲染该表单项\n return null;\n }\n }\n\n return h(ElFormItem, formItemProps, children);\n }\n\n // 表单控件\n if (node.tagName === 'ElButton') {\n let payload = node.properties?.payload;\n if (node.parentScope === 'table') {\n payload = {\n ...payload,\n ...row,\n };\n }\n // 确保按钮在表单中使用正确的表单索引\n // 当 parentScope 是 'form' 时,index 应该是表单索引(从表单渲染时传递下来的)\n // 当 parentScope 不是 'form' 时,index 可能是 undefined 或其他值,但不会用于表单验证\n const buttonFormIndex = node.parentScope === 'form' ? index : undefined;\n const skipValidation = node.properties?.skipValidation || false;\n return h(\n ElButton,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n onClick: () => {\n // 如果按钮在表单中(parentScope === 'form'),必须使用正确的表单索引进行验证\n // 如果不在表单中,使用 0 作为默认值(但不会触发表单验证,因为 btnClick 会检查 parentScope)\n // 关键:index 在表单渲染时已经正确传递,所以 buttonFormIndex 应该是正确的表单索引\n // 如果 skipValidation 为 true,则跳过表单验证\n const validateIndex = buttonFormIndex !== undefined ? buttonFormIndex : (index !== undefined ? index : 0);\n btnClick(validateIndex, node.properties?.action, payload, node.parentScope, skipValidation);\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElSelect') {\n // 如果有 remote 配置,使用 CoreRemoteSelect 组件\n if (node.properties?.remote) {\n return h(CoreRemoteSelect, {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value: any) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n formData: hitlData[index!] || {},\n });\n }\n\n // 静态 options(向后兼容)\n const selectProps: any = {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value: any) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n };\n\n const selectChildren = node.properties?.options\n ? node.properties.options.map((opt: any) =>\n h(ElOption, {\n label: opt.label,\n value: opt.value,\n })\n )\n : children;\n\n return h(ElSelect, selectProps, selectChildren);\n }\n\n if (node.tagName === 'ElDatePicker') {\n return h(\n ElDatePicker,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElInput') {\n return h(\n ElInput,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElRadioGroup') {\n return h(\n ElRadioGroup,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value as string;\n }\n }\n },\n children\n );\n }\n\n if (node.tagName === 'ElRadio') {\n return h(\n ElRadio,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n },\n children\n );\n }\n\n if (node.tagName === 'ElCascader') {\n const cascaderProps: any = {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value: any) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n };\n\n // 处理懒加载\n const cascaderSchema = node as CascaderSchema;\n if (cascaderSchema.properties?.remote) {\n const formDataRef = computed(() => hitlData[index!] || {}) as Ref<Record<string, any>>;\n // TODO: 这里需要优化,因为 createCascaderLazyLoad 返回的是一个函数,而 ElCascader 的 lazyLoad 属性需要一个函数\n cascaderProps.props.lazyLoad = createCascaderLazyLoad(\n cascaderSchema.properties.remote,\n formDataRef\n );\n }\n\n console.log('====>', cascaderProps);\n\n return h(ElCascader, cascaderProps, children);\n }\n\n // 表格相关\n if (node.tagName === 'ElTable') {\n return h(\n CoreTable,\n {\n ...node.properties,\n },\n children\n );\n }\n\n if (node.tagName === 'ElTableColumn') {\n return h(\n ElTableColumn,\n {\n ...node.properties,\n },\n {\n default: (scope: any) => {\n const value = scope.row[node.properties?.prop];\n if (Array.isArray(value)) {\n return value.map((item: any) => {\n return node.children?.find((child: any) => child.value === item && child.value !== undefined);\n }).map((child: any) => hastToVNode(child, config, -Infinity, scope.row));\n }\n\n const childIndex = (node.children || []).findIndex(\n (child: any) => child.value === scope.row[node.properties?.prop] && child.value !== undefined\n );\n if (childIndex !== -1) {\n return hastToVNode(node.children?.[childIndex], config, -Infinity, scope.row);\n }\n return node.children?.map((child: any) => hastToVNode(child, config, -Infinity, scope.row));\n },\n }\n );\n }\n\n // 自定义组件\n if (node.tagName === 'CoreText') {\n return h(CoreText, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreTips') {\n return h(CoreTips, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreResult') {\n return h(CoreResult, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreChart') {\n return h(CoreChart, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreUpload') {\n // 如果在表单中,需要处理 formProp 和双向绑定\n if (node.parentScope === 'form' && node.properties?.formProp) {\n const formProp = node.properties.formProp;\n return h(\n CoreUpload,\n {\n headers: uploadHeaders,\n extendData: uploadExtendData,\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n fileList: hitlData[index!]?.[formProp] || [],\n 'onUpdate:fileList': (value: any) => {\n if (!hitlData[index!]) {\n hitlData[index!] = {};\n }\n // 针对目前上传的文件解析,CA 这边必须得放在files 属性中,故被迫需要进行兼容\n // 这里将基于 __files__ 去识别,后续在coreagent 的 adapter 中进行处理\n if (!hitlData[index!].__files__) {\n hitlData[index!].__files__ = {};\n }\n hitlData[index!].__files__[formProp] = value;\n hitlData[index!][formProp] = value;\n },\n }\n );\n }\n // 非表单场景,直接渲染\n return h(\n CoreUpload,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n }\n );\n }\n\n // 处理CorePilot代码块\n if (node.tagName === \"pre\") {\n const codeNode = node.children?.find((child: any) => child.tagName === \"code\");\n if (codeNode) {\n if (codeNode.properties?.className?.includes(\"language-CorePilot\")) {\n const code = codeNode.children?.[0]?.value || '';\n // 检查 JSON 是否完整\n if (!isCompleteJSON(code)) {\n // JSON 不完整,显示骨架屏\n return renderSkeleton();\n }\n try {\n const schema = JSON.parse(code);\n const viewTree = parseCorePilot(schema);\n const corePilotChildren = hastToVNode(viewTree, config);\n return h(\"div\", {\n class: \"hitl-wrapper\",\n }, [corePilotChildren]);\n } catch (error) {\n // JSON 解析失败,可能是格式错误,显示骨架屏\n return renderSkeleton();\n }\n }\n // 其他情况,直接渲染代码块\n return h(\"pre\", {\n ...node.properties,\n }, codeNode.children?.[0]?.value || '');\n }\n }\n\n // 其他普通元素\n return h(\n node.tagName,\n node.properties,\n children\n );\n\n case \"text\":\n return node.value.trim();\n\n default:\n return null;\n }\n};\n\n"],"names":["children","zhCN","_a","_b","_c"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@core-pilot/client-vue",
3
- "version": "0.0.16",
3
+ "version": "0.0.17",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/es/index.js",
6
6
  "browser": "dist/umd/index.js",