| 1 |
- import{d as e,r as a,o as l,g as s,c as t,w as n,i as c,b as u,e as d,f as i,h as o,A as r,z as f,m as _,j as p,F as m,k as v,t as g,n as k,l as h,K as y,y as b,J as j}from"./index-Co9nPWLO.js";import{_ as x}from"./_plugin-vue_export-helper.BCo6x5W8.js";const C=x(e({__name:"index",setup(e){const x=a(""),C=a(!1),w=a(!1),M=a(!1),S=a([]),$=a(null),I=a(null),A=a(null),E=a("progressive"),V={pending:"等待中",generating:"生成中",completed:"已完成",failed:"失败"};async function B(){w.value=!0;try{const e=await s("/ai-content/learning-path/list");S.value=e||[]}catch(e){console.error("加载任务失败:",e)}finally{w.value=!1}}async function D(){if(x.value.trim()&&!C.value){C.value=!0;try{const e=await y("/ai-content/learning-path/create",{topic:x.value.trim(),mode:E.value});S.value.unshift(e),x.value="",O(e.id)}catch(e){b({title:e.message||"创建失败",icon:"none"})}finally{C.value=!1}}}async function O(e){try{const a=await s(`/ai-content/learning-path/${e}`);$.value=a,a.subjects&&a.subjects.forEach(e=>{e.expanded=!0,e.chapters&&e.chapters.forEach(e=>{e.expanded=!1,e.sections&&e.sections.forEach(e=>{e.expanded=!1})})}),"progressive"===a.generationMode&&await z(e),"multi-agent"===a.generationMode&&await F(e),function(e){U&&clearInterval(U);U=setInterval(async()=>{try{const a=await s(`/ai-content/learning-path/${e}`);$.value=a;const l=S.value.findIndex(a=>a.id===e);l>=0&&(S.value[l]=a),"progressive"===a.generationMode&&await z(e),"multi-agent"===a.generationMode&&await F(e),"completed"!==a.status&&"failed"!==a.status||(U&&clearInterval(U),b({title:"completed"===a.status?"生成完成!":"生成失败",icon:"none"}))}catch(a){console.error("刷新失败:",a)}},5e3)}(e)}catch(a){b({title:a.message||"加载失败",icon:"none"})}}async function z(e){try{I.value=await s(`/ai-content/learning-path/${e}/pending`)}catch(a){console.error("加载待确认数据失败:",a)}}async function F(e){try{A.value=await s(`/ai-content/learning-path/${e}/status`)}catch(a){console.error("加载Agent状态失败:",a)}}async function H(e){if(!M.value){M.value=!0;try{let a=[];"subjects"===e&&I.value?a=I.value.pendingSubjects.map(e=>e.id):"chapters"===e&&I.value?Object.values(I.value.pendingChapters).forEach(e=>{a.push(...e.map(e=>e.id))}):"sections"===e&&I.value&&Object.values(I.value.pendingSections).forEach(e=>{a.push(...e.map(e=>e.id))}),await y(`/ai-content/learning-path/${$.value.id}/confirm`,{step:e,confirmedIds:a,modifiedItems:[]}),b({title:"确认成功,继续生成中...",icon:"none"}),await z($.value.id)}catch(a){b({title:a.message||"确认失败",icon:"none"})}finally{M.value=!1}}}function J(e){var a,l;const s=null==(l=null==(a=$.value)?void 0:a.subjects)?void 0:l.find(a=>a.id===e);return(null==s?void 0:s.name)||""}function K(e){var a,l;for(const s of(null==(a=$.value)?void 0:a.subjects)||[]){const a=null==(l=s.chapters)?void 0:l.find(a=>a.id===e);if(a)return a.name}return""}l(()=>{B()});let U=null;function q(){$.value=null,I.value=null,A.value=null,U&&clearInterval(U)}function G(){$.value?q():j()}function L(e){const a=new Date(e);return`${a.getMonth()+1}/${a.getDate()} ${a.getHours()}:${String(a.getMinutes()).padStart(2,"0")}`}return(e,a)=>{const l=i,s=c,y=r,b=_;return u(),t(s,{class:"page"},{default:n(()=>[d(s,{class:"nav-bar"},{default:n(()=>[d(s,{class:"nav-content"},{default:n(()=>[d(s,{class:"nav-left",onClick:G},{default:n(()=>[d(l,{class:"back-icon"},{default:n(()=>[o("←")]),_:1})]),_:1}),d(l,{class:"page-title"},{default:n(()=>[o("学习路径")]),_:1}),d(s,{class:"nav-right"},{default:n(()=>[d(l)]),_:1})]),_:1})]),_:1}),d(s,{class:"main-content"},{default:n(()=>[d(s,{class:"card"},{default:n(()=>[d(s,{class:"card-header"},{default:n(()=>[d(l,{class:"card-title"},{default:n(()=>[o("🎯 创建学习路径")]),_:1})]),_:1}),d(y,{modelValue:x.value,"onUpdate:modelValue":a[0]||(a[0]=e=>x.value=e),class:"topic-input",placeholder:"例如:我想学计算机 / 我想了解量子物理 / 我想学做川菜",maxlength:500},null,8,["modelValue"]),d(s,{class:"mode-selector"},{default:n(()=>[d(s,{class:f(["mode-option",{active:"progressive"===E.value}]),onClick:a[1]||(a[1]=e=>E.value="progressive")},{default:n(()=>[d(l,{class:"mode-icon"},{default:n(()=>[o("🔍")]),_:1}),d(s,{class:"mode-info"},{default:n(()=>[d(l,{class:"mode-name"},{default:n(()=>[o("渐进模式")]),_:1}),d(l,{class:"mode-desc"},{default:n(()=>[o("逐步确认,灵活调整")]),_:1})]),_:1})]),_:1},8,["class"]),d(s,{class:f(["mode-option",{active:"multi-agent"===E.value}]),onClick:a[2]||(a[2]=e=>E.value="multi-agent")},{default:n(()=>[d(l,{class:"mode-icon"},{default:n(()=>[o("🚀")]),_:1}),d(s,{class:"mode-info"},{default:n(()=>[d(l,{class:"mode-name"},{default:n(()=>[o("多Agent模式")]),_:1}),d(l,{class:"mode-desc"},{default:n(()=>[o("全自动并行生成")]),_:1})]),_:1})]),_:1},8,["class"])]),_:1}),d(b,{class:"create-btn",disabled:!x.value.trim()||C.value,onClick:D},{default:n(()=>[C.value?(u(),t(l,{key:0},{default:n(()=>[o("创建中...")]),_:1})):(u(),t(l,{key:1},{default:n(()=>[o("🚀 开始生成")]),_:1}))]),_:1},8,["disabled"])]),_:1}),d(s,{class:"card"},{default:n(()=>[d(s,{class:"card-header"},{default:n(()=>[d(l,{class:"card-title"},{default:n(()=>[o("📚 我的任务")]),_:1}),d(l,{class:"refresh-btn",onClick:B},{default:n(()=>[o("🔄")]),_:1})]),_:1}),w.value?(u(),t(s,{key:0,class:"loading"},{default:n(()=>[d(l,null,{default:n(()=>[o("加载中...")]),_:1})]),_:1})):0===S.value.length?(u(),t(s,{key:1,class:"empty"},{default:n(()=>[d(l,null,{default:n(()=>[o("暂无任务")]),_:1})]),_:1})):(u(),t(s,{key:2,class:"task-list"},{default:n(()=>[(u(!0),p(m,null,v(S.value,e=>(u(),t(s,{key:e.id,class:"task-item",onClick:a=>O(e.id)},{default:n(()=>[d(s,{class:"task-info"},{default:n(()=>[d(s,{class:"task-left"},{default:n(()=>[d(l,{class:"task-topic"},{default:n(()=>[o(g(e.topic),1)]),_:2},1024),d(s,{class:"task-meta"},{default:n(()=>[d(l,{class:f(["task-mode",e.generationMode])},{default:n(()=>[o(g("multi-agent"===e.generationMode?"🚀多Agent":"🔍渐进"),1)]),_:2},1032,["class"]),d(l,{class:f(["task-status",e.status])},{default:n(()=>[o(g(V[e.status]||e.status),1)]),_:2},1032,["class"])]),_:2},1024)]),_:2},1024)]),_:2},1024),d(s,{class:"task-progress"},{default:n(()=>[d(s,{class:"progress-bar"},{default:n(()=>[d(s,{class:"progress-fill",style:k({width:e.progress+"%"})},null,8,["style"])]),_:2},1024),d(l,{class:"progress-text"},{default:n(()=>[o(g(e.progress)+"%",1)]),_:2},1024)]),_:2},1024),d(l,{class:"task-date"},{default:n(()=>[o(g(L(e.createdAt)),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1}))]),_:1}),$.value?(u(),t(s,{key:0,class:"card task-detail"},{default:n(()=>[d(s,{class:"card-header"},{default:n(()=>[d(l,{class:"card-title"},{default:n(()=>[o("📖 "+g($.value.topic),1)]),_:1}),d(l,{class:"close-btn",onClick:q},{default:n(()=>[o("×")]),_:1})]),_:1}),d(s,{class:"overall-progress"},{default:n(()=>[d(s,{class:"progress-info"},{default:n(()=>[d(l,null,{default:n(()=>[o("总体进度: "+g($.value.progress)+"%",1)]),_:1}),d(l,null,{default:n(()=>[o(g($.value.completedCount)+"/"+g($.value.totalCount)+" 内容块",1)]),_:1})]),_:1}),d(s,{class:"progress-bar large"},{default:n(()=>[d(s,{class:"progress-fill",style:k({width:$.value.progress+"%"})},null,8,["style"])]),_:1})]),_:1}),"multi-agent"===$.value.generationMode?(u(),t(s,{key:0,class:"agent-status"},{default:n(()=>[d(l,{class:"agent-title"},{default:n(()=>[o("🚀 Agent 状态")]),_:1}),A.value?(u(),t(s,{key:0,class:"agent-list"},{default:n(()=>[(u(!0),p(m,null,v(A.value.agents,e=>(u(),t(s,{key:e.name,class:"agent-item"},{default:n(()=>[d(l,{class:"agent-name"},{default:n(()=>[o(g(e.name),1)]),_:2},1024),d(s,{class:"agent-progress"},{default:n(()=>[d(s,{class:"progress-bar small"},{default:n(()=>[d(s,{class:"progress-fill",style:k({width:e.progress+"%"})},null,8,["style"])]),_:2},1024),d(l,{class:"agent-percent"},{default:n(()=>[o(g(e.progress)+"%",1)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})):h("",!0)]),_:1})):h("",!0),"progressive"===$.value.generationMode&&I.value?(u(),t(s,{key:1,class:"confirm-panel"},{default:n(()=>[d(l,{class:"confirm-title"},{default:n(()=>[o("📋 待确认内容")]),_:1}),"subjects"===I.value.currentStep?(u(),t(s,{key:0,class:"confirm-section"},{default:n(()=>[d(l,{class:"confirm-step"},{default:n(()=>[o("第1步: 确认学科列表")]),_:1}),d(s,{class:"confirm-list"},{default:n(()=>[(u(!0),p(m,null,v(I.value.pendingSubjects,e=>(u(),t(s,{key:e.id,class:"confirm-item"},{default:n(()=>[d(l,{class:"item-icon"},{default:n(()=>[o("📚")]),_:1}),d(l,{class:"item-name"},{default:n(()=>[o(g(e.name),1)]),_:2},1024)]),_:2},1024))),128))]),_:1}),d(b,{class:"confirm-btn",onClick:a[3]||(a[3]=e=>H("subjects")),disabled:M.value},{default:n(()=>[M.value?(u(),t(l,{key:0},{default:n(()=>[o("确认中...")]),_:1})):(u(),t(l,{key:1},{default:n(()=>[o("✅ 确认学科并继续")]),_:1}))]),_:1},8,["disabled"])]),_:1})):h("",!0),"chapters"===I.value.currentStep?(u(),t(s,{key:1,class:"confirm-section"},{default:n(()=>[d(l,{class:"confirm-step"},{default:n(()=>[o("第2步: 确认章节列表")]),_:1}),(u(!0),p(m,null,v(I.value.pendingChapters,(e,a)=>(u(),t(s,{key:a,class:"subject-chapters"},{default:n(()=>[d(l,{class:"subject-label"},{default:n(()=>[o("📚 "+g(J(a)),1)]),_:2},1024),d(s,{class:"confirm-list"},{default:n(()=>[(u(!0),p(m,null,v(e,e=>(u(),t(s,{key:e.id,class:"confirm-item"},{default:n(()=>[d(l,{class:"item-icon"},{default:n(()=>[o("📖")]),_:1}),d(l,{class:"item-name"},{default:n(()=>[o(g(e.name),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024)]),_:2},1024))),128)),d(b,{class:"confirm-btn",onClick:a[4]||(a[4]=e=>H("chapters")),disabled:M.value},{default:n(()=>[M.value?(u(),t(l,{key:0},{default:n(()=>[o("确认中...")]),_:1})):(u(),t(l,{key:1},{default:n(()=>[o("✅ 确认章节并继续")]),_:1}))]),_:1},8,["disabled"])]),_:1})):h("",!0),"sections"===I.value.currentStep?(u(),t(s,{key:2,class:"confirm-section"},{default:n(()=>[d(l,{class:"confirm-step"},{default:n(()=>[o("第3步: 确认小节列表")]),_:1}),(u(!0),p(m,null,v(I.value.pendingSections,(e,a)=>(u(),t(s,{key:a,class:"chapter-sections"},{default:n(()=>[d(l,{class:"chapter-label"},{default:n(()=>[o("📖 "+g(K(a)),1)]),_:2},1024),d(s,{class:"confirm-list"},{default:n(()=>[(u(!0),p(m,null,v(e,e=>(u(),t(s,{key:e.id,class:"confirm-item"},{default:n(()=>[d(l,{class:"item-icon"},{default:n(()=>[o("📑")]),_:1}),d(l,{class:"item-name"},{default:n(()=>[o(g(e.name),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024)]),_:2},1024))),128)),d(b,{class:"confirm-btn",onClick:a[5]||(a[5]=e=>H("sections")),disabled:M.value},{default:n(()=>[M.value?(u(),t(l,{key:0},{default:n(()=>[o("确认中...")]),_:1})):(u(),t(l,{key:1},{default:n(()=>[o("✅ 确认小节并生成内容")]),_:1}))]),_:1},8,["disabled"])]),_:1})):h("",!0),"content"===I.value.currentStep?(u(),t(s,{key:3,class:"confirm-section"},{default:n(()=>[d(l,{class:"confirm-step"},{default:n(()=>[o("⏳ 正在生成详细内容...")]),_:1}),d(l,{class:"confirm-hint"},{default:n(()=>[o("请稍候,系统正在为每个小节生成详细内容")]),_:1})]),_:1})):h("",!0)]),_:1})):h("",!0),$.value.subjects&&$.value.subjects.length>0?(u(),t(s,{key:2,class:"subjects"},{default:n(()=>[(u(!0),p(m,null,v($.value.subjects,e=>(u(),t(s,{key:e.id,class:"subject-item"},{default:n(()=>[d(s,{class:"subject-header",onClick:a=>function(e){e.expanded=!e.expanded}(e)},{default:n(()=>[d(l,{class:"subject-icon"},{default:n(()=>[o(g(e.expanded?"📂":"📁"),1)]),_:2},1024),d(l,{class:"subject-name"},{default:n(()=>[o(g(e.name),1)]),_:2},1024),d(l,{class:f(["subject-status",e.status])},{default:n(()=>[o(g(V[e.status]),1)]),_:2},1032,["class"])]),_:2},1032,["onClick"]),e.expanded&&e.chapters?(u(),t(s,{key:0,class:"chapters"},{default:n(()=>[(u(!0),p(m,null,v(e.chapters,e=>(u(),t(s,{key:e.id,class:"chapter-item"},{default:n(()=>[d(s,{class:"chapter-header",onClick:a=>function(e){e.expanded=!e.expanded}(e)},{default:n(()=>[d(l,{class:"chapter-icon"},{default:n(()=>[o(g(e.expanded?"📗":"📄"),1)]),_:2},1024),d(l,{class:"chapter-name"},{default:n(()=>[o(g(e.name),1)]),_:2},1024)]),_:2},1032,["onClick"]),e.expanded&&e.sections?(u(),t(s,{key:0,class:"sections"},{default:n(()=>[(u(!0),p(m,null,v(e.sections,e=>(u(),t(s,{key:e.id,class:"section-item"},{default:n(()=>[d(s,{class:"section-header",onClick:a=>function(e){e.expanded=!e.expanded}(e)},{default:n(()=>[d(l,{class:"section-icon"},{default:n(()=>[o(g(e.expanded?"📖":"📑"),1)]),_:2},1024),d(l,{class:"section-name"},{default:n(()=>[o(g(e.name),1)]),_:2},1024)]),_:2},1032,["onClick"]),e.expanded&&e.contentBlocks?(u(),t(s,{key:0,class:"content-blocks"},{default:n(()=>[(u(!0),p(m,null,v(e.contentBlocks,e=>(u(),t(s,{key:e.id,class:"content-block"},{default:n(()=>[d(l,{class:"block-content"},{default:n(()=>[o(g(e.content),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024)):h("",!0)]),_:2},1024))),128))]),_:2},1024)):h("",!0)]),_:2},1024))),128))]),_:2},1024)):h("",!0)]),_:2},1024))),128))]),_:1})):h("",!0)]),_:1})):h("",!0)]),_:1})]),_:1})}}}),[["__scopeId","data-v-a80c6be7"]]);export{C as default};
|