@gientech/modual 1.4.7 → 1.5.0

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.
Files changed (63) hide show
  1. package/dist/assets/{GientechStreamReader-4496nAm0.js → GientechStreamReader-BE_oxQLt.js} +2 -2
  2. package/dist/assets/Input-CNqIA41v.js +236 -0
  3. package/dist/assets/index-Bof0D4vl.js +1088 -0
  4. package/dist/assets/{index-BVENTW1Q.js → index-C5RhLYRh.js} +1 -1
  5. package/dist/assets/index-COcmK9my.js +1 -0
  6. package/dist/assets/index-CysDmrpo.js +1798 -0
  7. package/dist/assets/{index-7rZAt9P3.js → index-DP8Ki8qW.js} +1 -1
  8. package/dist/assets/index-pybYlMAT.js +11 -0
  9. package/dist/assets/{plus-CrtEUXaQ.js → plus-CzbYbK8K.js} +1 -1
  10. package/dist/assets/style3.css +1 -1
  11. package/dist/assets/worker-BbpylX7l.js +13 -0
  12. package/dist/assets/{x-Dr3EBTzJ.js → x-DdRafKQU.js} +1 -1
  13. package/dist/chat.d.ts +17 -0
  14. package/dist/chat.js +3830 -52
  15. package/dist/database.js +2 -2
  16. package/dist/databaseId.js +1 -11
  17. package/dist/databaseTable.js +2 -2
  18. package/dist/index.d.ts +4 -0
  19. package/dist/index.js +1 -14
  20. package/dist/modelManage.js +1 -1
  21. package/dist/package.json +1 -1
  22. package/dist/sensitive.js +1 -1
  23. package/dist/streamFilesReader.js +1 -1
  24. package/package.json +6 -6
  25. package/scripts/README.md +133 -133
  26. package/scripts/build-demo.js +88 -88
  27. package/scripts/demo-selector.js +216 -216
  28. package/scripts/preview-demo.js +130 -130
  29. package/scripts/run-demo.bat +34 -34
  30. package/src/assets/img/close.png +0 -0
  31. package/src/assets/img/database.png +0 -0
  32. package/src/assets/img/downLoad.png +0 -0
  33. package/src/assets/img/graphIcon.png +0 -0
  34. package/src/assets/img/pdf.png +0 -0
  35. package/src/assets/img/singleQa.png +0 -0
  36. package/src/assets/img/webSearch.png +0 -0
  37. package/src/examples/chat/index.tsx +5 -29
  38. package/src/main.tsx.backup +2 -2
  39. package/src/modules/chat/ReferenceBar.tsx +13 -0
  40. package/src/modules/chat/constants.tsx +29 -6
  41. package/src/modules/chat/index.tsx +126 -4
  42. package/src/utils/gientechCommon/components/ReferenceListDrawer.tsx +542 -0
  43. package/src/utils/gientechCommon/components/hooks/useAichatEvent.ts +10 -0
  44. package/src/utils/gientechCommon/components/referenceCom/DeleteModal.tsx +75 -0
  45. package/src/utils/gientechCommon/components/referenceCom/DrawerContent.tsx +136 -0
  46. package/src/utils/gientechCommon/components/referenceCom/DrawerDatabase.tsx +110 -0
  47. package/src/utils/gientechCommon/components/referenceCom/DrawerGraphPreview.tsx +86 -0
  48. package/src/utils/gientechCommon/components/referenceCom/DrawerPreview.tsx +73 -0
  49. package/src/utils/gientechCommon/components/referenceCom/DrawerTitle.tsx +26 -0
  50. package/src/utils/gientechCommon/components/referenceCom/RenameModal.tsx +86 -0
  51. package/src/utils/gientechCommon/components/referenceCom/TagCom.tsx +30 -0
  52. package/src/utils/gientechCommon/components/style.css +3 -0
  53. package/src/utils/gientechCommon/components/utils/index.ts +326 -0
  54. package/src/utils/testconfigs/index.ts +1 -1
  55. package/stats.html +1 -1
  56. package/dist/assets/AppLoading-mci3gLZt.js +0 -414
  57. package/dist/assets/index-Bb8_WB-l.js +0 -1
  58. package/dist/assets/index-BpJ9Bm5x.js +0 -21
  59. package/dist/assets/index-CNxDI4h-.js +0 -1078
  60. package/dist/assets/index-CWzpBU29.js +0 -1
  61. package/dist/assets/index-D1m34Ij7.js +0 -1429
  62. package/dist/assets/index-_gBtdXQV.js +0 -585
  63. package/dist/assets/style4.css +0 -1
@@ -1 +1 @@
1
- import{jsx as l,jsxs as Z}from"react/jsx-runtime";import{useState as M,useMemo as P,useRef as Y,useEffect as ae}from"react";import{a as le,J as z,T as X,m as re}from"./assets/index-D1m34Ij7.js";import{M as O}from"./assets/index-_gBtdXQV.js";import{D as ne}from"./assets/index-Bb8_WB-l.js";import{X as ie}from"./assets/x-Dr3EBTzJ.js";/* empty css */import{P as ce}from"./assets/plus-CrtEUXaQ.js";import{s as j,M as de}from"./assets/index-BpJ9Bm5x.js";import{B as G}from"./assets/index-7rZAt9P3.js";import"react-dom";const me=""+new URL("assets/empty.png",import.meta.url).href,pe=({url:u,token:C,role:p,eventsEmit:F})=>{const y=le.create({baseURL:u,timeout:1e6});return y.interceptors.request.use(e=>{let t=C;return!t&&!["user/login","user/kaptcha","user/regist"].some(i=>e.url.includes(i))?(F&&F("request:error_auth",{errorMsg:"\u672A\u767B\u5F55\u6216token\u5DF2\u8FC7\u671F",redirect:"/login"}),Promise.reject(new Error("\u672A\u767B\u5F55\u6216token\u5DF2\u8FC7\u671F"))):(e.headers.Authorization=t||"",e.headers.userName=p==="\u672A\u767B\u5F55\u7528\u6237"?"":p,e)}),y.interceptors.response.use(e=>{const t=["user/kaptcha"],o=e.data;if(t.some(m=>e.config.url&&e.config.url.includes(m))||o.size&&o.type)return o;const{success:i,errorMsg:h,errorCode:a}=o;return i?o:(F&&F("request:error_business",{errorCode:a,errorMsg:h||"\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",response:o}),!1)},e=>{var t,o,i,h,a,m,E,w,B;if(e.message==="canceled")return Promise.reject(e);if(F){let S="request:error_network",R={errorMsg:"\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25",error:e};((t=e==null?void 0:e.response)==null?void 0:t.status)===401?(S="request:error_auth",R={errorMsg:"\u6CA1\u6709\u8DB3\u591F\u6743\u9650",error:e,redirect:"/login"}):(((i=(o=e==null?void 0:e.response)==null?void 0:o.data)==null?void 0:i.errorCode)==="30013"||((a=(h=e==null?void 0:e.response)==null?void 0:h.data)==null?void 0:a.errorCode)==="30023")&&(S="request:error_business",R={errorCode:(E=(m=e==null?void 0:e.response)==null?void 0:m.data)==null?void 0:E.errorCode,errorMsg:((B=(w=e==null?void 0:e.response)==null?void 0:w.data)==null?void 0:B.message)||"\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",error:e}),F(S,R)}return Promise.reject(e)}),{getModelList:async e=>{try{const t=await y.get(`/allPage?${new URLSearchParams(e).toString()}`),{success:o,data:i}=t;if(o)return i}catch(t){return console.log("getModelList error:",t),!1}},delModelById:async e=>{try{const t=await y.delete(`/delete?id=${e}`),{success:o,data:i}=t;if(o)return i}catch(t){console.log("delModelById error:",t)}},createModel:async e=>{try{const t=await y.post("/create",e),{success:o,data:i}=t;if(o)return i}catch(t){console.log("createModel error:",t)}},updateModelById:async e=>{try{const t=await y.put("/update",e),{success:o,data:i}=t;if(o)return i}catch(t){console.log("updateModelById error:",t)}},getUseTypeList:async()=>{try{const e=await y.get("/getModelTypes"),{success:t,data:o}=e;if(t)return o}catch(e){return console.log("getUseTypeList error:",e),!1}},getModelProtocolsList:async()=>{try{const e=await y.get("/getModelProtocols"),{success:t,data:o}=e;if(t)return o}catch(e){return console.log("getModelProtocolsList error:",e),!1}}}},Fe=({drawerTitle:u,drawerVisible:C,modelInfo:p,handleDrawerClose:F,modelUseTypeOpt:y,modelProtocolsOpt:k,eventsEmit:g})=>{const[q,L]=M(!1),[d,x]=M(!1),e=P(()=>({id:"config-model",layout:"vertical",formWidth:"550px",fields:[{id:"modelName",name:"modelName",label:"\u6A21\u578B\u540D\u79F0",type:"input",required:!0,placeholder:"\u8BF7\u8F93\u5165\u6A21\u578B\u540D\u79F0",counter:30},{id:"modelIde",name:"modelIde",label:"\u6A21\u578BID",type:"input",required:!0,placeholder:"\u8BF7\u8F93\u5165\u6A21\u578BID",defaultValue:""},{id:"apiKey",name:"apiKey",label:"APIKey",type:"input",required:!1,placeholder:"\u8BF7\u8F93\u5165APIKey",defaultValue:""},{id:"url",name:"url",label:"\u8BF7\u6C42URL",type:"input",required:!0,placeholder:"\u8BF7\u8F93\u5165\u8BF7\u6C42URL",defaultValue:""},{id:"modelProtocol",name:"modelProtocol",label:"\u6A21\u578B\u4F20\u8F93\u534F\u8BAE",type:"select",required:!0,options:k},{id:"type",name:"type",label:"\u4F7F\u7528\u7C7B\u578B",type:"select",required:!0,options:y,defaultValue:1,controlledItems:{1:["thinking"]}},{id:"dec",name:"dec",label:"\u8BF4\u660E",type:"textarea",required:!1},{id:"thinking",name:"thinking",label:"\u63A8\u7406\u601D\u8003\u5F00\u5173",type:"switch",required:!1,helpText:"\u5982\u679C\u60A8\u90E8\u7F72\u7684\u6A21\u578B\u672C\u8EAB\u5177\u6709\u63A8\u7406\u601D\u8003\u7684\u5F00\u5173\uFF0C\u60A8\u53EF\u4EE5\u6253\u5F00\u5F53\u524D\u5F00\u5173\u652F\u6301\u63A8\u7406\u601D\u8003\u80FD\u529B\uFF0C\u5982Qwen3"}]}),[p,y,k]),t=Y(null),o=async(a,m,E)=>{var w;switch(console.log("[Form] eventsEmit:",a,m,E),a){case"form:ready":m.formRef&&(t.current=m.formRef);break;case"form:change":if(!((w=t.current)!=null&&w.getValue)){console.log("\u8868\u5355\u5F15\u7528\u672A\u5C31\u7EEA\uFF0C\u8DF3\u8FC7 formdata_onchange \u4E8B\u4EF6");return}const B=await t.current.getValue("type");B==2||B==3?x(!0):x(!1);break;default:console.log("\u672A\u5904\u7406\u7684\u4E8B\u4EF6:",a,m)}g==null||g(a,m,E)},i=async()=>{try{L(!0);const a=await t.current.getAllData();a.isValid&&(p!=null&&p.id?await g("form_submitted_edit",a,void 0):await g("form_submitted_add",a,void 0))}catch(a){console.error("\u274C \u63D0\u4EA4\u8868\u5355\u6570\u636E\u5931\u8D25:",a)}finally{L(!1)}},h=P(()=>{const a=p==null?void 0:p.data.reduce((m,E)=>(m[E.columnId]=E.value,m),{});return{label:"\u52A8\u6001\u8868\u5355\u793A\u4F8B",defaultActiveId:e.id,model:null,views:[{label:"\u7528\u6237\u6CE8\u518C\u8868\u5355",id:e.id,type:"form",size:"md",formWidth:e.formWidth,formConfig:{layout:e.layout,showReset:!1,showSubmit:!1,formWidth:e.formWidth}}],dataSource:[{id:e.id,fields:e.fields,defaultValues:a||{}}],eventsEmit:o}},[p,d,e]);return l(ne,{title:u,placement:"right",width:560,onClose:F,closeIcon:!1,extra:l(ie,{size:20,color:"#888888",onClick:F,className:"cursor-pointer"}),open:C,destroyOnHidden:!0,footer:Z("div",{className:"flex justify-end items-center gap-3",children:[l(z,{mode:"default",label:"\u53D6\u6D88",onClick:F}),l(z,{mode:"primary",label:"\u786E\u8BA4",loading:q,onClick:i})]}),children:l(O,{...h},"example-form")})},K={success:"green",error:"red",warning:"orange",processing:"blue",info:"cyan",default:"default"},N=[{statusType:"success",value:"\u53EF\u7528",status:1},{statusType:"error",value:"\u4E0D\u53EF\u7528",status:0}],fe=u=>typeof u=="string"&&u in K?K[u]:K.default;var V=(u=>(u[u.DATE=0]="DATE",u[u.VIEW=1]="VIEW",u[u.ERROR=2]="ERROR",u[u.AUTHORIZE=3]="AUTHORIZE",u[u.DELETE=4]="DELETE",u[u.ANALYSIS_OR_EXTRACT=5]="ANALYSIS_OR_EXTRACT",u[u.DOWNLOAD=6]="DOWNLOAD",u[u.EDIT=7]="EDIT",u[u.ADD=8]="ADD",u[u.ANALYSIS_CONFIG=9]="ANALYSIS_CONFIG",u[u.AUTHORIZE_CONFIG=10]="AUTHORIZE_CONFIG",u))(V||{});const{confirm:ye}=de,ge={pageNum:1,pageSize:1e3},Ae=u=>{const{value:C,cell:p}=u,F=fe(u.cell.statusType);return C=="\u4E0D\u53EF\u7528"?l(X,{title:p.errorMsg,children:l("div",{className:"flex items-center gap-2",children:l(G,{color:F,text:C})})}):l(G,{color:F,text:C})};function xe(u){const{url:C,token:p,role:F,CustomComponents:y,eventsEmit:k,getBtnDisabled:g}=u,[q,L]=M({container:"ready",content:"ready"}),d=Y(null),[x,e]=M(),[t,o]=M(!1),[i,h]=M(""),[a,m]=M(),[E,w]=M([]),[B,S]=M([]),{getModelList:R,delModelById:J,createModel:Q,updateModelById:_,getUseTypeList:T,getModelProtocolsList:ee}=pe({url:C,token:p,role:F,eventsEmit:k});ae(()=>{L(n=>({...n,content:"loading"})),te()},[]);const ue=n=>(n||[]).map((s,D)=>{let r=N.find(A=>A.status==s.status);return{id:s.id,data:[{columnId:"modelName",value:s.modelName},{columnId:"modelProtocol",value:s.modelProtocol,type:"customized"},{columnId:"type",value:s.type,type:"customized"},{columnId:"dec",value:s.dec},{columnId:"status",...r,type:"customized",errorMsg:s.errorMsg},{columnId:"actions",value:"edit",label:"\u7F16\u8F91",type:"action",disabled:g&&g(V.EDIT,s.permission)},{columnId:"actions",value:"auth",label:"\u6388\u6743",type:"action",disabled:g&&g(V.AUTHORIZE,s.permission)},{columnId:"actions",value:"delete",label:"\u5220\u9664",type:"action",disabled:g&&g(V.AUTHORIZE,s.permission)},{columnId:"url",value:s.url},{columnId:"apiKey",value:s.apiKey},{columnId:"modelIde",value:s.modelIde},{columnId:"thinking",value:s.thinking}]}}),te=async()=>{try{const[n,s,D]=await Promise.allSettled([R(ge),T(),ee()]);if(n.status==="fulfilled"&&n.value){const r=ue(n.value.records);e(r||[]),L(A=>({...A,content:"ready"}))}s.status==="fulfilled"&&s.value&&w((s.value||[]).map(r=>({...r,value:Number(r.value)}))),D.status==="fulfilled"&&D.value&&S((D.value||[]).map(r=>({...r,value:Number(r.value)})))}catch(n){console.error("[TableApiError] getTableList:",n)}},se=P(()=>({label:"\u6570\u636E\u5E93\u8868\u683C",defaultActiveId:"model-table",model:null,views:[{label:"\u6A21\u578B",id:"model-table",type:"table",viewBehavior:"pagination",allowMultiSelect:!1,viewPageSize:10,columns:[{id:"modelName",title:"\u6A21\u578B\u540D\u79F0",type:"label"},{id:"modelProtocol",title:"\u6A21\u578B\u4F20\u8F93\u534F\u8BAE",type:"customized",component:n=>{var r;const{value:s}=n,D=(r=B.find(A=>A.value==s))==null?void 0:r.label;return l("span",{children:D})}},{id:"type",title:"\u4F7F\u7528\u7C7B\u578B",type:"customized",component:n=>{var r;const{value:s}=n,D=(r=E.find(A=>A.value==s))==null?void 0:r.label;return l("span",{children:D})}},{id:"dec",title:"\u8BF4\u660E",type:"paragraph"},{id:"status",title:"\u72B6\u6001",type:"customized",component:l(Ae,{}),helpText:"\u5F53\u524D\u6A21\u578B\u72B6\u6001\u4E3A\u521D\u6B21\u65B0\u589E\u6821\u9A8C\u72B6\u6001\uFF0C\u82E5\u6A21\u578B\u4E0B\u7EBF\uFF0C\u6B64\u72B6\u6001\u4E0D\u4F1A\u4E3B\u52A8\u66F4\u65B0\uFF0C\u9700\u624B\u52A8\u6267\u884C\u6A21\u578B\u5220\u9664"},{id:"actions",title:"\u64CD\u4F5C",type:"customized",component:n=>{const{value:s,cell:D,row:r}=n,{disabled:A,label:U}=D;return A?l(X,{title:"\u89D2\u8272\u65E0\u6743\u9650\u64CD\u4F5C",children:l(z,{mode:"text",label:U,disabled:A})}):l(z,{mode:"text",label:U,onClick:()=>H(`table_action_${s}`,r,void 0)})}}],toolbar:[{type:"button",btnType:"primary",key:"add",label:"\u65B0\u5EFA",icon:l(ce,{})}]}]}),[x,E,B]),oe=()=>Z("div",{className:"flex flex-col items-center justify-center h-full",children:[l("div",{className:"text-xl font-semibold mb-3",style:{color:"#374151"},children:l("img",{src:me,width:120})}),l("div",{className:"text-base mb-6",style:{color:"#6b7280"},children:"\u6682\u65E0\u6570\u636E\uFF0C\u8BF7\u5148\u65B0\u5EFA\u6A21\u578B"}),l("div",{className:"flex gap-3",children:l(z,{mode:"primary",label:"\u65B0\u5EFA\u6A21\u578B",onClick:()=>{h("\u65B0\u5EFA"),o(!0)}})})]});async function H(n,s,D){var r,A,U,$;switch(console.log("[adopter] mergedEventsEmit",n,s,D),n){case"toolbar_add":{h("\u65B0\u5EFA"),o(!0);break}case"table_action_delete":{try{const b=s.data.find(f=>f.columnId=="modelName").value;ye({title:"\u786E\u8BA4\u5220\u9664\uFF1F",content:`\u786E\u5B9A\u8981\u5220\u9664\u6A21\u578B \u201C${b}\u201D \u5417\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u6062\u590D\u3002`,okText:"\u5220\u9664",cancelText:"\u53D6\u6D88",async onOk(){await J(s.id)&&(d!=null&&d.current)&&(d==null||d.current.appFn.removeItem(s.id),j.success("\u5220\u9664\u6210\u529F"))}})}catch(b){console.error("\u5220\u9664\u8868\u6570\u636E\u5931\u8D25",b)}break}case"table_action_edit":{h("\u7F16\u8F91"),o(!0),m(s);break}case"form_submitted_add":{try{const b=s.fields.reduce((v,I)=>(v[I.name]=I.value,v),{}),f=await Q({...b});if(f){let v=N.find(c=>c.status==f.status);const I={id:f.id,data:[...(Object.keys(f)||[]).map(c=>({columnId:c,value:f[c],...(c=="modelProtocol"||c=="type")&&{type:"customized"},...c=="status"&&{...v,type:"customized",errorMsg:f.errorMsg}})),{columnId:"actions",value:"edit",label:"\u7F16\u8F91",type:"action"},{columnId:"actions",value:"auth",label:"\u6388\u6743",type:"action"},{columnId:"actions",value:"delete",label:"\u5220\u9664",type:"action"}]};(A=(r=d==null?void 0:d.current)==null?void 0:r.appFn)==null||A.addItem(I,{animate:!0,position:"start"}),j.success("\u6A21\u578B\u65B0\u589E\u6210\u529F\uFF01")}}catch(b){console.error("\u4FDD\u5B58\u5931\u8D25\uFF01",b)}finally{W()}break}case"form_submitted_edit":{try{const b=s.fields.reduce((v,I)=>(v[I.name]=I.value,v),{}),f=await _({...b,id:a.id});if(f){let v=N.find(c=>c.status==f.status);const I={...a,data:a.data.map(c=>{if(f[c.columnId]!==null&&f[c.columnId]!==void 0){if(c.columnId=="status")return{...c,...v};c.value=f[c.columnId]}return c})};($=(U=d==null?void 0:d.current)==null?void 0:U.appFn)==null||$.updateItem(I,a==null?void 0:a.id),j.success("\u6A21\u578B\u7F16\u8F91\u6210\u529F\uFF01")}}catch(b){console.error("\u4FDD\u5B58\u5931\u8D25\uFF01",b)}finally{W()}break}default:typeof u.eventsEmit=="function"&&u.eventsEmit(n,s);break}}const W=()=>{o(!1),m(void 0)};return Z(re,{title:"\u6A21\u578B\u7BA1\u7406",children:[l(O,{dataSource:x,ref:d,eventsEmit:H,status:q,CustomComponents:{EmptyData:oe,...y},...se}),l(Fe,{drawerTitle:i,drawerVisible:t,handleDrawerClose:W,modelInfo:a,modelUseTypeOpt:E,modelProtocolsOpt:B,eventsEmit:H})]})}export{xe as default};
1
+ import{jsx as l,jsxs as Z}from"react/jsx-runtime";import{useState as M,useMemo as P,useRef as Y,useEffect as ae}from"react";import{M as X,J as z,s as j,a as le,m as re}from"./assets/index-CysDmrpo.js";import{a as ne,T as O}from"./assets/Input-CNqIA41v.js";import{D as ie}from"./assets/index-COcmK9my.js";import{X as ce}from"./assets/x-DdRafKQU.js";/* empty css */import{P as de}from"./assets/plus-CzbYbK8K.js";import{B as G}from"./assets/index-DP8Ki8qW.js";import"react-dom";const me=""+new URL("assets/empty.png",import.meta.url).href,pe=({url:u,token:C,role:p,eventsEmit:F})=>{const y=ne.create({baseURL:u,timeout:1e6});return y.interceptors.request.use(e=>{let t=C;return!t&&!["user/login","user/kaptcha","user/regist"].some(i=>e.url.includes(i))?(F&&F("request:error_auth",{errorMsg:"\u672A\u767B\u5F55\u6216token\u5DF2\u8FC7\u671F",redirect:"/login"}),Promise.reject(new Error("\u672A\u767B\u5F55\u6216token\u5DF2\u8FC7\u671F"))):(e.headers.Authorization=t||"",e.headers.userName=p==="\u672A\u767B\u5F55\u7528\u6237"?"":p,e)}),y.interceptors.response.use(e=>{const t=["user/kaptcha"],o=e.data;if(t.some(m=>e.config.url&&e.config.url.includes(m))||o.size&&o.type)return o;const{success:i,errorMsg:h,errorCode:a}=o;return i?o:(F&&F("request:error_business",{errorCode:a,errorMsg:h||"\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",response:o}),!1)},e=>{var t,o,i,h,a,m,E,w,B;if(e.message==="canceled")return Promise.reject(e);if(F){let S="request:error_network",R={errorMsg:"\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25",error:e};((t=e==null?void 0:e.response)==null?void 0:t.status)===401?(S="request:error_auth",R={errorMsg:"\u6CA1\u6709\u8DB3\u591F\u6743\u9650",error:e,redirect:"/login"}):(((i=(o=e==null?void 0:e.response)==null?void 0:o.data)==null?void 0:i.errorCode)==="30013"||((a=(h=e==null?void 0:e.response)==null?void 0:h.data)==null?void 0:a.errorCode)==="30023")&&(S="request:error_business",R={errorCode:(E=(m=e==null?void 0:e.response)==null?void 0:m.data)==null?void 0:E.errorCode,errorMsg:((B=(w=e==null?void 0:e.response)==null?void 0:w.data)==null?void 0:B.message)||"\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",error:e}),F(S,R)}return Promise.reject(e)}),{getModelList:async e=>{try{const t=await y.get(`/allPage?${new URLSearchParams(e).toString()}`),{success:o,data:i}=t;if(o)return i}catch(t){return console.log("getModelList error:",t),!1}},delModelById:async e=>{try{const t=await y.delete(`/delete?id=${e}`),{success:o,data:i}=t;if(o)return i}catch(t){console.log("delModelById error:",t)}},createModel:async e=>{try{const t=await y.post("/create",e),{success:o,data:i}=t;if(o)return i}catch(t){console.log("createModel error:",t)}},updateModelById:async e=>{try{const t=await y.put("/update",e),{success:o,data:i}=t;if(o)return i}catch(t){console.log("updateModelById error:",t)}},getUseTypeList:async()=>{try{const e=await y.get("/getModelTypes"),{success:t,data:o}=e;if(t)return o}catch(e){return console.log("getUseTypeList error:",e),!1}},getModelProtocolsList:async()=>{try{const e=await y.get("/getModelProtocols"),{success:t,data:o}=e;if(t)return o}catch(e){return console.log("getModelProtocolsList error:",e),!1}}}},Fe=({drawerTitle:u,drawerVisible:C,modelInfo:p,handleDrawerClose:F,modelUseTypeOpt:y,modelProtocolsOpt:k,eventsEmit:g})=>{const[q,L]=M(!1),[d,x]=M(!1),e=P(()=>({id:"config-model",layout:"vertical",formWidth:"550px",fields:[{id:"modelName",name:"modelName",label:"\u6A21\u578B\u540D\u79F0",type:"input",required:!0,placeholder:"\u8BF7\u8F93\u5165\u6A21\u578B\u540D\u79F0",counter:30},{id:"modelIde",name:"modelIde",label:"\u6A21\u578BID",type:"input",required:!0,placeholder:"\u8BF7\u8F93\u5165\u6A21\u578BID",defaultValue:""},{id:"apiKey",name:"apiKey",label:"APIKey",type:"input",required:!1,placeholder:"\u8BF7\u8F93\u5165APIKey",defaultValue:""},{id:"url",name:"url",label:"\u8BF7\u6C42URL",type:"input",required:!0,placeholder:"\u8BF7\u8F93\u5165\u8BF7\u6C42URL",defaultValue:""},{id:"modelProtocol",name:"modelProtocol",label:"\u6A21\u578B\u4F20\u8F93\u534F\u8BAE",type:"select",required:!0,options:k},{id:"type",name:"type",label:"\u4F7F\u7528\u7C7B\u578B",type:"select",required:!0,options:y,defaultValue:1,controlledItems:{1:["thinking"]}},{id:"dec",name:"dec",label:"\u8BF4\u660E",type:"textarea",required:!1},{id:"thinking",name:"thinking",label:"\u63A8\u7406\u601D\u8003\u5F00\u5173",type:"switch",required:!1,helpText:"\u5982\u679C\u60A8\u90E8\u7F72\u7684\u6A21\u578B\u672C\u8EAB\u5177\u6709\u63A8\u7406\u601D\u8003\u7684\u5F00\u5173\uFF0C\u60A8\u53EF\u4EE5\u6253\u5F00\u5F53\u524D\u5F00\u5173\u652F\u6301\u63A8\u7406\u601D\u8003\u80FD\u529B\uFF0C\u5982Qwen3"}]}),[p,y,k]),t=Y(null),o=async(a,m,E)=>{var w;switch(console.log("[Form] eventsEmit:",a,m,E),a){case"form:ready":m.formRef&&(t.current=m.formRef);break;case"form:change":if(!((w=t.current)!=null&&w.getValue)){console.log("\u8868\u5355\u5F15\u7528\u672A\u5C31\u7EEA\uFF0C\u8DF3\u8FC7 formdata_onchange \u4E8B\u4EF6");return}const B=await t.current.getValue("type");B==2||B==3?x(!0):x(!1);break;default:console.log("\u672A\u5904\u7406\u7684\u4E8B\u4EF6:",a,m)}g==null||g(a,m,E)},i=async()=>{try{L(!0);const a=await t.current.getAllData();a.isValid&&(p!=null&&p.id?await g("form_submitted_edit",a,void 0):await g("form_submitted_add",a,void 0))}catch(a){console.error("\u274C \u63D0\u4EA4\u8868\u5355\u6570\u636E\u5931\u8D25:",a)}finally{L(!1)}},h=P(()=>{const a=p==null?void 0:p.data.reduce((m,E)=>(m[E.columnId]=E.value,m),{});return{label:"\u52A8\u6001\u8868\u5355\u793A\u4F8B",defaultActiveId:e.id,model:null,views:[{label:"\u7528\u6237\u6CE8\u518C\u8868\u5355",id:e.id,type:"form",size:"md",formWidth:e.formWidth,formConfig:{layout:e.layout,showReset:!1,showSubmit:!1,formWidth:e.formWidth}}],dataSource:[{id:e.id,fields:e.fields,defaultValues:a||{}}],eventsEmit:o}},[p,d,e]);return l(ie,{title:u,placement:"right",width:560,onClose:F,closeIcon:!1,extra:l(ce,{size:20,color:"#888888",onClick:F,className:"cursor-pointer"}),open:C,destroyOnHidden:!0,footer:Z("div",{className:"flex justify-end items-center gap-3",children:[l(z,{mode:"default",label:"\u53D6\u6D88",onClick:F}),l(z,{mode:"primary",label:"\u786E\u8BA4",loading:q,onClick:i})]}),children:l(X,{...h},"example-form")})},K={success:"green",error:"red",warning:"orange",processing:"blue",info:"cyan",default:"default"},N=[{statusType:"success",value:"\u53EF\u7528",status:1},{statusType:"error",value:"\u4E0D\u53EF\u7528",status:0}],fe=u=>typeof u=="string"&&u in K?K[u]:K.default;var V=(u=>(u[u.DATE=0]="DATE",u[u.VIEW=1]="VIEW",u[u.ERROR=2]="ERROR",u[u.AUTHORIZE=3]="AUTHORIZE",u[u.DELETE=4]="DELETE",u[u.ANALYSIS_OR_EXTRACT=5]="ANALYSIS_OR_EXTRACT",u[u.DOWNLOAD=6]="DOWNLOAD",u[u.EDIT=7]="EDIT",u[u.ADD=8]="ADD",u[u.ANALYSIS_CONFIG=9]="ANALYSIS_CONFIG",u[u.AUTHORIZE_CONFIG=10]="AUTHORIZE_CONFIG",u))(V||{});const{confirm:ye}=le,ge={pageNum:1,pageSize:1e3},Ae=u=>{const{value:C,cell:p}=u,F=fe(u.cell.statusType);return C=="\u4E0D\u53EF\u7528"?l(O,{title:p.errorMsg,children:l("div",{className:"flex items-center gap-2",children:l(G,{color:F,text:C})})}):l(G,{color:F,text:C})};function Le(u){const{url:C,token:p,role:F,CustomComponents:y,eventsEmit:k,getBtnDisabled:g}=u,[q,L]=M({container:"ready",content:"ready"}),d=Y(null),[x,e]=M(),[t,o]=M(!1),[i,h]=M(""),[a,m]=M(),[E,w]=M([]),[B,S]=M([]),{getModelList:R,delModelById:J,createModel:Q,updateModelById:_,getUseTypeList:T,getModelProtocolsList:ee}=pe({url:C,token:p,role:F,eventsEmit:k});ae(()=>{L(n=>({...n,content:"loading"})),te()},[]);const ue=n=>(n||[]).map((s,D)=>{let r=N.find(A=>A.status==s.status);return{id:s.id,data:[{columnId:"modelName",value:s.modelName},{columnId:"modelProtocol",value:s.modelProtocol,type:"customized"},{columnId:"type",value:s.type,type:"customized"},{columnId:"dec",value:s.dec},{columnId:"status",...r,type:"customized",errorMsg:s.errorMsg},{columnId:"actions",value:"edit",label:"\u7F16\u8F91",type:"action",disabled:g&&g(V.EDIT,s.permission)},{columnId:"actions",value:"auth",label:"\u6388\u6743",type:"action",disabled:g&&g(V.AUTHORIZE,s.permission)},{columnId:"actions",value:"delete",label:"\u5220\u9664",type:"action",disabled:g&&g(V.AUTHORIZE,s.permission)},{columnId:"url",value:s.url},{columnId:"apiKey",value:s.apiKey},{columnId:"modelIde",value:s.modelIde},{columnId:"thinking",value:s.thinking}]}}),te=async()=>{try{const[n,s,D]=await Promise.allSettled([R(ge),T(),ee()]);if(n.status==="fulfilled"&&n.value){const r=ue(n.value.records);e(r||[]),L(A=>({...A,content:"ready"}))}s.status==="fulfilled"&&s.value&&w((s.value||[]).map(r=>({...r,value:Number(r.value)}))),D.status==="fulfilled"&&D.value&&S((D.value||[]).map(r=>({...r,value:Number(r.value)})))}catch(n){console.error("[TableApiError] getTableList:",n)}},se=P(()=>({label:"\u6570\u636E\u5E93\u8868\u683C",defaultActiveId:"model-table",model:null,views:[{label:"\u6A21\u578B",id:"model-table",type:"table",viewBehavior:"pagination",allowMultiSelect:!1,viewPageSize:10,columns:[{id:"modelName",title:"\u6A21\u578B\u540D\u79F0",type:"label"},{id:"modelProtocol",title:"\u6A21\u578B\u4F20\u8F93\u534F\u8BAE",type:"customized",component:n=>{var r;const{value:s}=n,D=(r=B.find(A=>A.value==s))==null?void 0:r.label;return l("span",{children:D})}},{id:"type",title:"\u4F7F\u7528\u7C7B\u578B",type:"customized",component:n=>{var r;const{value:s}=n,D=(r=E.find(A=>A.value==s))==null?void 0:r.label;return l("span",{children:D})}},{id:"dec",title:"\u8BF4\u660E",type:"paragraph"},{id:"status",title:"\u72B6\u6001",type:"customized",component:l(Ae,{}),helpText:"\u5F53\u524D\u6A21\u578B\u72B6\u6001\u4E3A\u521D\u6B21\u65B0\u589E\u6821\u9A8C\u72B6\u6001\uFF0C\u82E5\u6A21\u578B\u4E0B\u7EBF\uFF0C\u6B64\u72B6\u6001\u4E0D\u4F1A\u4E3B\u52A8\u66F4\u65B0\uFF0C\u9700\u624B\u52A8\u6267\u884C\u6A21\u578B\u5220\u9664"},{id:"actions",title:"\u64CD\u4F5C",type:"customized",component:n=>{const{value:s,cell:D,row:r}=n,{disabled:A,label:U}=D;return A?l(O,{title:"\u89D2\u8272\u65E0\u6743\u9650\u64CD\u4F5C",children:l(z,{mode:"text",label:U,disabled:A})}):l(z,{mode:"text",label:U,onClick:()=>H(`table_action_${s}`,r,void 0)})}}],toolbar:[{type:"button",btnType:"primary",key:"add",label:"\u65B0\u5EFA",icon:l(de,{})}]}]}),[x,E,B]),oe=()=>Z("div",{className:"flex flex-col items-center justify-center h-full",children:[l("div",{className:"text-xl font-semibold mb-3",style:{color:"#374151"},children:l("img",{src:me,width:120})}),l("div",{className:"text-base mb-6",style:{color:"#6b7280"},children:"\u6682\u65E0\u6570\u636E\uFF0C\u8BF7\u5148\u65B0\u5EFA\u6A21\u578B"}),l("div",{className:"flex gap-3",children:l(z,{mode:"primary",label:"\u65B0\u5EFA\u6A21\u578B",onClick:()=>{h("\u65B0\u5EFA"),o(!0)}})})]});async function H(n,s,D){var r,A,U,$;switch(console.log("[adopter] mergedEventsEmit",n,s,D),n){case"toolbar_add":{h("\u65B0\u5EFA"),o(!0);break}case"table_action_delete":{try{const b=s.data.find(f=>f.columnId=="modelName").value;ye({title:"\u786E\u8BA4\u5220\u9664\uFF1F",content:`\u786E\u5B9A\u8981\u5220\u9664\u6A21\u578B \u201C${b}\u201D \u5417\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u6062\u590D\u3002`,okText:"\u5220\u9664",cancelText:"\u53D6\u6D88",async onOk(){await J(s.id)&&(d!=null&&d.current)&&(d==null||d.current.appFn.removeItem(s.id),j.success("\u5220\u9664\u6210\u529F"))}})}catch(b){console.error("\u5220\u9664\u8868\u6570\u636E\u5931\u8D25",b)}break}case"table_action_edit":{h("\u7F16\u8F91"),o(!0),m(s);break}case"form_submitted_add":{try{const b=s.fields.reduce((v,I)=>(v[I.name]=I.value,v),{}),f=await Q({...b});if(f){let v=N.find(c=>c.status==f.status);const I={id:f.id,data:[...(Object.keys(f)||[]).map(c=>({columnId:c,value:f[c],...(c=="modelProtocol"||c=="type")&&{type:"customized"},...c=="status"&&{...v,type:"customized",errorMsg:f.errorMsg}})),{columnId:"actions",value:"edit",label:"\u7F16\u8F91",type:"action"},{columnId:"actions",value:"auth",label:"\u6388\u6743",type:"action"},{columnId:"actions",value:"delete",label:"\u5220\u9664",type:"action"}]};(A=(r=d==null?void 0:d.current)==null?void 0:r.appFn)==null||A.addItem(I,{animate:!0,position:"start"}),j.success("\u6A21\u578B\u65B0\u589E\u6210\u529F\uFF01")}}catch(b){console.error("\u4FDD\u5B58\u5931\u8D25\uFF01",b)}finally{W()}break}case"form_submitted_edit":{try{const b=s.fields.reduce((v,I)=>(v[I.name]=I.value,v),{}),f=await _({...b,id:a.id});if(f){let v=N.find(c=>c.status==f.status);const I={...a,data:a.data.map(c=>{if(f[c.columnId]!==null&&f[c.columnId]!==void 0){if(c.columnId=="status")return{...c,...v};c.value=f[c.columnId]}return c})};($=(U=d==null?void 0:d.current)==null?void 0:U.appFn)==null||$.updateItem(I,a==null?void 0:a.id),j.success("\u6A21\u578B\u7F16\u8F91\u6210\u529F\uFF01")}}catch(b){console.error("\u4FDD\u5B58\u5931\u8D25\uFF01",b)}finally{W()}break}default:typeof u.eventsEmit=="function"&&u.eventsEmit(n,s);break}}const W=()=>{o(!1),m(void 0)};return Z(re,{title:"\u6A21\u578B\u7BA1\u7406",children:[l(X,{dataSource:x,ref:d,eventsEmit:H,status:q,CustomComponents:{EmptyData:oe,...y},...se}),l(Fe,{drawerTitle:i,drawerVisible:t,handleDrawerClose:W,modelInfo:a,modelUseTypeOpt:E,modelProtocolsOpt:B,eventsEmit:H})]})}export{Le as default};
package/dist/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "license": "MIT",
4
4
  "style": "assets/style.css",
5
5
  "private": false,
6
- "version": "1.4.7",
6
+ "version": "1.5.0",
7
7
  "author": "hanfeng_Zhang",
8
8
  "type": "module",
9
9
  "main": "index.js",
package/dist/sensitive.js CHANGED
@@ -1 +1 @@
1
- import{jsx as c,jsxs as A}from"react/jsx-runtime";import{useState as E,useRef as z,useEffect as _,useMemo as P}from"react";import{M as T}from"./assets/index-_gBtdXQV.js";import{a as N,F as h,m as W,I as j,J as L}from"./assets/index-D1m34Ij7.js";import{s as F,M as I}from"./assets/index-BpJ9Bm5x.js";/* empty css */import{P as q}from"./assets/plus-CrtEUXaQ.js";import"react-dom";const U=["10014"],$=({url:D,token:B,role:m})=>{const i=N.create({baseURL:D,timeout:1e6});return i.interceptors.request.use(e=>{let t=B;if(!t&&!["user/login","user/kaptcha","user/regist"].some(a=>e.url.includes(a))){window.location.pathname="/login";return}return e.headers.Authorization=t||"",e.headers.userName=m==="\u672A\u767B\u5F55\u7528\u6237"?"":m,e}),i.interceptors.response.use(e=>{const t=["user/kaptcha"],u=e.data;if(t.some(d=>e.config.url&&e.config.url.includes(d))||u.size&&u.type)return u;const{success:a,errorMsg:r,errorCode:o}=u;return U.includes(o)||a?u:(F.error(r||"\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5"),!1)},e=>{var t,u,a,r,o,d,y,f,g,C;e.message!=="canceled"&&((((u=(t=e==null?void 0:e.response)==null?void 0:t.data)==null?void 0:u.errorCode)==="30013"||((r=(a=e==null?void 0:e.response)==null?void 0:a.data)==null?void 0:r.errorCode)==="30023")&&F.error((((o=e==null?void 0:e.response)==null?void 0:o.data)||{}).errorMsg||"\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5"),((d=e==null?void 0:e.response)==null?void 0:d.status)===401&&(console.log("Error url:",(y=e==null?void 0:e.request)==null?void 0:y.responseURL),F.error((((f=e==null?void 0:e.response)==null?void 0:f.data)||{}).errorMsg||"\u6CA1\u6709\u8DB3\u591F\u6743\u9650")),console.log("Error occurs",e),(((g=e==null?void 0:e.response)==null?void 0:g.data)||{}).errorMsg!="\u672A\u8BBE\u7F6E\u9ED8\u8BA4\u914D\u7F6E\uFF01"&&F.error((((C=e==null?void 0:e.response)==null?void 0:C.data)||{}).errorMsg||"\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5"))}),{getLibraryList:async e=>{try{const t=await i.get(`/library?${new URLSearchParams(e).toString()}`),{success:u,data:a}=t;return u?a:!1}catch(t){return console.log("e",t),!1}},createLibrary:async e=>{try{const t=await i.post("/library",e),{success:u,data:a}=t;return u?a:!1}catch(t){return console.log("e",t),!1}},deleteLibrary:async e=>{try{const t=await i.delete(`/library/${e}`),{success:u,data:a}=t;return u?a:!1}catch(t){return console.log("e",t),!1}}}},{confirm:O}=I,V={pageNo:1,pageSize:999},R=({url:D,token:B,role:m,eventsEmit:i,CustomComponents:v})=>{const[w,b]=E({container:"ready",content:"ready"}),e=z(null),[t,u]=E(),[a]=h.useForm(),[r,o]=E(!1),{getLibraryList:d,deleteLibrary:y,createLibrary:f}=$({url:D,token:B,role:m});_(()=>{b(s=>({...s,content:"loading"})),g()},[]);const g=async()=>{try{const s=await d({...V});if(s){const n=C(s.records);u(n||[]),b(l=>({...l,content:"ready"}))}}catch(s){console.log("[DatabaseApiError] getSensitiveList:",s)}},C=s=>(s||[]).map(n=>({id:n.id,data:[{columnId:"name",value:n.name,type:"label"},{columnId:"sensitiveWords",value:n.words,type:"tag"},{columnId:"createDate",value:n.gmtCreate,type:"date"},{columnId:"count",value:n.count,type:"text"},{columnId:"actions",value:"edit",label:"\u7F16\u8F91",type:"action"},{columnId:"actions",value:"delete",label:"\u5220\u9664",type:"action"}]})),x=P(()=>({label:"\u654F\u611F\u8BCD\u914D\u7F6E",model:null,defaultActiveId:"sensitive-table",views:[{id:"sensitive-table",label:"\u654F\u611F\u8BCD\u5E93\u5217\u8868",type:"table",viewBehavior:"pagination",allowMultiSelect:!1,viewPageSize:10,columns:[{title:"\u540D\u79F0",id:"name",type:"label"},{title:"\u654F\u611F\u8BCD",id:"sensitiveWords",type:"tag"},{title:"\u521B\u5EFA\u65E5\u671F",id:"createDate",type:"date"},{title:"\u6570\u91CF",id:"count",type:"text"},{title:"\u64CD\u4F5C",id:"actions",type:"action"}],toolbar:[{type:"button",key:"create",label:"\u65B0\u5EFA\u654F\u611F\u8BCD\u5E93",btnType:"primary",icon:c(q,{size:16})},{type:"fuzzy_search",key:"search",label:"\u8BF7\u8F93\u5165\u5185\u5BB9",searchKeys:["name","sensitiveWords"],position:"right"}]}]}),[t]),M=async()=>{var s,n;try{const l=await a.validateFields();if(l){console.log("===val",l);const p=await f({...l,words:[]});if(p&&(e!=null&&e.current)){const k={id:p,data:[{columnId:"name",value:l.name,type:"label"},{columnId:"sensitiveWords",value:[],type:"tag"},{columnId:"createDate",value:new Date().toLocaleString("zh-CN",{year:"2-digit",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).replace(/\//g,"-"),type:"date"},{columnId:"count",value:0,type:"text"},{columnId:"actions",value:"edit",label:"\u7F16\u8F91",type:"action"},{columnId:"actions",value:"delete",label:"\u5220\u9664",type:"action"}]};(n=(s=e==null?void 0:e.current)==null?void 0:s.appFn)==null||n.addItem(k,{animate:!0,position:"start"}),F.success("\u65B0\u589E\u654F\u611F\u8BCD\u6210\u529F!")}}}catch{console.error("\u65B0\u589E\u654F\u611F\u8BCD\u5931\u8D25!")}finally{o(!1),a.resetFields()}};async function S(s,n,l){switch(console.log("[SensitiveView] \u4E8B\u4EF6\u89E6\u53D1:",s,n),s){case"toolbar_create":o(!0);break;case"table_action_delete":{try{O({title:"\u786E\u8BA4\u5220\u9664\u654F\u611F\u8BCD\u5E93\uFF1F",content:"\u5220\u9664\u540E\uFF0C\u8BE5\u654F\u611F\u8BCD\u5E93\u5C06\u65E0\u6CD5\u6062\u590D",okText:"\u5220\u9664",cancelText:"\u53D6\u6D88",async onOk(){await y(n.id)&&(e!=null&&e.current)&&(console.log("=====",e==null?void 0:e.current.appFn),e==null||e.current.appFn.removeItem(n.id),F.success("\u5220\u9664\u6210\u529F"))},onCancel(){console.log("Cancel")}})}catch(p){console.error("\u5220\u9664\u654F\u611F\u8BCD\u5E93\u5931\u8D25",p)}break}default:typeof i=="function"&&i(s,n);break}}return A(W,{title:"\u654F\u611F\u8BCD\u5E93\u7BA1\u7406",children:[c(T,{dataSource:t,ref:e,eventsEmit:S,status:w,CustomComponents:{...v},...x}),c(I,{title:"\u65B0\u5EFA\u654F\u611F\u8BCD\u5E93",open:r,width:520,destroyOnHidden:!0,onCancel:()=>{o(!1),a.resetFields()},footer:A("div",{className:"w-full flex flex-row",style:{justifyContent:"end",gap:"10px"},children:[c(L,{mode:"default",label:"\u53D6\u6D88",onClick:()=>{o(!1),a.resetFields()}}),c(L,{mode:"primary",label:"\u786E\u8BA4",onClick:M})]}),children:c(h,{form:a,children:c(h.Item,{label:null,name:"name",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u654F\u611F\u8BCD\u5E93\u540D\u79F0!"}],children:c(j,{placeholder:"\u8BF7\u8F93\u5165"})})})})]})};export{R as default};
1
+ import{jsx as c,jsxs as A}from"react/jsx-runtime";import{useState as E,useRef as z,useEffect as _,useMemo as P}from"react";import{s as F,F as h,m as T,M as N,a as I,I as W,J as L}from"./assets/index-CysDmrpo.js";import{a as j}from"./assets/Input-CNqIA41v.js";/* empty css */import{P as q}from"./assets/plus-CzbYbK8K.js";import"react-dom";const U=["10014"],$=({url:D,token:B,role:m})=>{const i=j.create({baseURL:D,timeout:1e6});return i.interceptors.request.use(e=>{let t=B;if(!t&&!["user/login","user/kaptcha","user/regist"].some(a=>e.url.includes(a))){window.location.pathname="/login";return}return e.headers.Authorization=t||"",e.headers.userName=m==="\u672A\u767B\u5F55\u7528\u6237"?"":m,e}),i.interceptors.response.use(e=>{const t=["user/kaptcha"],u=e.data;if(t.some(d=>e.config.url&&e.config.url.includes(d))||u.size&&u.type)return u;const{success:a,errorMsg:r,errorCode:o}=u;return U.includes(o)||a?u:(F.error(r||"\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5"),!1)},e=>{var t,u,a,r,o,d,y,g,f,C;e.message!=="canceled"&&((((u=(t=e==null?void 0:e.response)==null?void 0:t.data)==null?void 0:u.errorCode)==="30013"||((r=(a=e==null?void 0:e.response)==null?void 0:a.data)==null?void 0:r.errorCode)==="30023")&&F.error((((o=e==null?void 0:e.response)==null?void 0:o.data)||{}).errorMsg||"\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5"),((d=e==null?void 0:e.response)==null?void 0:d.status)===401&&(console.log("Error url:",(y=e==null?void 0:e.request)==null?void 0:y.responseURL),F.error((((g=e==null?void 0:e.response)==null?void 0:g.data)||{}).errorMsg||"\u6CA1\u6709\u8DB3\u591F\u6743\u9650")),console.log("Error occurs",e),(((f=e==null?void 0:e.response)==null?void 0:f.data)||{}).errorMsg!="\u672A\u8BBE\u7F6E\u9ED8\u8BA4\u914D\u7F6E\uFF01"&&F.error((((C=e==null?void 0:e.response)==null?void 0:C.data)||{}).errorMsg||"\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5"))}),{getLibraryList:async e=>{try{const t=await i.get(`/library?${new URLSearchParams(e).toString()}`),{success:u,data:a}=t;return u?a:!1}catch(t){return console.log("e",t),!1}},createLibrary:async e=>{try{const t=await i.post("/library",e),{success:u,data:a}=t;return u?a:!1}catch(t){return console.log("e",t),!1}},deleteLibrary:async e=>{try{const t=await i.delete(`/library/${e}`),{success:u,data:a}=t;return u?a:!1}catch(t){return console.log("e",t),!1}}}},{confirm:O}=I,V={pageNo:1,pageSize:999},Z=({url:D,token:B,role:m,eventsEmit:i,CustomComponents:v})=>{const[w,b]=E({container:"ready",content:"ready"}),e=z(null),[t,u]=E(),[a]=h.useForm(),[r,o]=E(!1),{getLibraryList:d,deleteLibrary:y,createLibrary:g}=$({url:D,token:B,role:m});_(()=>{b(s=>({...s,content:"loading"})),f()},[]);const f=async()=>{try{const s=await d({...V});if(s){const n=C(s.records);u(n||[]),b(l=>({...l,content:"ready"}))}}catch(s){console.log("[DatabaseApiError] getSensitiveList:",s)}},C=s=>(s||[]).map(n=>({id:n.id,data:[{columnId:"name",value:n.name,type:"label"},{columnId:"sensitiveWords",value:n.words,type:"tag"},{columnId:"createDate",value:n.gmtCreate,type:"date"},{columnId:"count",value:n.count,type:"text"},{columnId:"actions",value:"edit",label:"\u7F16\u8F91",type:"action"},{columnId:"actions",value:"delete",label:"\u5220\u9664",type:"action"}]})),x=P(()=>({label:"\u654F\u611F\u8BCD\u914D\u7F6E",model:null,defaultActiveId:"sensitive-table",views:[{id:"sensitive-table",label:"\u654F\u611F\u8BCD\u5E93\u5217\u8868",type:"table",viewBehavior:"pagination",allowMultiSelect:!1,viewPageSize:10,columns:[{title:"\u540D\u79F0",id:"name",type:"label"},{title:"\u654F\u611F\u8BCD",id:"sensitiveWords",type:"tag"},{title:"\u521B\u5EFA\u65E5\u671F",id:"createDate",type:"date"},{title:"\u6570\u91CF",id:"count",type:"text"},{title:"\u64CD\u4F5C",id:"actions",type:"action"}],toolbar:[{type:"button",key:"create",label:"\u65B0\u5EFA\u654F\u611F\u8BCD\u5E93",btnType:"primary",icon:c(q,{size:16})},{type:"fuzzy_search",key:"search",label:"\u8BF7\u8F93\u5165\u5185\u5BB9",searchKeys:["name","sensitiveWords"],position:"right"}]}]}),[t]),M=async()=>{var s,n;try{const l=await a.validateFields();if(l){console.log("===val",l);const p=await g({...l,words:[]});if(p&&(e!=null&&e.current)){const k={id:p,data:[{columnId:"name",value:l.name,type:"label"},{columnId:"sensitiveWords",value:[],type:"tag"},{columnId:"createDate",value:new Date().toLocaleString("zh-CN",{year:"2-digit",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).replace(/\//g,"-"),type:"date"},{columnId:"count",value:0,type:"text"},{columnId:"actions",value:"edit",label:"\u7F16\u8F91",type:"action"},{columnId:"actions",value:"delete",label:"\u5220\u9664",type:"action"}]};(n=(s=e==null?void 0:e.current)==null?void 0:s.appFn)==null||n.addItem(k,{animate:!0,position:"start"}),F.success("\u65B0\u589E\u654F\u611F\u8BCD\u6210\u529F!")}}}catch{console.error("\u65B0\u589E\u654F\u611F\u8BCD\u5931\u8D25!")}finally{o(!1),a.resetFields()}};async function S(s,n,l){switch(console.log("[SensitiveView] \u4E8B\u4EF6\u89E6\u53D1:",s,n),s){case"toolbar_create":o(!0);break;case"table_action_delete":{try{O({title:"\u786E\u8BA4\u5220\u9664\u654F\u611F\u8BCD\u5E93\uFF1F",content:"\u5220\u9664\u540E\uFF0C\u8BE5\u654F\u611F\u8BCD\u5E93\u5C06\u65E0\u6CD5\u6062\u590D",okText:"\u5220\u9664",cancelText:"\u53D6\u6D88",async onOk(){await y(n.id)&&(e!=null&&e.current)&&(console.log("=====",e==null?void 0:e.current.appFn),e==null||e.current.appFn.removeItem(n.id),F.success("\u5220\u9664\u6210\u529F"))},onCancel(){console.log("Cancel")}})}catch(p){console.error("\u5220\u9664\u654F\u611F\u8BCD\u5E93\u5931\u8D25",p)}break}default:typeof i=="function"&&i(s,n);break}}return A(T,{title:"\u654F\u611F\u8BCD\u5E93\u7BA1\u7406",children:[c(N,{dataSource:t,ref:e,eventsEmit:S,status:w,CustomComponents:{...v},...x}),c(I,{title:"\u65B0\u5EFA\u654F\u611F\u8BCD\u5E93",open:r,width:520,destroyOnHidden:!0,onCancel:()=>{o(!1),a.resetFields()},footer:A("div",{className:"w-full flex flex-row",style:{justifyContent:"end",gap:"10px"},children:[c(L,{mode:"default",label:"\u53D6\u6D88",onClick:()=>{o(!1),a.resetFields()}}),c(L,{mode:"primary",label:"\u786E\u8BA4",onClick:M})]}),children:c(h,{form:a,children:c(h.Item,{label:null,name:"name",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u654F\u611F\u8BCD\u5E93\u540D\u79F0!"}],children:c(W,{placeholder:"\u8BF7\u8F93\u5165"})})})})]})};export{Z as default};
@@ -1 +1 @@
1
- import{G as D,D as G}from"./assets/GientechStreamReader-4496nAm0.js";import"react/jsx-runtime";import"react";import"./assets/index-D1m34Ij7.js";import"react-dom";import"./assets/index-CNxDI4h-.js";import"./assets/index-BVENTW1Q.js";import"./assets/x-Dr3EBTzJ.js";export{D as GientechStreamReader,G as registerPDFWorker};
1
+ import{G as D,D as G}from"./assets/GientechStreamReader-BE_oxQLt.js";import"react/jsx-runtime";import"react";import"./assets/Input-CNqIA41v.js";import"react-dom";import"./assets/index-Bof0D4vl.js";import"./assets/index-C5RhLYRh.js";import"./assets/x-DdRafKQU.js";export{D as GientechStreamReader,G as registerPDFWorker};
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@gientech/modual",
3
3
  "private": false,
4
4
  "author": "hanfeng_Zhang",
5
- "version": "1.4.7",
5
+ "version": "1.5.0",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
8
8
  "types": "dist/index.d.ts",
@@ -51,9 +51,9 @@
51
51
  },
52
52
  "peerDependencies": {
53
53
  "@mxmweb/nodegraph": "^1.x.x",
54
- "@mxmweb/aichat": "^1.7.x",
54
+ "@mxmweb/aichat": "^1.8.0",
55
55
  "@mxmweb/fviewer": "^1",
56
- "@mxmweb/rtext": "^1.1.*",
56
+ "@mxmweb/rtext": "^1.2.*",
57
57
  "@mxmweb/xviewer": "^1.2.x",
58
58
  "@mxmweb/zui": "^1.3.x",
59
59
  "@mxmweb/zui-components": "*",
@@ -66,9 +66,7 @@
66
66
  },
67
67
  "dependencies": {
68
68
  "@mxmweb/nodegraph": "1.0.15",
69
- "@mxmweb/aichat": "1.8.0",
70
69
  "@mxmweb/fviewer": "1.5.1",
71
- "@mxmweb/rtext": "1.1.57",
72
70
  "@mxmweb/xviewer": "1.1.47",
73
71
  "@mxmweb/zui": "1.3.9",
74
72
  "@mxmweb/zui-components": "^1.*",
@@ -77,7 +75,9 @@
77
75
  "@mxmweb/zui-layouts": "^1.*",
78
76
  "@mxmweb/zui-theme": "^2.*",
79
77
  "antd": "^5.18.0",
80
- "axios": "^1.7.2"
78
+ "axios": "^1.7.2",
79
+ "@mxmweb/aichat": "1.9.0",
80
+ "@mxmweb/rtext": "1.2.1"
81
81
  },
82
82
  "devDependencies": {
83
83
  "clipboard": "^2.0.11",
package/scripts/README.md CHANGED
@@ -1,133 +1,133 @@
1
- # XViewer 演示脚本使用说明
2
-
3
- ## 概述
4
-
5
- 这套脚本用于运行 XViewer 组件的演示示例,支持跨平台运行(Windows、macOS、Linux)。
6
-
7
- ## 脚本文件
8
-
9
- - `demo-selector.js` - 示例选择器,扫描并选择要运行的示例
10
- - `dev-demo.js` - 开发模式演示
11
- - `build-demo.js` - 打包模式演示
12
- - `preview-demo.js` - 预览模式演示
13
- - `run-demo.bat` - Windows 批处理文件(备用方案)
14
-
15
- ## 使用方法
16
-
17
- ### 方法一:使用 npm 脚本(推荐)
18
-
19
- ```bash
20
- # 开发模式
21
- pnpm run dev:demo
22
-
23
- # 打包模式
24
- pnpm run build:demo
25
-
26
- # 预览模式
27
- pnpm run preview:demo
28
- ```
29
-
30
- ### 方法二:直接运行 Node.js 脚本
31
-
32
- ```bash
33
- # 开发模式
34
- node scripts/dev-demo.js
35
-
36
- # 打包模式
37
- node scripts/build-demo.js
38
-
39
- # 预览模式
40
- node scripts/preview-demo.js
41
- ```
42
-
43
- ### 方法三:Windows 批处理文件
44
-
45
- ```cmd
46
- # 开发模式
47
- scripts\run-demo.bat dev-demo
48
-
49
- # 打包模式
50
- scripts\run-demo.bat build-demo
51
-
52
- # 预览模式
53
- scripts\run-demo.bat preview-demo
54
- ```
55
-
56
- ## 示例文件格式
57
-
58
- 脚本支持两种示例文件格式:
59
-
60
- 1. **单文件模式**: `src/Example_XXXX.tsx`
61
- 2. **文件夹模式**:
62
- - `src/examples/XXXX/index.tsx`
63
- - `src/examples/XXXX/XXXX.tsx`
64
-
65
- ## Windows 兼容性
66
-
67
- ### 已解决的问题
68
-
69
- 1. ✅ **依赖包缺失** - 已添加 `inquirer` 和 `fs-extra` 依赖
70
- 2. ✅ **Shell 执行** - Windows 下使用 `shell: true` 选项
71
- 3. ✅ **环境变量** - 自动设置 `NODE_OPTIONS` 环境变量
72
- 4. ✅ **路径处理** - 使用 `path.join()` 确保跨平台兼容
73
- 5. ✅ **调试信息** - 添加详细的调试输出
74
-
75
- ### 调试信息
76
-
77
- 脚本运行时会显示以下调试信息:
78
- - Node.js 版本
79
- - 操作系统类型
80
- - 当前工作目录
81
- - 脚本目录
82
- - Windows 模式标识
83
-
84
- ## 故障排除
85
-
86
- ### 问题 1:脚本执行没有反应
87
-
88
- **解决方案**:
89
- 1. 确保已安装依赖:`pnpm install`
90
- 2. 检查 Node.js 版本:`node --version`(需要 >= 22)
91
- 3. 使用调试模式查看详细信息
92
-
93
- ### 问题 2:Windows 下 pnpm 命令无法识别
94
-
95
- **解决方案**:
96
- 1. 确保 pnpm 已全局安装:`npm install -g pnpm`
97
- 2. 检查 PATH 环境变量
98
- 3. 使用批处理文件:`scripts\run-demo.bat`
99
-
100
- ### 问题 3:内存不足错误
101
-
102
- **解决方案**:
103
- 1. 脚本已自动设置 `NODE_OPTIONS=--max-old-space-size=16384`
104
- 2. 如需调整,修改脚本中的环境变量设置
105
-
106
- ### 问题 4:示例文件扫描失败
107
-
108
- **解决方案**:
109
- 1. 确保示例文件格式正确
110
- 2. 检查文件路径和权限
111
- 3. 查看调试信息中的路径信息
112
-
113
- ## 开发说明
114
-
115
- ### 添加新示例
116
-
117
- 1. 在 `src/examples/` 下创建新文件夹
118
- 2. 添加 `index.tsx` 或 `[文件夹名].tsx` 文件
119
- 3. 脚本会自动扫描并显示
120
-
121
- ### 修改脚本
122
-
123
- 1. 所有脚本都支持跨平台运行
124
- 2. 使用 `process.platform === 'win32'` 检测 Windows
125
- 3. 使用 `path.join()` 处理路径
126
- 4. 使用 `shell: isWindows` 设置 spawn 选项
127
-
128
- ## 技术细节
129
-
130
- - **Node.js 版本要求**: >= 22
131
- - **依赖包**: inquirer, fs-extra
132
- - **支持平台**: Windows, macOS, Linux
133
- - **脚本类型**: ES Modules
1
+ # XViewer 演示脚本使用说明
2
+
3
+ ## 概述
4
+
5
+ 这套脚本用于运行 XViewer 组件的演示示例,支持跨平台运行(Windows、macOS、Linux)。
6
+
7
+ ## 脚本文件
8
+
9
+ - `demo-selector.js` - 示例选择器,扫描并选择要运行的示例
10
+ - `dev-demo.js` - 开发模式演示
11
+ - `build-demo.js` - 打包模式演示
12
+ - `preview-demo.js` - 预览模式演示
13
+ - `run-demo.bat` - Windows 批处理文件(备用方案)
14
+
15
+ ## 使用方法
16
+
17
+ ### 方法一:使用 npm 脚本(推荐)
18
+
19
+ ```bash
20
+ # 开发模式
21
+ pnpm run dev:demo
22
+
23
+ # 打包模式
24
+ pnpm run build:demo
25
+
26
+ # 预览模式
27
+ pnpm run preview:demo
28
+ ```
29
+
30
+ ### 方法二:直接运行 Node.js 脚本
31
+
32
+ ```bash
33
+ # 开发模式
34
+ node scripts/dev-demo.js
35
+
36
+ # 打包模式
37
+ node scripts/build-demo.js
38
+
39
+ # 预览模式
40
+ node scripts/preview-demo.js
41
+ ```
42
+
43
+ ### 方法三:Windows 批处理文件
44
+
45
+ ```cmd
46
+ # 开发模式
47
+ scripts\run-demo.bat dev-demo
48
+
49
+ # 打包模式
50
+ scripts\run-demo.bat build-demo
51
+
52
+ # 预览模式
53
+ scripts\run-demo.bat preview-demo
54
+ ```
55
+
56
+ ## 示例文件格式
57
+
58
+ 脚本支持两种示例文件格式:
59
+
60
+ 1. **单文件模式**: `src/Example_XXXX.tsx`
61
+ 2. **文件夹模式**:
62
+ - `src/examples/XXXX/index.tsx`
63
+ - `src/examples/XXXX/XXXX.tsx`
64
+
65
+ ## Windows 兼容性
66
+
67
+ ### 已解决的问题
68
+
69
+ 1. ✅ **依赖包缺失** - 已添加 `inquirer` 和 `fs-extra` 依赖
70
+ 2. ✅ **Shell 执行** - Windows 下使用 `shell: true` 选项
71
+ 3. ✅ **环境变量** - 自动设置 `NODE_OPTIONS` 环境变量
72
+ 4. ✅ **路径处理** - 使用 `path.join()` 确保跨平台兼容
73
+ 5. ✅ **调试信息** - 添加详细的调试输出
74
+
75
+ ### 调试信息
76
+
77
+ 脚本运行时会显示以下调试信息:
78
+ - Node.js 版本
79
+ - 操作系统类型
80
+ - 当前工作目录
81
+ - 脚本目录
82
+ - Windows 模式标识
83
+
84
+ ## 故障排除
85
+
86
+ ### 问题 1:脚本执行没有反应
87
+
88
+ **解决方案**:
89
+ 1. 确保已安装依赖:`pnpm install`
90
+ 2. 检查 Node.js 版本:`node --version`(需要 >= 22)
91
+ 3. 使用调试模式查看详细信息
92
+
93
+ ### 问题 2:Windows 下 pnpm 命令无法识别
94
+
95
+ **解决方案**:
96
+ 1. 确保 pnpm 已全局安装:`npm install -g pnpm`
97
+ 2. 检查 PATH 环境变量
98
+ 3. 使用批处理文件:`scripts\run-demo.bat`
99
+
100
+ ### 问题 3:内存不足错误
101
+
102
+ **解决方案**:
103
+ 1. 脚本已自动设置 `NODE_OPTIONS=--max-old-space-size=16384`
104
+ 2. 如需调整,修改脚本中的环境变量设置
105
+
106
+ ### 问题 4:示例文件扫描失败
107
+
108
+ **解决方案**:
109
+ 1. 确保示例文件格式正确
110
+ 2. 检查文件路径和权限
111
+ 3. 查看调试信息中的路径信息
112
+
113
+ ## 开发说明
114
+
115
+ ### 添加新示例
116
+
117
+ 1. 在 `src/examples/` 下创建新文件夹
118
+ 2. 添加 `index.tsx` 或 `[文件夹名].tsx` 文件
119
+ 3. 脚本会自动扫描并显示
120
+
121
+ ### 修改脚本
122
+
123
+ 1. 所有脚本都支持跨平台运行
124
+ 2. 使用 `process.platform === 'win32'` 检测 Windows
125
+ 3. 使用 `path.join()` 处理路径
126
+ 4. 使用 `shell: isWindows` 设置 spawn 选项
127
+
128
+ ## 技术细节
129
+
130
+ - **Node.js 版本要求**: >= 22
131
+ - **依赖包**: inquirer, fs-extra
132
+ - **支持平台**: Windows, macOS, Linux
133
+ - **脚本类型**: ES Modules
@@ -1,88 +1,88 @@
1
- #!/usr/bin/env node
2
-
3
- import { spawn } from 'child_process';
4
- import { main, restoreMainFile } from './demo-selector.js';
5
- import path from 'path';
6
- import { fileURLToPath } from 'url';
7
-
8
- const __filename = fileURLToPath(import.meta.url);
9
- const __dirname = path.dirname(__filename);
10
-
11
- // 检测操作系统
12
- const isWindows = process.platform === 'win32';
13
-
14
- /**
15
- * 执行打包
16
- */
17
- function runBuild() {
18
- console.log('\n🔨 正在执行打包...\n');
19
- console.log('🔧 调试信息:');
20
- console.log(' 操作系统:', process.platform);
21
- console.log(' Windows 模式:', isWindows);
22
- console.log(' 工作目录:', path.resolve(__dirname, '..'));
23
- console.log('');
24
-
25
- const buildProcess = spawn('pnpm', ['run', 'build:app'], {
26
- stdio: 'inherit',
27
- shell: isWindows, // Windows 下需要 shell: true
28
- cwd: path.resolve(__dirname, '..'),
29
- env: {
30
- ...process.env,
31
- NODE_OPTIONS: '--max-old-space-size=16384'
32
- }
33
- });
34
-
35
- buildProcess.on('close', (code) => {
36
- if (code === 0) {
37
- console.log('\n✅ 打包完成!');
38
- console.log('📁 输出目录: dist-app/');
39
- } else {
40
- console.error(`\n❌ 打包失败 (退出码: ${code})`);
41
- }
42
-
43
- // 恢复原始 main.tsx 文件
44
- restoreMainFile();
45
- process.exit(code);
46
- });
47
-
48
- buildProcess.on('error', (error) => {
49
- console.error('❌ 执行打包失败:', error);
50
- restoreMainFile();
51
- process.exit(1);
52
- });
53
-
54
- // 处理进程退出信号
55
- process.on('SIGINT', () => {
56
- console.log('\n🔄 正在取消打包...');
57
- buildProcess.kill('SIGINT');
58
- });
59
-
60
- process.on('SIGTERM', () => {
61
- console.log('\n🔄 正在取消打包...');
62
- buildProcess.kill('SIGTERM');
63
- });
64
- }
65
-
66
- /**
67
- * 主函数
68
- */
69
- async function runBuildDemo() {
70
- try {
71
- // 先选择示例
72
- await main();
73
-
74
- // 执行打包
75
- runBuild();
76
- } catch (error) {
77
- console.error('❌ 打包模式启动失败:', error);
78
- restoreMainFile();
79
- process.exit(1);
80
- }
81
- }
82
-
83
- // 如果直接运行此脚本
84
- if (import.meta.url === `file://${process.argv[1]}`) {
85
- runBuildDemo();
86
- }
87
-
88
- export { runBuildDemo };
1
+ #!/usr/bin/env node
2
+
3
+ import { spawn } from 'child_process';
4
+ import { main, restoreMainFile } from './demo-selector.js';
5
+ import path from 'path';
6
+ import { fileURLToPath } from 'url';
7
+
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = path.dirname(__filename);
10
+
11
+ // 检测操作系统
12
+ const isWindows = process.platform === 'win32';
13
+
14
+ /**
15
+ * 执行打包
16
+ */
17
+ function runBuild() {
18
+ console.log('\n🔨 正在执行打包...\n');
19
+ console.log('🔧 调试信息:');
20
+ console.log(' 操作系统:', process.platform);
21
+ console.log(' Windows 模式:', isWindows);
22
+ console.log(' 工作目录:', path.resolve(__dirname, '..'));
23
+ console.log('');
24
+
25
+ const buildProcess = spawn('pnpm', ['run', 'build:app'], {
26
+ stdio: 'inherit',
27
+ shell: isWindows, // Windows 下需要 shell: true
28
+ cwd: path.resolve(__dirname, '..'),
29
+ env: {
30
+ ...process.env,
31
+ NODE_OPTIONS: '--max-old-space-size=16384'
32
+ }
33
+ });
34
+
35
+ buildProcess.on('close', (code) => {
36
+ if (code === 0) {
37
+ console.log('\n✅ 打包完成!');
38
+ console.log('📁 输出目录: dist-app/');
39
+ } else {
40
+ console.error(`\n❌ 打包失败 (退出码: ${code})`);
41
+ }
42
+
43
+ // 恢复原始 main.tsx 文件
44
+ restoreMainFile();
45
+ process.exit(code);
46
+ });
47
+
48
+ buildProcess.on('error', (error) => {
49
+ console.error('❌ 执行打包失败:', error);
50
+ restoreMainFile();
51
+ process.exit(1);
52
+ });
53
+
54
+ // 处理进程退出信号
55
+ process.on('SIGINT', () => {
56
+ console.log('\n🔄 正在取消打包...');
57
+ buildProcess.kill('SIGINT');
58
+ });
59
+
60
+ process.on('SIGTERM', () => {
61
+ console.log('\n🔄 正在取消打包...');
62
+ buildProcess.kill('SIGTERM');
63
+ });
64
+ }
65
+
66
+ /**
67
+ * 主函数
68
+ */
69
+ async function runBuildDemo() {
70
+ try {
71
+ // 先选择示例
72
+ await main();
73
+
74
+ // 执行打包
75
+ runBuild();
76
+ } catch (error) {
77
+ console.error('❌ 打包模式启动失败:', error);
78
+ restoreMainFile();
79
+ process.exit(1);
80
+ }
81
+ }
82
+
83
+ // 如果直接运行此脚本
84
+ if (import.meta.url === `file://${process.argv[1]}`) {
85
+ runBuildDemo();
86
+ }
87
+
88
+ export { runBuildDemo };