pages-book-generator-index.DK-2uG5e.js 21 KB

1
  1. import{d as a,r as e,q as l,o as t,c as s,w as u,i as c,b as n,e as i,f as o,h as d,j as r,F as v,k as f,t as p,z as _,l as m,n as b,m as k,D as g,Y as y,A as h,S as w,J as C,s as x,p as A,y as V}from"./index-Co9nPWLO.js";import{a as U,c as I,g as S,b as j,d as T,e as G,f as L,h as $,i as F,j as q,k as z,l as D,m as J,n as M}from"./book-generator-api.DJmua_js.js";import{_ as P}from"./_plugin-vue_export-helper.BCo6x5W8.js";const W=P(a({__name:"index",setup(a){const P=e("list"),W=e([]),Y=e(null),B=e(null),E=e(!1),H=e(!1),K=e({title:"",subtitle:"",description:"",targetAudience:"",style:"",bookScale:"medium"}),N=e(!1),O=e(!1),Q=e(!1),R=["不填","通用","青少年","儿童","大学生","专业人士","老年"],X=["不填","通俗易懂","专业严谨","轻松幽默","诗意优美","故事化"],Z=[{value:"800",label:"短文",words:"800字",pages:"约3页"},{value:"2000",label:"短文",words:"2000字",pages:"约8页"},{value:"5000",label:"短文",words:"5000字",pages:"约20页"},{value:"小册子",label:"小册子",words:"1~5万字",pages:"约50~120页"},{value:"标准教程",label:"标准教程",words:"5~15万字",pages:"约150~300页"},{value:"系统教材",label:"系统教材",words:"15~30万字",pages:"约300~550页"}],aa=l(()=>K.value.title.trim()&&K.value.description.trim()),ea=l(()=>Y.value?Y.value.chapters.filter(a=>"completed"===a.status).length:0);function la(){C()}function ta(){x({url:"/pages/index/index"})}function sa(){A({url:"/pages/video-generator/index"})}function ua(a){return{draft:"草稿",planning:"规划中",generating:"生成中",completed:"已完成",failed:"失败"}[a]||a}function ca(a){var e;const l=null==(e=Y.value)?void 0:e.chapters.find(e=>e.number===a);return l&&"completed"===l.status?"done":"pending"}function na(a){var e;const l=null==(e=Y.value)?void 0:e.chapters.find(e=>e.number===a);return l?"completed"===l.status?"✓":"○":"待生成"}async function ia(){try{const a=await U();W.value=a||[]}catch(a){console.error("加载书籍失败:",a),W.value=[]}}async function oa(){if(aa.value){H.value=!0;try{await I({title:K.value.title,subtitle:K.value.subtitle,description:K.value.description,...K.value.targetAudience?{targetAudience:K.value.targetAudience}:{},...K.value.style?{style:K.value.style}:{},bookScale:K.value.bookScale}),K.value={title:"",subtitle:"",description:"",targetAudience:"",style:"",bookScale:"medium"},E.value=!1,P.value="list",await ia(),V({title:"创建成功",icon:"success"})}catch(a){V({title:a.message||"创建失败",icon:"none"})}finally{H.value=!1}}}async function da(a){try{Y.value=await S(a.id),P.value="detail"}catch(e){V({title:"加载失败",icon:"none"})}}async function ra(){if(Y.value){N.value=!0;try{const a=await j(Y.value.id);Y.value.outline=a,Y.value.status="planning",Y.value.chapters=a.chapters.map(a=>({id:"",bookId:Y.value.id,number:a.number,title:a.title,content:"",wordCount:0,status:"pending"})),V({title:"大纲生成成功",icon:"success"})}catch(a){V({title:a.message||"生成失败",icon:"none"})}finally{N.value=!1}}}let va=null;async function fa(){if(Y.value){N.value=!0,Y.value.status="generating",Y.value.progress=0;try{await T(Y.value.id,{generateForeword:!0,generateAfterword:!0}),V({title:"生成任务已启动,请稍候...",icon:"none",duration:2e3}),pa(Y.value.id)}catch(a){N.value=!1,Y.value.status="failed",V({title:a.message||"启动失败",icon:"none"})}}}function pa(a){_a(),va=setInterval(async()=>{try{const e=await G(a);if(!e)return;Y.value&&(Y.value.progress=e.progress,Y.value.status=e.status),"completed"!==e.status&&"failed"!==e.status||(_a(),N.value=!1,Y.value=await S(a),"completed"===e.status?V({title:"整本书生成完成!",icon:"success"}):"failed"===e.status&&V({title:"生成过程中有错误",icon:"none"}))}catch(e){console.error("轮询进度失败:",e)}},3e3)}function _a(){va&&(clearInterval(va),va=null)}async function ma(){if(Y.value){N.value=!0,Y.value.status="generating",Y.value.progress=0;try{await L(Y.value.id);V({title:"LangGraph 生成已启动",icon:"none",duration:2e3}),pa(Y.value.id)}catch(a){N.value=!1,Y.value.status="failed",V({title:a.message||"启动失败",icon:"none"})}}}async function ba(){if(Y.value&&Y.value.outline){N.value=!0,Y.value.status="generating";try{for(const e of Y.value.outline.chapters)try{const a=await $(Y.value.id,e.number),l=Y.value.chapters.findIndex(e=>e.number===a.number);l>=0&&(Y.value.chapters[l]=a);const t=Y.value.chapters.filter(a=>"completed"===a.status).length;Y.value.progress=Math.round(t/Y.value.totalChapters*100)}catch(a){console.error(`生成第${e.number}章失败:`,a)}Y.value.status="completed",V({title:"全部章节生成完成",icon:"success"})}catch(a){Y.value.status="failed",V({title:a.message||"生成失败",icon:"none"})}finally{N.value=!1}}else V({title:"请先生成大纲",icon:"none"})}async function ka(){if(Y.value){N.value=!0;try{const a=await F(Y.value.id);Y.value.metadata=Y.value.metadata||{},Y.value.metadata.foreword=a,V({title:"前言生成成功",icon:"success"})}catch(a){V({title:a.message||"生成失败",icon:"none"})}finally{N.value=!1}}}async function ga(){if(Y.value){N.value=!0;try{const a=await q(Y.value.id);Y.value.metadata=Y.value.metadata||{},Y.value.metadata.afterword=a,V({title:"后记生成成功",icon:"success"})}catch(a){V({title:a.message||"生成失败",icon:"none"})}finally{N.value=!1}}}async function ya(){Y.value&&(Y.value=await S(Y.value.id),P.value="toc")}function ha(a){"completed"===a.status?(B.value=a,P.value="chapter-detail"):V({title:"该章节尚未生成",icon:"none"})}function wa(){var a,e;(null==(e=null==(a=Y.value)?void 0:a.metadata)?void 0:e.foreword)?(B.value={id:"foreword",bookId:Y.value.id,number:0,title:"前言",content:Y.value.metadata.foreword,wordCount:Y.value.metadata.foreword.length,status:"completed"},P.value="chapter-detail"):V({title:"前言尚未生成",icon:"none"})}function Ca(){var a,e;(null==(e=null==(a=Y.value)?void 0:a.metadata)?void 0:e.afterword)?(B.value={id:"afterword",bookId:Y.value.id,number:Y.value.chapters.length+1,title:"后记",content:Y.value.metadata.afterword,wordCount:Y.value.metadata.afterword.length,status:"completed"},P.value="chapter-detail"):V({title:"后记尚未生成",icon:"none"})}return t(()=>{ia()}),(a,e)=>{const l=o,t=c,C=k,x=y,A=h,U=w;return n(),s(t,{class:"page"},{default:u(()=>[i(t,{class:"nav-bar"},{default:u(()=>[i(t,{class:"nav-content"},{default:u(()=>[i(t,{class:"nav-left",onClick:la},{default:u(()=>[i(l,{class:"back-icon"},{default:u(()=>[d("←")]),_:1})]),_:1}),i(l,{class:"page-title"},{default:u(()=>[d("书籍生成")]),_:1}),i(t,{class:"nav-right"},{default:u(()=>[i(l,{class:"nav-btn",onClick:ta},{default:u(()=>[d("📚")]),_:1})]),_:1})]),_:1})]),_:1}),i(t,{class:"main-content"},{default:u(()=>["list"===P.value?(n(),s(t,{key:0,class:"list-view"},{default:u(()=>[i(t,{class:"create-card",onClick:e[0]||(e[0]=a=>P.value="create")},{default:u(()=>[i(l,{class:"create-icon"},{default:u(()=>[d("+")]),_:1}),i(l,{class:"create-text"},{default:u(()=>[d("创建新书籍")]),_:1})]),_:1}),i(t,{class:"video-nav-card",onClick:sa},{default:u(()=>[i(t,{class:"video-nav-content"},{default:u(()=>[i(l,{class:"video-nav-icon"},{default:u(()=>[d("🎬")]),_:1}),i(t,{class:"video-nav-text"},{default:u(()=>[i(l,{class:"video-nav-title"},{default:u(()=>[d("视频生成")]),_:1}),i(l,{class:"video-nav-desc"},{default:u(()=>[d("图片+音频生成精美视频")]),_:1})]),_:1})]),_:1}),i(l,{class:"video-nav-arrow"},{default:u(()=>[d("→")]),_:1})]),_:1}),W.value.length>0?(n(),s(t,{key:0,class:"book-list"},{default:u(()=>[(n(!0),r(v,null,f(W.value,a=>(n(),s(t,{key:a.id,class:"book-card"},{default:u(()=>[i(t,{class:"book-header",onClick:e=>da(a)},{default:u(()=>[i(l,{class:"book-title"},{default:u(()=>[d(p(a.title),1)]),_:2},1024),i(t,{class:_(["status-badge",a.status])},{default:u(()=>[d(p(ua(a.status)),1)]),_:2},1032,["class"])]),_:2},1032,["onClick"]),i(l,{class:"book-desc",onClick:e=>da(a)},{default:u(()=>[d(p(a.description),1)]),_:2},1032,["onClick"]),i(t,{class:"book-meta",onClick:e=>da(a)},{default:u(()=>[i(l,null,{default:u(()=>[d(p(a.totalChapters)+"章",1)]),_:2},1024),a.progress>0?(n(),s(l,{key:0},{default:u(()=>[d(p(a.progress)+"%",1)]),_:2},1024)):m("",!0)]),_:2},1032,["onClick"]),a.progress>0&&a.progress<100?(n(),s(t,{key:0,class:"progress-bar",onClick:e=>da(a)},{default:u(()=>[i(t,{class:"progress-fill",style:b({width:a.progress+"%"})},null,8,["style"])]),_:2},1032,["onClick"])):m("",!0),"completed"===a.status?(n(),s(t,{key:1,class:"book-actions"},{default:u(()=>[i(C,{class:"audio-btn",disabled:O.value,onClick:g(e=>async function(a){O.value=!0;try{const e=await D(a.id,"cherry");V({title:`已启动 ${e.totalChapters} 个章节的音频生成`,icon:"none",duration:2500}),setTimeout(async()=>{var e;await ia(),(null==(e=Y.value)?void 0:e.id)===a.id&&(Y.value=await S(a.id))},5e3)}catch(e){V({title:e.message||"生成失败",icon:"none"})}finally{O.value=!1}}(a),["stop"])},{default:u(()=>[d(p(O.value?"生成中...":"🎵 生成全部音频"),1)]),_:2},1032,["disabled","onClick"]),i(C,{class:"video-btn",disabled:Q.value,onClick:g(e=>async function(a){Q.value=!0;try{const e=await M(a.id);V({title:`已启动 ${e.totalChapters} 个章节的视频生成`,icon:"none",duration:2500}),setTimeout(async()=>{var e;await ia(),(null==(e=Y.value)?void 0:e.id)===a.id&&(Y.value=await S(a.id))},5e3)}catch(e){V({title:e.message||"生成失败",icon:"none"})}finally{Q.value=!1}}(a),["stop"])},{default:u(()=>[d(p(Q.value?"生成中...":"🎬 生成全部视频"),1)]),_:2},1032,["disabled","onClick"])]),_:2},1024)):m("",!0)]),_:2},1024))),128))]),_:1})):(n(),s(t,{key:1,class:"empty-state"},{default:u(()=>[i(l,{class:"empty-icon"},{default:u(()=>[d("📖")]),_:1}),i(l,{class:"empty-text"},{default:u(()=>[d("暂无书籍")]),_:1}),i(l,{class:"empty-hint"},{default:u(()=>[d("点击上方按钮创建第一本书")]),_:1})]),_:1}))]),_:1})):m("",!0),"create"===P.value?(n(),s(t,{key:1,class:"create-view"},{default:u(()=>[i(t,{class:"card"},{default:u(()=>[i(t,{class:"card-header"},{default:u(()=>[i(l,{class:"card-title"},{default:u(()=>[d("📖 创建新书籍")]),_:1})]),_:1}),i(t,{class:"form-item"},{default:u(()=>[i(l,{class:"form-label"},{default:u(()=>[d("书名 *")]),_:1}),i(x,{modelValue:K.value.title,"onUpdate:modelValue":e[1]||(e[1]=a=>K.value.title=a),class:"form-input",placeholder:"例如:《时间是什么》"},null,8,["modelValue"])]),_:1}),i(t,{class:"form-item"},{default:u(()=>[i(l,{class:"form-label"},{default:u(()=>[d("副标题")]),_:1}),i(x,{modelValue:K.value.subtitle,"onUpdate:modelValue":e[2]||(e[2]=a=>K.value.subtitle=a),class:"form-input",placeholder:"例如:一本写给青少年的科普书"},null,8,["modelValue"])]),_:1}),i(t,{class:"form-item"},{default:u(()=>[i(l,{class:"form-label"},{default:u(()=>[d("内容描述 *")]),_:1}),i(A,{modelValue:K.value.description,"onUpdate:modelValue":e[3]||(e[3]=a=>K.value.description=a),class:"form-textarea",placeholder:"描述这本书的内容、主题、写作目的...",maxlength:500},null,8,["modelValue"])]),_:1}),i(t,{class:"form-item"},{default:u(()=>[i(l,{class:"form-label"},{default:u(()=>[d("目标受众")]),_:1}),i(t,{class:"chip-group"},{default:u(()=>[(n(),r(v,null,f(R,a=>i(t,{key:a,class:_(["chip",K.value.targetAudience===a?"active":""]),onClick:e=>K.value.targetAudience=a},{default:u(()=>[d(p(a),1)]),_:2},1032,["class","onClick"])),64))]),_:1})]),_:1}),i(t,{class:"form-item"},{default:u(()=>[i(l,{class:"form-label"},{default:u(()=>[d("写作风格")]),_:1}),i(t,{class:"chip-group"},{default:u(()=>[(n(),r(v,null,f(X,a=>i(t,{key:a,class:_(["chip",K.value.style===a?"active":""]),onClick:e=>K.value.style=a},{default:u(()=>[d(p(a),1)]),_:2},1032,["class","onClick"])),64))]),_:1})]),_:1}),i(t,{class:"form-item"},{default:u(()=>[i(l,{class:"form-label"},{default:u(()=>[d("书籍规模")]),_:1}),i(t,{class:"scale-picker"},{default:u(()=>[(n(),r(v,null,f(Z,a=>i(t,{key:a.value,class:_(["scale-option",{active:K.value.bookScale===a.value}]),onClick:e=>K.value.bookScale=a.value},{default:u(()=>[i(l,{class:"scale-words"},{default:u(()=>[d(p(a.words),1)]),_:2},1024),i(l,{class:"scale-label"},{default:u(()=>[d(p(a.label),1)]),_:2},1024),i(l,{class:"scale-pages"},{default:u(()=>[d(p(a.pages),1)]),_:2},1024)]),_:2},1032,["class","onClick"])),64))]),_:1})]),_:1}),i(t,{class:"btn-group"},{default:u(()=>[i(C,{class:"btn-cancel",onClick:e[4]||(e[4]=a=>P.value="list")},{default:u(()=>[d("取消")]),_:1}),i(C,{class:"btn-primary",disabled:!aa.value||H.value,onClick:oa},{default:u(()=>[d(p(H.value?"创建中...":"创建书籍"),1)]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1})):m("",!0),"detail"===P.value?(n(),s(t,{key:2,class:"detail-view"},{default:u(()=>{var a;return[i(t,{class:"card book-info"},{default:u(()=>{var a;return[i(t,{class:"book-title-row"},{default:u(()=>{var a;return[i(l,{class:"book-title-large"},{default:u(()=>{var a;return[d(p(null==(a=Y.value)?void 0:a.title),1)]}),_:1}),i(t,{class:_(["status-badge",null==(a=Y.value)?void 0:a.status])},{default:u(()=>{var a;return[d(p(ua((null==(a=Y.value)?void 0:a.status)||"draft")),1)]}),_:1},8,["class"])]}),_:1}),(null==(a=Y.value)?void 0:a.subtitle)?(n(),s(l,{key:0,class:"book-subtitle"},{default:u(()=>[d(p(Y.value.subtitle),1)]),_:1})):m("",!0),i(l,{class:"book-desc"},{default:u(()=>{var a;return[d(p(null==(a=Y.value)?void 0:a.description),1)]}),_:1}),i(t,{class:"book-meta-row"},{default:u(()=>[i(l,null,{default:u(()=>{var a;return[d("章节:"+p(null==(a=Y.value)?void 0:a.totalChapters)+" 章",1)]}),_:1}),i(l,null,{default:u(()=>{var a;return[d("预估:"+p((null==(a=Y.value)?void 0:a.estimatedWords)||0)+" 字",1)]}),_:1})]),_:1})]}),_:1}),Y.value&&Y.value.progress>0?(n(),s(t,{key:0,class:"card progress-card"},{default:u(()=>[i(l,{class:"card-title"},{default:u(()=>[d("📊 生成进度")]),_:1}),i(t,{class:"progress-display"},{default:u(()=>[i(l,{class:"progress-text"},{default:u(()=>[d(p(Y.value.progress)+"%",1)]),_:1}),i(l,{class:"progress-detail"},{default:u(()=>[d(p(ea.value)+"/"+p(Y.value.totalChapters)+" 章 ",1)]),_:1})]),_:1}),i(t,{class:"progress-bar-large"},{default:u(()=>[i(t,{class:"progress-fill",style:b({width:Y.value.progress+"%"})},null,8,["style"])]),_:1})]),_:1})):m("",!0),(null==(a=Y.value)?void 0:a.outline)?(n(),s(t,{key:1,class:"card outline-card"},{default:u(()=>[i(t,{class:"card-header-row"},{default:u(()=>[i(l,{class:"card-title"},{default:u(()=>[d("📋 书籍大纲")]),_:1}),i(l,{class:"outline-theme"},{default:u(()=>[d(p(Y.value.outline.mainTheme),1)]),_:1})]),_:1}),i(t,{class:"outline-list"},{default:u(()=>[(n(!0),r(v,null,f(Y.value.outline.chapters,a=>(n(),s(t,{key:a.number,class:"outline-item"},{default:u(()=>[i(t,{class:"chapter-num"},{default:u(()=>[d(p(a.number),1)]),_:2},1024),i(t,{class:"chapter-info"},{default:u(()=>[i(l,{class:"chapter-title"},{default:u(()=>[d(p(a.title),1)]),_:2},1024),i(l,{class:"chapter-summary"},{default:u(()=>[d(p(a.summary),1)]),_:2},1024),i(t,{class:"chapter-points"},{default:u(()=>[(n(!0),r(v,null,f(a.keyPoints.slice(0,3),(a,e)=>(n(),s(l,{key:e,class:"point-tag"},{default:u(()=>[d(p(a),1)]),_:2},1024))),128))]),_:2},1024)]),_:2},1024),i(t,{class:_(["chapter-status",ca(a.number)])},{default:u(()=>[d(p(na(a.number)),1)]),_:2},1032,["class"])]),_:2},1024))),128))]),_:1})]),_:1})):m("",!0),i(t,{class:"card action-card"},{default:u(()=>{var a,c,o,r;return[(null==(a=Y.value)?void 0:a.outline)||"planning"===(null==(c=Y.value)?void 0:c.status)?m("",!0):(n(),s(t,{key:0,class:"btn-col"},{default:u(()=>[i(t,{class:"btn-row"},{default:u(()=>[i(C,{class:"action-btn",disabled:N.value,onClick:ra},{default:u(()=>[d(p(N.value?"生成中...":"📋 生成大纲"),1)]),_:1},8,["disabled"]),i(C,{class:"action-btn primary",disabled:N.value,onClick:fa},{default:u(()=>[d(p(N.value?"生成中...":"🚀 一键生成"),1)]),_:1},8,["disabled"]),i(C,{class:"action-btn langgraph-btn",disabled:N.value,onClick:ma},{default:u(()=>[d(p(N.value?"生成中...":"🤖 LangGraph"),1)]),_:1},8,["disabled"])]),_:1})]),_:1})),(null==(o=Y.value)?void 0:o.outline)&&"generating"!==Y.value.status?(n(),s(t,{key:1,class:"btn-col"},{default:u(()=>[i(t,{class:"btn-row"},{default:u(()=>[i(C,{class:"action-btn primary",disabled:N.value,onClick:fa},{default:u(()=>[d(p(N.value?"生成中...":"🚀 一键生成"),1)]),_:1},8,["disabled"]),i(C,{class:"action-btn langgraph-btn",disabled:N.value,onClick:ma},{default:u(()=>[d(p(N.value?"生成中...":"🤖 LangGraph"),1)]),_:1},8,["disabled"])]),_:1}),i(t,{class:"btn-row"},{default:u(()=>[i(C,{class:"action-btn",onClick:ka},{default:u(()=>[d("前言")]),_:1}),i(C,{class:"action-btn",disabled:N.value,onClick:ba},{default:u(()=>[d(p(N.value?"生成中...":"📝 章节"),1)]),_:1},8,["disabled"]),i(C,{class:"action-btn",onClick:ga},{default:u(()=>[d("后记")]),_:1})]),_:1})]),_:1})):m("",!0),N.value?(n(),s(t,{key:2,class:"generating-tip"},{default:u(()=>[i(l,null,{default:u(()=>[d("正在生成中,请稍候...")]),_:1})]),_:1})):m("",!0),"completed"===(null==(r=Y.value)?void 0:r.status)?(n(),s(C,{key:3,class:"action-btn primary full-width",onClick:ya},{default:u(()=>[d(" 📖 查看完整书籍 ")]),_:1})):m("",!0),i(C,{class:"action-btn full-width",onClick:e[5]||(e[5]=a=>{P.value="list",ia()})},{default:u(()=>[d(" 返回书籍列表 ")]),_:1})]}),_:1})]}),_:1})):m("",!0)]),_:1}),"toc"===P.value?(n(),s(t,{key:0,class:"toc-view"},{default:u(()=>[i(t,{class:"nav-bar"},{default:u(()=>[i(t,{class:"nav-content"},{default:u(()=>[i(t,{class:"nav-left",onClick:e[6]||(e[6]=a=>P.value="detail")},{default:u(()=>[i(l,{class:"back-icon"},{default:u(()=>[d("←")]),_:1})]),_:1}),i(l,{class:"page-title"},{default:u(()=>[d("目录")]),_:1}),i(t,{class:"nav-right"})]),_:1})]),_:1}),i(t,{class:"toc-content"},{default:u(()=>{var a,e,c,o,b;return[(null==(e=null==(a=Y.value)?void 0:a.metadata)?void 0:e.foreword)?(n(),s(t,{key:0,class:"toc-item foreword",onClick:wa},{default:u(()=>[i(l,{class:"toc-label"},{default:u(()=>[d("前言")]),_:1}),i(l,{class:"toc-arrow"},{default:u(()=>[d("→")]),_:1})]),_:1})):m("",!0),(n(!0),r(v,null,f(null==(c=Y.value)?void 0:c.chapters,a=>(n(),s(t,{key:a.id,class:_(["toc-item","chapter","completed"===a.status?"done":"pending"])},{default:u(()=>[i(t,{class:"toc-left",onClick:e=>ha(a)},{default:u(()=>[i(l,{class:"chapter-num"},{default:u(()=>[d("第"+p(a.number)+"章",1)]),_:2},1024),i(t,{class:"chapter-info-col"},{default:u(()=>[i(l,{class:"chapter-title"},{default:u(()=>[d(p(a.title),1)]),_:2},1024),a.audioUrl?(n(),s(l,{key:0,class:"audio-status"},{default:u(()=>[d("🎵 已生成音频")]),_:1})):m("",!0)]),_:2},1024)]),_:2},1032,["onClick"]),i(t,{class:"toc-actions"},{default:u(()=>["completed"!==a.status||a.audioUrl?m("",!0):(n(),s(C,{key:0,class:"mini-audio-btn",disabled:O.value,onClick:g(e=>async function(a){if(Y.value){O.value=!0;try{await z(Y.value.id,a.number,"cherry"),V({title:"音频生成任务已启动",icon:"none",duration:2e3}),setTimeout(async()=>{Y.value&&(Y.value=await S(Y.value.id))},3e3)}catch(e){V({title:e.message||"生成失败",icon:"none"})}finally{O.value=!1}}}(a),["stop"])},{default:u(()=>[d(" 🎵 ")]),_:2},1032,["disabled","onClick"])),"completed"===a.status&&a.audioUrl&&!a.videoUrl?(n(),s(C,{key:1,class:"mini-video-btn",disabled:Q.value,onClick:g(e=>async function(a){if(Y.value){Q.value=!0;try{await J(Y.value.id,a.number),V({title:"视频生成任务已启动",icon:"none",duration:2e3}),setTimeout(async()=>{Y.value&&(Y.value=await S(Y.value.id))},3e3)}catch(e){V({title:e.message||"生成失败",icon:"none"})}finally{Q.value=!1}}}(a),["stop"])},{default:u(()=>[d(" 🎬 ")]),_:2},1032,["disabled","onClick"])):m("",!0),a.videoUrl?(n(),s(l,{key:2,class:"video-status"},{default:u(()=>[d("🎬 已生成")]),_:1})):m("",!0),i(l,{class:"toc-arrow",onClick:e=>ha(a)},{default:u(()=>[d("→")]),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1032,["class"]))),128)),(null==(b=null==(o=Y.value)?void 0:o.metadata)?void 0:b.afterword)?(n(),s(t,{key:1,class:"toc-item afterword",onClick:Ca},{default:u(()=>[i(l,{class:"toc-label"},{default:u(()=>[d("后记")]),_:1}),i(l,{class:"toc-arrow"},{default:u(()=>[d("→")]),_:1})]),_:1})):m("",!0)]}),_:1})]),_:1})):m("",!0),"chapter-detail"===P.value?(n(),s(t,{key:1,class:"chapter-detail-view"},{default:u(()=>[i(t,{class:"nav-bar"},{default:u(()=>[i(t,{class:"nav-content"},{default:u(()=>[i(t,{class:"nav-left",onClick:e[7]||(e[7]=a=>P.value="toc")},{default:u(()=>[i(l,{class:"back-icon"},{default:u(()=>[d("←")]),_:1})]),_:1}),i(l,{class:"page-title"},{default:u(()=>{var a;return[d("第"+p(null==(a=B.value)?void 0:a.number)+"章",1)]}),_:1}),i(t,{class:"nav-right"})]),_:1})]),_:1}),i(t,{class:"chapter-content"},{default:u(()=>[i(U,{class:"chapter-scroll","scroll-y":""},{default:u(()=>[i(t,{class:"chapter-header"},{default:u(()=>[i(l,{class:"chapter-title-large"},{default:u(()=>{var a;return[d(p(null==(a=B.value)?void 0:a.title),1)]}),_:1}),i(l,{class:"chapter-word-count"},{default:u(()=>{var a;return[d(p((null==(a=B.value)?void 0:a.wordCount)||0)+"字",1)]}),_:1})]),_:1}),i(t,{class:"chapter-body"},{default:u(()=>[i(l,{class:"chapter-text"},{default:u(()=>{var a;return[d(p(null==(a=B.value)?void 0:a.content),1)]}),_:1})]),_:1})]),_:1})]),_:1})]),_:1})):m("",!0)]),_:1})}}}),[["__scopeId","data-v-3aac5a83"]]);export{W as default};